Skip to contentSkip to conversation

v2011.12 and later do not boot on dreamplug.

U-Boot New Ian Campbell 4 participants 13 messages Jan 8, 2012 – Feb 9, 2012 SPI

lore
Share & tools
lore
#0 lore raw

v2011.12 hangs on boot on my dreamplug with:

        U-Boot 2011.12-dirty (Jan 08 2012 - 15:16:44)
        Marvell-DreamPlug
        
        SoC:   Kirkwood 88F6281_A1
        DRAM:  512 MiB
        WARNING: Caches not enabled

I bisected it down to:
commit ca4b55800ed74207c35271bf7335a092d4955416
Author: Heiko Schocher <[email protected]>
Date: Wed Nov 9 20:06:23 2011 +0000

arm, arm926ejs: always do cpu critical inits

always do the cpu critical inits in cpu_init_crit, and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT is not defined.

Cc Albert ARIBAUD <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Sandeep Paulraj <[email protected]>
Cc Tom Rini <[email protected]>
Cc Christian Riesch <[email protected]>

and in particular the line

	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */

Commenting out just that one line causes things to work. Is the error setting this bit or is it that there is a bug somewhere else which prevents us setting this bit?

A different approach to the original patch was suggested in
http://lists.denx.de/pipermail/u-boot/2011-December/112353.html and I suppose that combined with s/CONFIG_SKIP_LOWLEVEL_INIT/CONFIG_SKIP_CPU_INIT_CRIT/g in the relevant config files (at least include/configs/dreamplug.h, but perhaps everywhere except whichever platform caused this change?) would fix things.

Thanks,
Ian.

Signature · 6 lines
Ian Campbell


Q:	How do you play religious roulette?
A:	You stand around in a circle and blaspheme and see who gets
	struck by lightning first.
#1 lore raw

Resending without typo in Heiko's email address. Cheers, Ian.

Quoted 44 lines · Ian Campbell

v2011.12 hangs on boot on my dreamplug with:

        U-Boot 2011.12-dirty (Jan 08 2012 - 15:16:44)
        Marvell-DreamPlug
        
        SoC:   Kirkwood 88F6281_A1
        DRAM:  512 MiB
        WARNING: Caches not enabled

I bisected it down to:
commit ca4b55800ed74207c35271bf7335a092d4955416
Author: Heiko Schocher <[email protected]>
Date: Wed Nov 9 20:06:23 2011 +0000

arm, arm926ejs: always do cpu critical inits

always do the cpu critical inits in cpu_init_crit, and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT is not defined.

Cc Albert ARIBAUD <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Sandeep Paulraj <[email protected]>
Cc Tom Rini <[email protected]>
Cc Christian Riesch <[email protected]>

and in particular the line

	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */

Commenting out just that one line causes things to work. Is the error setting this bit or is it that there is a bug somewhere else which prevents us setting this bit?

A different approach to the original patch was suggested in
http://lists.denx.de/pipermail/u-boot/2011-December/112353.html and I suppose that combined with s/CONFIG_SKIP_LOWLEVEL_INIT/CONFIG_SKIP_CPU_INIT_CRIT/g in the relevant config files (at least include/configs/dreamplug.h, but perhaps everywhere except whichever platform caused this change?) would fix things.

Thanks,
Ian.

Signature · 4 lines
Ian Campbell


Famous last words:
#2 lore raw
In reply to Ian Campbell
Quoted 27 lines · Ian Campbell

v2011.12 hangs on boot on my dreamplug with:

        U-Boot 2011.12-dirty (Jan 08 2012 - 15:16:44)
        Marvell-DreamPlug
        
        SoC:   Kirkwood 88F6281_A1
        DRAM:  512 MiB
        WARNING: Caches not enabled

I bisected it down to:
commit ca4b55800ed74207c35271bf7335a092d4955416
Author: Heiko Schocher <[email protected]>
Date: Wed Nov 9 20:06:23 2011 +0000

arm, arm926ejs: always do cpu critical inits

always do the cpu critical inits in cpu_init_crit, and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT is not defined.

Cc Albert ARIBAUD <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Sandeep Paulraj <[email protected]>
Cc Tom Rini <[email protected]>
Cc Christian Riesch <[email protected]>
Quoted 6 lines

and in particular the line

	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */

Commenting out just that one line causes things to work. Is the error setting this bit or is it that there is a bug somewhere else which prevents us setting this bit?

Seem that the latter is the case. The following fixes it for me.

(BTW, my mails to u-boot@ seem to be getting moderated, even though I am subscribed, is that normal?)

8<-------------------------------------------------------------

Acked-by
#3 lore raw
Quoted 71 lines · Ian Campbell
Quoted 27 lines · Ian Campbell

v2011.12 hangs on boot on my dreamplug with:

        U-Boot 2011.12-dirty (Jan 08 2012 - 15:16:44)
        Marvell-DreamPlug
        
        SoC:   Kirkwood 88F6281_A1
        DRAM:  512 MiB
        WARNING: Caches not enabled

I bisected it down to:
commit ca4b55800ed74207c35271bf7335a092d4955416
Author: Heiko Schocher <[email protected]>
Date: Wed Nov 9 20:06:23 2011 +0000

arm, arm926ejs: always do cpu critical inits

always do the cpu critical inits in cpu_init_crit, and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT is not defined.

Cc Albert ARIBAUD <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Sandeep Paulraj <[email protected]>
Cc Tom Rini <[email protected]>
Cc Christian Riesch <[email protected]>
Quoted 6 lines

and in particular the line

	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */

Commenting out just that one line causes things to work. Is the error setting this bit or is it that there is a bug somewhere else which prevents us setting this bit?

Seem that the latter is the case. The following fixes it for me.

(BTW, my mails to u-boot@ seem to be getting moderated, even though I am subscribed, is that normal?)

8<-------------------------------------------------------------

From d6bc6e1a4f49314577e0be9af3cd020078593fdb Mon Sep 17 00:00:00 2001
From: Ian Campbell <[email protected]>
Date: Sun, 8 Jan 2012 19:44:38 +0000
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked because alignment aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical inits" turned on alignment aborts and uncovered this latent problem.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
 	/* program mpp registers to select  SPI_CSn */
 	if (cs) {
Signature · 1 line
1.7.5.4

Dammit. My apologies. I should've caught that. Thanks for the patch.

Jason.

#4 lore raw
Quoted 13 lines · Jason
Quoted 12 lines · Ian Campbell

On Sun, 2012-01-08 at 15:30 +0000, Ian Campbell wrote:

drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
Quoted 8 lines
Quoted 4 lines
drivers/spi/kirkwood_spi.c +0 -0
 	/* program mpp registers to select  SPI_CSn */
 	if (cs) {
Signature · 1 line
1.7.5.4

Dammit. My apologies. I should've caught that. Thanks for the patch.

No problem, was interesting to dig into u-boot for the first time!

Did I get the CC list right to cover whoever will eventually apply this patch?

You are also working on upstreaming dreamplug support into Linux, is that right? What is the current state of the art? I'm currently using a 3.1 kernel + patches from
http://people.debian.org/~zumbi/dreamplug/patches/ . (BTW feel free to reply off list or switch to e.g. linux-arm-kernel since I guess this is strict speaking off-topic here).

Thanks,
Ian.

Signature · 5 lines
Ian Campbell


Revolution, n.:
	A form of government abroad.
#5 lore raw

Ian,

Quoted 21 lines · Ian Campbell
Quoted 20 lines · Jason
Quoted 16 lines · Ian Campbell

On Sun, 2012-01-08 at 15:30 +0000, Ian Campbell wrote:

drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
 	/* program mpp registers to select  SPI_CSn */
 	if (cs) {
Signature · 1 line
1.7.5.4
Quoted 3 lines
Quoted 1 line

Dammit. My apologies. I should've caught that. Thanks for the patch.

No problem, was interesting to dig into u-boot for the first time!

Well, at least my mistake created another u-boot hacker. ;-)

Quoted 2 lines

Did I get the CC list right to cover whoever will eventually apply this patch?

Meh, I've been pondering this. The merge window is open right now, go ahead and resubmit according to [1]. Make sure to put the Message-Id:
of the original patch email you sent as an In-Reply-To:, and mention in the changelog that this 'v2' follows [1] for patch submissions.

Also, make sure Prafulla and Albert are in the CC if they aren't already.

I think the original will get lost in the shuffle because it doesn't have [PATCH 1/1] in the subject line.

Quoted 6 lines

You are also working on upstreaming dreamplug support into Linux, is that right? What is the current state of the art? I'm currently using a 3.1 kernel + patches from
http://people.debian.org/~zumbi/dreamplug/patches/ . (BTW feel free to reply off list or switch to e.g. linux-arm-kernel since I guess this is strict speaking off-topic here).

I use this [2] for 3.1, since it uses the same nor flash partitioning as u-boot does. This way, you could edit the u-boot config from userspace or upgrade u-boot from userspace.

hth,

Jason.

[1] http://www.denx.de/wiki/U-Boot/Patches
[2] http://permalink.gmane.org/gmane.linux.ports.arm.kernel/143116

Tested-by
#6 lore raw

[U-Boot] Bug#655102: v2011.12 and later do not boot on dreamplug.

In reply to Ian Campbell
Quoted 61 lines · Ian Campbell
Quoted 27 lines · Ian Campbell

v2011.12 hangs on boot on my dreamplug with:

        U-Boot 2011.12-dirty (Jan 08 2012 - 15:16:44)
        Marvell-DreamPlug
        
        SoC:   Kirkwood 88F6281_A1
        DRAM:  512 MiB
        WARNING: Caches not enabled

I bisected it down to:
commit ca4b55800ed74207c35271bf7335a092d4955416
Author: Heiko Schocher <[email protected]>
Date: Wed Nov 9 20:06:23 2011 +0000

arm, arm926ejs: always do cpu critical inits

always do the cpu critical inits in cpu_init_crit, and only jump to lowlevel_init, if CONFIG_SKIP_LOWLEVEL_INIT is not defined.

Cc Albert ARIBAUD <[email protected]>
Cc Wolfgang Denk <[email protected]>
Cc Sandeep Paulraj <[email protected]>
Cc Tom Rini <[email protected]>
Cc Christian Riesch <[email protected]>
Quoted 6 lines

and in particular the line

	orr	r0, r0, #0x00000002	/* set bit 2 (A) Align */

Commenting out just that one line causes things to work. Is the error setting this bit or is it that there is a bug somewhere else which prevents us setting this bit?

Seem that the latter is the case. The following fixes it for me.

(BTW, my mails to u-boot@ seem to be getting moderated, even though I am subscribed, is that normal?)

8<-------------------------------------------------------------

From d6bc6e1a4f49314577e0be9af3cd020078593fdb Mon Sep 17 00:00:00 2001
From: Ian Campbell <[email protected]>
Date: Sun, 8 Jan 2012 19:44:38 +0000
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked because alignment aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical inits" turned on alignment aborts and uncovered this latent problem.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +0 -0
index dfe542d..db8ba8b 100644

drivers/spi/kirkwood_spi.c struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, · line 72

Quoted 8 lines
drivers/spi/kirkwood_spi.c +1 -1
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
 	/* program mpp registers to select  SPI_CSn */
 	if (cs) {

we had also SPI problems on our km_kirkwood boards with u-boot v2011.12. This patch fixes it. Thanks! So:

Regards
Holger

#7 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

In reply to Ian Campbell

Problem appears to have been present since day one but masked because alignment aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical inits" turned on alignment aborts and uncovered this latent problem.

---
v2: Resending per patch submission guidelines.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
 	/* program mpp registers to select  SPI_CSn */
 	if (cs) {
Signature · 1 line
1.7.5.4
#8 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

Quoted 39 lines

-----Original Message-----
From: Ian Campbell [mailto:ijc at hellion.org.uk]
Sent: 12 January 2012 21:40
To: u-boot at lists.denx.de
Cc: Ian Campbell; Prafulla Wadaskar; Albert ARIBAUD
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked because alignment
aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical
inits" turned on alignment aborts and uncovered this latent problem.

---
v2: Resending per patch submission guidelines.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
 unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
 	/* program mpp registers to select  SPI_CSn */
Quoted 1 line

if (cs) {

Hi Ian
Thanks for the patch (resend :-) )
Actually it was in my pipeline.
I will pull this ASAP as well as other patches in my plate.

Regards..
Prafulla . ..

Quoted 2 lines

--
1.7.5.4

#9 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

Quoted 37 lines · Prafulla Wadaskar
Quoted 37 lines

-----Original Message-----
From: Ian Campbell [mailto:ijc at hellion.org.uk]
Sent: 12 January 2012 21:40
To: u-boot at lists.denx.de
Cc: Ian Campbell; Prafulla Wadaskar; Albert ARIBAUD
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked because alignment
aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical
inits" turned on alignment aborts and uncovered this latent problem.

---
v2: Resending per patch submission guidelines.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
 unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
Quoted 7 lines
Quoted 2 lines
drivers/spi/kirkwood_spi.c +0 -0
 	/* program mpp registers to select  SPI_CSn */

if (cs) {

Hi Ian
Thanks for the patch (resend :-) )
Actually it was in my pipeline.
I will pull this ASAP as well as other patches in my plate.

Thanks!

Ian.

Quoted 8 lines

Regards..
Prafulla . ..

Quoted 2 lines

--
1.7.5.4

Signature · 4 lines
Ian Campbell
Current Noise: Monster Magnet - Cry

A kid'll eat the middle of an Oreo, eventually.
#10 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

In reply to Prafulla Wadaskar
Quoted 37 lines · Prafulla Wadaskar
Quoted 37 lines

-----Original Message-----
From: Ian Campbell [mailto:ijc at hellion.org.uk]
Sent: 12 January 2012 21:40
To: u-boot at lists.denx.de
Cc: Ian Campbell; Prafulla Wadaskar; Albert ARIBAUD
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked because alignment
aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do cpu critical
inits" turned on alignment aborts and uncovered this latent problem.

---
v2: Resending per patch submission guidelines.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
drivers/spi/kirkwood_spi.c +1 -1
index dfe542d..db8ba8b 100644
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int bus,
 unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
Quoted 7 lines
Quoted 2 lines
drivers/spi/kirkwood_spi.c +0 -0
 	/* program mpp registers to select  SPI_CSn */

if (cs) {

Hi Ian
Thanks for the patch (resend :-) )
Actually it was in my pipeline.
I will pull this ASAP as well as other patches in my plate.

Ping?

This patch doesn't seem to be in git yet.

Ian.

Signature · 5 lines
Ian Campbell
Current Noise: Iron Monkey - 9 Joint Spiritual Whip

"Were there no women, men might live like gods."
		-- Thomas Dekker
#11 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

Quoted 60 lines

-----Original Message-----
From: Ian Campbell [mailto:ijc at hellion.org.uk]
Sent: 27 January 2012 22:04
To: Prafulla Wadaskar
Cc: u-boot at lists.denx.de; Albert ARIBAUD
Subject: RE: [PATCH] kirkwood_spi: correct access to irq_mask register

Quoted 9 lines · Prafulla Wadaskar
Quoted 9 lines

-----Original Message-----
From: Ian Campbell [mailto:ijc at hellion.org.uk]
Sent: 12 January 2012 21:40
To: u-boot at lists.denx.de
Cc: Ian Campbell; Prafulla Wadaskar; Albert ARIBAUD
Subject: [PATCH] kirkwood_spi: correct access to irq_mask register

Problem appears to have been present since day one but masked

because

Quoted 2 lines
Quoted 2 lines

alignment
aborts were not enabled. ca4b55800ed7 "arm, arm926ejs: always do

cpu

Quoted 2 lines
Quoted 2 lines

critical
inits" turned on alignment aborts and uncovered this latent

problem.

Quoted 12 lines
Quoted 12 lines

---
v2: Resending per patch submission guidelines.

---
 drivers/spi/kirkwood_spi.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Quoted 1 line

Review

Quoted 1 line
(quoted diff) +0 -0

b/drivers/spi/kirkwood_spi.c

Quoted 4 lines

drivers/spi/kirkwood_spi.c struct spi_slave *spi_setup_slave(unsigned int

Quoted 4 lines

index dfe542d..db8ba8b 100644

drivers/spi/kirkwood_spi.c +0 -0
@@ -66,7 +66,7 @@ struct spi_slave *spi_setup_slave(unsigned int

bus,

Quoted 7 lines
Quoted 7 lines
drivers/spi/kirkwood_spi.c +1 -1
 unsigned int cs,
 	debug("data = 0x%08x \n", data);
 
 	writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
-	writel(KWSPI_IRQMASK, spireg->irq_mask);
+	writel(KWSPI_IRQMASK, &spireg->irq_mask);
 
Quoted 7 lines
Quoted 2 lines
drivers/spi/kirkwood_spi.c +0 -0
 	/* program mpp registers to select  SPI_CSn */

if (cs) {

Hi Ian
Thanks for the patch (resend :-) )
Actually it was in my pipeline.
I will pull this ASAP as well as other patches in my plate.

Quoted 3 lines

Ping?

This patch doesn't seem to be in git yet.

Applied to u-boot-marvell.git master branch

Regards..
Prafulla . . .

#12 lore raw

PATCH 1/1 kirkwood_spi: correct access to irq_mask register

Quoted 4 lines · Prafulla Wadaskar

[...]

Quoted 1 line

Subject: RE: [PATCH] kirkwood_spi: correct access to irq_mask register

Applied to u-boot-marvell.git master branch

Many thanks!

Ian.

Signature · 4 lines
Ian Campbell


Encyclopedia for sale by father.  Son knows everything.