u-boot/arch/arm/mach-meson/Kconfig
Neil Armstrong d96a782d09 ARM: meson: Add boot device discovery
The Amlogic Meson SoCs ROM supports a boot over USB with a custom protocol.

When no other boot medium are available (or by forcing the USB mode), the
ROM sets the primary USB port as device mode and waits for a Host to
enumerate.

When enumerated, a custom protocol described at [1] permits writing to
memory and execute some specific FIP init code to run the loaded
Arm Trusted Firmware BL2 and BL3 stages before running the BL33 stage.

In this mode, we can load different binaries that can be used by U-boot
like a script image file.

This adds support for a custom USB boot stage only available when the
boot mode is USB and the script file at a pre-defined address is valid.
This support was heavily copied from the Sunxi Allwinner FEL U-Boot support.

The tool pyamlboot described at [2], permits using this boot mode on boards
exposing the first USB port, either as OTG or Host port.

[1] https://github.com/superna9999/pyamlboot/blob/master/PROTOCOL.md
[2] https://github.com/superna9999/pyamlboot/blob/master/README.md

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
2018-11-26 14:40:52 +01:00

82 lines
1.5 KiB
Text

if ARCH_MESON
config MESON64_COMMON
bool
select ARM64
select CLK
select DM
select DM_SERIAL
select SYSCON
select REGMAP
select BOARD_LATE_INIT
imply CMD_DM
config MESON_GX
bool
select MESON64_COMMON
choice
prompt "Platform select"
default MESON_GXBB
config MESON_GXBB
bool "GXBB"
select MESON_GX
help
Select this if your SoC is an S905
config MESON_GXL
bool "GXL"
select MESON_GX
help
Select this if your SoC is an S905X/D or S805X
config MESON_GXM
bool "GXM"
select MESON_GX
help
Select this if your SoC is an S912
config MESON_AXG
bool "AXG"
select MESON64_COMMON
help
Select this if your SoC is an A113X/D
endchoice
config SYS_SOC
default "meson"
config SYS_MALLOC_F_LEN
default 0x1000
config SYS_VENDOR
string "Vendor name"
default "amlogic"
help
This option contains information about board name.
Based on this option board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> will
be used.
config SYS_BOARD
string "Board name"
default "odroid-c2" if MESON_GXBB
default "p212" if MESON_GXL
default "q200" if MESON_GXM
default "s400" if MESON_AXG
default ""
help
This option contains information about board name.
Based on this option board/<CONFIG_SYS_VENDOR>/<CONFIG_SYS_BOARD> will
be used.
config SYS_CONFIG_NAME
string "Board configuration name"
default "meson64"
help
This option contains information about board configuration name.
Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
will be used for board configuration.
endif