[U-Boot] [PATCH] ARM: kirkwood: remove obsolete call to icache_enable
Commit 93b283d49f93 ("ARM: CPU: arm926ejs: Consolidate cache routines to common file") changed cache setup for Kirkwood such that icache_enable() is now called from enable_caches() which is called from initr_caches() which is in the list of functions in init_sequence_r[] prior to arch_misc_init(). This means the call to icache_enable() in arch_misc_init() is no longer required, so remove it. Signed-off-by: Leigh Brown --- diff --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); ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2] ARM: kirkwood: disable dcache for Kirkwood boards
Hi Stefan, On 2019-03-19 08:04, Stefan Roese wrote: On 19.03.19 09:00, Chris Packham wrote: On Tue, 19 Mar 2019, 8:39 PM Stefan Roese, <mailto:s...@denx.de>> wrote: On 18.03.19 08:51, Chris Packham wrote: > Prior to commit 93b283d49f93 ("ARM: CPU: arm926ejs: Consolidate cache > routines to common file") the kirkwood boards didn't have and dcache > support. The network and usb drivers rely on this. Set > CONFIG_SYS_DCACHE_OFF in the Kirkwood specific config.h. > > Reported-by: Leigh Brown <mailto:le...@solinno.co.uk>> > Signed-off-by: Chris Packham <mailto:judge.pack...@gmail.com>> > --- > > Changes in v2: > - expand the comment in config.h to provide more info > > arch/arm/mach-kirkwood/include/mach/config.h | 6 ++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/arm/mach-kirkwood/include/mach/config.h b/arch/arm/mach-kirkwood/include/mach/config.h > index fcd903887bff..aea60688c2d3 100644 > --- a/arch/arm/mach-kirkwood/include/mach/config.h > +++ b/arch/arm/mach-kirkwood/include/mach/config.h > @@ -26,6 +26,12 @@ > #define CONFIG_KIRKWOOD_EGIGA_INIT /* Enable GbePort0/1 for kernel */ > #define CONFIG_KIRKWOOD_RGMII_PAD_1V8 /* Set RGMII Pad voltage to 1.8V */ > #define CONFIG_KIRKWOOD_PCIE_INIT /* Enable PCIE Port0 for kernel */ > +/* > + * Disable the dcache. Currently the network driver (mvgbe.c) and USB > + * EHCI driver (ehci-marvell.c) and possibly others rely on the data > + * cache being disabled. > + */ > +#define CONFIG_SYS_DCACHE_OFF While collecting the queued fixes for the upcoming release, I do have one question regarding this Kirkwood cache issue (I don't have such a board here, so I can't test anything): Do we need this patch applied [1], if the patch from this thread is applied [2]? Thanks, Stefan [1] http://patchwork.ozlabs.org/patch/1048863/ [2] http://patchwork.ozlabs.org/patch/1057716/ I'm pretty sure you just need [2]. I've tested with just that on it's own and Ethernet works on the kirkwood db. Functionally it's the same change as Michael's just for more boards. Leigh, can you see if [2] above works for you? Patch [1] from Leigh also removes icache_enable() in arch/arm/mach-kirkwood/cpu.c. Not sure if this is still needed? Did any of you run into issues with [1] not applied but with CONFIG_SYS_DCACHE_OFF set? When the cache consolidation patch was applied, it added code to enable the icache much earlier in the process. Therefore, this line of code to enable it became superfluous (assuming enabling the icache multiple times does nothing). I'd suggest removing it if you agree with that statement, to reduce possible future confusion. Thanks, Stefan Regards, Leigh. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v3 00/12] ARM: kirkwood: migrate to DM_USB
Hi Chris, On 2019-03-13 07:46, Chris Packham wrote: This is my initial series to convert the kirkwood platforms to DM_USB. I've been testing on an old kirkwood eval board which the first patch adds. I'd really appreciate some testing on other kirkwood platforms. Changes in v3: - incorporate review feedback (except for DM_SERIAL) from Stefan - merge adjacent #ifndefs Chris Packham (12): ARM: kirkwood: add db-88f6281-bp board ARM: kirkwood: rename KW_CPU_WIN_BASE to MVEBU_CPU_WIN_BASE ARM: kirkwood: remove KW_DEFADR_PCI_IO_REMAP ARM: kirkwood: switch to using mvebu mbus ARM: kirkwood: remove kw_config_adr_windows ARM: kirkwood: enable CONFIG_DM_USB on db-88f6281-bp ARM: kirkwood: enable CONFIG_DM_USB for {dream,guru,sheeva}plug ARM: kirkwood: enable CONFIG_DM_USB for dns325 ARM: kirkwood: enable CONFIG_DM_USB for ds109 ARM: kirkwood: enable CONFIG_DM_USB for goflexhome ARM: kirkwood: enable CONFIG_DM_USB for lschlv2 and lsxhl ARM: kirkwood: enable CONFIG_DM_USB for nas220 [...] Still working fine on Dreamplug on top of the cache and SPI fixes. Tested-by: Leigh Brown Regards, Leigh. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH v2 00/12] ARM: kirkwood: migrate to DM_USB
Hi Chris, On 2019-03-07 08:27, Chris Packham wrote: This is my series to convert the kirkwood platforms to DM_USB. I've been testing on an old kirkwood eval board which patch 1 adds. I'd really appreciate some testing on other kirkwood platforms. Chris Packham (12): ARM: kirkwood: add db-88f6281-bp board ARM: kirkwood: rename KW_CPU_WIN_BASE to MVEBU_CPU_WIN_BASE ARM: kirkwood: remove KW_DEFADR_PCI_IO_REMAP ARM: kirkwood: switch to using mvebu mbus ARM: kirkwood: remove kw_config_adr_windows ARM: kirkwood: enable CONFIG_DM_USB on db-88f6281-bp ARM: kirkwood: enable CONFIG_DM_USB for {dream,guru,sheeva}plug ARM: kirkwood: enable CONFIG_DM_USB for dns325 ARM: kirkwood: enable CONFIG_DM_USB for ds109 ARM: kirkwood: enable CONFIG_DM_USB for goflexhome ARM: kirkwood: enable CONFIG_DM_USB for lschlv2 and lsxhl ARM: kirkwood: enable CONFIG_DM_USB for nas220 arch/arm/dts/kirkwood-db-88f6281-spi.dts| 48 + arch/arm/dts/kirkwood-db-88f6281.dts| 26 + arch/arm/dts/kirkwood-db.dtsi | 94 + arch/arm/mach-kirkwood/Kconfig | 4 + arch/arm/mach-kirkwood/cpu.c| 73 - arch/arm/mach-kirkwood/include/mach/cpu.h | 13 ++- arch/arm/mach-kirkwood/include/mach/soc.h | 2 +- arch/arm/mach-mvebu/Makefile| 1 + arch/arm/mach-mvebu/mbus.c | 6 ++ board/Marvell/db-88f6281-bp/Kconfig | 12 +++ board/Marvell/db-88f6281-bp/MAINTAINERS | 10 ++ board/Marvell/db-88f6281-bp/Makefile| 3 + board/Marvell/db-88f6281-bp/db-88f6281-bp.c | 103 ++ board/Marvell/db-88f6281-bp/kwbimage.cfg| 36 +++ configs/db-88f6281-bp-nand_defconfig| 54 ++ configs/db-88f6281-bp-spi_defconfig | 55 ++ configs/dns325_defconfig| 2 + configs/dreamplug_defconfig | 2 + configs/ds109_defconfig | 2 + configs/goflexhome_defconfig| 2 + configs/guruplug_defconfig | 2 + configs/lschlv2_defconfig | 2 + configs/lsxhl_defconfig | 2 + configs/nas220_defconfig| 2 + configs/sheevaplug_defconfig| 1 + include/configs/db-88f6281-bp.h | 109 26 files changed, 608 insertions(+), 58 deletions(-) create mode 100644 arch/arm/dts/kirkwood-db-88f6281-spi.dts create mode 100644 arch/arm/dts/kirkwood-db-88f6281.dts create mode 100644 arch/arm/dts/kirkwood-db.dtsi create mode 100644 board/Marvell/db-88f6281-bp/Kconfig create mode 100644 board/Marvell/db-88f6281-bp/MAINTAINERS create mode 100644 board/Marvell/db-88f6281-bp/Makefile create mode 100644 board/Marvell/db-88f6281-bp/db-88f6281-bp.c create mode 100644 board/Marvell/db-88f6281-bp/kwbimage.cfg create mode 100644 configs/db-88f6281-bp-nand_defconfig create mode 100644 configs/db-88f6281-bp-spi_defconfig create mode 100644 include/configs/db-88f6281-bp.h I have tested your patches on my Dreamplug on top of the SPI patch and my patch to fix the cache setup. It looks to be working fine. It boots from the SD card which is connected via USB. Are there any additional tests you recommend? Tested-by: Leigh Brown MKIMAGE u-boot.kwb = WARNING == This board does not use CONFIG_DM_SCSI. Please update the storage controller to use CONFIG_DM_SCSI before the v2019.07 release. Failure to update by the deadline may result in board removal. See doc/driver-model/MIGRATION.txt for more info. CFGCHK u-boot.cfg leigh@dish:/devel/git-trees/dreamplug/u-boot$ tools/kwboot -b u-boot.kwb -p -B 115200 -t /dev/ttyUSB0 Sending boot message. Please reboot the target...\ Sending boot image... 0 % [..] 2 % [..] 4 % [..] 7 % [..] 9 % [..] 12 % [..] 14 % [..] 16 % [..] 19 % [..] 21 % [..] 24 % [..] 26 % [..] 28 % [..] 31
Re: [U-Boot] [PATCH] ARM: kirkwood: add spi0 alias for dreamplug
Hi Chris, On 2019-02-28 19:00, Chris Packham wrote: > On Thu, 28 Feb 2019 22:13 Leigh Brown, wrote: > >> Hi Chris, >> >> I tested together with my own patch. It fixes the issue, thanks very >> much! > > Great. Thanks again for the bug report. > > Slightly related I've got a series of changes for USB on kirkwood. Would you > be in a position to take them for a spin? Sure, happy to. Regards, Leigh. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] ARM: kirkwood: add spi0 alias for dreamplug
Hi Chris, I tested together with my own patch. It fixes the issue, thanks very much! Tested-by: Leigh Brown Output: U-Boot 2019.04-rc2-00134-g783e66816d-dirty (Feb 28 2019 - 08:27:16 +) Marvell-DreamPlug SoC: Kirkwood 88F6281_A1 DRAM: 512 MiB Loading Environment from SPI Flash... SF: Detected mx25l1606e with page size 256 Bytes, erase size 4 KiB, total 2 MiB OK In:serial Out: serial Err: serial Net: egiga0, egiga1 88E1116 Initialized on egiga0 88E1116 Initialized on egiga1 IDE: ide_preinit failed Hit any key to stop autoboot: 0 starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... 4 USB Device(s) found scanning usb for storage devices... Device NOT ready Request Sense returned 02 3A 00 1 Storage Device(s) found 1879928 bytes read in 130 ms (13.8 MiB/s) 9949 bytes read in 40 ms (242.2 KiB/s) 2746404 bytes read in 163 ms (16.1 MiB/s) ## Booting kernel from Legacy Image at 0600 ... Image Name: uImage-4.19.7+ Created: 2018-12-06 14:10:50 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size:1879864 Bytes = 1.8 MiB Load Address: 8000 Entry Point: 8000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 0660 ... Image Name: uInitrd-4.19.7+ Created: 2018-12-06 14:10:50 UTC Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size:2746340 Bytes = 2.6 MiB Load Address: Entry Point: Verifying Checksum ... OK ## Flattened Device Tree blob at 0640 Booting using the fdt blob at 0x640 Loading Kernel Image ... OK Loading Ramdisk to 0fd61000, end 07e4 ... OK Loading Device Tree to 0fd5b000, end 0fd606dc ... OK Starting kernel ... On 2019-02-28 07:53, Chris Packham wrote: The conversion to DM_SPI managed to break accessing the environment on dreamplug. This is because the environment code relies on being to able to select the SPI device based on the sequence number. Add an alias so that the spi0 bus gets sequence number 0. Reported-by: Leigh Brown Signed-off-by: Chris Packham --- Leigh, Could you test this on your system for me. I'm only able to compile test this myself. arch/arm/dts/kirkwood-dreamplug.dts | 4 1 file changed, 4 insertions(+) diff --git a/arch/arm/dts/kirkwood-dreamplug.dts b/arch/arm/dts/kirkwood-dreamplug.dts index a647a65c20a0..ccd74dd7fb33 100644 --- a/arch/arm/dts/kirkwood-dreamplug.dts +++ b/arch/arm/dts/kirkwood-dreamplug.dts @@ -18,6 +18,10 @@ stdout-path = }; + aliases { + spi0 = + }; + ocp@f100 { pinctrl: pin-controller@1 { pmx_led_bluetooth: pmx-led-bluetooth { Regards, Leigh. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] Commit "arm: kirkwood: configs: dreamplug: Convert to DM_SPI" breaks u-boot on Dreamplug
Hello, Vagrant Cascadian asked for people to test the version of u-boot packaged for Debian Buster. I tested u-boot on my Dreamplug and found it was not working correctly. I raised a bug for Debian[1] but I have also tested with the mainline version of u-boot and found the same issues. This is the second issue that I found, and it causes u-boot to not detect the SPI flash on the system. I bisected the issue to the following commit: commit 6aaf76beb131c2ff2b7184c2d63c2c63e5ab339c Author: Chris Packham 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 Reviewed-by: Stefan Roese Signed-off-by: Stefan Roese The error manifests itself as follows: U-Boot 2019.01+dfsg-1 (Jan 15 2019 - 00:36:19 +) Marvell-DreamPlug SoC: 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 A successful boot looks more like this: U-Boot 2016.11+dfsg1-4 (Mar 27 2017 - 18:39:51 +) Marvell-DreamPlug SoC: Kirkwood 88F6281_A1 SPI: ready DRAM: 512 MiB WARNING: Caches not enabled SF: Detected MX25L1605D with page size 256 Bytes, erase size 64 KiB, total 2 MiB Unfortunately, I don't know where to start to diagnose the issue. Could anyone provide any pointers? Happy to test any suggestions. Regards, Leigh. -- [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923379 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] Commit "ARM: CPU: arm926ejs: Consolidate cache routines to common file" breaks u-boot on Dreamplug
Hi Adam, Thanks very much for your response. On 2019-02-27 12:50, Adam Ford wrote: On Wed, Feb 27, 2019 at 5:32 AM Leigh Brown wrote: Hello, Vagrant Cascadian asked for people to test the version of u-boot packaged for Debian Buster. I tested u-boot on my Dreamplug and found it was not working correctly. I raised a bug for Debian[1] but I have also tested with the mainline version of u-boot and found the same issues. The first issue is that the following commit caused u-boot to no longer be able to access usb storage on the Dreamplug: commit 93b283d49f933f95f3a6f40762936f454ac655a8 Author: Adam Ford Date: Thu Aug 16 13:23:11 2018 -0500 Sorry about that. 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 [trini: Add mach-at91 to the list of consolidations] Signed-off-by: Tom Rini I don't have much knowledge of ARM caching, but the following patch makes it work again on my Dreamplug. I am not that familiar with the ARM caching either, I was just hoping to enable it on the da850 board and compared the various code chunks between ARM 926 boards and noticed a common thread. Tom took it and added some more. Okay. Hopefully Tom can comment on my proposed fixes. diff --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); #ifndef CONFIG_SYS_ICACHE_OFF - icache_enable(); #endif Instead of commenting out that line, try defining CONFIG_SYS_ICACHE_OFF in your header like you did for the CONFIG_SYS_DCACHE_OFF and encapsulate the function call with ifdef's so any other kirkwood processors can enable/disable it independently. The reason I removed that line is because icache_enable() is called from enable_caches() which is called from initr_caches() which is in the list of functions in init_sequence_r[] prior to arch_misc_init(). In other words, it will already have been called by then if CONFIG_SYS_ICACHE_OFF is not set. Does that make sense? /* 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_OFFSETMV_SATA_PORT0_OFFSET #endif /*CONFIG_MVSATA_IDE*/ +#define CONFIG_SYS_DCACHE_OFF #define CONFIG_SYS_ICACHE_OFF The reason I have not done this is because the Kirkwood arch_misc_init() function was already unconditionally enabling the instruction cache, so we want to retain that behaviour - I think. I hope that makes sense. + #endif /* _CONFIG_DREAMPLUG_H */ I'd be grateful if someone could take a look. If you need me to do any testing or provide any more information, please let me know. I found another issue (documented in the same bug). I'll send a separate email about that. Regards, Leigh. -- [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923379 Regards, Leigh. ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] Commit "ARM: CPU: arm926ejs: Consolidate cache routines to common file" breaks u-boot on Dreamplug
Hello, Vagrant Cascadian asked for people to test the version of u-boot packaged for Debian Buster. I tested u-boot on my Dreamplug and found it was not working correctly. I raised a bug for Debian[1] but I have also tested with the mainline version of u-boot and found the same issues. The first issue is that the following commit caused u-boot to no longer be able to access usb storage on the Dreamplug: commit 93b283d49f933f95f3a6f40762936f454ac655a8 Author: Adam Ford 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 [trini: Add mach-at91 to the list of consolidations] Signed-off-by: Tom Rini I don't have much knowledge of ARM caching, but the following patch makes it work again on my Dreamplug. diff --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'd be grateful if someone could take a look. If you need me to do any testing or provide any more information, please let me know. I found another issue (documented in the same bug). I'll send a separate email about that. Regards, Leigh. -- [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923379diff --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 */ ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot