configs: am65x_evm: Add support for applying overlays
authorAndreas Dannenberg <dannenberg@ti.com>
Tue, 4 Jun 2019 23:08:27 +0000 (18:08 -0500)
committerTom Rini <trini@konsulko.com>
Wed, 17 Jul 2019 15:13:18 +0000 (11:13 -0400)
This will allow for downloading and applying overlays from an MMC/SD
boot media based on the overlay_files ENV variable containing a list
of overlay files.

Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
configs/am65x_evm_a53_defconfig
include/configs/am65x_evm.h

index fe51e23..9d4c6a2 100644 (file)
@@ -16,7 +16,7 @@ CONFIG_DISTRO_DEFAULTS=y
 # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
 CONFIG_SPL_LOAD_FIT=y
 CONFIG_OF_BOARD_SETUP=y
-CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot}; run run_kern"
+CONFIG_BOOTCOMMAND="run findfdt; run envboot; run init_${boot}; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern"
 # CONFIG_DISPLAY_CPUINFO is not set
 CONFIG_SPL_TEXT_BASE=0x80080000
 CONFIG_SPL_SYS_MALLOC_SIMPLE=y
@@ -89,3 +89,4 @@ CONFIG_SYSRESET=y
 CONFIG_SPL_SYSRESET=y
 CONFIG_SYSRESET_TI_SCI=y
 CONFIG_FAT_WRITE=y
+CONFIG_OF_LIBFDT_OVERLAY=y
index 552ef78..1415bb1 100644 (file)
@@ -70,6 +70,7 @@
                "setenv overlay_files ${name_overlays}\0"               \
        "loadaddr=0x80080000\0"                                         \
        "fdtaddr=0x82000000\0"                                          \
+       "overlayaddr=0x83000000\0"                                      \
        "name_kern=Image\0"                                             \
        "console=ttyS2,115200n8\0"                                      \
        "args_all=setenv optargs earlycon=ns16550a,mmio32,0x02800000\0" \
        "rd_spec=-\0"                                                   \
        "init_mmc=run args_all args_mmc\0"                              \
        "get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${name_fdt}\0" \
+       "get_overlay_mmc="                                              \
+               "fdt address ${fdtaddr};"                               \
+               "fdt resize 0x100000;"                                  \
+               "for overlay in $overlay_files;"                        \
+               "do;"                                                   \
+               "load mmc ${bootpart} ${overlayaddr} ${bootdir}/${overlay};"    \
+               "fdt apply ${overlayaddr};"                             \
+               "done;\0"                                               \
        "get_kern_mmc=load mmc ${bootpart} ${loadaddr} "                \
                "${bootdir}/${name_kern}\0"                             \
        "partitions=" PARTS_DEFAULT