arch/sh/kernel/head_32.S | 6 +++--- arch/sh/kernel/setup.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-)
When CONFIG_OF_EARLY_FLATTREE and CONFIG_SH_DEVICE_TREE are not set,
SH3 build fails with a call to early_init_dt_scan(), so in
arch/sh/kernel/setup.c and arch/sh/kernel/head_32.S, use
CONFIG_OF_EARLY_FLATTREE instead of CONFIG_OF_FLATTREE.
Fixes this build error:
../arch/sh/kernel/setup.c: In function 'sh_fdt_init':
../arch/sh/kernel/setup.c:262:26: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration]
262 | if (!dt_virt || !early_init_dt_scan(dt_virt)) {
Fixes: 03767daa1387 ("sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE")
Fixes: eb6b6930a70f ("sh: fix memory corruption of unflattened device tree")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Suggested-by: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Cc: devicetree@vger.kernel.org
Cc: Rich Felker <dalias@libc.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Cc: linux-sh@vger.kernel.org
---
v2: use Suggested-by: for Rob.
add more Cc's.
arch/sh/kernel/head_32.S | 6 +++---
arch/sh/kernel/setup.c | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff arch/sh/kernel/setup.c arch/sh/kernel/setup.c
diff -- a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c
--- a/arch/sh/kernel/setup.c
+++ b/arch/sh/kernel/setup.c
@@ -244,7 +244,7 @@ void __init __weak plat_early_device_set
{
}
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
void __ref sh_fdt_init(phys_addr_t dt_phys)
{
static int done = 0;
@@ -326,7 +326,7 @@ void __init setup_arch(char **cmdline_p)
/* Let earlyprintk output early console messages */
sh_early_platform_driver_probe("earlyprintk", 1, 1);
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
#ifdef CONFIG_USE_BUILTIN_DTB
unflatten_and_copy_device_tree();
#else
diff -- a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S
--- a/arch/sh/kernel/head_32.S
+++ b/arch/sh/kernel/head_32.S
@@ -64,7 +64,7 @@ ENTRY(_stext)
ldc r0, r6_bank
#endif
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
mov r4, r12 ! Store device tree blob pointer in r12
#endif
@@ -315,7 +315,7 @@ ENTRY(_stext)
10:
#endif
-#ifdef CONFIG_OF_FLATTREE
+#ifdef CONFIG_OF_EARLY_FLATTREE
mov.l 8f, r0 ! Make flat device tree available early.
jsr @r0
mov r12, r4
@@ -346,7 +346,7 @@ ENTRY(stack_start)
5: .long start_kernel
6: .long cpu_init
7: .long init_thread_union
-#if defined(CONFIG_OF_FLATTREE)
+#if defined(CONFIG_OF_EARLY_FLATTREE)
8: .long sh_fdt_init
#endif
Randy, which SH3 chipset target are you building for? Of course all that stay need to be converted to device tree, but a DT SH3 proof of existence that you build for already will surely cover good swath of the missing drivers. J. > On Feb 4, 2023, at 14:51, Randy Dunlap <rdunlap@infradead.org> wrote: > > When CONFIG_OF_EARLY_FLATTREE and CONFIG_SH_DEVICE_TREE are not set, > SH3 build fails with a call to early_init_dt_scan(), so in > arch/sh/kernel/setup.c and arch/sh/kernel/head_32.S, use > CONFIG_OF_EARLY_FLATTREE instead of CONFIG_OF_FLATTREE. > > Fixes this build error: > ../arch/sh/kernel/setup.c: In function 'sh_fdt_init': > ../arch/sh/kernel/setup.c:262:26: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration] > 262 | if (!dt_virt || !early_init_dt_scan(dt_virt)) { > > Fixes: 03767daa1387 ("sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE") > Fixes: eb6b6930a70f ("sh: fix memory corruption of unflattened device tree") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Suggested-by: Rob Herring <robh+dt@kernel.org> > Cc: Frank Rowand <frowand.list@gmail.com> > Cc: devicetree@vger.kernel.org > Cc: Rich Felker <dalias@libc.org> > Cc: Yoshinori Sato <ysato@users.sourceforge.jp> > Cc: Arnd Bergmann <arnd@arndb.de> > Cc: Geert Uytterhoeven <geert+renesas@glider.be> > Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Cc: linux-sh@vger.kernel.org > --- > v2: use Suggested-by: for Rob. > add more Cc's. > > arch/sh/kernel/head_32.S | 6 +++--- > arch/sh/kernel/setup.c | 4 ++-- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff arch/sh/kernel/setup.c arch/sh/kernel/setup.c > diff -- a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c > --- a/arch/sh/kernel/setup.c > +++ b/arch/sh/kernel/setup.c > @@ -244,7 +244,7 @@ void __init __weak plat_early_device_set > { > } > > -#ifdef CONFIG_OF_FLATTREE > +#ifdef CONFIG_OF_EARLY_FLATTREE > void __ref sh_fdt_init(phys_addr_t dt_phys) > { > static int done = 0; > @@ -326,7 +326,7 @@ void __init setup_arch(char **cmdline_p) > /* Let earlyprintk output early console messages */ > sh_early_platform_driver_probe("earlyprintk", 1, 1); > > -#ifdef CONFIG_OF_FLATTREE > +#ifdef CONFIG_OF_EARLY_FLATTREE > #ifdef CONFIG_USE_BUILTIN_DTB > unflatten_and_copy_device_tree(); > #else > diff -- a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S > --- a/arch/sh/kernel/head_32.S > +++ b/arch/sh/kernel/head_32.S > @@ -64,7 +64,7 @@ ENTRY(_stext) > ldc r0, r6_bank > #endif > > -#ifdef CONFIG_OF_FLATTREE > +#ifdef CONFIG_OF_EARLY_FLATTREE > mov r4, r12 ! Store device tree blob pointer in r12 > #endif > > @@ -315,7 +315,7 @@ ENTRY(_stext) > 10: > #endif > > -#ifdef CONFIG_OF_FLATTREE > +#ifdef CONFIG_OF_EARLY_FLATTREE > mov.l 8f, r0 ! Make flat device tree available early. > jsr @r0 > mov r12, r4 > @@ -346,7 +346,7 @@ ENTRY(stack_start) > 5: .long start_kernel > 6: .long cpu_init > 7: .long init_thread_union > -#if defined(CONFIG_OF_FLATTREE) > +#if defined(CONFIG_OF_EARLY_FLATTREE) > 8: .long sh_fdt_init > #endif >
On 2/3/23 23:05, D. Jeff Dionne wrote: > Randy, which SH3 chipset target are you building for? Of course all that stay need to be converted to device tree, but a DT SH3 proof of existence that you build for already will surely cover good swath of the missing drivers. > Hi Jeff, I don't have a specific target. I'm just fixing a build error. > >> On Feb 4, 2023, at 14:51, Randy Dunlap <rdunlap@infradead.org> wrote: >> >> When CONFIG_OF_EARLY_FLATTREE and CONFIG_SH_DEVICE_TREE are not set, >> SH3 build fails with a call to early_init_dt_scan(), so in >> arch/sh/kernel/setup.c and arch/sh/kernel/head_32.S, use >> CONFIG_OF_EARLY_FLATTREE instead of CONFIG_OF_FLATTREE. >> >> Fixes this build error: >> ../arch/sh/kernel/setup.c: In function 'sh_fdt_init': >> ../arch/sh/kernel/setup.c:262:26: error: implicit declaration of function 'early_init_dt_scan' [-Werror=implicit-function-declaration] >> 262 | if (!dt_virt || !early_init_dt_scan(dt_virt)) { >> >> Fixes: 03767daa1387 ("sh: fix build regression with CONFIG_OF && !CONFIG_OF_FLATTREE") >> Fixes: eb6b6930a70f ("sh: fix memory corruption of unflattened device tree") >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >> Suggested-by: Rob Herring <robh+dt@kernel.org> >> Cc: Frank Rowand <frowand.list@gmail.com> >> Cc: devicetree@vger.kernel.org >> Cc: Rich Felker <dalias@libc.org> >> Cc: Yoshinori Sato <ysato@users.sourceforge.jp> >> Cc: Arnd Bergmann <arnd@arndb.de> >> Cc: Geert Uytterhoeven <geert+renesas@glider.be> >> Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> >> Cc: linux-sh@vger.kernel.org >> --- >> v2: use Suggested-by: for Rob. >> add more Cc's. >> >> arch/sh/kernel/head_32.S | 6 +++--- >> arch/sh/kernel/setup.c | 4 ++-- >> 2 files changed, 5 insertions(+), 5 deletions(-) >> >> diff arch/sh/kernel/setup.c arch/sh/kernel/setup.c >> diff -- a/arch/sh/kernel/setup.c b/arch/sh/kernel/setup.c >> --- a/arch/sh/kernel/setup.c >> +++ b/arch/sh/kernel/setup.c >> @@ -244,7 +244,7 @@ void __init __weak plat_early_device_set >> { >> } >> >> -#ifdef CONFIG_OF_FLATTREE >> +#ifdef CONFIG_OF_EARLY_FLATTREE >> void __ref sh_fdt_init(phys_addr_t dt_phys) >> { >> static int done = 0; >> @@ -326,7 +326,7 @@ void __init setup_arch(char **cmdline_p) >> /* Let earlyprintk output early console messages */ >> sh_early_platform_driver_probe("earlyprintk", 1, 1); >> >> -#ifdef CONFIG_OF_FLATTREE >> +#ifdef CONFIG_OF_EARLY_FLATTREE >> #ifdef CONFIG_USE_BUILTIN_DTB >> unflatten_and_copy_device_tree(); >> #else >> diff -- a/arch/sh/kernel/head_32.S b/arch/sh/kernel/head_32.S >> --- a/arch/sh/kernel/head_32.S >> +++ b/arch/sh/kernel/head_32.S >> @@ -64,7 +64,7 @@ ENTRY(_stext) >> ldc r0, r6_bank >> #endif >> >> -#ifdef CONFIG_OF_FLATTREE >> +#ifdef CONFIG_OF_EARLY_FLATTREE >> mov r4, r12 ! Store device tree blob pointer in r12 >> #endif >> >> @@ -315,7 +315,7 @@ ENTRY(_stext) >> 10: >> #endif >> >> -#ifdef CONFIG_OF_FLATTREE >> +#ifdef CONFIG_OF_EARLY_FLATTREE >> mov.l 8f, r0 ! Make flat device tree available early. >> jsr @r0 >> mov r12, r4 >> @@ -346,7 +346,7 @@ ENTRY(stack_start) >> 5: .long start_kernel >> 6: .long cpu_init >> 7: .long init_thread_union >> -#if defined(CONFIG_OF_FLATTREE) >> +#if defined(CONFIG_OF_EARLY_FLATTREE) >> 8: .long sh_fdt_init >> #endif >> > -- ~Randy
© 2016 - 2025 Red Hat, Inc.