Package: u-boot
Version: 2019.01+dfsg-1
Severity: important
Tags: upstream
Dear Maintainer,
I flashed u-boot 2019.01+dfsg-1 on my Dreamplug. I found that u-boot was
unable to detect the SPI flash on the device (and thus could not read
the u-boot environment). It could also not detect the usb storage.
On booting, the following output is observed:
------------8<------------
U-Boot 2019.01+dfsg-1 (Jan 15 2019 - 00:36:19 +0000)
Marvell-DreamPlug
oC: Kirkwood 88F6281_A1
DRAM: 512 MiB
Loading Environment from SPI Flash... Invalid bus 0 (err=-19)
*** Warning - spi_flash_probe_bus_cs() failed, using default environment
In: serial
Out: serial
Err: serial
Net: egiga0
Error: egiga0 address not set.
, egiga1
Error: egiga1 address not set.
88E1116 Initialized on egiga0
88E1116 Initialized on egiga1
IDE: ide_preinit failed
Hit any key to stop autoboot: 0
=> usb start
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008c80
EHCI timed out on TD - token=0x80008c80
EHCI timed out on TD - token=0x80008c80
ERROR: NOT USB_CONFIG_DESC a3
EHCI timed out on TD - token=0x80008d80
EHCI timed out on TD - token=0x80008c80
EHCI timed out on TD - token=0x80008c80
2 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
------------8<------------
I then compiled u-boot from the upstream git tree and tried various
versions. The results are as follows:
v2018.01 all works
v2018.07 all works
v2018.09 all works
v2018.11 USB fails
v2019.01 SPI flash fails, USB fails
I then bisected both issues. The USB issue was caused by the following
commit:
commit 93b283d49f933f95f3a6f40762936f454ac655a8
Author: Adam Ford <[email protected]>
Date: Thu Aug 16 13:23:11 2018 -0500
ARM: CPU: arm926ejs: Consolidate cache routines to common file
Four different boards had different options for enabling cache
that were virtually all the same. This consolidates these
common functions into arch/arm/cpu/arm926ejs/cache.c
This also has the positive side-effect of enabling cache on
the Davinci (da850) boards.
Signed-off-by: Adam Ford <[email protected]>
[trini: Add mach-at91 to the list of consolidations]
Signed-off-by: Tom Rini <[email protected]>
I used the following patch to temporarily fix up the issue (I am no
expert on ARM so cannot say whether this is in any way correct):
iff --git a/arch/arm/mach-kirkwood/cpu.c b/arch/arm/mach-kirkwood/cpu.c
index d54de53f31..8a065d73ae 100644
--- a/arch/arm/mach-kirkwood/cpu.c
+++ b/arch/arm/mach-kirkwood/cpu.c
@@ -291,7 +291,6 @@ int arch_misc_init(void)
temp |= (1 << 22);
writefr_extra_feature_reg(temp);
- icache_enable();
/* Change reset vector to address 0x0 */
temp = get_cr();
set_cr(temp & ~CR_V);
diff --git a/include/configs/dreamplug.h b/include/configs/dreamplug.h
index f4d717213c..6348935c68 100644
--- a/include/configs/dreamplug.h
+++ b/include/configs/dreamplug.h
@@ -79,4 +79,6 @@
#define CONFIG_SYS_ATA_IDE0_OFFSET MV_SATA_PORT0_OFFSET
#endif /*CONFIG_MVSATA_IDE*/
+#define CONFIG_SYS_DCACHE_OFF
+
#endif /* _CONFIG_DREAMPLUG_H */
I then bisected the SPI flash issue, and found it was caused by the
following commit:
commit 6aaf76beb131c2ff2b7184c2d63c2c63e5ab339c
Author: Chris Packham <[email protected]>
Date: Wed Nov 21 22:22:23 2018 +1300
arm: kirkwood: configs: dreamplug: Convert to DM_SPI
Enable CONFIG_DM_SPI=y and CONFIG_DM_SPI_FLASH=y in the defconfig.
Signed-off-by: Chris Packham <[email protected]>
Reviewed-by: Stefan Roese <[email protected]>
Signed-off-by: Stefan Roese <[email protected]>
I don't know enough about u-boot to easily diagnose this issue.
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: armel (armv5tel)
Kernel: Linux 4.19.7+
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)
-- no debconf information