u-boot-brain/arch/arm
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
..
cpu ARMv8: SError exception handling in PSCI exception vectors 2018-11-16 13:34:34 -05:00
dts ARM: dts: Sync Amlogic Meson AXG DT from Linux 4.20-rc1 2018-11-26 14:40:52 +01:00
include ARM: meson: Add boot device discovery 2018-11-26 14:40:52 +01:00
lib arm: Make arch specific memcpy thumb-safe. 2018-11-16 16:51:57 -05:00
mach-aspeed regmap: change regmap_init_mem() to take ofnode instead udevice 2018-05-07 15:49:51 -04:00
mach-at91 arm: at91: wdt: Convert watchdog driver to dm/dt 2018-11-16 13:34:34 -05:00
mach-bcm283x efi_loader: Convert runtime reset from switch to if statements 2018-06-14 10:52:14 +02:00
mach-bcmstb board: arm: Add support for Broadcom BCM7260 2018-09-10 21:19:31 -04:00
mach-davinci driver: net: consolidate ti's code in separate folder 2018-11-05 10:41:59 -06:00
mach-exynos Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mach-highbank SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-imx imx: mkimage: add size check to the u-boot.imx make target 2018-11-12 11:08:53 +01:00
mach-integrator env: Convert CONFIG_ENV_IS_IN... to a choice 2017-08-15 20:50:01 -04:00
mach-k3 armv7R: K3: am654: Add support for triggering ddr init from SPL 2018-11-16 16:51:59 -05:00
mach-keystone SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-kirkwood Convert CONFIG_MII et al to Kconfig 2018-08-17 13:03:54 -04:00
mach-meson ARM: meson: Add boot device discovery 2018-11-26 14:40:52 +01:00
mach-mvebu arm64: mvebu: a8k: autodetect RAM size 2018-11-20 13:08:15 +01:00
mach-omap2 ARM: mach-omap2: Kconfig: Make SYS_MPUCLK dependent on AM33XX 2018-10-19 14:16:32 -04:00
mach-orion5x arm: remove prototype for get_timer_masked 2018-10-10 13:35:09 -04:00
mach-owl board: Add uCRobotics Bubblegum-96 board support 2018-07-09 15:25:23 -04:00
mach-qemu Kconfig: Sort bool, default, select and imply options 2018-07-30 07:18:48 -04:00
mach-rmobile ARM: rmobile: Generate fitting mem_map on Gen3 2018-11-02 15:57:13 +01:00
mach-rockchip rockchip: make_fit_atf: make python3 compatible 2018-10-04 21:15:46 +02:00
mach-s5pc1xx SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-snapdragon db410c: serial# env using msm board serial 2018-09-30 13:00:35 -04:00
mach-socfpga arm: socfpga: stratix10: add sgmii in phymode setup 2018-10-03 12:56:50 +02:00
mach-sti board: Add STMicroelectronics STiH410-B2260 support 2017-03-14 20:40:21 -04:00
mach-stm32 mach-stm32: Set MPU SDRAM size to 512MB for STM32F7/H7 2018-10-06 14:09:41 -04:00
mach-stm32mp misc: Update read() and write() methods to return bytes xfered 2018-11-20 19:14:22 -07:00
mach-sunxi sunxi: use 6MHz PLL_VIDEO step for DE2 for higher resolution LCD 2018-11-13 22:17:06 +05:30
mach-tegra linux/sizes.h: sync from kernel 2018-11-20 13:08:15 +01:00
mach-uniphier mtd: move NAND files into a raw/ subdirectory 2018-09-20 20:10:49 +05:30
mach-versal arm64: versal: Add Xilinx Versal Virtual QEMU board 2018-10-16 16:53:24 +02:00
mach-versatile SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mach-zynq Kconfig: Move config SYS_MALLOC_LEN to Kconfig for zynq 2018-08-06 08:44:35 +02:00
mach-zynqmp-r5 arm: zynqmp: Add ZynqMP minimal R5 support 2018-05-11 09:38:23 +02:00
thumb1/include/asm/proc-armv SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
config.mk efi_loader: Rename sections to allow for implicit data 2018-07-25 14:57:44 +02:00
Kconfig bcm6858: add initial support 2018-11-16 13:34:35 -05:00
Kconfig.debug arm: debug: add Kconfig entries for lowlevel debug 2014-10-26 22:23:12 +01:00
Makefile Merged imx8 architecture, fix build for imx8 + warnings 2018-10-25 10:16:21 -04:00