* [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs
@ 2008-08-12 21:31 Paul Walmsley
2008-08-12 21:31 ` [PATCH 1/2] OMAP2 clock: associate clocks with clockdomains at startup Paul Walmsley
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Paul Walmsley @ 2008-08-12 21:31 UTC (permalink / raw)
To: linux-omap
This series fixes two bugs that cause N800 to panic on boot:
- a OMAP2xxx clock code bug, which caused an "Unhandled fault:
alignment exception (0x001) at 0xc02....." panic; and
- an OMAP2/3 clockdomain bug, which caused an "Unable to handle kernel
paging request at virtual address 5f75706d" panic.
These bugs were exposed by 0e5194e1a84c219bebbb78f305b7a8eabc4a3656 and
718fc6cd4db902aa2242a736cc3feb8744a4c71a.
With the following patches applied on git head, N800 boots fine, but
only if CONFIG_DEBUG_LL is enabled. If it is disabled, it hangs at
some point in early boot. Don't know why.
These patches also boot-tested cleanly on 2430SDP and 3430SDP, both
with and without CONFIG_DEBUG_LL.
text data bss dec hex filename
3217805 149808 85008 3452621 34aecd vmlinux.n800.orig
3217837 149808 85008 3452653 34aeed vmlinux.n800
arch/arm/mach-omap2/clock24xx.c | 2 ++
arch/arm/mach-omap2/clockdomain.c | 6 ++++++
2 files changed, 8 insertions(+), 0 deletions(-)
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] OMAP2 clock: associate clocks with clockdomains at startup
2008-08-12 21:31 [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Paul Walmsley
@ 2008-08-12 21:31 ` Paul Walmsley
2008-08-12 21:31 ` [PATCH 2/2] OMAP2/3 clockdomains: autodeps should respect platform flags Paul Walmsley
2008-08-13 7:43 ` [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Tony Lindgren
2 siblings, 0 replies; 4+ messages in thread
From: Paul Walmsley @ 2008-08-12 21:31 UTC (permalink / raw)
To: linux-omap; +Cc: Paul Walmsley, felipe.balbi
The OMAP2 clock code was missing code to associate clocks with clockdomains
at registration time; fix this.
Resolves "Unhandled fault: alignment exception (0x001) at 0xc02c1b4e" (address
may vary) panic during clock framework init on OMAP2. The alignment error
was caused by an attempt to dereference a pointer to a string (1-byte aligned)
as if it were a pointer to a structure.
Thanks to Felipe Balbi <felipe.balbi@nokia.com> for originally reporting this
bug.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/clock24xx.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/clock24xx.c b/arch/arm/mach-omap2/clock24xx.c
index 370f4f0..0d9d91f 100644
--- a/arch/arm/mach-omap2/clock24xx.c
+++ b/arch/arm/mach-omap2/clock24xx.c
@@ -567,11 +567,13 @@ int __init omap2_clk_init(void)
if ((*clkp)->flags & CLOCK_IN_OMAP242X && cpu_is_omap2420()) {
clk_register(*clkp);
+ omap2_init_clk_clkdm(*clkp);
continue;
}
if ((*clkp)->flags & CLOCK_IN_OMAP243X && cpu_is_omap2430()) {
clk_register(*clkp);
+ omap2_init_clk_clkdm(*clkp);
continue;
}
}
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] OMAP2/3 clockdomains: autodeps should respect platform flags
2008-08-12 21:31 [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Paul Walmsley
2008-08-12 21:31 ` [PATCH 1/2] OMAP2 clock: associate clocks with clockdomains at startup Paul Walmsley
@ 2008-08-12 21:31 ` Paul Walmsley
2008-08-13 7:43 ` [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Tony Lindgren
2 siblings, 0 replies; 4+ messages in thread
From: Paul Walmsley @ 2008-08-12 21:31 UTC (permalink / raw)
To: linux-omap; +Cc: Paul Walmsley
Fix the clockdomain autodep code to respect omap_chip platform flags.
Resolves "Unable to handle kernel paging request at virtual address
5f75706d" panic during power management initialization on OMAP2.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
---
arch/arm/mach-omap2/clockdomain.c | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap2/clockdomain.c b/arch/arm/mach-omap2/clockdomain.c
index caa7992..49741e8 100644
--- a/arch/arm/mach-omap2/clockdomain.c
+++ b/arch/arm/mach-omap2/clockdomain.c
@@ -96,6 +96,9 @@ static void _clkdm_add_autodeps(struct clockdomain *clkdm)
struct clkdm_pwrdm_autodep *autodep;
for (autodep = autodeps; autodep->pwrdm.ptr; autodep++) {
+ if (!omap_chip_is(autodep->omap_chip))
+ continue;
+
pr_debug("clockdomain: adding %s sleepdep/wkdep for "
"pwrdm %s\n", autodep->pwrdm.ptr->name,
clkdm->pwrdm.ptr->name);
@@ -118,6 +121,9 @@ static void _clkdm_del_autodeps(struct clockdomain *clkdm)
struct clkdm_pwrdm_autodep *autodep;
for (autodep = autodeps; autodep->pwrdm.ptr; autodep++) {
+ if (!omap_chip_is(autodep->omap_chip))
+ continue;
+
pr_debug("clockdomain: removing %s sleepdep/wkdep for "
"pwrdm %s\n", autodep->pwrdm.ptr->name,
clkdm->pwrdm.ptr->name);
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs
2008-08-12 21:31 [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Paul Walmsley
2008-08-12 21:31 ` [PATCH 1/2] OMAP2 clock: associate clocks with clockdomains at startup Paul Walmsley
2008-08-12 21:31 ` [PATCH 2/2] OMAP2/3 clockdomains: autodeps should respect platform flags Paul Walmsley
@ 2008-08-13 7:43 ` Tony Lindgren
2 siblings, 0 replies; 4+ messages in thread
From: Tony Lindgren @ 2008-08-13 7:43 UTC (permalink / raw)
To: Paul Walmsley; +Cc: linux-omap
* Paul Walmsley <paul@pwsan.com> [080813 00:34]:
> This series fixes two bugs that cause N800 to panic on boot:
>
> - a OMAP2xxx clock code bug, which caused an "Unhandled fault:
> alignment exception (0x001) at 0xc02....." panic; and
>
> - an OMAP2/3 clockdomain bug, which caused an "Unable to handle kernel
> paging request at virtual address 5f75706d" panic.
>
> These bugs were exposed by 0e5194e1a84c219bebbb78f305b7a8eabc4a3656 and
> 718fc6cd4db902aa2242a736cc3feb8744a4c71a.
Great, thanks! Pushing today.
> With the following patches applied on git head, N800 boots fine, but
> only if CONFIG_DEBUG_LL is enabled. If it is disabled, it hangs at
> some point in early boot. Don't know why.
Maybe it needs flasher --enable-rd-mode --set-rd-flags=serial-console?
> These patches also boot-tested cleanly on 2430SDP and 3430SDP, both
> with and without CONFIG_DEBUG_LL.
Good
Tony
> text data bss dec hex filename
> 3217805 149808 85008 3452621 34aecd vmlinux.n800.orig
> 3217837 149808 85008 3452653 34aeed vmlinux.n800
>
> arch/arm/mach-omap2/clock24xx.c | 2 ++
> arch/arm/mach-omap2/clockdomain.c | 6 ++++++
> 2 files changed, 8 insertions(+), 0 deletions(-)
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-omap" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-08-13 7:41 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-12 21:31 [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Paul Walmsley
2008-08-12 21:31 ` [PATCH 1/2] OMAP2 clock: associate clocks with clockdomains at startup Paul Walmsley
2008-08-12 21:31 ` [PATCH 2/2] OMAP2/3 clockdomains: autodeps should respect platform flags Paul Walmsley
2008-08-13 7:43 ` [PATCH 0/2] OMAP2/3: fix clock/clockdomain bugs Tony Lindgren
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox