c6x: use common built-in dtb support
authorRob Herring <robh@kernel.org>
Wed, 1 Aug 2018 21:00:12 +0000 (15:00 -0600)
committerRob Herring <robh@kernel.org>
Tue, 2 Oct 2018 14:22:49 +0000 (09:22 -0500)
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>
arch/c6x/boot/dts/Makefile
arch/c6x/boot/dts/linked_dtb.S [deleted file]
arch/c6x/include/asm/sections.h
arch/c6x/kernel/setup.c
arch/c6x/kernel/vmlinux.lds.S

index b212d278ebc42e0c67176d203867aa9196280f45..fd937f781d16ff259c6689fa9f8e476fffba7df0 100644 (file)
@@ -6,14 +6,5 @@
 DTC_FLAGS ?= -p 1024
 
 ifneq ($(DTB),)
-obj-y += linked_dtb.o
+obj-y += $(DTB).dtb.o
 endif
-
-quiet_cmd_cp = CP      $< $@$2
-       cmd_cp = cat $< >$@$2 || (rm -f $@ && echo false)
-
-# Generate builtin.dtb from $(DTB).dtb
-$(obj)/builtin.dtb: $(obj)/$(DTB).dtb
-       $(call if_changed,cp)
-
-$(obj)/linked_dtb.o: $(obj)/builtin.dtb
diff --git a/arch/c6x/boot/dts/linked_dtb.S b/arch/c6x/boot/dts/linked_dtb.S
deleted file mode 100644 (file)
index cf347f1..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-.section __fdt_blob,"a"
-.incbin "arch/c6x/boot/dts/builtin.dtb"
index d6c591ab5b7ef9b25c4afcd3a3cac4370a2155e1..dc2f15eb3bdef8969cac3c0bcc77794543b37afe 100644 (file)
@@ -8,6 +8,5 @@ extern char _vectors_start[];
 extern char _vectors_end[];
 
 extern char _data_lma[];
-extern char _fdt_start[], _fdt_end[];
 
 #endif /* _ASM_C6X_SECTIONS_H */
index 786e36e2f61de91c8f446cc941cff895cdb91578..509c5f0864964f35b7614d1682b236e81fdcfa74 100644 (file)
@@ -270,7 +270,7 @@ int __init c6x_add_memory(phys_addr_t start, unsigned long size)
 notrace void __init machine_init(unsigned long dt_ptr)
 {
        void *dtb = __va(dt_ptr);
-       void *fdt = _fdt_start;
+       void *fdt = __dtb_start;
 
        /* interrupts must be masked */
        set_creg(IER, 2);
@@ -363,7 +363,7 @@ void __init setup_arch(char **cmdline_p)
                                         memory_end >> PAGE_SHIFT);
        memblock_reserve(memory_start, bootmap_size);
 
-       unflatten_device_tree();
+       unflatten_and_copy_device_tree();
 
        c6x_cache_init();
 
index 1fba5b421eee57f74756e5dc85d3ec91f1a84076..584bab2bace6e22d59619434f86f95ee41a04e62 100644 (file)
@@ -90,16 +90,6 @@ SECTIONS
                *(.switch)
        }
 
-       . = ALIGN (8) ;
-       __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET)
-       {
-               _fdt_start = . ;        /* place for fdt blob */
-               *(__fdt_blob) ;         /* Any link-placed DTB */
-               BYTE(0);                /* section always has contents */
-               . = _fdt_start + 0x4000;        /* Pad up to 16kbyte */
-               _fdt_end = . ;
-       }
-
        _etext = .;
 
        /*