
On Mon, Apr 20, 2020 at 7:54 PM Bin Meng bmeng.cn@gmail.com wrote:
Hi Jagan,
On Mon, Apr 20, 2020 at 10:05 PM Jagan Teki jagan@amarulasolutions.com wrote:
U-Boot SPL 2020.04-rc4-g0b8ed9b8b6 (Apr 20 2020 - 18:31:50 +0530) Trying to boot from MMC1
This log seems to be SD boot, not SPI boot
Wrong log added, my bad.
U-Boot 2020.04-rc4-g0b8ed9b8b6 (Apr 20 2020 - 18:31:50 +0530)
CPU: rv64imafdc Model: SiFive HiFive Unleashed A00 DRAM: 8 GiB MMC: spi@10050000:mmc@0: 0 Loading Environment from SPI Flash... SF: Detected is25wp256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB *** Warning - bad CRC, using default environment
In: serial@10010000 Out: serial@10010000 Err: serial@10010000 Net: eth0: ethernet@10090000 Hit any key to stop autoboot: 0
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
.../dts/hifive-unleashed-a00-u-boot.dtsi | 12 ++++++ board/sifive/fu540/fu540.c | 3 ++ configs/sifive_fu540_spi_defconfig | 26 +++++++++++ doc/board/sifive/fu540.rst | 43 +++++++++++++++++++ 4 files changed, 84 insertions(+) create mode 100644 configs/sifive_fu540_spi_defconfig
diff --git a/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi b/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi index 0162f59f60..f5a208398f 100644 --- a/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi +++ b/arch/riscv/dts/hifive-unleashed-a00-u-boot.dtsi @@ -12,6 +12,10 @@ spi2 = &qspi2; };
config {
u-boot,spl-payload-offset = <0x105000>; /* @ 1044KB */
Can we add some comments about how this is chosen?
Yes on the doc file of loader2 sector start. Yes will make it more verbose if it isn't sufficient.
};
hfclk { u-boot,dm-spl; };
@@ -21,6 +25,14 @@ }; };
+&qspi0 {
u-boot,dm-spl;
flash@0 {
u-boot,dm-spl;
};
+};
&qspi2 { mmc@0 { u-boot,dm-spl; diff --git a/board/sifive/fu540/fu540.c b/board/sifive/fu540/fu540.c index 131fee8898..84dd20e29d 100644 --- a/board/sifive/fu540/fu540.c +++ b/board/sifive/fu540/fu540.c @@ -129,6 +129,9 @@ void board_boot_order(u32 *spl_boot_list) u32 boot_devices[] = { #ifdef CONFIG_SPL_MMC_SUPPORT BOOT_DEVICE_MMC1, +#endif +#ifdef CONFIG_SPL_SPI_LOAD
BOOT_DEVICE_SPI,
#endif };
diff --git a/configs/sifive_fu540_spi_defconfig b/configs/sifive_fu540_spi_defconfig new file mode 100644 index 0000000000..24d0a9338e --- /dev/null +++ b/configs/sifive_fu540_spi_defconfig @@ -0,0 +1,26 @@ +CONFIG_RISCV=y +CONFIG_ENV_SIZE=0x20000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_TARGET_SIFIVE_FU540=y +CONFIG_ARCH_RV64I=y +CONFIG_RISCV_SMODE=y +CONFIG_DISTRO_DEFAULTS=y +CONFIG_FIT=y +CONFIG_MISC_INIT_R=y +CONFIG_DISPLAY_CPUINFO=y +CONFIG_DISPLAY_BOARDINFO=y +CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_DM_MTD=y +CONFIG_SPL_SEPARATE_BSS=y +CONFIG_SPL=y +CONFIG_SPL_DM_SEQ_ALIAS=y +CONFIG_SPL_DM_SPI=y +CONFIG_SPL_SPI_FLASH_SUPPORT=y +CONFIG_SPL_SPI_SUPPORT=y +CONFIG_SPL_SPI_LOAD=y +CONFIG_SPL_YMODEM_SUPPORT=y +CONFIG_SPL_CLK=y +CONFIG_SPL_GPIO_SUPPORT=y +CONFIG_SYS_MALLOC_F_LEN=0x3000 +CONFIG_SIFIVE_FU540_DDR=y
These config options should be ordered by "make savedefconfg"
Yes, I just sent it as the first series. Hoping to reuse existing defconfig if we have any way to detect the boot mode at runtime like reading MSEL.
Jagan.