lkml.org 
[lkml]   [2013]   [Nov]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH RFC 15/17] microblaze: Convert from _fdt_start to __dtb_start
Date
Kill the microblaze-specific __fdt_blob section, and start using
.dtb.init.rodata from <asm-generic/sections.h> for built-in DTBs, like
most other DT enabled architectures.

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: microblaze-uclinux@itee.uq.edu.au
Cc: devicetree@vger.kernel.org
---
Untested, but the resulting vmlinux after "make simpleImage.system" looks
sane.

QUESTION: The padding of the DTB is gone, is this OK?

TODO: Start using the DTB logic in scripts/Makefile.lib instead of
arch/microblaze/boot/dts/linked_dtb.S

arch/microblaze/boot/Makefile | 2 +-
arch/microblaze/boot/dts/linked_dtb.S | 2 +-
arch/microblaze/include/asm/sections.h | 4 +---
arch/microblaze/kernel/head.S | 2 +-
arch/microblaze/kernel/setup.c | 4 ++--
arch/microblaze/kernel/vmlinux.lds.S | 8 --------
6 files changed, 6 insertions(+), 16 deletions(-)

diff --git a/arch/microblaze/boot/Makefile b/arch/microblaze/boot/Makefile
index 8e211cc28dac..e4a99a22dab8 100644
--- a/arch/microblaze/boot/Makefile
+++ b/arch/microblaze/boot/Makefile
@@ -23,7 +23,7 @@ quiet_cmd_cp = CP $< $@$2

quiet_cmd_strip = STRIP $@
cmd_strip = $(STRIP) -K microblaze_start -K _end -K __log_buf \
- -K _fdt_start vmlinux -o $@
+ -K __dtb_start vmlinux -o $@

UIMAGE_LOADADDR = $(CONFIG_KERNEL_BASE_ADDR)

diff --git a/arch/microblaze/boot/dts/linked_dtb.S b/arch/microblaze/boot/dts/linked_dtb.S
index 23345af3721f..bfc53b5795aa 100644
--- a/arch/microblaze/boot/dts/linked_dtb.S
+++ b/arch/microblaze/boot/dts/linked_dtb.S
@@ -1,2 +1,2 @@
-.section __fdt_blob,"a"
+.section .dtb.init.rodata,"a"
.incbin "arch/microblaze/boot/dts/system.dtb"
diff --git a/arch/microblaze/include/asm/sections.h b/arch/microblaze/include/asm/sections.h
index 1b281d3ea734..fb8ab0ba03fc 100644
--- a/arch/microblaze/include/asm/sections.h
+++ b/arch/microblaze/include/asm/sections.h
@@ -16,8 +16,6 @@
# ifndef __ASSEMBLY__
extern char _ssbss[], _esbss[];
extern unsigned long __ivt_start[], __ivt_end[];
-
-extern u32 _fdt_start[], _fdt_end[];
-
# endif /* !__ASSEMBLY__ */
+
#endif /* _ASM_MICROBLAZE_SECTIONS_H */
diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index 817b7eec95b6..6108889f0025 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -94,7 +94,7 @@ big_endian:
bnei r11, no_fdt_arg /* No - get out of here */
_prepare_copy_fdt:
or r11, r0, r0 /* incremment */
- ori r4, r0, TOPHYS(_fdt_start)
+ ori r4, r0, TOPHYS(__dtb_start)
ori r3, r0, (0x8000 - 4)
_copy_fdt:
lw r12, r7, r11 /* r12 = r7 + r11 */
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
index 603e22fec6d5..a4534f584be0 100644
--- a/arch/microblaze/kernel/setup.c
+++ b/arch/microblaze/kernel/setup.c
@@ -136,7 +136,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
lockdep_init();

/* initialize device tree for usage in early_printk */
- early_init_devtree(_fdt_start);
+ early_init_devtree(&__dtb_start);

#ifdef CONFIG_EARLY_PRINTK
setup_early_printk(NULL);
@@ -152,7 +152,7 @@ void __init machine_early_init(const char *cmdline, unsigned int ram,
if (fdt)
pr_info("FDT at 0x%08x\n", fdt);
else
- pr_info("Compiled-in FDT at %p\n", _fdt_start);
+ pr_info("Compiled-in FDT at %p\n", &__dtb_start);

#ifdef CONFIG_MTD_UCLINUX
pr_info("Found romfs @ 0x%08x (0x%08x)\n",
diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
index 936d01a689d7..2659e70984a3 100644
--- a/arch/microblaze/kernel/vmlinux.lds.S
+++ b/arch/microblaze/kernel/vmlinux.lds.S
@@ -40,14 +40,6 @@ SECTIONS {
_etext = . ;
}

- . = ALIGN (4) ;
- __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) {
- _fdt_start = . ; /* place for fdt blob */
- *(__fdt_blob) ; /* Any link-placed DTB */
- . = _fdt_start + 0x8000; /* Pad up to 32kbyte */
- _fdt_end = . ;
- }
-
. = ALIGN(16);
RODATA
EXCEPTION_TABLE(16)
--
1.7.9.5


\
 
 \ /
  Last update: 2013-11-12 21:01    [W:0.452 / U:0.036 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site