Hi Matwey,

On 2/24/25 3:37 PM, Matwey V. Kornilov wrote:
пн, 24 февр. 2025 г. в 13:54, Quentin Schulz <quentin.sch...@cherry.de>:

Hi Matwey,

On 2/24/25 10:57 AM, Matwey V. Kornilov wrote:
Hi,

I have an Allwinner based board with manually soldered 16MB SPI Flash.
I am trying to place u-boot into the flash and need some help so far.
I have already updated the board DTS file and checked that the Linux
kernel provides me with a /dev/mtd0 device which is writable and
readable.

I enable the following config options additionally to the board configuration:
CONFIG_SPL_SPI_FLASH_SUPPORT,
CONFIG_SPL_SPI,
CONFIG_SPL_MTD_SUPPORT,
CONFIG_SPL_SPI_FLASH_MTD,
CONFIG_SPL_SPI_LOAD.

Make sure the driver for the SPI controller on your SoC also is enabled
in SPL.

I am not sure that I chose every relevant option.

However, I see the following message from the bootloader:

U-Boot SPL 2024.01-rc1-45362-g94a35b52f78-dirty (Feb 24 2025 - 12:43:35 +0300)
mxstatus=0xc0408000 mhcr=0x0000010b mcor=0x00000003 mhint=0x00004000
Trying to boot from SPI
Invalid bus 0 (err=-19)
SPI probe failed.
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Are there any obvious things I missed? How could I debug this?


Can you check your SPL DTB has the SPI bus and flash node?

dtc -I dtb -O dts spl/u-boot-spl.dtb

If not, you're missing a <your-board>-u-boot.dtsi in arch/arm/dts/ where
the SPI bus (and most of what it is needed to enable the controller,
power, clock, pinmux, ...) and the flash node has the appropriate
bootph- property. I believe it should be bootph-pre-ram for SPL,
according to scripts/Makefile.lib (fdtgrep_props).

Thanks. This indeed helped me, while no success yet:

U-Boot SPL 2024.01-rc1-45362-g94a35b52f78-dirty (Feb 24 2025 - 17:31:47 +0300)
mxstatus=0xc0408000 mhcr=0x0000010b mcor=0x00000003 mhint=0x00004000
Trying to boot from SPI
fdt_fixup_memory_banks: FDT_ERR_BADMAGIC

The code seems to be wanting to load the DTB to fix it up. I do not know if it's U-Boot proper's or U-Boot SPL's it's after. A memory address might be misconfigured in the config or include file somewhere (not in the environment likely as I would assume no environemtn in SPL just yet), maybe the "wrong" U-Boot proper was flashed (e.g. one missing the device tree) or at an unexpected offset.

Cheers,
Quentin

Reply via email to