Skip to contentSkip to conversation

xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"

PATCH In review Rob Herring 3 participants 5 messages Jul 26, 2016 – Jul 27, 2016 Tensilica Xtensa port (xtensa)

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xtensa: Partially Revert "xtensa: Remove unnecessary of_platform_populate with default match table"

This partially reverts commit 69d99e6c0d62 keeping only the main purpose of the original commit which is the removal of of_platform_populate() call. The moving of of_clk_init() caused changes in the initialization order breaking booting.

Fixes 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
Cc Kefeng Wang <[email protected]>
Cc Guenter Roeck <[email protected]>
Cc Max Filippov <[email protected]>

---
This is on top of Guenter's build fix. Please test and I'll apply. I tried briefly running under QEMU, but didn't have success. If anyone has up to date instructions that would be helpful as using these[1] didn't seem to work.

Rob

[1] http://wiki.linux-xtensa.org/index.php/Xtensa_on_QEMU

 arch/xtensa/kernel/setup.c | 9 +++++++++
 arch/xtensa/kernel/time.c  | 2 --
 2 files changed, 9 insertions(+), 2 deletions(-)
arch/xtensa/kernel/setup.c +9 -0
index 6f68c60..143251e 100644
@@ -22,6 +22,7 @@
 #include <linux/bootmem.h>
 #include <linux/kernel.h>
 #include <linux/percpu.h>
+#include <linux/clk-provider.h>
 #include <linux/cpu.h>
 #include <linux/of.h>
 #include <linux/of_fdt.h>
@@ -251,6 +252,14 @@ void __init early_init_devtree(void *params)
 		strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
 }
 
+static int __init xtensa_device_probe(void)
+{
+	of_clk_init(NULL);
+	return 0;
+}
+
+device_initcall(xtensa_device_probe);
+
 #endif /* CONFIG_OF */
 
 /*
arch/xtensa/kernel/time.c +0 -2
index 6ec73c9..b9ad9fe 100644
@@ -15,7 +15,6 @@
 #include <linux/errno.h>
 #include <linux/sched.h>
 #include <linux/time.h>
-#include <linux/clk-provider.h>
 #include <linux/clocksource.h>
 #include <linux/clockchips.h>
 #include <linux/interrupt.h>
@@ -149,7 +148,6 @@ void __init time_init(void)
 	local_timer_setup(0);
 	setup_irq(this_cpu_ptr(&ccount_timer)->evt.irq, &timer_irqaction);
 	sched_clock_register(ccount_sched_clock_read, 32, ccount_freq);
-	of_clk_init(NULL);
 	clocksource_probe();
 }
 
Signature · 1 line
2.9.2
maintainer Tested-by on v1 1/1
#1 lore raw
Quoted 5 lines · Rob Herring

This partially reverts commit 69d99e6c0d62 keeping only the main purpose of the original commit which is the removal of of_platform_populate() call. The moving of of_clk_init() caused changes in the initialization order breaking booting.

Quoted 7 lines
Fixes 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
Cc Kefeng Wang <[email protected]>
Cc Guenter Roeck <[email protected]>
Cc Max Filippov <[email protected]>

---
This is on top of Guenter's build fix. Please test and I'll apply. I

Quoted 3 lines

tried briefly running under QEMU, but didn't have success. If anyone has up to date instructions that would be helpful as using these[1] didn't seem to work.

I think they're up to date. Another thing that need to be done right is the toolchain: it must match the configured CPU core. Please refer to
http://wiki.linux-xtensa.org/index.php/Toolchain_Overlay_File
for more details.

Quoted 6 lines

[1] http://wiki.linux-xtensa.org/index.php/Xtensa_on_QEMU

 arch/xtensa/kernel/setup.c | 9 +++++++++
 arch/xtensa/kernel/time.c  | 2 --
 2 files changed, 9 insertions(+), 2 deletions(-)
Signature · 2 lines
Thanks.
-- Max
#2 lore raw
Quoted 14 lines · Max Filippov
Quoted 5 lines · Rob Herring

This partially reverts commit 69d99e6c0d62 keeping only the main purpose of the original commit which is the removal of of_platform_populate() call. The moving of of_clk_init() caused changes in the initialization order breaking booting.

Quoted 7 lines
Fixes 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
Cc Kefeng Wang <[email protected]>
Cc Guenter Roeck <[email protected]>
Cc Max Filippov <[email protected]>

---
This is on top of Guenter's build fix. Please test and I'll apply. I

Quoted 1 line

Thanks.

Quoted 8 lines
Quoted 3 lines

tried briefly running under QEMU, but didn't have success. If anyone has up to date instructions that would be helpful as using these[1] didn't seem to work.

I think they're up to date. Another thing that need to be done right is the toolchain: it must match the configured CPU core. Please refer to
http://wiki.linux-xtensa.org/index.php/Toolchain_Overlay_File
for more details.

I don't build toolchains...

Rob

maintainer
#3 lore raw
Quoted 10 lines · Rob Herring
Quoted 8 lines
Quoted 3 lines

I tried briefly running under QEMU, but didn't have success. If anyone has up to date instructions that would be helpful as using these[1] didn't seem to work.

I think they're up to date. Another thing that need to be done right is the toolchain: it must match the configured CPU core. Please refer to
http://wiki.linux-xtensa.org/index.php/Toolchain_Overlay_File
for more details.

I don't build toolchains...

The toolchain for xtensa built with unmodified binutils does not produce working code. The one at
https://www.kernel.org/pub/tools/crosstool/files/bin/
and the one shipped with Fedora are broken.

Here's a few working prebuilt toolchains capable of building linux:
http://jcmvbkbc.spb.ru/~jcmvbkbc/tmp/201604261801/

Signature · 2 lines
Thanks.
-- Max
#4 lore raw
In reply to Max Filippov
Quoted 6 lines · Max Filippov
Quoted 5 lines · Rob Herring

This partially reverts commit 69d99e6c0d62 keeping only the main purpose of the original commit which is the removal of of_platform_populate() call. The moving of of_clk_init() caused changes in the initialization order breaking booting.

Quoted 7 lines
Quoted 7 lines
Fixes 69d99e6c0d621f ("xtensa: Remove unnecessary of_platform_populate with default match table")
Cc Kefeng Wang <[email protected]>
Cc Guenter Roeck <[email protected]>
Cc Max Filippov <[email protected]>

---
This is on top of Guenter's build fix. Please test and I'll apply. I

Hi all,

Sorry about the issue introduced by me, will be more careful, and thanks Rob and Guenter to fix them.

BRs,
Kefeng

Quoted 19 lines
Quoted 3 lines

tried briefly running under QEMU, but didn't have success. If anyone has up to date instructions that would be helpful as using these[1] didn't seem to work.

I think they're up to date. Another thing that need to be done right is the toolchain: it must match the configured CPU core. Please refer to
http://wiki.linux-xtensa.org/index.php/Toolchain_Overlay_File
for more details.

Quoted 6 lines

[1] http://wiki.linux-xtensa.org/index.php/Xtensa_on_QEMU

 arch/xtensa/kernel/setup.c | 9 +++++++++
 arch/xtensa/kernel/time.c  | 2 --
 2 files changed, 9 insertions(+), 2 deletions(-)