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

c6x: use common built-in dtb support

Using the common build support for built-in dtb files just requires
adding a .dtb.o target to obj-y.

The dtb now needs to be copied when unflattened because an init section
is used now.

Cc: Mark Salter <msalter@redhat.com>
Cc: Aurelien Jacquiot <jacquiot.aurelien@gmail.com>
Cc: linux-c6x-dev@linux-c6x.org
Signed-off-by: Rob Herring <robh@kernel.org>

+3 -25
+1 -10
arch/c6x/boot/dts/Makefile
··· 6 6 DTC_FLAGS ?= -p 1024 7 7 8 8 ifneq ($(DTB),) 9 - obj-y += linked_dtb.o 9 + obj-y += $(DTB).dtb.o 10 10 endif 11 - 12 - quiet_cmd_cp = CP $< $@$2 13 - cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false) 14 - 15 - # Generate builtin.dtb from $(DTB).dtb 16 - $(obj)/builtin.dtb: $(obj)/$(DTB).dtb 17 - $(call if_changed,cp) 18 - 19 - $(obj)/linked_dtb.o: $(obj)/builtin.dtb
-2
arch/c6x/boot/dts/linked_dtb.S
··· 1 - .section __fdt_blob,"a" 2 - .incbin "arch/c6x/boot/dts/builtin.dtb"
-1
arch/c6x/include/asm/sections.h
··· 8 8 extern char _vectors_end[]; 9 9 10 10 extern char _data_lma[]; 11 - extern char _fdt_start[], _fdt_end[]; 12 11 13 12 #endif /* _ASM_C6X_SECTIONS_H */
+2 -2
arch/c6x/kernel/setup.c
··· 270 270 notrace void __init machine_init(unsigned long dt_ptr) 271 271 { 272 272 void *dtb = __va(dt_ptr); 273 - void *fdt = _fdt_start; 273 + void *fdt = __dtb_start; 274 274 275 275 /* interrupts must be masked */ 276 276 set_creg(IER, 2); ··· 363 363 memory_end >> PAGE_SHIFT); 364 364 memblock_reserve(memory_start, bootmap_size); 365 365 366 - unflatten_device_tree(); 366 + unflatten_and_copy_device_tree(); 367 367 368 368 c6x_cache_init(); 369 369
-10
arch/c6x/kernel/vmlinux.lds.S
··· 90 90 *(.switch) 91 91 } 92 92 93 - . = ALIGN (8) ; 94 - __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) 95 - { 96 - _fdt_start = . ; /* place for fdt blob */ 97 - *(__fdt_blob) ; /* Any link-placed DTB */ 98 - BYTE(0); /* section always has contents */ 99 - . = _fdt_start + 0x4000; /* Pad up to 16kbyte */ 100 - _fdt_end = . ; 101 - } 102 - 103 93 _etext = .; 104 94 105 95 /*