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 <aford...@gmail.com>
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 <aford...@gmail.com>
    [trini: Add mach-at91 to the list of consolidations]
    Signed-off-by: Tom Rini <tr...@konsulko.com>

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 <judge.pack...@gmail.com>
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 <judge.pack...@gmail.com>
    Reviewed-by: Stefan Roese <s...@denx.de>
    Signed-off-by: Stefan Roese <s...@denx.de>

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

Reply via email to