"Das U-Boot" Source Tree
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

distro_bootcmd: Introduce support for extension command

Try to load required DTB overlays if the board supports extensions and
CONFIG_CMD_EXTENSION is enabled.

Signed-off-by: Matwey V. Kornilov <matwey.kornilov@gmail.com>

authored by

Matwey V. Kornilov and committed by
Tom Rini
d8826071 2d706912

+32
+32
include/config_distro_bootcmd.h
··· 160 160 "scan_dev_for_efi=" \ 161 161 "setenv efi_fdtfile ${fdtfile}; " \ 162 162 BOOTENV_EFI_SET_FDTFILE_FALLBACK \ 163 + BOOTENV_RUN_EXTENSION_INIT \ 163 164 "for prefix in ${efi_dtb_prefixes}; do " \ 164 165 "if test -e ${devtype} " \ 165 166 "${devnum}:${distro_bootpart} " \ 166 167 "${prefix}${efi_fdtfile}; then " \ 167 168 "run load_efi_dtb; " \ 169 + BOOTENV_RUN_EXTENSION_APPLY \ 168 170 "fi;" \ 169 171 "done;" \ 170 172 "run boot_efi_bootmgr;" \ ··· 416 418 BOOT_TARGET_DEVICES_references_PXE_without_CONFIG_CMD_DHCP_or_PXE 417 419 #endif 418 420 421 + #if defined(CONFIG_CMD_EXTENSION) 422 + #define BOOTENV_RUN_EXTENSION_INIT "run extension_init; " 423 + #define BOOTENV_RUN_EXTENSION_APPLY "run extension_apply; " 424 + #define BOOTENV_SET_EXTENSION_NEED_INIT \ 425 + "extension_need_init=; " \ 426 + "setenv extension_overlay_addr ${fdtoverlay_addr_r}; " 427 + #define BOOTENV_SHARED_EXTENSION \ 428 + "extension_init=" \ 429 + "echo Extension init...; " \ 430 + "if ${extension_need_init}; then " \ 431 + "extension_need_init=false; " \ 432 + "extension scan; " \ 433 + "fi\0" \ 434 + \ 435 + "extension_overlay_cmd=" \ 436 + "load ${devtype} ${devnum}:${distro_bootpart} " \ 437 + "${extension_overlay_addr} ${prefix}${extension_overlay_name}\0" \ 438 + "extension_apply=" \ 439 + "if fdt addr -q ${fdt_addr_r}; then " \ 440 + "extension apply all; " \ 441 + "fi\0" 442 + #else 443 + #define BOOTENV_RUN_EXTENSION_INIT 444 + #define BOOTENV_RUN_EXTENSION_APPLY 445 + #define BOOTENV_SET_EXTENSION_NEED_INIT 446 + #define BOOTENV_SHARED_EXTENSION 447 + #endif 448 + 419 449 #define BOOTENV_DEV_NAME(devtypeu, devtypel, instance, ...) \ 420 450 BOOTENV_DEV_NAME_##devtypeu(devtypeu, devtypel, instance, ## __VA_ARGS__) 421 451 #define BOOTENV_BOOT_TARGETS \ ··· 435 465 BOOTENV_SHARED_UBIFS \ 436 466 BOOTENV_SHARED_EFI \ 437 467 BOOTENV_SHARED_VIRTIO \ 468 + BOOTENV_SHARED_EXTENSION \ 438 469 "boot_prefixes=/ /boot/\0" \ 439 470 "boot_scripts=boot.scr.uimg boot.scr\0" \ 440 471 "boot_script_dhcp=boot.scr.uimg\0" \ ··· 499 530 BOOTENV_SET_NVME_NEED_INIT \ 500 531 BOOTENV_SET_IDE_NEED_INIT \ 501 532 BOOTENV_SET_VIRTIO_NEED_INIT \ 533 + BOOTENV_SET_EXTENSION_NEED_INIT \ 502 534 "for target in ${boot_targets}; do " \ 503 535 "run bootcmd_${target}; " \ 504 536 "done\0"