u-boot/arch/arm/include/asm/arch-sunxi
Jesse Taube a08b04b5c7 mach-sunxi: Add boot device detection for SUNIV/F1C100s
In contrast to other Allwinner SoCs the F1C100s BROM does not store a
boot source indicator in the eGON header in SRAM. This leaves the SPL
guessing where we were exactly booted from, and for instance trying
the SD card first, even though we booted from SPI flash.

By inspecting the BROM code and by experimentation, Samuel found that the
top of the BROM stack contains unique pointers for each of the boot
sources, which we can use as a boot source indicator.

This patch removes the existing board_boot_order bodge and replace it
with a proper boot source indication function.

The only caveat is that this only works in the SPL, as the SPL header
gets overwritten with the exception vectors, once U-Boot proper takes
over. Always return MMC0 as the boot source, when called from U-Boot
proper, as a placeholder for now, until we find another way.

Signed-off-by: Jesse Taube <Mr.Bossman075@gmail.com>
Suggested-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2022-03-03 01:23:58 +00:00
..
boot0.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
clock.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun6i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
clock_sun8i_a83t.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
clock_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
clock_sun50i_h6.h mmc: sunxi: Fix MMC clock parent selection 2021-07-10 01:22:09 +01:00
cpu.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
cpu_sun4i.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
cpu_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
cpu_sun50i_h6.h sunxi: Add support for H616 SoC 2021-01-25 21:52:01 +00:00
cpucfg.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
display2.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dma_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sun4i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun6i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a23.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dram_sun8i_a33.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun8i_a83t.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun9i.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h6.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
dram_sun50i_h616.h sunxi: Add H616 DRAM support 2021-01-25 21:52:01 +00:00
dram_suniv.h sunxi: Add F1C100s DRAM initial support 2022-02-04 00:09:57 +00:00
dram_sunxi_dw.h sunxi: support asymmetric dual rank DRAM on A64/R40 2021-04-16 01:12:58 +01:00
gpio.h ARM: sunxi: Add clock and uart to sunxi headers 2022-02-04 00:09:57 +00:00
gtbus.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gtbus_sun9i.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
i2c.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lcdc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mmc.h mmc: sunxi: Increase MMIO FIFO read performance 2021-07-10 01:22:09 +01:00
p2wi.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pmic_bus.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
prcm.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun6i.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
prcm_sun50i.h sunxi: prcm: Add memory map for H6 like SoCs 2021-01-25 21:52:00 +00:00
pwm.h common: Drop linux/bitops.h from common header 2020-05-18 21:19:23 -04:00
rsb.h arm: Don't include common.h in header files 2020-05-18 14:54:24 -04:00
spl.h mach-sunxi: Add boot device detection for SUNIV/F1C100s 2022-03-03 01:23:58 +00:00
sys_proto.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
timer.h sunxi: Introduce common symbol for H6 like SoCs 2021-01-25 21:52:00 +00:00
tve.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
tzpc.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
watchdog.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00