[PATCH RFC u-boot-mvebu 0/6] arm: mvebu: Fix boot mode detection

Martin Rowe martin.p.rowe at gmail.com
Sun Mar 5 05:21:42 CET 2023

On Sat, 4 Mar 2023 at 10:51, Pali Rohár <pali at kernel.org> wrote:

> Improve code for checking strapping pins which specifies boot mode source.
> Martin, could you test if Clearfog can be still configured into UART
> booting mode via HW switches and if it still works correctly? First
> patch is reverting UART related commit for Clearfog which I think it not
> needed anymore.

On Clearfog the logic in the CONFIG_ARMADA_38X ifdef before the switch that
you refactored in cpu.c/get_boot_device is all that gets processed. It
decides there is an error and returns BOOT_DEVICE_UART, probably because of
the invalid boot workaround for broken UART selection that you identified.

UART only works if I use the clearfog_spi_defconfig or if I select
CONFIG_MVEBU_SPL_BOOT_DEVICE_UART=y. It does not work with the MMC or SATA
defconfigs. I get the same result without this patch series applied, though.

The failed cases have the same output (other than kwboot header patching
output) until after sending boot image data is complete. The output stops
 98 % [.................................................................
Finishing transfer
[Type Ctrl-\ + c to quit]

It looks like an unrelated issue with kwboot.c, which I was sure was
working after the last patches but I can no longer reproduce a successful

> Also could you check if SATA booting is still working correctly?

SATA works correctly.

> Tony, should address problems with SPI booting when it is configured to
> different configuration. In fourth commit I added all possible boot mode
> strapping pin configurations which are recognized by A385 bootrom (and
> not the only one described in the HW spec, which is incomplete).
> Stefan, do you have some AXP board with SATA boot source? Because I'm
> adding it for completeness in the last sixth patch.
> Pali Rohár (6):
>   arm: mvebu: Remove A38x BOOT_FROM_UART_ALT 0x3f constant
>   arm: mvebu: Remove A38x BOOT_FROM_SATA 0x22 constant
>   arm: mvebu: Convert BOOT_FROM_* constants to function macros
>   arm: mvebu: Define all options for A38x BOOT_FROM_* macros
>   arm: mvebu: Define all BOOTROM_ERR_MODE_* macros
>   arm: mvebu: Define all options for AXP BOOT_FROM_* macros
>  arch/arm/mach-mvebu/cpu.c              | 20 ++++++-------
>  arch/arm/mach-mvebu/include/mach/soc.h | 41 ++++++++++++++++----------
>  2 files changed, 35 insertions(+), 26 deletions(-)
> --
> 2.20.1

More information about the U-Boot mailing list