Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'dt/dtbo-rename' into dt/next

+82 -61
+33 -33
drivers/of/unittest-data/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 - obj-y += testcases.dtb.o 2 + obj-y += testcases.dtbo.o 3 3 4 - obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \ 5 - overlay_0.dtb.o \ 6 - overlay_1.dtb.o \ 7 - overlay_2.dtb.o \ 8 - overlay_3.dtb.o \ 9 - overlay_4.dtb.o \ 10 - overlay_5.dtb.o \ 11 - overlay_6.dtb.o \ 12 - overlay_7.dtb.o \ 13 - overlay_8.dtb.o \ 14 - overlay_9.dtb.o \ 15 - overlay_10.dtb.o \ 16 - overlay_11.dtb.o \ 17 - overlay_12.dtb.o \ 18 - overlay_13.dtb.o \ 19 - overlay_15.dtb.o \ 20 - overlay_16.dtb.o \ 21 - overlay_17.dtb.o \ 22 - overlay_18.dtb.o \ 23 - overlay_19.dtb.o \ 24 - overlay_20.dtb.o \ 25 - overlay_bad_add_dup_node.dtb.o \ 26 - overlay_bad_add_dup_prop.dtb.o \ 27 - overlay_bad_phandle.dtb.o \ 28 - overlay_bad_symbol.dtb.o \ 29 - overlay_base.dtb.o \ 30 - overlay_gpio_01.dtb.o \ 31 - overlay_gpio_02a.dtb.o \ 32 - overlay_gpio_02b.dtb.o \ 33 - overlay_gpio_03.dtb.o \ 34 - overlay_gpio_04a.dtb.o \ 35 - overlay_gpio_04b.dtb.o 4 + obj-$(CONFIG_OF_OVERLAY) += overlay.dtbo.o \ 5 + overlay_0.dtbo.o \ 6 + overlay_1.dtbo.o \ 7 + overlay_2.dtbo.o \ 8 + overlay_3.dtbo.o \ 9 + overlay_4.dtbo.o \ 10 + overlay_5.dtbo.o \ 11 + overlay_6.dtbo.o \ 12 + overlay_7.dtbo.o \ 13 + overlay_8.dtbo.o \ 14 + overlay_9.dtbo.o \ 15 + overlay_10.dtbo.o \ 16 + overlay_11.dtbo.o \ 17 + overlay_12.dtbo.o \ 18 + overlay_13.dtbo.o \ 19 + overlay_15.dtbo.o \ 20 + overlay_16.dtbo.o \ 21 + overlay_17.dtbo.o \ 22 + overlay_18.dtbo.o \ 23 + overlay_19.dtbo.o \ 24 + overlay_20.dtbo.o \ 25 + overlay_bad_add_dup_node.dtbo.o \ 26 + overlay_bad_add_dup_prop.dtbo.o \ 27 + overlay_bad_phandle.dtbo.o \ 28 + overlay_bad_symbol.dtbo.o \ 29 + overlay_base.dtbo.o \ 30 + overlay_gpio_01.dtbo.o \ 31 + overlay_gpio_02a.dtbo.o \ 32 + overlay_gpio_02b.dtbo.o \ 33 + overlay_gpio_03.dtbo.o \ 34 + overlay_gpio_04a.dtbo.o \ 35 + overlay_gpio_04b.dtbo.o 36 36 37 37 # enable creation of __symbols__ node 38 38 DTC_FLAGS_overlay += -@
drivers/of/unittest-data/overlay.dts drivers/of/unittest-data/overlay.dtso
drivers/of/unittest-data/overlay_0.dts drivers/of/unittest-data/overlay_0.dtso
drivers/of/unittest-data/overlay_1.dts drivers/of/unittest-data/overlay_1.dtso
drivers/of/unittest-data/overlay_10.dts drivers/of/unittest-data/overlay_10.dtso
drivers/of/unittest-data/overlay_11.dts drivers/of/unittest-data/overlay_11.dtso
drivers/of/unittest-data/overlay_12.dts drivers/of/unittest-data/overlay_12.dtso
drivers/of/unittest-data/overlay_13.dts drivers/of/unittest-data/overlay_13.dtso
drivers/of/unittest-data/overlay_15.dts drivers/of/unittest-data/overlay_15.dtso
drivers/of/unittest-data/overlay_16.dts drivers/of/unittest-data/overlay_16.dtso
drivers/of/unittest-data/overlay_17.dts drivers/of/unittest-data/overlay_17.dtso
drivers/of/unittest-data/overlay_18.dts drivers/of/unittest-data/overlay_18.dtso
drivers/of/unittest-data/overlay_19.dts drivers/of/unittest-data/overlay_19.dtso
drivers/of/unittest-data/overlay_2.dts drivers/of/unittest-data/overlay_2.dtso
drivers/of/unittest-data/overlay_20.dts drivers/of/unittest-data/overlay_20.dtso
drivers/of/unittest-data/overlay_3.dts drivers/of/unittest-data/overlay_3.dtso
drivers/of/unittest-data/overlay_4.dts drivers/of/unittest-data/overlay_4.dtso
drivers/of/unittest-data/overlay_5.dts drivers/of/unittest-data/overlay_5.dtso
drivers/of/unittest-data/overlay_6.dts drivers/of/unittest-data/overlay_6.dtso
drivers/of/unittest-data/overlay_7.dts drivers/of/unittest-data/overlay_7.dtso
drivers/of/unittest-data/overlay_8.dts drivers/of/unittest-data/overlay_8.dtso
drivers/of/unittest-data/overlay_9.dts drivers/of/unittest-data/overlay_9.dtso
drivers/of/unittest-data/overlay_bad_add_dup_node.dts drivers/of/unittest-data/overlay_bad_add_dup_node.dtso
drivers/of/unittest-data/overlay_bad_add_dup_prop.dts drivers/of/unittest-data/overlay_bad_add_dup_prop.dtso
drivers/of/unittest-data/overlay_bad_phandle.dts drivers/of/unittest-data/overlay_bad_phandle.dtso
drivers/of/unittest-data/overlay_bad_symbol.dts drivers/of/unittest-data/overlay_bad_symbol.dtso
drivers/of/unittest-data/overlay_base.dts drivers/of/unittest-data/overlay_base.dtso
drivers/of/unittest-data/overlay_gpio_01.dts drivers/of/unittest-data/overlay_gpio_01.dtso
drivers/of/unittest-data/overlay_gpio_02a.dts drivers/of/unittest-data/overlay_gpio_02a.dtso
drivers/of/unittest-data/overlay_gpio_02b.dts drivers/of/unittest-data/overlay_gpio_02b.dtso
drivers/of/unittest-data/overlay_gpio_03.dts drivers/of/unittest-data/overlay_gpio_03.dtso
drivers/of/unittest-data/overlay_gpio_04a.dts drivers/of/unittest-data/overlay_gpio_04a.dtso
drivers/of/unittest-data/overlay_gpio_04b.dts drivers/of/unittest-data/overlay_gpio_04b.dtso
drivers/of/unittest-data/testcases.dts drivers/of/unittest-data/testcases.dtso
+24 -24
drivers/of/unittest.c
··· 1423 1423 void *unittest_data_align; 1424 1424 struct device_node *unittest_data_node = NULL, *np; 1425 1425 /* 1426 - * __dtb_testcases_begin[] and __dtb_testcases_end[] are magically 1427 - * created by cmd_dt_S_dtb in scripts/Makefile.lib 1426 + * __dtbo_testcases_begin[] and __dtbo_testcases_end[] are magically 1427 + * created by cmd_dt_S_dtbo in scripts/Makefile.lib 1428 1428 */ 1429 - extern uint8_t __dtb_testcases_begin[]; 1430 - extern uint8_t __dtb_testcases_end[]; 1431 - const int size = __dtb_testcases_end - __dtb_testcases_begin; 1429 + extern uint8_t __dtbo_testcases_begin[]; 1430 + extern uint8_t __dtbo_testcases_end[]; 1431 + const int size = __dtbo_testcases_end - __dtbo_testcases_begin; 1432 1432 int rc; 1433 1433 void *ret; 1434 1434 ··· 1443 1443 return -ENOMEM; 1444 1444 1445 1445 unittest_data_align = PTR_ALIGN(unittest_data, FDT_ALIGN_SIZE); 1446 - memcpy(unittest_data_align, __dtb_testcases_begin, size); 1446 + memcpy(unittest_data_align, __dtbo_testcases_begin, size); 1447 1447 1448 1448 ret = of_fdt_unflatten_tree(unittest_data_align, NULL, &unittest_data_node); 1449 1449 if (!ret) { ··· 3003 3003 #ifdef CONFIG_OF_OVERLAY 3004 3004 3005 3005 /* 3006 - * __dtb_ot_begin[] and __dtb_ot_end[] are created by cmd_dt_S_dtb 3007 - * in scripts/Makefile.lib 3006 + * __dtbo_##overlay_name##_begin[] and __dtbo_##overlay_name##_end[] are 3007 + * created by cmd_dt_S_dtbo in scripts/Makefile.lib 3008 3008 */ 3009 3009 3010 - #define OVERLAY_INFO_EXTERN(name) \ 3011 - extern uint8_t __dtb_##name##_begin[]; \ 3012 - extern uint8_t __dtb_##name##_end[] 3010 + #define OVERLAY_INFO_EXTERN(overlay_name) \ 3011 + extern uint8_t __dtbo_##overlay_name##_begin[]; \ 3012 + extern uint8_t __dtbo_##overlay_name##_end[] 3013 3013 3014 - #define OVERLAY_INFO(overlay_name, expected) \ 3015 - { .dtb_begin = __dtb_##overlay_name##_begin, \ 3016 - .dtb_end = __dtb_##overlay_name##_end, \ 3017 - .expected_result = expected, \ 3018 - .name = #overlay_name, \ 3014 + #define OVERLAY_INFO(overlay_name, expected) \ 3015 + { .dtbo_begin = __dtbo_##overlay_name##_begin, \ 3016 + .dtbo_end = __dtbo_##overlay_name##_end, \ 3017 + .expected_result = expected, \ 3018 + .name = #overlay_name, \ 3019 3019 } 3020 3020 3021 3021 struct overlay_info { 3022 - uint8_t *dtb_begin; 3023 - uint8_t *dtb_end; 3022 + uint8_t *dtbo_begin; 3023 + uint8_t *dtbo_end; 3024 3024 int expected_result; 3025 3025 int ovcs_id; 3026 3026 char *name; ··· 3094 3094 OVERLAY_INFO(overlay_bad_phandle, -EINVAL), 3095 3095 OVERLAY_INFO(overlay_bad_symbol, -EINVAL), 3096 3096 /* end marker */ 3097 - {.dtb_begin = NULL, .dtb_end = NULL, .expected_result = 0, .name = NULL} 3097 + {.dtbo_begin = NULL, .dtbo_end = NULL, .expected_result = 0, .name = NULL} 3098 3098 }; 3099 3099 3100 3100 static struct device_node *overlay_base_root; ··· 3151 3151 return; 3152 3152 } 3153 3153 3154 - data_size = info->dtb_end - info->dtb_begin; 3154 + data_size = info->dtbo_end - info->dtbo_begin; 3155 3155 if (!data_size) { 3156 3156 pr_err("No dtb 'overlay_base' to attach\n"); 3157 3157 return; 3158 3158 } 3159 3159 3160 - size = fdt_totalsize(info->dtb_begin); 3160 + size = fdt_totalsize(info->dtbo_begin); 3161 3161 if (size != data_size) { 3162 3162 pr_err("dtb 'overlay_base' header totalsize != actual size"); 3163 3163 return; ··· 3169 3169 return; 3170 3170 } 3171 3171 3172 - memcpy(new_fdt, info->dtb_begin, size); 3172 + memcpy(new_fdt, info->dtbo_begin, size); 3173 3173 3174 3174 __unflatten_device_tree(new_fdt, NULL, &overlay_base_root, 3175 3175 dt_alloc_memory, true); ··· 3204 3204 return 0; 3205 3205 } 3206 3206 3207 - size = info->dtb_end - info->dtb_begin; 3207 + size = info->dtbo_end - info->dtbo_begin; 3208 3208 if (!size) 3209 3209 pr_err("no overlay data for %s\n", overlay_name); 3210 3210 3211 - ret = of_overlay_fdt_apply(info->dtb_begin, size, &info->ovcs_id); 3211 + ret = of_overlay_fdt_apply(info->dtbo_begin, size, &info->ovcs_id); 3212 3212 if (ovcs_id) 3213 3213 *ovcs_id = info->ovcs_id; 3214 3214 if (ret < 0)
drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dts drivers/staging/pi433/Documentation/devicetree/pi433-overlay.dtso
+3 -3
drivers/staging/pi433/Documentation/devicetree/pi433.txt
··· 48 48 ======================= 49 49 Since Raspbian supports device tree overlays, you may use an overlay instead 50 50 of editing your boards device tree. 51 - To use the overlay, you need to compile the file pi433-overlay.dts which can 51 + To use the overlay, you need to compile the file pi433-overlay.dtso which can 52 52 be found alongside this documentation. 53 53 The file needs to be compiled - either manually or by integration in your kernel 54 54 source tree. For a manual compile, you may use a command line like the following: 55 - 'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dts' 55 + 'linux/scripts/dtc/dtc -@ -I dts -O dtb -o pi433.dtbo pi433-overlay.dtso' 56 56 57 - For compiling inside of the kernel tree, you need to copy pi433-overlay.dts to 57 + For compiling inside of the kernel tree, you need to copy pi433-overlay.dtso to 58 58 arch/arm/boot/dts/overlays and you need to add the file to the list of files 59 59 in the Makefile over there. Execute 'make dtbs' in kernel tree root to make the 60 60 kernel make files compile the device tree overlay for you.
+22 -1
scripts/Makefile.lib
··· 362 362 DTC_FLAGS += $(if $(filter $(patsubst $(obj)/%,%,$@), $(base-dtb-y)), -@) 363 363 364 364 # Generate an assembly file to wrap the output of the device tree compiler 365 - quiet_cmd_dt_S_dtb= DTB $@ 365 + quiet_cmd_dt_S_dtb= DTBS $@ 366 366 cmd_dt_S_dtb= \ 367 367 { \ 368 368 echo '\#include <asm-generic/vmlinux.lds.h>'; \ ··· 378 378 379 379 $(obj)/%.dtb.S: $(obj)/%.dtb FORCE 380 380 $(call if_changed,dt_S_dtb) 381 + 382 + # Generate an assembly file to wrap the output of the device tree compiler 383 + quiet_cmd_dt_S_dtbo= DTBOS $@ 384 + cmd_dt_S_dtbo= \ 385 + { \ 386 + echo '\#include <asm-generic/vmlinux.lds.h>'; \ 387 + echo '.section .dtb.init.rodata,"a"'; \ 388 + echo '.balign STRUCT_ALIGNMENT'; \ 389 + echo '.global __dtbo_$(subst -,_,$(*F))_begin'; \ 390 + echo '__dtbo_$(subst -,_,$(*F))_begin:'; \ 391 + echo '.incbin "$<" '; \ 392 + echo '__dtbo_$(subst -,_,$(*F))_end:'; \ 393 + echo '.global __dtbo_$(subst -,_,$(*F))_end'; \ 394 + echo '.balign STRUCT_ALIGNMENT'; \ 395 + } > $@ 396 + 397 + $(obj)/%.dtbo.S: $(obj)/%.dtbo FORCE 398 + $(call if_changed,dt_S_dtbo) 381 399 382 400 quiet_cmd_dtc = DTC $@ 383 401 cmd_dtc = $(HOSTCC) -E $(dtc_cpp_flags) -x assembler-with-cpp -o $(dtc-tmp) $< ; \ ··· 428 410 $(call if_changed_dep,dtb) 429 411 430 412 $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE 413 + $(call if_changed_dep,dtc) 414 + 415 + $(obj)/%.dtbo: $(src)/%.dtso $(DTC) FORCE 431 416 $(call if_changed_dep,dtc) 432 417 433 418 dtc-tmp = $(subst $(comma),_,$(dot-target).dts.tmp)