From: Tero Kristo <t-kristo@ti.com>
To: florian.vaussard@epfl.ch, Kevin Hilman <khilman@linaro.org>,
kernel-build-reports@lists.linaro.org,
"linaro-kernel@lists.linaro.org" <linaro-kernel@lists.linaro.org>,
"tony@atomide.com" <tony@atomide.com>
Cc: Mike Turquette <mturquette@linaro.org>,
linux-omap <linux-omap@vger.kernel.org>,
Olof Johansson <olof@lixom.net>, Ash Charles <ash@gumstix.com>
Subject: Re: next boot: 34 pass, 5 fail (next-20140122)
Date: Thu, 23 Jan 2014 14:27:32 +0200 [thread overview]
Message-ID: <52E10AB4.9060002@ti.com> (raw)
In-Reply-To: <52E0E3D1.5050202@epfl.ch>
[-- Attachment #1: Type: text/plain, Size: 4133 bytes --]
On 01/23/2014 11:41 AM, Florian Vaussard wrote:
>
>
> On 01/23/2014 10:15 AM, Florian Vaussard wrote:
>>
>>
>> On 01/23/2014 10:00 AM, Tero Kristo wrote:
>>> On 01/23/2014 10:14 AM, Florian Vaussard wrote:
>>>> Hello,
>>>>
>>>> On 01/23/2014 07:23 AM, Tero Kristo wrote:
>>>>> On 01/23/2014 03:35 AM, Kevin Hilman wrote:
>>>>>> On Wed, Jan 22, 2014 at 4:46 PM, Kevin's boot bot <khilman@linaro.org>
>>>>>> wrote:
>>>>>>> Automated DT boot report for various ARM defconfigs.
>>>>>>>
>>>>>>>
>>>>>>> Tree/Branch: next
>>>>>>> Git describe: next-20140122
>>>>>>> Failed boot tests (console logs at the end)
>>>>>>> ===========================================
>>>>>>> omap3-tobi,3730storm: FAIL: omap2plus_defconfig
>>>>>> [...]
>>>>>>> omap3-tobi,3730storm: FAIL: multi_v7_defconfig
>>>>>>
>>>>>> These OMAP3 failures are new regressions. Full failure boot log
>>>>>> attached.
>>>>>> Bisected down to:
>>>>>>
>>>>>> cfa9667d4ac9da8b3ba2269f934ecd69ae504d39 is the first bad commit
>>>>>> commit cfa9667d4ac9da8b3ba2269f934ecd69ae504d39
>>>>>> Author: Tero Kristo <t-kristo@ti.com>
>>>>>> Date: Tue Oct 22 11:53:02 2013 +0300
>>>>>>
>>>>>> ARM: OMAP2+: io: use new clock init API
>>>>>>
>>>>>> clk_init is now separated to a common function which gets called
>>>>>> for all
>>>>>> SoC:s, which initializes the DT clocks and calls the SoC specific
>>>>>> clock init.
>>>>>>
>>>>>> Signed-off-by: Tero Kristo <t-kristo@ti.com>
>>>>>> Acked-by: Tony Lindgren <tony@atomide.com>
>>>>>> Signed-off-by: Mike Turquette <mturquette@linaro.org>
>>>>>>
>>>>>> Kevin
>>>>>>
>>>>>
>>>>> Hi,
>>>>>
>>>>> I think this is because the tobi board is including wrong omap3-soc.dtsi
>>>>> file (omap34xx.dtsi) through omap3-overo.dtsi.
>>>>>
>>>>> The board should include omap36xx.dtsi at least based on the boot log:
>>>>>
>>>>> [ 0.000000] OMAP3630 ES1.2 (l2cache iva sgx neon isp 192mhz_clk )
>>>>>
>>>>
>>>> The problem is that the Overo (processor card on the Tobi extension
>>>> board) can have a variety of processor depending on the exact model:
>>>>
>>>> - OMAP 35xx (1st generation: Air, Earth, Fire, Sand, Tide, Water, FE)
>>>> - OMAP 3730
>>>> - AM/DM 37xx
>>>>
>>>> omap3-overo.dtsi includes omap34xx.dtsi to be compatible with the first
>>>> generation.
>>>>
>>>>
>>>> omap34xx.dtsi
>>>> |
>>>> -> omap3-overo.dtsi (processor card)
>>>> |
>>>> -> omap3-tobi.dtsi (expansion board)
>>>>
>>>>
>>>> What is the fundamental incompatibility here? If we have to specifically
>>>> include omap36xx for newer Overo, it will become hard to maintain as it
>>>> will double the number of Overo / expansion boards possibilities.
>>>
>>> Well, you get different board declaration inside
>>> mach-omap2/board-generic.c for omap34xx vs omap36xx.
>>>
>>> The clock data issues can be fixed by adding cpu_is_omap34xx() vs.
>>> cpu_is_omap3630() checks within the mach-omap2/io.c file, but this is
>>> probably for Tony/Kevin to comment whether we can/should do that.
>>>
>>
>> I just tested next-20140123 with an OMAP3630 ES1.2 Overo/Tobi. Changing
>> the include to omap36xx.dtsi do not fix the issue. I still get the
>> external abort on non-linefetch (full log here [1]).
>>
>
> So the issue is clearly caused by the hwmod warning just before the
> panic I think:
>
> omap_hwmod: usb_tll_hs: enabled state can only be entered from
> initialized, idle, or disabled state
>
> usb_tll_hs is thus not enabled, and we get a panic when trying to read
> the revision register
>
> ver = usbtll_read(tll->base, OMAP_USBTLL_REVISION);
>
> at drivers/mfd/omap-usb-tll.c:237.
>
> I do not know enough about hwmod to efficiently debug why usb_tll_hs is
> not _HWMOD_STATE_INITIALIZED before trying to enable it. Are we missing
> some DT data?
The problem is the point before this one, uart4_fck lookup fails. This
causes the hwmod code to bail out early and not init anything after it.
I guess you are still mapping wrong clock init as it fails with uart4.
Give the attached patch a shot and see how it behaves.
-Tero
[-- Attachment #2: 0001-ARM-OMAP3-change-all-omap3-boards-to-use-common-earl.patch --]
[-- Type: text/x-patch, Size: 11809 bytes --]
>From b42055fb5c1712348a757d766dbd7c09140cfe66 Mon Sep 17 00:00:00 2001
From: Tero Kristo <t-kristo@ti.com>
Date: Thu, 23 Jan 2014 14:24:57 +0200
Subject: [PATCH] ARM: OMAP3: change all omap3 boards to use common early_init
early_init now checks the cpu type for the corresponding clock init
function. Mainly needed by the overo board which can have almost
any OMAP3 subtype installed on it.
Signed-off-by: Tero Kristo <t-kristo@ti.com>
---
arch/arm/mach-omap2/board-3430sdp.c | 2 +-
arch/arm/mach-omap2/board-am3517crane.c | 2 +-
arch/arm/mach-omap2/board-am3517evm.c | 2 +-
arch/arm/mach-omap2/board-cm-t35.c | 4 ++--
arch/arm/mach-omap2/board-cm-t3517.c | 2 +-
arch/arm/mach-omap2/board-devkit8000.c | 2 +-
arch/arm/mach-omap2/board-generic.c | 8 +++----
arch/arm/mach-omap2/board-ldp.c | 2 +-
arch/arm/mach-omap2/board-omap3logic.c | 4 ++--
arch/arm/mach-omap2/board-omap3pandora.c | 2 +-
arch/arm/mach-omap2/board-omap3stalker.c | 2 +-
arch/arm/mach-omap2/board-omap3touchbook.c | 2 +-
arch/arm/mach-omap2/board-overo.c | 2 +-
arch/arm/mach-omap2/board-rx51.c | 2 +-
arch/arm/mach-omap2/io.c | 35 +++++++---------------------
15 files changed, 27 insertions(+), 46 deletions(-)
diff --git a/arch/arm/mach-omap2/board-3430sdp.c b/arch/arm/mach-omap2/board-3430sdp.c
index d95d0ef..a1a5413 100644
--- a/arch/arm/mach-omap2/board-3430sdp.c
+++ b/arch/arm/mach-omap2/board-3430sdp.c
@@ -623,7 +623,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_3430sdp_init,
diff --git a/arch/arm/mach-omap2/board-am3517crane.c b/arch/arm/mach-omap2/board-am3517crane.c
index 0d499a1..d44f029 100644
--- a/arch/arm/mach-omap2/board-am3517crane.c
+++ b/arch/arm/mach-omap2/board-am3517crane.c
@@ -140,7 +140,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = am35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = am3517_crane_init,
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index 543d9a8..22ce07f 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -369,7 +369,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = am35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = am3517_evm_init,
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c
index 8dd0ec8..5296dd0 100644
--- a/arch/arm/mach-omap2/board-cm-t35.c
+++ b/arch/arm/mach-omap2/board-cm-t35.c
@@ -748,7 +748,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t35_init,
@@ -761,7 +761,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3630_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t3730_init,
diff --git a/arch/arm/mach-omap2/board-cm-t3517.c b/arch/arm/mach-omap2/board-cm-t3517.c
index 4eb5e6f..37d8577 100644
--- a/arch/arm/mach-omap2/board-cm-t3517.c
+++ b/arch/arm/mach-omap2/board-cm-t3517.c
@@ -327,7 +327,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = am35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = cm_t3517_init,
diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
index cdc4fb9..4836c19 100644
--- a/arch/arm/mach-omap2/board-devkit8000.c
+++ b/arch/arm/mach-omap2/board-devkit8000.c
@@ -645,7 +645,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = devkit8000_init,
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index 8d972ff1..d1d211f 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -85,7 +85,7 @@ static const char *omap3_boards_compat[] __initdata = {
DT_MACHINE_START(OMAP3_DT, "Generic OMAP3 (Flattened Device Tree)")
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap_intc_of_init,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_generic_init,
@@ -103,7 +103,7 @@ static const char *omap36xx_boards_compat[] __initdata = {
DT_MACHINE_START(OMAP36XX_DT, "Generic OMAP36xx (Flattened Device Tree)")
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3630_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap_intc_of_init,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_generic_init,
@@ -122,7 +122,7 @@ static const char *omap3_gp_boards_compat[] __initdata = {
DT_MACHINE_START(OMAP3_GP_DT, "Generic OMAP3-GP (Flattened Device Tree)")
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap_intc_of_init,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_generic_init,
@@ -140,7 +140,7 @@ static const char *am3517_boards_compat[] __initdata = {
DT_MACHINE_START(AM3517_DT, "Generic AM3517 (Flattened Device Tree)")
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = am35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap_intc_of_init,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_generic_init,
diff --git a/arch/arm/mach-omap2/board-ldp.c b/arch/arm/mach-omap2/board-ldp.c
index 44a59c3..6534c4a 100644
--- a/arch/arm/mach-omap2/board-ldp.c
+++ b/arch/arm/mach-omap2/board-ldp.c
@@ -420,7 +420,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap_ldp_init,
diff --git a/arch/arm/mach-omap2/board-omap3logic.c b/arch/arm/mach-omap2/board-omap3logic.c
index bab51e6..0b942c4 100644
--- a/arch/arm/mach-omap2/board-omap3logic.c
+++ b/arch/arm/mach-omap2/board-omap3logic.c
@@ -228,7 +228,7 @@ MACHINE_START(OMAP3_TORPEDO, "Logic OMAP3 Torpedo board")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3logic_init,
@@ -241,7 +241,7 @@ MACHINE_START(OMAP3530_LV_SOM, "OMAP Logic 3530 LV SOM board")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3logic_init,
diff --git a/arch/arm/mach-omap2/board-omap3pandora.c b/arch/arm/mach-omap2/board-omap3pandora.c
index de1bc6b..bf256ed 100644
--- a/arch/arm/mach-omap2/board-omap3pandora.c
+++ b/arch/arm/mach-omap2/board-omap3pandora.c
@@ -620,7 +620,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3pandora_init,
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index 119efaf..d7245e3 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -428,7 +428,7 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
/* Maintainer: Jason Lam -lzg@ema-tech.com */
.atag_offset = 0x100,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3_stalker_init,
diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
index 7da48bc..8385192 100644
--- a/arch/arm/mach-omap2/board-omap3touchbook.c
+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
@@ -386,7 +386,7 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = omap3_touchbook_init,
diff --git a/arch/arm/mach-omap2/board-overo.c b/arch/arm/mach-omap2/board-overo.c
index f6d3841..c3c2a7f 100644
--- a/arch/arm/mach-omap2/board-overo.c
+++ b/arch/arm/mach-omap2/board-overo.c
@@ -562,7 +562,7 @@ MACHINE_START(OVERO, "Gumstix Overo")
.atag_offset = 0x100,
.reserve = omap_reserve,
.map_io = omap3_map_io,
- .init_early = omap35xx_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = overo_init,
diff --git a/arch/arm/mach-omap2/board-rx51.c b/arch/arm/mach-omap2/board-rx51.c
index db168c9..0ca29b9 100644
--- a/arch/arm/mach-omap2/board-rx51.c
+++ b/arch/arm/mach-omap2/board-rx51.c
@@ -132,7 +132,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
.atag_offset = 0x100,
.reserve = rx51_reserve,
.map_io = omap3_map_io,
- .init_early = omap3430_init_early,
+ .init_early = omap3_init_early,
.init_irq = omap3_init_irq,
.handle_irq = omap3_intc_handle_irq,
.init_machine = rx51_init,
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index b8097fe..fa9919d 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -483,34 +483,15 @@ void __init omap3_init_early(void)
omap3xxx_hwmod_init();
omap_hwmod_init_postsetup();
omap_clk_soc_init = omap3xxx_clk_init;
-}
-
-void __init omap3430_init_early(void)
-{
- omap3_init_early();
- if (of_have_populated_dt())
- omap_clk_soc_init = omap3430_dt_clk_init;
-}
-
-void __init omap35xx_init_early(void)
-{
- omap3_init_early();
- if (of_have_populated_dt())
- omap_clk_soc_init = omap3430_dt_clk_init;
-}
-
-void __init omap3630_init_early(void)
-{
- omap3_init_early();
- if (of_have_populated_dt())
- omap_clk_soc_init = omap3630_dt_clk_init;
-}
-void __init am35xx_init_early(void)
-{
- omap3_init_early();
- if (of_have_populated_dt())
- omap_clk_soc_init = am35xx_dt_clk_init;
+ if (of_have_populated_dt()) {
+ if (soc_is_am35xx())
+ omap_clk_soc_init = am35xx_dt_clk_init;
+ else if (cpu_is_omap3630())
+ omap_clk_soc_init = omap3630_dt_clk_init;
+ else if (cpu_is_omap34xx())
+ omap_clk_soc_init = omap3430_dt_clk_init;
+ }
}
void __init ti81xx_init_early(void)
--
1.7.9.5
next prev parent reply other threads:[~2014-01-23 12:27 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <52e06652.c103450a.79d7.6517@mx.google.com>
2014-01-23 1:35 ` next boot: 34 pass, 5 fail (next-20140122) Kevin Hilman
2014-01-23 6:23 ` Tero Kristo
2014-01-23 8:14 ` Florian Vaussard
2014-01-23 9:00 ` Tero Kristo
2014-01-23 9:15 ` Florian Vaussard
2014-01-23 9:41 ` Florian Vaussard
2014-01-23 12:27 ` Tero Kristo [this message]
2014-01-23 16:35 ` Florian Vaussard
2014-01-23 17:33 ` Nishanth Menon
2014-01-24 20:37 ` Florian Vaussard
2014-01-23 17:35 ` Tony Lindgren
2014-01-24 18:00 ` Tony Lindgren
2014-01-24 20:51 ` Florian Vaussard
2014-01-24 18:11 ` Tony Lindgren
2014-01-24 18:13 ` Florian Vaussard
2014-02-05 15:23 ` Kevin Hilman
2014-02-06 8:47 ` Florian Vaussard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=52E10AB4.9060002@ti.com \
--to=t-kristo@ti.com \
--cc=ash@gumstix.com \
--cc=florian.vaussard@epfl.ch \
--cc=kernel-build-reports@lists.linaro.org \
--cc=khilman@linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-omap@vger.kernel.org \
--cc=mturquette@linaro.org \
--cc=olof@lixom.net \
--cc=tony@atomide.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).