From 363547d2191cbc32ca954ba75d72908712398ff2 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 24 Oct 2022 12:34:28 -0500 Subject: [PATCH 1/4] kbuild: Allow DTB overlays to built from .dtso named source files Currently DTB Overlays (.dtbo) are build from source files with the same extension (.dts) as the base DTs (.dtb). This may become confusing and even lead to wrong results. For example, a composite DTB (created from a base DTB and a set of overlays) might have the same name as one of the overlays that create it. Different files should be generated from differently named sources. .dtb <-> .dts .dtbo <-> .dtso We do not remove the ability to compile DTBO files from .dts files here, only add a new rule allowing the .dtso file name. The current .dts named overlays can be renamed with time. After all have been renamed we can remove the other rule. Signed-off-by: Andrew Davis Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Reviewed-by: Frank Rowand Tested-by: Frank Rowand Link: https://lore.kernel.org/r/20221024173434.32518-2-afd@ti.com Signed-off-by: Rob Herring --- scripts/Makefile.lib | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 3aa384cec76b..0376a6f18bfb 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -408,6 +408,9 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) $(DT_TMP_SCHEMA) FORCE $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE $(call if_changed_dep,dtc) +$(obj)/%.dtbo: $(src)/%.dtso $(DTC) FORCE + $(call if_changed_dep,dtc) + dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp) # Bzip2 From 941214a512d8c80d47e720c17ec17e8539175e93 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 24 Oct 2022 12:34:29 -0500 Subject: [PATCH 2/4] kbuild: Allow DTB overlays to built into .dtbo.S files DTB files can be built into the kernel by converting them to assembly files then assembling them into object files. We extend this here for DTB overlays with the .dtso extensions. We change the start and end delimiting tag prefix to make it clear that this data came from overlay files. [Based on patch by Frank Rowand ] Signed-off-by: Andrew Davis Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Reviewed-by: Frank Rowand Tested-by: Frank Rowand Link: https://lore.kernel.org/r/20221024173434.32518-3-afd@ti.com Signed-off-by: Rob Herring --- scripts/Makefile.lib | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib index 0376a6f18bfb..250b9fd73f6d 100644 --- a/scripts/Makefile.lib +++ b/scripts/Makefile.lib @@ -358,7 +358,7 @@ DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@) # Generate an assembly file to wrap the output of the device tree compiler -quiet_cmd_dt_S_dtb= DTB $@ +quiet_cmd_dt_S_dtb= DTBS $@ cmd_dt_S_dtb= \ { \ echo '\#include '; \ @@ -375,6 +375,24 @@ cmd_dt_S_dtb= \ $(obj)/%.dtb.S: $(obj)/%.dtb FORCE $(call if_changed,dt_S_dtb) +# Generate an assembly file to wrap the output of the device tree compiler +quiet_cmd_dt_S_dtbo= DTBOS $@ +cmd_dt_S_dtbo= \ +{ \ + echo '\#include '; \ + echo '.section .dtb.init.rodata,"a"'; \ + echo '.balign STRUCT_ALIGNMENT'; \ + echo '.global __dtbo_$(subst -,_,$(*F))_begin'; \ + echo '__dtbo_$(subst -,_,$(*F))_begin:'; \ + echo '.incbin "$<" '; \ + echo '__dtbo_$(subst -,_,$(*F))_end:'; \ + echo '.global __dtbo_$(subst -,_,$(*F))_end'; \ + echo '.balign STRUCT_ALIGNMENT'; \ +} > $@ + +$(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE + $(call if_changed,dt_S_dtbo) + quiet_cmd_dtc = DTC $@ cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ $(DTC) -o $@ -b 0 \ From e87cacadebaf3c03584fbfb540303301cd2c2cbc Mon Sep 17 00:00:00 2001 From: Frank Rowand Date: Mon, 24 Oct 2022 12:34:30 -0500 Subject: [PATCH 3/4] of: overlay: rename overlay source files from .dts to .dtso In drivers/of/unittest-data/: - Rename .dts overlay source files to use .dtso suffix. Modify driver/of/unitest.c to use .dtbo.o based symbols instead of .dtb.o Signed-off-by: Frank Rowand Signed-off-by: Andrew Davis Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Reviewed-by: Frank Rowand Tested-by: Frank Rowand Link: https://lore.kernel.org/r/20221024173434.32518-4-afd@ti.com Signed-off-by: Rob Herring --- drivers/of/unittest-data/Makefile | 66 +++++++++---------- .../{overlay.dts => overlay.dtso} | 0 .../{overlay_0.dts => overlay_0.dtso} | 0 .../{overlay_1.dts => overlay_1.dtso} | 0 .../{overlay_10.dts => overlay_10.dtso} | 0 .../{overlay_11.dts => overlay_11.dtso} | 0 .../{overlay_12.dts => overlay_12.dtso} | 0 .../{overlay_13.dts => overlay_13.dtso} | 0 .../{overlay_15.dts => overlay_15.dtso} | 0 .../{overlay_16.dts => overlay_16.dtso} | 0 .../{overlay_17.dts => overlay_17.dtso} | 0 .../{overlay_18.dts => overlay_18.dtso} | 0 .../{overlay_19.dts => overlay_19.dtso} | 0 .../{overlay_2.dts => overlay_2.dtso} | 0 .../{overlay_20.dts => overlay_20.dtso} | 0 .../{overlay_3.dts => overlay_3.dtso} | 0 .../{overlay_4.dts => overlay_4.dtso} | 0 .../{overlay_5.dts => overlay_5.dtso} | 0 .../{overlay_6.dts => overlay_6.dtso} | 0 .../{overlay_7.dts => overlay_7.dtso} | 0 .../{overlay_8.dts => overlay_8.dtso} | 0 .../{overlay_9.dts => overlay_9.dtso} | 0 ...node.dts => overlay_bad_add_dup_node.dtso} | 0 ...prop.dts => overlay_bad_add_dup_prop.dtso} | 0 ...d_phandle.dts => overlay_bad_phandle.dtso} | 0 ...bad_symbol.dts => overlay_bad_symbol.dtso} | 0 .../{overlay_base.dts => overlay_base.dtso} | 0 ...erlay_gpio_01.dts => overlay_gpio_01.dtso} | 0 ...lay_gpio_02a.dts => overlay_gpio_02a.dtso} | 0 ...lay_gpio_02b.dts => overlay_gpio_02b.dtso} | 0 ...erlay_gpio_03.dts => overlay_gpio_03.dtso} | 0 ...lay_gpio_04a.dts => overlay_gpio_04a.dtso} | 0 ...lay_gpio_04b.dts => overlay_gpio_04b.dtso} | 0 .../{testcases.dts => testcases.dtso} | 0 drivers/of/unittest.c | 48 +++++++------- 35 files changed, 57 insertions(+), 57 deletions(-) rename drivers/of/unittest-data/{overlay.dts => overlay.dtso} (100%) rename drivers/of/unittest-data/{overlay_0.dts => overlay_0.dtso} (100%) rename drivers/of/unittest-data/{overlay_1.dts => overlay_1.dtso} (100%) rename drivers/of/unittest-data/{overlay_10.dts => overlay_10.dtso} (100%) rename drivers/of/unittest-data/{overlay_11.dts => overlay_11.dtso} (100%) rename drivers/of/unittest-data/{overlay_12.dts => overlay_12.dtso} (100%) rename drivers/of/unittest-data/{overlay_13.dts => overlay_13.dtso} (100%) rename drivers/of/unittest-data/{overlay_15.dts => overlay_15.dtso} (100%) rename drivers/of/unittest-data/{overlay_16.dts => overlay_16.dtso} (100%) rename drivers/of/unittest-data/{overlay_17.dts => overlay_17.dtso} (100%) rename drivers/of/unittest-data/{overlay_18.dts => overlay_18.dtso} (100%) rename drivers/of/unittest-data/{overlay_19.dts => overlay_19.dtso} (100%) rename drivers/of/unittest-data/{overlay_2.dts => overlay_2.dtso} (100%) rename drivers/of/unittest-data/{overlay_20.dts => overlay_20.dtso} (100%) rename drivers/of/unittest-data/{overlay_3.dts => overlay_3.dtso} (100%) rename drivers/of/unittest-data/{overlay_4.dts => overlay_4.dtso} (100%) rename drivers/of/unittest-data/{overlay_5.dts => overlay_5.dtso} (100%) rename drivers/of/unittest-data/{overlay_6.dts => overlay_6.dtso} (100%) rename drivers/of/unittest-data/{overlay_7.dts => overlay_7.dtso} (100%) rename drivers/of/unittest-data/{overlay_8.dts => overlay_8.dtso} (100%) rename drivers/of/unittest-data/{overlay_9.dts => overlay_9.dtso} (100%) rename drivers/of/unittest-data/{overlay_bad_add_dup_node.dts => overlay_bad_add_dup_node.dtso} (100%) rename drivers/of/unittest-data/{overlay_bad_add_dup_prop.dts => overlay_bad_add_dup_prop.dtso} (100%) rename drivers/of/unittest-data/{overlay_bad_phandle.dts => overlay_bad_phandle.dtso} (100%) rename drivers/of/unittest-data/{overlay_bad_symbol.dts => overlay_bad_symbol.dtso} (100%) rename drivers/of/unittest-data/{overlay_base.dts => overlay_base.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_01.dts => overlay_gpio_01.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_02a.dts => overlay_gpio_02a.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_02b.dts => overlay_gpio_02b.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_03.dts => overlay_gpio_03.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_04a.dts => overlay_gpio_04a.dtso} (100%) rename drivers/of/unittest-data/{overlay_gpio_04b.dts => overlay_gpio_04b.dtso} (100%) rename drivers/of/unittest-data/{testcases.dts => testcases.dtso} (100%) diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile index d072f3ba3971..ea5f4da68e23 100644 --- a/drivers/of/unittest-data/Makefile +++ b/drivers/of/unittest-data/Makefile @@ -1,38 +1,38 @@ # SPDX-License-Identifier: GPL-2.0 -obj-y += testcases.dtb.o +obj-y += testcases.dtbo.o -obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \ - overlay_0.dtb.o \ - overlay_1.dtb.o \ - overlay_2.dtb.o \ - overlay_3.dtb.o \ - overlay_4.dtb.o \ - overlay_5.dtb.o \ - overlay_6.dtb.o \ - overlay_7.dtb.o \ - overlay_8.dtb.o \ - overlay_9.dtb.o \ - overlay_10.dtb.o \ - overlay_11.dtb.o \ - overlay_12.dtb.o \ - overlay_13.dtb.o \ - overlay_15.dtb.o \ - overlay_16.dtb.o \ - overlay_17.dtb.o \ - overlay_18.dtb.o \ - overlay_19.dtb.o \ - overlay_20.dtb.o \ - overlay_bad_add_dup_node.dtb.o \ - overlay_bad_add_dup_prop.dtb.o \ - overlay_bad_phandle.dtb.o \ - overlay_bad_symbol.dtb.o \ - overlay_base.dtb.o \ - overlay_gpio_01.dtb.o \ - overlay_gpio_02a.dtb.o \ - overlay_gpio_02b.dtb.o \ - overlay_gpio_03.dtb.o \ - overlay_gpio_04a.dtb.o \ - overlay_gpio_04b.dtb.o +obj-$(CONFIG_OF_OVERLAY) += overlay.dtbo.o \ + overlay_0.dtbo.o \ + overlay_1.dtbo.o \ + overlay_2.dtbo.o \ + overlay_3.dtbo.o \ + overlay_4.dtbo.o \ + overlay_5.dtbo.o \ + overlay_6.dtbo.o \ + overlay_7.dtbo.o \ + overlay_8.dtbo.o \ + overlay_9.dtbo.o \ + overlay_10.dtbo.o \ + overlay_11.dtbo.o \ + overlay_12.dtbo.o \ + overlay_13.dtbo.o \ + overlay_15.dtbo.o \ + overlay_16.dtbo.o \ + overlay_17.dtbo.o \ + overlay_18.dtbo.o \ + overlay_19.dtbo.o \ + overlay_20.dtbo.o \ + overlay_bad_add_dup_node.dtbo.o \ + overlay_bad_add_dup_prop.dtbo.o \ + overlay_bad_phandle.dtbo.o \ + overlay_bad_symbol.dtbo.o \ + overlay_base.dtbo.o \ + overlay_gpio_01.dtbo.o \ + overlay_gpio_02a.dtbo.o \ + overlay_gpio_02b.dtbo.o \ + overlay_gpio_03.dtbo.o \ + overlay_gpio_04a.dtbo.o \ + overlay_gpio_04b.dtbo.o # enable creation of __symbols__ node DTC_FLAGS_overlay += -@ diff --git a/drivers/of/unittest-data/overlay.dts b/drivers/of/unittest-data/overlay.dtso similarity index 100% rename from drivers/of/unittest-data/overlay.dts rename to drivers/of/unittest-data/overlay.dtso diff --git a/drivers/of/unittest-data/overlay_0.dts b/drivers/of/unittest-data/overlay_0.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_0.dts rename to drivers/of/unittest-data/overlay_0.dtso diff --git a/drivers/of/unittest-data/overlay_1.dts b/drivers/of/unittest-data/overlay_1.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_1.dts rename to drivers/of/unittest-data/overlay_1.dtso diff --git a/drivers/of/unittest-data/overlay_10.dts b/drivers/of/unittest-data/overlay_10.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_10.dts rename to drivers/of/unittest-data/overlay_10.dtso diff --git a/drivers/of/unittest-data/overlay_11.dts b/drivers/of/unittest-data/overlay_11.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_11.dts rename to drivers/of/unittest-data/overlay_11.dtso diff --git a/drivers/of/unittest-data/overlay_12.dts b/drivers/of/unittest-data/overlay_12.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_12.dts rename to drivers/of/unittest-data/overlay_12.dtso diff --git a/drivers/of/unittest-data/overlay_13.dts b/drivers/of/unittest-data/overlay_13.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_13.dts rename to drivers/of/unittest-data/overlay_13.dtso diff --git a/drivers/of/unittest-data/overlay_15.dts b/drivers/of/unittest-data/overlay_15.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_15.dts rename to drivers/of/unittest-data/overlay_15.dtso diff --git a/drivers/of/unittest-data/overlay_16.dts b/drivers/of/unittest-data/overlay_16.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_16.dts rename to drivers/of/unittest-data/overlay_16.dtso diff --git a/drivers/of/unittest-data/overlay_17.dts b/drivers/of/unittest-data/overlay_17.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_17.dts rename to drivers/of/unittest-data/overlay_17.dtso diff --git a/drivers/of/unittest-data/overlay_18.dts b/drivers/of/unittest-data/overlay_18.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_18.dts rename to drivers/of/unittest-data/overlay_18.dtso diff --git a/drivers/of/unittest-data/overlay_19.dts b/drivers/of/unittest-data/overlay_19.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_19.dts rename to drivers/of/unittest-data/overlay_19.dtso diff --git a/drivers/of/unittest-data/overlay_2.dts b/drivers/of/unittest-data/overlay_2.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_2.dts rename to drivers/of/unittest-data/overlay_2.dtso diff --git a/drivers/of/unittest-data/overlay_20.dts b/drivers/of/unittest-data/overlay_20.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_20.dts rename to drivers/of/unittest-data/overlay_20.dtso diff --git a/drivers/of/unittest-data/overlay_3.dts b/drivers/of/unittest-data/overlay_3.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_3.dts rename to drivers/of/unittest-data/overlay_3.dtso diff --git a/drivers/of/unittest-data/overlay_4.dts b/drivers/of/unittest-data/overlay_4.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_4.dts rename to drivers/of/unittest-data/overlay_4.dtso diff --git a/drivers/of/unittest-data/overlay_5.dts b/drivers/of/unittest-data/overlay_5.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_5.dts rename to drivers/of/unittest-data/overlay_5.dtso diff --git a/drivers/of/unittest-data/overlay_6.dts b/drivers/of/unittest-data/overlay_6.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_6.dts rename to drivers/of/unittest-data/overlay_6.dtso diff --git a/drivers/of/unittest-data/overlay_7.dts b/drivers/of/unittest-data/overlay_7.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_7.dts rename to drivers/of/unittest-data/overlay_7.dtso diff --git a/drivers/of/unittest-data/overlay_8.dts b/drivers/of/unittest-data/overlay_8.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_8.dts rename to drivers/of/unittest-data/overlay_8.dtso diff --git a/drivers/of/unittest-data/overlay_9.dts b/drivers/of/unittest-data/overlay_9.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_9.dts rename to drivers/of/unittest-data/overlay_9.dtso diff --git a/drivers/of/unittest-data/overlay_bad_add_dup_node.dts b/drivers/of/unittest-data/overlay_bad_add_dup_node.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_bad_add_dup_node.dts rename to drivers/of/unittest-data/overlay_bad_add_dup_node.dtso diff --git a/drivers/of/unittest-data/overlay_bad_add_dup_prop.dts b/drivers/of/unittest-data/overlay_bad_add_dup_prop.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_bad_add_dup_prop.dts rename to drivers/of/unittest-data/overlay_bad_add_dup_prop.dtso diff --git a/drivers/of/unittest-data/overlay_bad_phandle.dts b/drivers/of/unittest-data/overlay_bad_phandle.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_bad_phandle.dts rename to drivers/of/unittest-data/overlay_bad_phandle.dtso diff --git a/drivers/of/unittest-data/overlay_bad_symbol.dts b/drivers/of/unittest-data/overlay_bad_symbol.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_bad_symbol.dts rename to drivers/of/unittest-data/overlay_bad_symbol.dtso diff --git a/drivers/of/unittest-data/overlay_base.dts b/drivers/of/unittest-data/overlay_base.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_base.dts rename to drivers/of/unittest-data/overlay_base.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_01.dts b/drivers/of/unittest-data/overlay_gpio_01.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_01.dts rename to drivers/of/unittest-data/overlay_gpio_01.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_02a.dts b/drivers/of/unittest-data/overlay_gpio_02a.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_02a.dts rename to drivers/of/unittest-data/overlay_gpio_02a.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_02b.dts b/drivers/of/unittest-data/overlay_gpio_02b.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_02b.dts rename to drivers/of/unittest-data/overlay_gpio_02b.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_03.dts b/drivers/of/unittest-data/overlay_gpio_03.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_03.dts rename to drivers/of/unittest-data/overlay_gpio_03.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_04a.dts b/drivers/of/unittest-data/overlay_gpio_04a.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_04a.dts rename to drivers/of/unittest-data/overlay_gpio_04a.dtso diff --git a/drivers/of/unittest-data/overlay_gpio_04b.dts b/drivers/of/unittest-data/overlay_gpio_04b.dtso similarity index 100% rename from drivers/of/unittest-data/overlay_gpio_04b.dts rename to drivers/of/unittest-data/overlay_gpio_04b.dtso diff --git a/drivers/of/unittest-data/testcases.dts b/drivers/of/unittest-data/testcases.dtso similarity index 100% rename from drivers/of/unittest-data/testcases.dts rename to drivers/of/unittest-data/testcases.dtso diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c index b89ab5d9fea5..1d810c0e18f8 100644 --- a/drivers/of/unittest.c +++ b/drivers/of/unittest.c @@ -1423,12 +1423,12 @@ static int __init unittest_data_add(void) void *unittest_data_align; struct device_node *unittest_data_node = NULL, *np; /* - * __dtb_testcases_begin[] and __dtb_testcases_end[] are magically - * created by cmd_dt_S_dtb in scripts/Makefile.lib + * __dtbo_testcases_begin[] and __dtbo_testcases_end[] are magically + * created by cmd_dt_S_dtbo in scripts/Makefile.lib */ - extern uint8_t __dtb_testcases_begin[]; - extern uint8_t __dtb_testcases_end[]; - const int size = __dtb_testcases_end - __dtb_testcases_begin; + extern uint8_t __dtbo_testcases_begin[]; + extern uint8_t __dtbo_testcases_end[]; + const int size = __dtbo_testcases_end - __dtbo_testcases_begin; int rc; void *ret; @@ -1443,7 +1443,7 @@ static int __init unittest_data_add(void) return -ENOMEM; unittest_data_align = PTR_ALIGN(unittest_data, FDT_ALIGN_SIZE); - memcpy(unittest_data_align, __dtb_testcases_begin, size); + memcpy(unittest_data_align, __dtbo_testcases_begin, size); ret = of_fdt_unflatten_tree(unittest_data_align, NULL, &unittest_data_node); if (!ret) { @@ -3003,24 +3003,24 @@ static inline void __init of_unittest_overlay(void) { } #ifdef CONFIG_OF_OVERLAY /* - * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb - * in scripts/Makefile.lib + * __dtbo_##overlay_name##_begin[] and __dtbo_##overlay_name##_end[] are + * created by cmd_dt_S_dtbo in scripts/Makefile.lib */ -#define OVERLAY_INFO_EXTERN(name) \ - extern uint8_t __dtb_##name##_begin[]; \ - extern uint8_t __dtb_##name##_end[] +#define OVERLAY_INFO_EXTERN(overlay_name) \ + extern uint8_t __dtbo_##overlay_name##_begin[]; \ + extern uint8_t __dtbo_##overlay_name##_end[] -#define OVERLAY_INFO(overlay_name, expected) \ -{ .dtb_begin = __dtb_##overlay_name##_begin, \ - .dtb_end = __dtb_##overlay_name##_end, \ - .expected_result = expected, \ - .name = #overlay_name, \ +#define OVERLAY_INFO(overlay_name, expected) \ +{ .dtbo_begin = __dtbo_##overlay_name##_begin, \ + .dtbo_end = __dtbo_##overlay_name##_end, \ + .expected_result = expected, \ + .name = #overlay_name, \ } struct overlay_info { - uint8_t *dtb_begin; - uint8_t *dtb_end; + uint8_t *dtbo_begin; + uint8_t *dtbo_end; int expected_result; int ovcs_id; char *name; @@ -3094,7 +3094,7 @@ static struct overlay_info overlays[] = { OVERLAY_INFO(overlay_bad_phandle, -EINVAL), OVERLAY_INFO(overlay_bad_symbol, -EINVAL), /* end marker */ - {.dtb_begin = NULL, .dtb_end = NULL, .expected_result = 0, .name = NULL} + {.dtbo_begin = NULL, .dtbo_end = NULL, .expected_result = 0, .name = NULL} }; static struct device_node *overlay_base_root; @@ -3151,13 +3151,13 @@ void __init unittest_unflatten_overlay_base(void) return; } - data_size = info->dtb_end - info->dtb_begin; + data_size = info->dtbo_end - info->dtbo_begin; if (!data_size) { pr_err("No dtb 'overlay_base' to attach\n"); return; } - size = fdt_totalsize(info->dtb_begin); + size = fdt_totalsize(info->dtbo_begin); if (size != data_size) { pr_err("dtb 'overlay_base' header totalsize != actual size"); return; @@ -3169,7 +3169,7 @@ void __init unittest_unflatten_overlay_base(void) return; } - memcpy(new_fdt, info->dtb_begin, size); + memcpy(new_fdt, info->dtbo_begin, size); __unflatten_device_tree(new_fdt, NULL, &overlay_base_root, dt_alloc_memory, true); @@ -3204,11 +3204,11 @@ static int __init overlay_data_apply(const char *overlay_name, int *ovcs_id) return 0; } - size = info->dtb_end - info->dtb_begin; + size = info->dtbo_end - info->dtbo_begin; if (!size) pr_err("no overlay data for %s\n", overlay_name); - ret = of_overlay_fdt_apply(info->dtb_begin, size, &info->ovcs_id); + ret = of_overlay_fdt_apply(info->dtbo_begin, size, &info->ovcs_id); if (ovcs_id) *ovcs_id = info->ovcs_id; if (ret < 0) From fa9665ef77f5d8e861e2ed7563ebdbddddc6f82b Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 24 Oct 2022 12:34:34 -0500 Subject: [PATCH 4/4] staging: pi433: overlay: Rename overlay source file from .dts to .dtso DTB Overlays (.dtbo) can now be built from source files with the extension (.dtso). This makes it clear what is the content of the files and differentiates them from base DTB source files. Rename the pi433-overlay.dts file to pi433-overlay.dtso and update the information file pi433.txt for the same. Signed-off-by: Andrew Davis Reviewed-by: Geert Uytterhoeven Link: https://lore.kernel.org/r/20221024173434.32518-8-afd@ti.com Signed-off-by: Rob Herring --- .../devicetree/{pi433-overlay.dts => pi433-overlay.dtso} | 0 drivers/staging/pi433/Documentation/devicetree/pi433.txt | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) rename drivers/staging/pi433/Documentation/devicetree/{pi433-overlay.dts => pi433-overlay.dtso} (100%) diff --git a/drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dts b/drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dtso similarity index 100% rename from drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dts rename to drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dtso diff --git a/drivers/staging/pi433/Documentation/devicetree/pi433.txt b/drivers/staging/pi433/Documentation/devicetree/pi433.txt index a810548c5857..d317c0ec3419 100644 --- a/drivers/staging/pi433/Documentation/devicetree/pi433.txt +++ b/drivers/staging/pi433/Documentation/devicetree/pi433.txt @@ -48,13 +48,13 @@ For Raspbian users only ======================= Since Raspbian supports device tree overlays, you may use an overlay instead of editing your boards device tree. -To use the overlay, you need to compile the file pi433-overlay.dts which can +To use the overlay, you need to compile the file pi433-overlay.dtso which can be found alongside this documentation. The file needs to be compiled - either manually or by integration in your kernel source tree. For a manual compile, you may use a command line like the following: -'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dts' +'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dtso' -For compiling inside of the kernel tree, you need to copy pi433-overlay.dts to +For compiling inside of the kernel tree, you need to copy pi433-overlay.dtso to arch/arm/boot/dts/overlays and you need to add the file to the list of files in the Makefile over there. Execute 'make dtbs' in kernel tree root to make the kernel make files compile the device tree overlay for you.