[PATCH v2 0/2] Fix boot from SPI flash on Synology DS414

Booting from SPI flash on Synology DS414 (or DS214+) devices has been broken for quite some time now. As far as I can tell this is due to following commits:
3c265bbe4d rm: sync armada-xp dts files from Linux 5.0 7ddf8cfb0d kwbimage: Rename CONFIG_SYS_SPI_U_BOOT_OFFS to CONFIG_SYS_U_BOOT_OFFS
Changes for v2: - Moved U-Boot-specific properties to *-u-boot.dtsi file - Tweaked commit message
Ezra Buehler (2): arm: mvebu: ds414: add u-boot,dm-pre-reloc to spi0 arm: mvebu: ds414: define CONFIG_SYS_U_BOOT_OFFS
arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi | 9 +++++++++ include/configs/ds414.h | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi
-- 2.26.2

Without this U-Boot-specific property, booting on the Synology DS414 (or DS214+) fails in SPL. The spi0 DT node is not scanned, as a result the SPI flash cannot be found.
Signed-off-by: Ezra Buehler ezra@easyb.ch ---
Changes for v2: - Moved U-Boot-specific properties to *-u-boot.dtsi file
arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi
diff --git a/arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi b/arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi new file mode 100644 index 0000000000..22fae16c9d --- /dev/null +++ b/arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: GPL-2.0+ + +&spi0 { + u-boot,dm-pre-reloc; + + spi-flash@0 { + u-boot,dm-pre-reloc; + }; +}; -- 2.26.2

On 09.05.20 22:05, Ezra Buehler wrote:
Without this U-Boot-specific property, booting on the Synology DS414 (or DS214+) fails in SPL. The spi0 DT node is not scanned, as a result the SPI flash cannot be found.
Signed-off-by: Ezra Buehler ezra@easyb.ch
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

Without CONFIG_SYS_U_BOOT_OFFS set to CONFIG_SYS_SPI_U_BOOT_OFFS, U-Boot will be located at address 0x16000. But, SPL will try to load the payload from 0x24000 causing the boot to hang.
Signed-off-by: Ezra Buehler ezra@easyb.ch ---
Changes for v2: - Tweaked commit message
include/configs/ds414.h | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/include/configs/ds414.h b/include/configs/ds414.h index e3693767b6..b179b99468 100644 --- a/include/configs/ds414.h +++ b/include/configs/ds414.h @@ -87,7 +87,10 @@ #define CONFIG_SPL_STACK (0x40000000 + ((192 - 16) << 10)) #define CONFIG_SPL_BOOTROM_SAVE (CONFIG_SPL_STACK + 4)
+#if defined(CONFIG_MVEBU_SPL_BOOT_DEVICE_SPI) /* SPL related SPI defines */ +#define CONFIG_SYS_U_BOOT_OFFS CONFIG_SYS_SPI_U_BOOT_OFFS +#endif
/* DS414 bus width is 32bits */ #define CONFIG_DDR_32BIT -- 2.26.2

On 09.05.20 22:05, Ezra Buehler wrote:
Without CONFIG_SYS_U_BOOT_OFFS set to CONFIG_SYS_SPI_U_BOOT_OFFS, U-Boot will be located at address 0x16000. But, SPL will try to load the payload from 0x24000 causing the boot to hang.
Signed-off-by: Ezra Buehler ezra@easyb.ch
Reviewed-by: Stefan Roese sr@denx.de
Thanks, Stefan

On Sun, 10 May 2020, 8:05 AM Ezra Buehler, ezra@easyb.ch wrote:
Booting from SPI flash on Synology DS414 (or DS214+) devices has been broken for quite some time now. As far as I can tell this is due to following commits:
3c265bbe4d rm: sync armada-xp dts files from Linux 5.0 7ddf8cfb0d kwbimage: Rename CONFIG_SYS_SPI_U_BOOT_OFFS to CONFIG_SYS_U_BOOT_OFFS
Changes for v2:
- Moved U-Boot-specific properties to *-u-boot.dtsi file
- Tweaked commit message
Ezra Buehler (2): arm: mvebu: ds414: add u-boot,dm-pre-reloc to spi0 arm: mvebu: ds414: define CONFIG_SYS_U_BOOT_OFFS
Both look good to me.
Reviewed-by: Chris Packham judge.packham@gmail.com
arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi | 9 +++++++++ include/configs/ds414.h | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi
-- 2.26.2

On 09.05.20 22:05, Ezra Buehler wrote:
Booting from SPI flash on Synology DS414 (or DS214+) devices has been broken for quite some time now. As far as I can tell this is due to following commits:
3c265bbe4d rm: sync armada-xp dts files from Linux 5.0 7ddf8cfb0d kwbimage: Rename CONFIG_SYS_SPI_U_BOOT_OFFS to CONFIG_SYS_U_BOOT_OFFS
Changes for v2:
- Moved U-Boot-specific properties to *-u-boot.dtsi file
- Tweaked commit message
Ezra Buehler (2): arm: mvebu: ds414: add u-boot,dm-pre-reloc to spi0 arm: mvebu: ds414: define CONFIG_SYS_U_BOOT_OFFS
arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi | 9 +++++++++ include/configs/ds414.h | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 arch/arm/dts/armada-xp-synology-ds414-u-boot.dtsi
Applied to u-boot-marvell/master
Thanks, Stefan
participants (3)
-
Chris Packham
-
Ezra Buehler
-
Stefan Roese