summaryrefslogtreecommitdiff
path: root/config/u-boot
diff options
context:
space:
mode:
Diffstat (limited to 'config/u-boot')
-rw-r--r--config/u-boot/amd64coreboot/config/default2005
-rw-r--r--config/u-boot/amd64coreboot/target.cfg7
-rw-r--r--config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch14
-rw-r--r--config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch331
-rw-r--r--config/u-boot/default/patches/0003-Add-video-damage-tracking.patch506
-rw-r--r--config/u-boot/default/patches/0004-HACK-Makefile-Ignore-missing-input-files-for-binman.patch34
-rw-r--r--config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch42
-rw-r--r--config/u-boot/default/patches/0005-HACK-rk3399-gru-Remove-assigned-clock-dt-properties-.patch36
-rw-r--r--config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch307
-rw-r--r--config/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch302
-rw-r--r--config/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch348
-rw-r--r--config/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch213
-rw-r--r--config/u-boot/default/patches/0008-change-the-logo-back-to-the-plain-libreboot-one.patch157
-rw-r--r--config/u-boot/default/target.cfg4
-rw-r--r--config/u-boot/gru_bob/config/default629
-rw-r--r--config/u-boot/gru_bob/target.cfg2
-rw-r--r--config/u-boot/gru_kevin/config/default629
-rw-r--r--config/u-boot/gru_kevin/target.cfg2
-rw-r--r--config/u-boot/i386coreboot/config/default1792
-rw-r--r--config/u-boot/i386coreboot/target.cfg7
-rw-r--r--config/u-boot/qemu_arm64_12mb/config/default383
-rw-r--r--config/u-boot/qemu_arm64_12mb/target.cfg2
-rw-r--r--config/u-boot/x86/nuke.list1
-rw-r--r--config/u-boot/x86/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch116
-rw-r--r--config/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch34
-rw-r--r--config/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch29
-rw-r--r--config/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch302
-rw-r--r--config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch213
-rw-r--r--config/u-boot/x86/patches/0006-i-made-it-purple.patch33
-rw-r--r--config/u-boot/x86/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch157
-rw-r--r--config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch61
-rw-r--r--config/u-boot/x86/target.cfg4
-rw-r--r--config/u-boot/x86_64/nuke.list1
-rw-r--r--config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch116
-rw-r--r--config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch34
-rw-r--r--config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch29
-rw-r--r--config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch302
-rw-r--r--config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch213
-rw-r--r--config/u-boot/x86_64/patches/0006-i-made-it-purple.patch33
-rw-r--r--config/u-boot/x86_64/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch157
-rw-r--r--config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch61
-rw-r--r--config/u-boot/x86_64/target.cfg4
42 files changed, 7882 insertions, 1770 deletions
diff --git a/config/u-boot/amd64coreboot/config/default b/config/u-boot/amd64coreboot/config/default
new file mode 100644
index 00000000..d44de2d3
--- /dev/null
+++ b/config/u-boot/amd64coreboot/config/default
@@ -0,0 +1,2005 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2024.10 Configuration
+#
+
+#
+# Compiler: gcc (Debian 12.2.0-14) 12.2.0
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_SUPPORT_LITTLE_ENDIAN=y
+CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_SYS_CACHELINE_SIZE=64
+CONFIG_LINKER_LIST_ALIGN=8
+# CONFIG_ARC is not set
+# CONFIG_ARM is not set
+# CONFIG_M68K is not set
+# CONFIG_MICROBLAZE is not set
+# CONFIG_MIPS is not set
+# CONFIG_NIOS2 is not set
+# CONFIG_PPC is not set
+# CONFIG_RISCV is not set
+# CONFIG_SANDBOX is not set
+# CONFIG_SH is not set
+CONFIG_X86=y
+# CONFIG_XTENSA is not set
+CONFIG_SYS_ARCH="x86"
+CONFIG_SYS_SOC="coreboot"
+CONFIG_SYS_VENDOR="coreboot"
+CONFIG_SYS_BOARD="coreboot"
+CONFIG_TEXT_BASE=0x1120000
+CONFIG_SYS_MALLOC_LEN=0x2000000
+CONFIG_SYS_MALLOC_F_LEN=0x800
+CONFIG_SPL_GPIO=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_NR_DRAM_BANKS=8
+CONFIG_SPL_LDSCRIPT="arch/$(ARCH)/cpu/u-boot-spl.lds"
+CONFIG_ENV_SOURCE_FILE=""
+CONFIG_ENV_SIZE=0x1000
+CONFIG_DM_GPIO=y
+# CONFIG_SPL_DM_SPI is not set
+CONFIG_DEFAULT_DEVICE_TREE="coreboot"
+CONFIG_SPL_TEXT_BASE=0x1110000
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
+# CONFIG_DM_RESET is not set
+CONFIG_SYS_MONITOR_LEN=1048576
+# CONFIG_SPL_MMC is not set
+CONFIG_SPL_SERIAL=y
+CONFIG_SPL_DRIVERS_MISC=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x800
+# CONFIG_SPL_HAS_BSS_LINKER_SECTION is not set
+# CONFIG_SPL_STACK_R is not set
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
+CONFIG_SPL_SYS_MALLOC_F=y
+CONFIG_ERR_PTR_OFFSET=0x0
+CONFIG_SPL_SIZE_LIMIT=0x0
+CONFIG_SPL=y
+CONFIG_PRE_CON_BUF_ADDR=0x100000
+CONFIG_PRE_CON_BUF_SZ=4096
+CONFIG_IDENT_STRING=""
+CONFIG_SYS_CLK_FREQ=0
+# CONFIG_SPL_FS_FAT is not set
+# CONFIG_SPL_LIBDISK_SUPPORT is not set
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI=y
+CONFIG_SYS_MEM_TOP_HIDE=0x0
+CONFIG_SYS_LOAD_ADDR=0x02000000
+CONFIG_SPL_PAYLOAD="u-boot.bin"
+CONFIG_BUILD_TARGET=""
+# CONFIG_SYS_PCI_64BIT is not set
+CONFIG_PCI=y
+CONFIG_FWU_NUM_BANKS=2
+CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+
+#
+# x86 architecture
+#
+# CONFIG_X86_RUN_32BIT is not set
+CONFIG_X86_RUN_64BIT=y
+CONFIG_X86_64=y
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_CONGATEC is not set
+CONFIG_VENDOR_COREBOOT=y
+# CONFIG_VENDOR_DFI is not set
+# CONFIG_VENDOR_EFI is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_INTEL_MID is not set
+CONFIG_PCIE_ECAM_BASE=0xe0000000
+CONFIG_TARGET_COREBOOT=y
+CONFIG_SYS_CAR_ADDR=0x01920000
+CONFIG_SYS_CAR_SIZE=0x4000
+CONFIG_ROM_TABLE_ADDR=0xf0000
+CONFIG_ROM_TABLE_SIZE=0x10000
+CONFIG_CPU_ADDR_BITS=36
+# CONFIG_DEBUG_UART is not set
+CONFIG_SYS_COREBOOT=y
+CONFIG_X86_TSC_TIMER_FREQ=1000000000
+CONFIG_AHCI=y
+CONFIG_RAMBASE=0x100000
+CONFIG_HPET_ADDRESS=0xfed00000
+# CONFIG_X86_LOAD_FROM_32_BIT is not set
+# CONFIG_HAVE_INTEL_ME is not set
+# CONFIG_X86_RAMTEST is not set
+# CONFIG_USE_HOB is not set
+# CONFIG_HAVE_FSP is not set
+CONFIG_USE_CAR=y
+# CONFIG_HAVE_MRC is not set
+# CONFIG_HAVE_REFCODE is not set
+CONFIG_HAVE_MICROCODE=y
+# CONFIG_SMP is not set
+# CONFIG_HAVE_VGA_BIOS is not set
+CONFIG_X86_HARDFP=y
+# CONFIG_HAVE_ITSS is not set
+# CONFIG_HAVE_ACPI_RESUME is not set
+CONFIG_MAX_PIRQ_LINKS=8
+CONFIG_IRQ_SLOT_COUNT=128
+CONFIG_PCIE_ECAM_SIZE=0x10000000
+CONFIG_I8259_PIC=y
+CONFIG_APIC=y
+CONFIG_I8254_TIMER=y
+# CONFIG_SEABIOS is not set
+# CONFIG_INTEL_CAR_CQOS is not set
+CONFIG_X86_OFFSET_U_BOOT=0x1120000
+CONFIG_X86_OFFSET_SPL=0x1110000
+# CONFIG_ACPI_GPE is not set
+# CONFIG_SPL_ACPI_GPE is not set
+CONFIG_SA_PCIEX_LENGTH=0x10000000
+CONFIG_COREBOOT_SYSINFO=y
+CONFIG_SPL_COREBOOT_SYSINFO=y
+CONFIG_ZBOOT=y
+# CONFIG_OF_BOARD_FIXUP is not set
+CONFIG_SYS_LITTLE_ENDIAN=y
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=120200
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
+# CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_SPL_OPTIMIZE_INLINING is not set
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_ENV_VARS_UBOOT_CONFIG=y
+# CONFIG_SYS_BOOT_GET_CMDLINE is not set
+# CONFIG_SYS_BOOT_GET_KBD is not set
+CONFIG_SYS_MALLOC_F=y
+# CONFIG_VALGRIND is not set
+CONFIG_EXPERT=y
+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
+CONFIG_SPL_SYS_MALLOC_CLEAR_ON_INIT=y
+# CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set
+# CONFIG_TOOLS_DEBUG is not set
+# CONFIG_PHYS_64BIT is not set
+# CONFIG_FDT_64BIT is not set
+CONFIG_SPL_IMAGE="spl/u-boot-spl.bin"
+# CONFIG_REMAKE_ELF is not set
+# CONFIG_HAS_BOARD_SIZE_LIMIT is not set
+# CONFIG_SYS_CUSTOM_LDSCRIPT is not set
+CONFIG_PLATFORM_ELFENTRY="_start"
+CONFIG_STACK_SIZE=0x1000000
+CONFIG_SYS_SRAM_BASE=0x0
+CONFIG_SYS_SRAM_SIZE=0x0
+# CONFIG_MP is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_HAVE_SYS_UBOOT_START is not set
+CONFIG_SYS_UBOOT_START=0x1120000
+CONFIG_HAVE_SYS_MONITOR_BASE=y
+CONFIG_SYS_MONITOR_BASE=0x01120000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
+# CONFIG_API is not set
+
+#
+# Boot options
+#
+
+#
+# Boot images
+#
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_TIMESTAMP=y
+CONFIG_FIT=y
+CONFIG_FIT_EXTERNAL_OFFSET=0x0
+CONFIG_FIT_FULL_CHECK=y
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_FIT_RSASSA_PSS is not set
+# CONFIG_FIT_CIPHER is not set
+# CONFIG_FIT_VERBOSE is not set
+# CONFIG_FIT_BEST_MATCH is not set
+CONFIG_FIT_PRINT=y
+# CONFIG_SPL_FIT is not set
+# CONFIG_SPL_LOAD_FIT is not set
+# CONFIG_SPL_LOAD_FIT_FULL is not set
+CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS_FEATURES=y
+CONFIG_BOOT_DEFAULTS_CMDS=y
+CONFIG_BOOT_DEFAULTS=y
+CONFIG_BOOTSTD=y
+# CONFIG_SPL_BOOTSTD is not set
+CONFIG_BOOTSTD_FULL=y
+CONFIG_BOOTSTD_DEFAULTS=y
+CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTMETH_GLOBAL=y
+# CONFIG_BOOTMETH_ANDROID is not set
+CONFIG_BOOTMETH_CROS=y
+CONFIG_BOOTMETH_EXTLINUX=y
+CONFIG_BOOTMETH_EXTLINUX_PXE=y
+CONFIG_BOOTMETH_EFILOADER=y
+CONFIG_BOOTMETH_EFI_BOOTMGR=y
+CONFIG_BOOTMETH_VBE=y
+CONFIG_BOOTMETH_DISTRO=y
+# CONFIG_SPL_BOOTMETH_VBE is not set
+CONFIG_BOOTMETH_VBE_REQUEST=y
+# CONFIG_SPL_BOOTMETH_VBE_REQUEST is not set
+CONFIG_BOOTMETH_VBE_SIMPLE=y
+CONFIG_BOOTMETH_VBE_SIMPLE_OS=y
+# CONFIG_SPL_BOOTMETH_VBE_SIMPLE is not set
+CONFIG_EXPO=y
+CONFIG_BOOTMETH_SCRIPT=y
+# CONFIG_LEGACY_IMAGE_FORMAT is not set
+CONFIG_SYS_BOOTM_LEN=0x1000000
+CONFIG_SUPPORT_RAW_INITRD=y
+# CONFIG_CHROMEOS is not set
+# CONFIG_CHROMEOS_VBOOT is not set
+# CONFIG_RAMBOOT_PBL is not set
+CONFIG_SYS_BOOT_RAMDISK_HIGH=y
+# CONFIG_DISTRO_DEFAULTS is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_SHOW_BOOT_PROGRESS=y
+# CONFIG_SPL_SHOW_BOOT_PROGRESS is not set
+
+#
+# Boot media
+#
+# CONFIG_NAND_BOOT is not set
+# CONFIG_ONENAND_BOOT is not set
+# CONFIG_QSPI_BOOT is not set
+# CONFIG_SATA_BOOT is not set
+# CONFIG_SD_BOOT is not set
+# CONFIG_SD_BOOT_QSPI is not set
+# CONFIG_SPI_BOOT is not set
+
+#
+# Autoboot options
+#
+CONFIG_AUTOBOOT=y
+CONFIG_BOOTDELAY=2
+# CONFIG_AUTOBOOT_KEYED is not set
+# CONFIG_AUTOBOOT_USE_MENUKEY is not set
+# CONFIG_BOOT_RETRY is not set
+
+#
+# Image support
+#
+# CONFIG_IMAGE_PRE_LOAD is not set
+
+#
+# Devicetree fixup
+#
+# CONFIG_OF_ENV_SETUP is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+# CONFIG_FDT_SIMPLEFB is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
+# CONFIG_BOOTARGS_SUBST is not set
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then cls; bootflow boot; fi"
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
+CONFIG_PREBOOT_DEFINED=y
+CONFIG_DEFAULT_FDT_FILE=""
+
+#
+# Configuration editor
+#
+# CONFIG_CEDIT is not set
+
+#
+# Console
+#
+CONFIG_MENU=y
+# CONFIG_CONSOLE_RECORD is not set
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=532
+# CONFIG_DISABLE_CONSOLE is not set
+CONFIG_LOGLEVEL=4
+CONFIG_SPL_LOGLEVEL=4
+# CONFIG_SILENT_CONSOLE is not set
+# CONFIG_SPL_SILENT_CONSOLE is not set
+# CONFIG_TPL_SILENT_CONSOLE is not set
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_CONSOLE_FLUSH_SUPPORT=y
+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
+# CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set
+CONFIG_SYS_CONSOLE_INFO_QUIET=y
+CONFIG_SYS_STDIO_DEREGISTER=y
+# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set
+CONFIG_SYS_DEVICE_NULLDEV=y
+
+#
+# Logging
+#
+CONFIG_LOG=y
+CONFIG_LOG_MAX_LEVEL=6
+CONFIG_LOG_DEFAULT_LEVEL=6
+CONFIG_LOG_CONSOLE=y
+# CONFIG_LOGF_FILE is not set
+CONFIG_LOGF_LINE=y
+CONFIG_LOGF_FUNC=y
+CONFIG_LOGF_FUNC_PAD=20
+# CONFIG_LOG_SYSLOG is not set
+# CONFIG_SPL_LOG is not set
+# CONFIG_LOG_ERROR_RETURN is not set
+
+#
+# Init options
+#
+# CONFIG_BOARD_TYPES is not set
+CONFIG_DISPLAY_CPUINFO=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+
+#
+# Start-up hooks
+#
+CONFIG_CYCLIC=y
+# CONFIG_SPL_CYCLIC is not set
+CONFIG_CYCLIC_MAX_CPU_TIME_US=5000
+CONFIG_EVENT=y
+CONFIG_EVENT_DYNAMIC=y
+# CONFIG_EVENT_DEBUG is not set
+# CONFIG_ARCH_MISC_INIT is not set
+# CONFIG_BOARD_EARLY_INIT_F is not set
+CONFIG_BOARD_EARLY_INIT_R=y
+# CONFIG_BOARD_POSTCLK_INIT is not set
+# CONFIG_BOARD_LATE_INIT is not set
+# CONFIG_HWCONFIG is not set
+CONFIG_LAST_STAGE_INIT=y
+# CONFIG_MISC_INIT_R is not set
+# CONFIG_SYS_MALLOC_BOOTPARAMS is not set
+# CONFIG_ID_EEPROM is not set
+# CONFIG_PCI_INIT_R is not set
+# CONFIG_RESET_PHY_R is not set
+
+#
+# Security support
+#
+CONFIG_HASH=y
+# CONFIG_STACKPROTECTOR is not set
+# CONFIG_BOARD_RNG_SEED is not set
+
+#
+# Update support
+#
+# CONFIG_UPDATE_TFTP is not set
+# CONFIG_ANDROID_AB is not set
+
+#
+# Blob list
+#
+# CONFIG_BLOBLIST is not set
+CONFIG_SUPPORT_SPL=y
+CONFIG_SUPPORT_TPL=y
+
+#
+# SPL configuration options
+#
+CONFIG_SPL_FRAMEWORK=y
+# CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
+CONFIG_SPL_MAX_SIZE=0x0
+CONFIG_SPL_PAD_TO=0x0
+CONFIG_SPL_NO_BSS_LIMIT=y
+# CONFIG_SPL_BSS_LIMIT is not set
+# CONFIG_SPL_FOOTPRINT_LIMIT is not set
+CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
+# CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
+# CONFIG_SPL_SHOW_ERRORS is not set
+CONFIG_SPL_BINMAN_SYMBOLS=y
+CONFIG_SPL_BINMAN_UBOOT_SYMBOLS=y
+# CONFIG_SPL_SOC_INIT is not set
+# CONFIG_SPL_BOARD_INIT is not set
+# CONFIG_SPL_BOOTROM_SUPPORT is not set
+CONFIG_SPL_RAW_IMAGE_SUPPORT=y
+CONFIG_SPL_LEGACY_IMAGE_FORMAT=y
+# CONFIG_SPL_LEGACY_IMAGE_CRC_CHECK is not set
+# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
+# CONFIG_SPL_SYS_MALLOC_SIMPLE is not set
+CONFIG_SPL_SEPARATE_BSS=y
+# CONFIG_SPL_SYS_MALLOC is not set
+CONFIG_SPL_BANNER_PRINT=y
+# CONFIG_SPL_DISPLAY_PRINT is not set
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR is not set
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SPL_CACHE is not set
+# CONFIG_SPL_CPU is not set
+# CONFIG_SPL_CRYPTO is not set
+# CONFIG_SPL_DMA is not set
+# CONFIG_SPL_ENV_SUPPORT is not set
+# CONFIG_SPL_FS_EXT4 is not set
+# CONFIG_SPL_FS_SQUASHFS is not set
+# CONFIG_SPL_FAT_WRITE is not set
+# CONFIG_SPL_FPGA is not set
+# CONFIG_SPL_I2C is not set
+# CONFIG_SPL_DM_MAILBOX is not set
+# CONFIG_SPL_MEMORY is not set
+# CONFIG_SPL_MPC8XXX_INIT_DDR is not set
+# CONFIG_SPL_MTD is not set
+# CONFIG_SPL_MUSB_NEW is not set
+# CONFIG_SPL_NAND_SUPPORT is not set
+# CONFIG_SPL_NAND_DRIVERS is not set
+# CONFIG_SPL_NAND_ECC is not set
+# CONFIG_SPL_NAND_SIMPLE is not set
+# CONFIG_SPL_UBI is not set
+# CONFIG_SPL_DM_SPI_FLASH is not set
+# CONFIG_SPL_NET is not set
+# CONFIG_SPL_NOR_SUPPORT is not set
+# CONFIG_SPL_XIP_SUPPORT is not set
+# CONFIG_SPL_ONENAND_SUPPORT is not set
+# CONFIG_SPL_OS_BOOT is not set
+# CONFIG_SPL_PCI is not set
+# CONFIG_SPL_PCH is not set
+# CONFIG_SPL_POST_MEM_SUPPORT is not set
+# CONFIG_SPL_DM_RESET is not set
+# CONFIG_SPL_POWER is not set
+# CONFIG_SPL_POWER_DOMAIN is not set
+# CONFIG_SPL_RAM_SUPPORT is not set
+# CONFIG_SPL_REMOTEPROC is not set
+# CONFIG_SPL_RTC is not set
+# CONFIG_SPL_SATA is not set
+# CONFIG_SPL_NVME is not set
+# CONFIG_SPL_SPI_FLASH_TINY is not set
+# CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT is not set
+# CONFIG_SPL_SPI_FLASH_MTD is not set
+# CONFIG_SPL_SPI_LOAD is not set
+# CONFIG_SPL_THERMAL is not set
+# CONFIG_SPL_WATCHDOG is not set
+# CONFIG_SPL_YMODEM_SUPPORT is not set
+CONFIG_SPL_TARGET=""
+# CONFIG_TPL is not set
+# CONFIG_VPL is not set
+CONFIG_IMAGE_SIGN_INFO=y
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+
+#
+# Hush flavor to use
+#
+CONFIG_HUSH_OLD_PARSER=y
+# CONFIG_HUSH_MODERN_PARSER is not set
+CONFIG_CMDLINE_EDITING=y
+# CONFIG_CMDLINE_PS_SUPPORT is not set
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_PROMPT="=> "
+CONFIG_SYS_PROMPT_HUSH_PS2="> "
+CONFIG_SYS_MAXARGS=64
+CONFIG_SYS_XTRACE=y
+
+#
+# Commands
+#
+
+#
+# Info commands
+#
+CONFIG_CMD_ACPI=y
+CONFIG_CMD_BDI=y
+CONFIG_CMD_BDINFO_EXTRA=y
+# CONFIG_CMD_CONFIG is not set
+CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_HISTORY is not set
+# CONFIG_CMD_PMC is not set
+# CONFIG_CMD_SMBIOS is not set
+
+#
+# Boot commands
+#
+CONFIG_CMD_BOOTD=y
+CONFIG_CMD_BOOTM=y
+CONFIG_CMD_BOOTDEV=y
+CONFIG_CMD_BOOTFLOW=y
+CONFIG_CMD_BOOTFLOW_FULL=y
+CONFIG_CMD_BOOTFLOW_BOOTDELAY=8
+CONFIG_CMD_BOOTMETH=y
+CONFIG_BOOTM_EFI=y
+CONFIG_BOOTM_ELF=y
+# CONFIG_CMD_BOOTZ is not set
+CONFIG_BOOTM_LINUX=y
+CONFIG_BOOTM_NETBSD=y
+# CONFIG_BOOTM_OPENRTOS is not set
+# CONFIG_BOOTM_OSE is not set
+CONFIG_BOOTM_PLAN9=y
+CONFIG_BOOTM_RTEMS=y
+CONFIG_CMD_VBE=y
+CONFIG_BOOTM_VXWORKS=y
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_BINARY=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+# CONFIG_CMD_BOOTEFI_HELLO is not set
+# CONFIG_CMD_BOOTEFI_SELFTEST is not set
+# CONFIG_CMD_BOOTMENU is not set
+# CONFIG_CMD_ADTIMG is not set
+CONFIG_CMD_ELF=y
+# CONFIG_CMD_ELF_FDT_SETUP is not set
+CONFIG_CMD_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+CONFIG_CMD_XIMG=y
+# CONFIG_CMD_SPL is not set
+CONFIG_CMD_ZBOOT=y
+
+#
+# Environment commands
+#
+# CONFIG_CMD_ASKENV is not set
+CONFIG_CMD_EXPORTENV=y
+CONFIG_CMD_IMPORTENV=y
+CONFIG_CMD_EDITENV=y
+# CONFIG_CMD_GREPENV is not set
+CONFIG_CMD_SAVEENV=y
+# CONFIG_CMD_ERASEENV is not set
+CONFIG_CMD_ENV_EXISTS=y
+# CONFIG_CMD_ENV_CALLBACK is not set
+# CONFIG_CMD_ENV_FLAGS is not set
+# CONFIG_CMD_NVEDIT_EFI is not set
+# CONFIG_CMD_NVEDIT_INDIRECT is not set
+# CONFIG_CMD_NVEDIT_INFO is not set
+# CONFIG_CMD_NVEDIT_LOAD is not set
+# CONFIG_CMD_NVEDIT_SELECT is not set
+
+#
+# Memory commands
+#
+# CONFIG_CMD_BINOP is not set
+CONFIG_CMD_CRC32=y
+# CONFIG_CRC32_VERIFY is not set
+# CONFIG_LOOPW is not set
+# CONFIG_CMD_MD5SUM is not set
+# CONFIG_CMD_MEMINFO is not set
+CONFIG_CMD_MEMORY=y
+# CONFIG_CMD_MEM_SEARCH is not set
+# CONFIG_CMD_MX_CYCLIC is not set
+CONFIG_CMD_RANDOM=y
+# CONFIG_CMD_MEMTEST is not set
+# CONFIG_CMD_SHA1SUM is not set
+# CONFIG_CMD_STRINGS is not set
+
+#
+# Compression commands
+#
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_ZIP is not set
+
+#
+# Device access commands
+#
+# CONFIG_CMD_BCB is not set
+# CONFIG_CMD_BIND is not set
+# CONFIG_CMD_CLK is not set
+# CONFIG_CMD_DEMO is not set
+# CONFIG_CMD_DFU is not set
+CONFIG_CMD_DM=y
+# CONFIG_CMD_FUSE is not set
+# CONFIG_CMD_GPIO is not set
+# CONFIG_CMD_GPT is not set
+CONFIG_CMD_IDE=y
+CONFIG_CMD_IO=y
+# CONFIG_CMD_IOTRACE is not set
+# CONFIG_CMD_I2C is not set
+CONFIG_CMD_LOADB=y
+# CONFIG_CMD_LOADM is not set
+CONFIG_CMD_LOADS=y
+# CONFIG_LOADS_ECHO is not set
+# CONFIG_CMD_SAVES is not set
+# CONFIG_SYS_LOADS_BAUD_CHANGE is not set
+CONFIG_CMD_LOADXY_TIMEOUT=90
+# CONFIG_CMD_LSBLK is not set
+# CONFIG_CMD_MBR is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_BKOPS_ENABLE is not set
+# CONFIG_CMD_MMC_REG is not set
+# CONFIG_CMD_MMC_SWRITE is not set
+# CONFIG_CMD_CLONE is not set
+# CONFIG_CMD_MTD is not set
+CONFIG_CMD_NVME=y
+# CONFIG_CMD_ONENAND is not set
+# CONFIG_CMD_OSD is not set
+CONFIG_CMD_PART=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_PCI_MPS is not set
+# CONFIG_CMD_POWEROFF is not set
+# CONFIG_CMD_READ is not set
+CONFIG_CMD_SATA=y
+CONFIG_CMD_SCSI=y
+# CONFIG_CMD_SDRAM is not set
+CONFIG_CMD_USB=y
+# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_RKMTD is not set
+# CONFIG_CMD_WRITE is not set
+
+#
+# Shell scripting commands
+#
+# CONFIG_CMD_CAT is not set
+CONFIG_CMD_ECHO=y
+CONFIG_CMD_ITEST=y
+CONFIG_CMD_SOURCE=y
+# CONFIG_CMD_SETEXPR is not set
+# CONFIG_CMD_XXD is not set
+
+#
+# Android support commands
+#
+CONFIG_CMD_NET=y
+CONFIG_CMD_BOOTP=y
+CONFIG_CMD_DHCP=y
+# CONFIG_BOOTP_MAY_FAIL is not set
+CONFIG_BOOTP_BOOTPATH=y
+# CONFIG_BOOTP_VENDOREX is not set
+CONFIG_BOOTP_BOOTFILESIZE=y
+CONFIG_BOOTP_DNS=y
+# CONFIG_BOOTP_DNS2 is not set
+CONFIG_BOOTP_GATEWAY=y
+CONFIG_BOOTP_HOSTNAME=y
+# CONFIG_BOOTP_PREFER_SERVERIP is not set
+CONFIG_BOOTP_SUBNETMASK=y
+# CONFIG_BOOTP_NISDOMAIN is not set
+# CONFIG_BOOTP_NTPSERVER is not set
+# CONFIG_CMD_PCAP is not set
+CONFIG_BOOTP_PXE=y
+CONFIG_BOOTP_PXE_CLIENTARCH=0x0
+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set
+CONFIG_BOOTP_VCI_STRING="U-Boot"
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+CONFIG_NET_TFTP_VARS=y
+# CONFIG_CMD_RARP is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_SYS_DISABLE_AUTOLOAD is not set
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_WOL is not set
+
+#
+# Misc commands
+#
+# CONFIG_CMD_2048 is not set
+# CONFIG_CMD_BMP is not set
+# CONFIG_CMD_BSP is not set
+CONFIG_CMD_BLOCK_CACHE=y
+# CONFIG_CMD_CACHE is not set
+# CONFIG_CMD_CONITRACE is not set
+CONFIG_CMD_CLS=y
+# CONFIG_CMD_EFIDEBUG is not set
+CONFIG_CMD_EFICONFIG=y
+# CONFIG_CMD_EXCEPTION is not set
+# CONFIG_CMD_INI is not set
+CONFIG_CMD_DATE=y
+# CONFIG_CMD_RTC is not set
+CONFIG_CMD_TIME=y
+CONFIG_CMD_GETTIME=y
+# CONFIG_CMD_PAUSE is not set
+CONFIG_CMD_SLEEP=y
+# CONFIG_CMD_TIMER is not set
+CONFIG_CMD_SOUND=y
+# CONFIG_CMD_SYSBOOT is not set
+# CONFIG_CMD_QFW is not set
+# CONFIG_CMD_PSTORE is not set
+# CONFIG_CMD_TERMINAL is not set
+# CONFIG_CMD_UUID is not set
+CONFIG_CMD_VIDCONSOLE=y
+CONFIG_CMD_SELECT_FONT=y
+
+#
+# TI specific command line interface
+#
+
+#
+# Power commands
+#
+
+#
+# Security commands
+#
+# CONFIG_CMD_AES is not set
+# CONFIG_CMD_BLOB is not set
+# CONFIG_CMD_HASH is not set
+
+#
+# Firmware commands
+#
+
+#
+# Filesystem commands
+#
+# CONFIG_CMD_BTRFS is not set
+CONFIG_CMD_CBFS=y
+# CONFIG_CMD_EROFS is not set
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+# CONFIG_CMD_SQUASHFS is not set
+CONFIG_CMD_FS_GENERIC=y
+# CONFIG_CMD_FS_UUID is not set
+# CONFIG_CMD_JFFS2 is not set
+# CONFIG_CMD_MTDPARTS is not set
+CONFIG_MTDIDS_DEFAULT=""
+CONFIG_MTDPARTS_DEFAULT=""
+# CONFIG_CMD_ZFS is not set
+
+#
+# Debug commands
+#
+CONFIG_CMD_CBSYSINFO=y
+CONFIG_CMD_CYCLIC=y
+# CONFIG_CMD_DIAG is not set
+# CONFIG_CMD_EVENT is not set
+CONFIG_CMD_IRQ=y
+# CONFIG_CMD_LOG is not set
+# CONFIG_CMD_UBI is not set
+# CONFIG_MMC_SPEED_MODE_SET is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITIONS=y
+CONFIG_MAC_PARTITION=y
+# CONFIG_SPL_MAC_PARTITION is not set
+CONFIG_DOS_PARTITION=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_ISO_PARTITION=y
+# CONFIG_SPL_ISO_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_SPL_AMIGA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128
+CONFIG_EFI_PARTITION_ENTRIES_OFF=0
+# CONFIG_SPL_EFI_PARTITION is not set
+CONFIG_PARTITION_UUIDS=y
+CONFIG_PARTITION_TYPE_GUID=y
+CONFIG_SUPPORT_OF_CONTROL=y
+CONFIG_PYLIBFDT=y
+CONFIG_DTOC=y
+CONFIG_BINMAN=y
+
+#
+# Device Tree Control
+#
+CONFIG_OF_CONTROL=y
+CONFIG_OF_REAL=y
+CONFIG_SPL_OF_CONTROL=y
+# CONFIG_OF_LIVE is not set
+# CONFIG_OF_UPSTREAM is not set
+CONFIG_OF_SEPARATE=y
+# CONFIG_OF_EMBED is not set
+# CONFIG_OF_INITIAL_DTB_READONLY is not set
+# CONFIG_OF_BOARD is not set
+# CONFIG_OF_OMIT_DTB is not set
+CONFIG_DEVICE_TREE_INCLUDES=""
+CONFIG_OF_LIST="coreboot"
+# CONFIG_MULTI_DTB_FIT is not set
+CONFIG_SPL_OF_LIST="coreboot"
+CONFIG_OF_TAG_MIGRATE=y
+CONFIG_OF_SPL_REMOVE_PROPS="clocks clock-names interrupt-parent interrupts"
+# CONFIG_OF_DTB_PROPS_REMOVE is not set
+# CONFIG_SPL_OF_PLATDATA is not set
+CONFIG_SPL_OF_REAL=y
+
+#
+# Environment
+#
+CONFIG_ENV_SUPPORT=y
+CONFIG_SAVEENV=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_MIN_ENTRIES=64
+CONFIG_ENV_MAX_ENTRIES=512
+CONFIG_ENV_IS_DEFAULT=y
+CONFIG_ENV_IS_NOWHERE=y
+# CONFIG_ENV_IS_IN_EEPROM is not set
+# CONFIG_ENV_IS_IN_FAT is not set
+# CONFIG_ENV_IS_IN_EXT4 is not set
+# CONFIG_ENV_IS_IN_FLASH is not set
+# CONFIG_ENV_IS_IN_MMC is not set
+# CONFIG_ENV_IS_IN_NAND is not set
+# CONFIG_ENV_IS_IN_NVRAM is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+# CONFIG_USE_DEFAULT_ENV_FILE is not set
+# CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG is not set
+# CONFIG_ENV_IMPORT_FDT is not set
+# CONFIG_ENV_APPEND is not set
+# CONFIG_ENV_WRITEABLE_LIST is not set
+# CONFIG_ENV_ACCESS_IGNORE_FORCE is not set
+CONFIG_USE_BOOTFILE=y
+CONFIG_BOOTFILE="bzImage"
+# CONFIG_USE_ETHPRIME is not set
+CONFIG_USE_HOSTNAME=y
+CONFIG_HOSTNAME="x86"
+# CONFIG_VERSION_VARIABLE is not set
+CONFIG_NET=y
+CONFIG_ARP_TIMEOUT=5000
+CONFIG_NET_RETRY_COUNT=5
+# CONFIG_PROT_UDP is not set
+CONFIG_BOOTDEV_ETH=y
+# CONFIG_BOOTP_SEND_HOSTNAME is not set
+# CONFIG_NET_RANDOM_ETHADDR is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_IP_DEFRAG is not set
+# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set
+CONFIG_TFTP_BLOCKSIZE=1468
+# CONFIG_TFTP_PORT is not set
+CONFIG_TFTP_WINDOWSIZE=1
+CONFIG_TFTP_TSIZE=y
+# CONFIG_SERVERIP_FROM_PROXYDHCP is not set
+CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100
+# CONFIG_KEEP_SERVERADDR is not set
+# CONFIG_UDP_CHECKSUM is not set
+# CONFIG_BOOTP_SERVERIP is not set
+CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64
+# CONFIG_USE_GATEWAYIP is not set
+# CONFIG_USE_IPADDR is not set
+# CONFIG_USE_NETMASK is not set
+CONFIG_USE_ROOTPATH=y
+CONFIG_ROOTPATH="/opt/nfsroot"
+# CONFIG_USE_SERVERIP is not set
+# CONFIG_PROT_TCP is not set
+# CONFIG_IPV6 is not set
+CONFIG_SYS_RX_ETH_BUFFER=4
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+CONFIG_SPL_DM=y
+# CONFIG_DM_WARN is not set
+# CONFIG_SPL_DM_WARN is not set
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_STATS is not set
+# CONFIG_SPL_DM_STATS is not set
+CONFIG_DM_DEVICE_REMOVE=y
+CONFIG_DM_EVENT=y
+# CONFIG_SPL_DM_DEVICE_REMOVE is not set
+CONFIG_DM_STDIO=y
+CONFIG_DM_SEQ_ALIAS=y
+# CONFIG_SPL_DM_SEQ_ALIAS is not set
+CONFIG_SPL_DM_INLINE_OFNODE=y
+# CONFIG_DM_DMA is not set
+CONFIG_REGMAP=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SYSCON=y
+CONFIG_SPL_SYSCON=y
+# CONFIG_DEVRES is not set
+CONFIG_SIMPLE_BUS=y
+CONFIG_SPL_SIMPLE_BUS=y
+# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set
+CONFIG_OF_TRANSLATE=y
+# CONFIG_SPL_OF_TRANSLATE is not set
+# CONFIG_TRANSLATION_OFFSET is not set
+CONFIG_DM_DEV_READ_INLINE=y
+# CONFIG_OFNODE_MULTI_TREE is not set
+# CONFIG_ACPIGEN is not set
+# CONFIG_BOUNCE_BUFFER is not set
+# CONFIG_ADC is not set
+# CONFIG_SPL_ADC is not set
+CONFIG_SATA=y
+CONFIG_LIBATA=y
+CONFIG_SCSI_AHCI=y
+
+#
+# SATA/SCSI device support
+#
+CONFIG_AHCI_PCI=y
+# CONFIG_DWC_AHCI is not set
+# CONFIG_DWC_AHSATA is not set
+# CONFIG_MTK_AHCI is not set
+# CONFIG_SUNXI_AHCI is not set
+# CONFIG_SATA_CEVA is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_AXI is not set
+
+#
+# Bus devices
+#
+CONFIG_BLK=y
+CONFIG_SPL_LEGACY_BLOCK=y
+CONFIG_SPL_BLK=y
+CONFIG_BLOCK_CACHE=y
+# CONFIG_BLKMAP is not set
+# CONFIG_SPL_BLOCK_CACHE is not set
+# CONFIG_EFI_MEDIA is not set
+# CONFIG_SPL_BLK_FS is not set
+CONFIG_IDE=y
+CONFIG_SYS_IDE_MAXBUS=2
+CONFIG_SYS_IDE_MAXDEVICE=4
+CONFIG_SYS_ATA_BASE_ADDR=0x0
+CONFIG_SYS_ATA_STRIDE=0x1
+CONFIG_SYS_ATA_DATA_OFFSET=0
+CONFIG_SYS_ATA_REG_OFFSET=0
+CONFIG_SYS_ATA_ALT_OFFSET=0
+CONFIG_SYS_ATA_IDE0_OFFSET=0x1f0
+CONFIG_SYS_ATA_IDE1_OFFSET=0x170
+CONFIG_ATAPI=y
+# CONFIG_IDE_RESET is not set
+CONFIG_LBA48=y
+CONFIG_SYS_64BIT_LBA=y
+# CONFIG_RKMTD is not set
+# CONFIG_BOOTCOUNT_LIMIT is not set
+
+#
+# Button Support
+#
+# CONFIG_BUTTON is not set
+
+#
+# Cache Controller drivers
+#
+# CONFIG_CACHE is not set
+# CONFIG_ANDES_L2_CACHE is not set
+# CONFIG_NCORE_CACHE is not set
+# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SIFIVE_PL2 is not set
+
+#
+# Clock
+#
+# CONFIG_CLK is not set
+# CONFIG_SPL_CLK_CCF is not set
+# CONFIG_CLK_CCF is not set
+# CONFIG_COMMON_CLK_ADI_SHARED is not set
+# CONFIG_CLK_RCAR is not set
+# CONFIG_CLK_RCAR_CPG_LIB is not set
+# CONFIG_CPU is not set
+
+#
+# Hardware crypto devices
+#
+# CONFIG_DM_HASH is not set
+# CONFIG_FSL_CAAM is not set
+# CONFIG_SYS_FSL_SEC_BE is not set
+# CONFIG_SYS_FSL_SEC_LE is not set
+# CONFIG_NPCM_AES is not set
+# CONFIG_NPCM_SHA is not set
+# CONFIG_DDR_SPD is not set
+# CONFIG_IMX_SNPS_DDR_PHY is not set
+
+#
+# Demo for driver model
+#
+# CONFIG_DM_DEMO is not set
+
+#
+# DFU support
+#
+
+#
+# DMA Support
+#
+# CONFIG_DMA is not set
+# CONFIG_DMA_LPC32XX is not set
+# CONFIG_TI_EDMA3 is not set
+# CONFIG_DMA_LEGACY is not set
+
+#
+# Extcon Support
+#
+# CONFIG_EXTCON is not set
+
+#
+# Fastboot support
+#
+# CONFIG_UDP_FUNCTION_FASTBOOT is not set
+# CONFIG_TCP_FUNCTION_FASTBOOT is not set
+# CONFIG_FIRMWARE is not set
+# CONFIG_ZYNQMP_FIRMWARE is not set
+# CONFIG_DM_FUZZING_ENGINE is not set
+
+#
+# FPGA support
+#
+# CONFIG_FPGA_ALTERA is not set
+# CONFIG_FPGA_SOCFPGA is not set
+# CONFIG_FPGA_LATTICE is not set
+# CONFIG_FPGA_XILINX is not set
+# CONFIG_DM_FPGA is not set
+# CONFIG_FWU_MDATA is not set
+CONFIG_GPIO=y
+CONFIG_SPL_DM_GPIO=y
+# CONFIG_GPIO_HOG is not set
+# CONFIG_SPL_GPIO_HOG is not set
+# CONFIG_DM_GPIO_LOOKUP_LABEL is not set
+# CONFIG_SPL_DM_GPIO_LOOKUP_LABEL is not set
+# CONFIG_ALTERA_PIO is not set
+# CONFIG_BCM2835_GPIO is not set
+# CONFIG_DWAPB_GPIO is not set
+# CONFIG_AT91_GPIO is not set
+# CONFIG_ATMEL_PIO4 is not set
+# CONFIG_ASPEED_GPIO is not set
+# CONFIG_DA8XX_GPIO is not set
+# CONFIG_HIKEY_GPIO is not set
+# CONFIG_INTEL_BROADWELL_GPIO is not set
+# CONFIG_INTEL_GPIO is not set
+# CONFIG_INTEL_ICH6_GPIO is not set
+# CONFIG_IMX_RGPIO2P is not set
+# CONFIG_IPROC_GPIO is not set
+# CONFIG_HSDK_CREG_GPIO is not set
+# CONFIG_KIRKWOOD_GPIO is not set
+# CONFIG_LPC32XX_GPIO is not set
+# CONFIG_MCP230XX_GPIO is not set
+# CONFIG_MSM_GPIO is not set
+# CONFIG_MXC_GPIO is not set
+# CONFIG_MXS_GPIO is not set
+# CONFIG_NPCM_GPIO is not set
+# CONFIG_CMD_PCA953X is not set
+# CONFIG_ROCKCHIP_GPIO is not set
+# CONFIG_XILINX_GPIO is not set
+# CONFIG_TCA642X is not set
+# CONFIG_TEGRA_GPIO is not set
+# CONFIG_TEGRA186_GPIO is not set
+# CONFIG_VYBRID_GPIO is not set
+# CONFIG_SIFIVE_GPIO is not set
+# CONFIG_ZYNQ_GPIO is not set
+# CONFIG_DM_74X164 is not set
+# CONFIG_SPL_DM_PCA953X is not set
+# CONFIG_PCA953X is not set
+# CONFIG_MPC8XXX_GPIO is not set
+# CONFIG_MPC8XX_GPIO is not set
+# CONFIG_NX_GPIO is not set
+# CONFIG_NOMADIK_GPIO is not set
+# CONFIG_SLG7XL45106_I2C_GPO is not set
+# CONFIG_FTGPIO010 is not set
+
+#
+# Hardware Spinlock Support
+#
+# CONFIG_DM_HWSPINLOCK is not set
+CONFIG_I2C=y
+# CONFIG_DM_I2C is not set
+# CONFIG_SYS_I2C_LEGACY is not set
+# CONFIG_SPL_SYS_I2C_LEGACY is not set
+# CONFIG_TPL_SYS_I2C_LEGACY is not set
+# CONFIG_SYS_I2C_FSL is not set
+# CONFIG_SYS_I2C_DW is not set
+# CONFIG_SYS_I2C_IMX_LPI2C is not set
+# CONFIG_SYS_I2C_MTK is not set
+# CONFIG_SYS_I2C_MICROCHIP is not set
+# CONFIG_SYS_I2C_MXC is not set
+# CONFIG_SYS_I2C_NPCM is not set
+# CONFIG_SYS_I2C_SOFT is not set
+# CONFIG_SYS_I2C_MV is not set
+# CONFIG_SYS_I2C_MVTWSI is not set
+CONFIG_INPUT=y
+# CONFIG_SPL_INPUT is not set
+CONFIG_DM_KEYBOARD=y
+# CONFIG_SPL_DM_KEYBOARD is not set
+# CONFIG_BUTTON_KEYBOARD is not set
+# CONFIG_CROS_EC_KEYB is not set
+CONFIG_I8042_KEYB=y
+# CONFIG_TEGRA_KEYBOARD is not set
+# CONFIG_TWL4030_INPUT is not set
+
+#
+# IOMMU device drivers
+#
+# CONFIG_IOMMU is not set
+
+#
+# LED Support
+#
+# CONFIG_LED is not set
+# CONFIG_SPL_LED is not set
+# CONFIG_LED_STATUS is not set
+
+#
+# Mailbox Controller Support
+#
+# CONFIG_DM_MAILBOX is not set
+
+#
+# Memory Controller drivers
+#
+# CONFIG_MEMORY is not set
+# CONFIG_ATMEL_EBI is not set
+# CONFIG_MFD_ATMEL_SMC is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MISC is not set
+# CONFIG_SPL_MISC is not set
+# CONFIG_NVMEM is not set
+# CONFIG_SPL_NVMEM is not set
+# CONFIG_SMSC_LPC47M is not set
+# CONFIG_SMSC_SIO1007 is not set
+CONFIG_CBMEM_CONSOLE=y
+# CONFIG_CROS_EC is not set
+# CONFIG_DS4510 is not set
+# CONFIG_FSL_SEC_MON is not set
+CONFIG_IRQ=y
+# CONFIG_NPCM_HOST is not set
+# CONFIG_NUVOTON_NCT6102D is not set
+# CONFIG_P2SB is not set
+# CONFIG_PWRSEQ is not set
+# CONFIG_PCA9551_LED is not set
+# CONFIG_TEST_DRV is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_TWL4030_LED is not set
+# CONFIG_WINBOND_W83627 is not set
+# CONFIG_FS_LOADER is not set
+# CONFIG_SPL_FS_LOADER is not set
+# CONFIG_SPL_SOCFPGA_DT_REG is not set
+
+#
+# MMC Host controller Support
+#
+CONFIG_MMC=y
+CONFIG_MMC_WRITE=y
+# CONFIG_MMC_BROKEN_CD is not set
+CONFIG_DM_MMC=y
+CONFIG_SPL_DM_MMC=y
+# CONFIG_ARM_PL180_MMCI is not set
+CONFIG_MMC_QUIRKS=y
+CONFIG_SYS_MMC_MAX_BLK_COUNT=65535
+CONFIG_MMC_HW_PARTITIONING=y
+# CONFIG_SUPPORT_EMMC_RPMB is not set
+# CONFIG_SUPPORT_EMMC_BOOT is not set
+# CONFIG_MMC_IO_VOLTAGE is not set
+# CONFIG_MMC_HS400_ES_SUPPORT is not set
+# CONFIG_MMC_HS400_SUPPORT is not set
+# CONFIG_MMC_HS200_SUPPORT is not set
+CONFIG_MMC_VERBOSE=y
+# CONFIG_MMC_TRACE is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_MXC is not set
+CONFIG_MMC_PCI=y
+# CONFIG_MMC_OMAP_HS is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+# CONFIG_MMC_SDHCI_ADMA is not set
+# CONFIG_MMC_SDHCI_ADMA_FORCE_32BIT is not set
+# CONFIG_MMC_SDHCI_ADMA_64BIT is not set
+# CONFIG_MMC_SDHCI_BCMSTB is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_CV1800B is not set
+# CONFIG_MMC_SDHCI_IPROC is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_KONA is not set
+# CONFIG_MMC_SDHCI_MSM is not set
+# CONFIG_MMC_SDHCI_NPCM is not set
+# CONFIG_MMC_SDHCI_S5P is not set
+# CONFIG_MMC_SDHCI_STI is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_TANGIER is not set
+# CONFIG_MMC_SDHCI_ZYNQ is not set
+# CONFIG_MMC_PITON is not set
+# CONFIG_STM32_SDMMC2 is not set
+# CONFIG_FTSDC010 is not set
+# CONFIG_FSL_ESDHC is not set
+# CONFIG_FSL_ESDHC_IMX is not set
+
+#
+# MTD Support
+#
+CONFIG_MTD=y
+# CONFIG_DM_MTD is not set
+# CONFIG_MTD_NOR_FLASH is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_SYS_MTDPARTS_RUNTIME is not set
+# CONFIG_FLASH_CFI_DRIVER is not set
+# CONFIG_HBMC_AM654 is not set
+# CONFIG_SAMSUNG_ONENAND is not set
+# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set
+# CONFIG_MTD_RAW_NAND is not set
+
+#
+# SPI Flash Support
+#
+# CONFIG_SPI_FLASH is not set
+
+#
+# UBI support
+#
+# CONFIG_UBI_SILENCE_MSG is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_NVMXIP is not set
+# CONFIG_NVMXIP_QSPI is not set
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MULTIPLEXER is not set
+# CONFIG_BITBANGMII is not set
+# CONFIG_MV88E6352_SWITCH is not set
+CONFIG_PHYLIB=y
+# CONFIG_PHY_ADDR_ENABLE is not set
+CONFIG_PHY_ANEG_TIMEOUT=4000
+# CONFIG_B53_SWITCH is not set
+# CONFIG_MV88E61XX_SWITCH is not set
+# CONFIG_PHYLIB_10G is not set
+# CONFIG_PHY_ADIN is not set
+# CONFIG_PHY_AQUANTIA is not set
+# CONFIG_PHY_ATHEROS is not set
+# CONFIG_SPL_PHY_ATHEROS is not set
+# CONFIG_PHY_BROADCOM is not set
+# CONFIG_PHY_CORTINA is not set
+# CONFIG_PHY_DAVICOM is not set
+# CONFIG_PHY_ET1011C is not set
+# CONFIG_PHY_LXT is not set
+# CONFIG_PHY_MARVELL is not set
+# CONFIG_PHY_MARVELL_10G is not set
+# CONFIG_PHY_MESON_GXL is not set
+# CONFIG_PHY_MICREL is not set
+# CONFIG_PHY_MOTORCOMM is not set
+# CONFIG_PHY_MSCC is not set
+# CONFIG_PHY_NATSEMI is not set
+# CONFIG_PHY_NXP_C45_TJA11XX is not set
+# CONFIG_PHY_NXP_TJA11XX is not set
+# CONFIG_PHY_REALTEK is not set
+# CONFIG_PHY_SMSC is not set
+# CONFIG_PHY_TERANETICS is not set
+# CONFIG_PHY_TI is not set
+# CONFIG_PHY_TI_DP83867 is not set
+# CONFIG_PHY_TI_DP83869 is not set
+# CONFIG_PHY_TI_GENERIC is not set
+# CONFIG_PHY_VITESSE is not set
+# CONFIG_PHY_XILINX is not set
+# CONFIG_PHY_XILINX_GMII2RGMII is not set
+# CONFIG_PHY_XWAY is not set
+# CONFIG_PHY_ETHERNET_ID is not set
+# CONFIG_PHY_FIXED is not set
+# CONFIG_PHY_NCSI is not set
+# CONFIG_FSL_MEMAC is not set
+CONFIG_PHY_RESET_DELAY=0
+# CONFIG_FSL_PFE is not set
+CONFIG_ETH=y
+CONFIG_DM_ETH=y
+# CONFIG_DM_MDIO is not set
+# CONFIG_DM_ETH_PHY is not set
+CONFIG_NETDEVICES=y
+# CONFIG_PHY_GIGE is not set
+# CONFIG_ALTERA_TSE is not set
+# CONFIG_BCM_SF2_ETH is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNXT_ETH is not set
+# CONFIG_CALXEDA_XGMAC is not set
+# CONFIG_DWC_ETH_XGMAC is not set
+# CONFIG_DRIVER_DM9000 is not set
+# CONFIG_DWC_ETH_QOS is not set
+CONFIG_E1000=y
+# CONFIG_E1000_NO_NVM is not set
+# CONFIG_E1000_SPI_GENERIC is not set
+# CONFIG_E1000_SPI is not set
+# CONFIG_CMD_E1000 is not set
+# CONFIG_EEPRO100 is not set
+CONFIG_ETH_DESIGNWARE=y
+# CONFIG_ETH_DESIGNWARE_MESON8B is not set
+# CONFIG_ETH_DESIGNWARE_SOCFPGA is not set
+# CONFIG_ETH_DESIGNWARE_S700 is not set
+# CONFIG_DW_ALTDESCRIPTOR is not set
+# CONFIG_ETHOC is not set
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+# CONFIG_MCFFEC is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_LITEETH is not set
+# CONFIG_MACB is not set
+# CONFIG_NET_NPCM750 is not set
+CONFIG_PCH_GBE=y
+# CONFIG_RGMII is not set
+# CONFIG_MII is not set
+# CONFIG_RMII is not set
+# CONFIG_PCNET is not set
+# CONFIG_QE_UEC is not set
+# CONFIG_RTL8139 is not set
+CONFIG_RTL8169=y
+# CONFIG_SMC911X is not set
+# CONFIG_SUN7I_GMAC is not set
+# CONFIG_SUN4I_EMAC is not set
+# CONFIG_SUN8I_EMAC is not set
+# CONFIG_SH_ETHER is not set
+# CONFIG_DRIVER_TI_CPSW is not set
+# CONFIG_DRIVER_TI_EMAC is not set
+# CONFIG_DRIVER_TI_KEYSTONE_NET is not set
+# CONFIG_TULIP is not set
+# CONFIG_XILINX_AXIEMAC is not set
+# CONFIG_VSC7385_ENET is not set
+# CONFIG_XILINX_EMACLITE is not set
+# CONFIG_ZYNQ_GEM is not set
+# CONFIG_GMAC_ROCKCHIP is not set
+# CONFIG_TSEC_ENET is not set
+# CONFIG_MEDIATEK_ETH is not set
+# CONFIG_HIFEMAC_ETH is not set
+# CONFIG_HIGMACV300_ETH is not set
+CONFIG_NVME=y
+# CONFIG_NVME_APPLE is not set
+CONFIG_NVME_PCI=y
+# CONFIG_DM_PCI_COMPAT is not set
+# CONFIG_PCI_PNP is not set
+# CONFIG_PCI_REGION_MULTI_ENTRY is not set
+CONFIG_PCI_CONFIG_HOST_BRIDGE=y
+# CONFIG_PCI_SRIOV is not set
+CONFIG_PCI_ENHANCED_ALLOCATION=y
+# CONFIG_PCI_ARID is not set
+# CONFIG_PCIE_ECAM_GENERIC is not set
+# CONFIG_PCIE_ECAM_SYNQUACER is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_PHYTIUM is not set
+# CONFIG_PCIE_FSL is not set
+# CONFIG_PCI_MPC85XX is not set
+# CONFIG_PCI_XILINX is not set
+# CONFIG_PCIE_LAYERSCAPE_RC is not set
+# CONFIG_PCIE_LAYERSCAPE_EP is not set
+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
+# CONFIG_PCIE_INTEL_FPGA is not set
+# CONFIG_PCIE_IPROC is not set
+# CONFIG_PCI_KEYSTONE is not set
+# CONFIG_PCIE_STARFIVE_JH7110 is not set
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+CONFIG_PCH=y
+CONFIG_X86_PCH7=y
+CONFIG_X86_PCH9=y
+
+#
+# PHY Subsystem
+#
+# CONFIG_PHY is not set
+# CONFIG_SPL_PHY is not set
+# CONFIG_MIPI_DPHY_HELPERS is not set
+
+#
+# Rockchip PHY driver
+#
+# CONFIG_MVEBU_COMPHY_SUPPORT is not set
+
+#
+# Pin controllers
+#
+# CONFIG_PINCTRL is not set
+CONFIG_SPL_PINCTRL=y
+CONFIG_SPL_PINCTRL_FULL=y
+CONFIG_SPL_PINCTRL_GENERIC=y
+CONFIG_SPL_PINMUX=y
+# CONFIG_SPL_PINCONF is not set
+CONFIG_SPL_PINCONF_RECURSIVE=y
+# CONFIG_PINCTRL_AT91 is not set
+# CONFIG_PINCTRL_AT91PIO4 is not set
+# CONFIG_PINCTRL_INTEL is not set
+# CONFIG_PINCTRL_QE is not set
+# CONFIG_PINCTRL_ROCKCHIP_RV1108 is not set
+# CONFIG_PINCTRL_SINGLE is not set
+# CONFIG_PINCTRL_STM32 is not set
+# CONFIG_SPL_PINCTRL_STMFX is not set
+# CONFIG_PINCTRL_TEGRA is not set
+# CONFIG_SPL_PINCTRL_TEGRA is not set
+CONFIG_POWER=y
+# CONFIG_POWER_LEGACY is not set
+# CONFIG_SPL_POWER_LEGACY is not set
+# CONFIG_ACPI_PMC is not set
+# CONFIG_SPL_ACPI_PMC is not set
+
+#
+# Power Domain Support
+#
+# CONFIG_POWER_DOMAIN is not set
+# CONFIG_DM_PMIC is not set
+# CONFIG_PMIC_TPS65217 is not set
+# CONFIG_POWER_TPS65218 is not set
+# CONFIG_POWER_TPS62362 is not set
+# CONFIG_SPL_POWER_TPS62362 is not set
+# CONFIG_SPL_POWER_TPS65910 is not set
+# CONFIG_DM_REGULATOR is not set
+# CONFIG_TPS6586X_POWER is not set
+# CONFIG_POWER_MT6323 is not set
+# CONFIG_DM_PWM is not set
+# CONFIG_PWM_IMX is not set
+# CONFIG_PWM_SANDBOX is not set
+# CONFIG_U_QE is not set
+# CONFIG_RAM is not set
+
+#
+# Reboot Mode Support
+#
+# CONFIG_DM_REBOOT_MODE is not set
+
+#
+# Remote Processor drivers
+#
+CONFIG_REMOTEPROC_MAX_FW_SIZE=0x10000
+
+#
+# Reset Controller Support
+#
+# CONFIG_RESET_SCMI is not set
+# CONFIG_DM_RNG is not set
+# CONFIG_SPL_DM_RNG is not set
+
+#
+# Real Time Clock
+#
+CONFIG_DM_RTC=y
+# CONFIG_SPL_DM_RTC is not set
+# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set
+# CONFIG_RTC_PCF2127 is not set
+# CONFIG_RTC_DS1307 is not set
+# CONFIG_RTC_DS1337 is not set
+# CONFIG_RTC_DS1338 is not set
+# CONFIG_RTC_DS3231 is not set
+# CONFIG_RTC_EMULATION is not set
+# CONFIG_RTC_GOLDFISH is not set
+# CONFIG_RTC_ISL1208 is not set
+# CONFIG_RTC_PCF8563 is not set
+# CONFIG_RTC_PT7C4338 is not set
+# CONFIG_RTC_RV3028 is not set
+# CONFIG_RTC_RV3029 is not set
+# CONFIG_RTC_RV8803 is not set
+# CONFIG_RTC_RX8010SJ is not set
+# CONFIG_RTC_RX8025 is not set
+# CONFIG_RTC_PL031 is not set
+# CONFIG_RTC_MV is not set
+# CONFIG_RTC_S35392A is not set
+CONFIG_RTC_MC146818=y
+# CONFIG_RTC_M41T62 is not set
+# CONFIG_RTC_STM32 is not set
+# CONFIG_RTC_ABX80X is not set
+# CONFIG_RTC_HT1380 is not set
+CONFIG_SCSI=y
+CONFIG_SERIAL=y
+CONFIG_BAUDRATE=115200
+# CONFIG_DEFAULT_ENV_IS_RW is not set
+CONFIG_REQUIRE_SERIAL_CONSOLE=y
+# CONFIG_SPECIFY_CONSOLE_INDEX is not set
+CONFIG_SERIAL_PRESENT=y
+CONFIG_SPL_SERIAL_PRESENT=y
+CONFIG_DM_SERIAL=y
+# CONFIG_SERIAL_RX_BUFFER is not set
+# CONFIG_SERIAL_PUTS is not set
+# CONFIG_SERIAL_SEARCH_ALL is not set
+# CONFIG_SERIAL_PROBE_ALL is not set
+CONFIG_SPL_DM_SERIAL=y
+# CONFIG_VPL_DM_SERIAL is not set
+# CONFIG_ALTERA_JTAG_UART is not set
+# CONFIG_ALTERA_UART is not set
+# CONFIG_ARC_SERIAL is not set
+# CONFIG_ATMEL_USART is not set
+# CONFIG_BCM6345_SERIAL is not set
+CONFIG_COREBOOT_SERIAL=y
+CONFIG_COREBOOT_SERIAL_FROM_DBG2=y
+# CONFIG_CORTINA_UART is not set
+# CONFIG_FSL_LINFLEXUART is not set
+# CONFIG_FSL_LPUART is not set
+# CONFIG_MVEBU_A3700_UART is not set
+# CONFIG_MCFUART is not set
+# CONFIG_NULLDEV_SERIAL is not set
+CONFIG_SYS_NS16550=y
+CONFIG_NS16550_DYNAMIC=y
+CONFIG_SYS_NS16550_MEM32=y
+# CONFIG_SYS_NS16550_PORT_MAPPED is not set
+# CONFIG_PL01X_SERIAL is not set
+# CONFIG_ROCKCHIP_SERIAL is not set
+# CONFIG_XILINX_UARTLITE is not set
+# CONFIG_MSM_SERIAL is not set
+# CONFIG_MSM_GENI_SERIAL is not set
+# CONFIG_MXS_AUART_SERIAL is not set
+# CONFIG_OMAP_SERIAL is not set
+# CONFIG_SIFIVE_SERIAL is not set
+# CONFIG_ZYNQ_SERIAL is not set
+# CONFIG_MTK_SERIAL is not set
+# CONFIG_MT7620_SERIAL is not set
+# CONFIG_NPCM_SERIAL is not set
+# CONFIG_SM is not set
+# CONFIG_MESON_SM is not set
+# CONFIG_SMEM is not set
+
+#
+# Sound support
+#
+CONFIG_SOUND=y
+# CONFIG_I2S is not set
+# CONFIG_SOUND_DA7219 is not set
+CONFIG_SOUND_I8254=y
+# CONFIG_SOUND_INTEL_HDA is not set
+# CONFIG_SOUND_IVYBRIDGE is not set
+# CONFIG_SOUND_MAX98357A is not set
+# CONFIG_SOUND_RT5677 is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+# CONFIG_SOC_DEVICE is not set
+# CONFIG_SOC_QCOM is not set
+# CONFIG_SOC_SAMSUNG is not set
+# CONFIG_SOC_TI is not set
+# CONFIG_SPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+CONFIG_SYSINFO=y
+CONFIG_SYSINFO_EXTRA=y
+# CONFIG_SPL_SYSINFO is not set
+# CONFIG_SYSINFO_GAZERBEAM is not set
+# CONFIG_SYSINFO_SANDBOX is not set
+# CONFIG_SYSINFO_SMBIOS is not set
+# CONFIG_SYSINFO_GPIO is not set
+
+#
+# System reset device drivers
+#
+CONFIG_SYSRESET=y
+CONFIG_SPL_SYSRESET=y
+CONFIG_SYSRESET_CMD_RESET=y
+# CONFIG_SYSRESET_CV1800B is not set
+# CONFIG_POWEROFF_GPIO is not set
+# CONFIG_SYSRESET_GPIO is not set
+# CONFIG_SYSRESET_SYSCON is not set
+# CONFIG_SYSRESET_WATCHDOG is not set
+# CONFIG_SYSRESET_RESETCTL is not set
+CONFIG_SYSRESET_X86=y
+# CONFIG_SYSRESET_SPL_X86 is not set
+# CONFIG_SYSRESET_TPL_X86 is not set
+# CONFIG_SYSRESET_MPC83XX is not set
+# CONFIG_DM_THERMAL is not set
+
+#
+# Timer Support
+#
+CONFIG_TIMER=y
+CONFIG_SPL_TIMER=y
+# CONFIG_TIMER_EARLY is not set
+# CONFIG_ALTERA_TIMER is not set
+# CONFIG_AST_TIMER is not set
+# CONFIG_ATCPIT100_TIMER is not set
+# CONFIG_ATMEL_PIT_TIMER is not set
+# CONFIG_SPL_ATMEL_PIT_TIMER is not set
+# CONFIG_CADENCE_TTC_TIMER is not set
+# CONFIG_DESIGNWARE_APB_TIMER is not set
+# CONFIG_FTTMR010_TIMER is not set
+# CONFIG_GXP_TIMER is not set
+# CONFIG_MPC83XX_TIMER is not set
+# CONFIG_RENESAS_OSTM_TIMER is not set
+# CONFIG_NOMADIK_MTU_TIMER is not set
+# CONFIG_NPCM_TIMER is not set
+# CONFIG_OMAP_TIMER is not set
+# CONFIG_ORION_TIMER is not set
+# CONFIG_ROCKCHIP_TIMER is not set
+# CONFIG_SP804_TIMER is not set
+# CONFIG_STM32_TIMER is not set
+# CONFIG_TEGRA_TIMER is not set
+CONFIG_X86_TSC_TIMER=y
+CONFIG_X86_TSC_READ_BASE=y
+# CONFIG_MTK_TIMER is not set
+# CONFIG_MCHP_PIT64B_TIMER is not set
+# CONFIG_IMX_GPT_TIMER is not set
+# CONFIG_XILINX_TIMER is not set
+# CONFIG_STARFIVE_TIMER is not set
+
+#
+# TPM support
+#
+CONFIG_USB=y
+CONFIG_DM_USB=y
+CONFIG_SPL_DM_USB=y
+# CONFIG_DM_USB_GADGET is not set
+# CONFIG_SPL_DM_USB_GADGET is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_HOST=y
+# CONFIG_SPL_USB_HOST is not set
+CONFIG_USB_XHCI_HCD=y
+# CONFIG_USB_XHCI_DWC3 is not set
+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set
+CONFIG_USB_XHCI_PCI=y
+# CONFIG_USB_XHCI_FSL is not set
+# CONFIG_USB_XHCI_BRCM is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_MSM is not set
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_ZYNQ is not set
+# CONFIG_USB_EHCI_GENERIC is not set
+# CONFIG_USB_EHCI_FSL is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_ISP1760 is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_DWC3 is not set
+
+#
+# Legacy MUSB Support
+#
+# CONFIG_USB_MUSB_HCD is not set
+# CONFIG_USB_MUSB_UDC is not set
+
+#
+# MUSB Controller Driver
+#
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_PIO_ONLY is not set
+
+#
+# USB Phy
+#
+# CONFIG_TWL4030_USB is not set
+# CONFIG_ROCKCHIP_USB2_PHY is not set
+
+#
+# ULPI drivers
+#
+
+#
+# USB peripherals
+#
+CONFIG_USB_STORAGE=y
+CONFIG_USB_KEYBOARD=y
+# CONFIG_USB_ONBOARD_HUB is not set
+CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000
+CONFIG_USB_KEYBOARD_FN_KEYS=y
+CONFIG_SYS_USB_EVENT_POLL=y
+# CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE is not set
+# CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP is not set
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+# CONFIG_USB_ETHER_ASIX88179 is not set
+# CONFIG_USB_ETHER_LAN75XX is not set
+# CONFIG_USB_ETHER_LAN78XX is not set
+# CONFIG_USB_ETHER_MCS7830 is not set
+# CONFIG_USB_ETHER_RTL8152 is not set
+CONFIG_USB_ETHER_SMSC95XX=y
+# CONFIG_USB_GADGET is not set
+# CONFIG_SPL_USB_GADGET is not set
+
+#
+# UFS Host Controller Support
+#
+# CONFIG_UFS is not set
+# CONFIG_TI_J721E_UFS is not set
+
+#
+# Graphics support
+#
+CONFIG_VIDEO=y
+# CONFIG_VIDEO_FONT_4X6 is not set
+CONFIG_VIDEO_FONT_8X16=y
+# CONFIG_VIDEO_FONT_SUN12X22 is not set
+# CONFIG_VIDEO_FONT_16X32 is not set
+CONFIG_VIDEO_LOGO=y
+CONFIG_BACKLIGHT=y
+CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0x1000000
+CONFIG_VIDEO_COPY=y
+# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_VIDEO_BPP8=y
+CONFIG_VIDEO_BPP16=y
+CONFIG_VIDEO_BPP32=y
+CONFIG_VIDEO_ANSI=y
+# CONFIG_VIDEO_MIPI_DSI is not set
+CONFIG_CONSOLE_NORMAL=y
+# CONFIG_CONSOLE_ROTATION is not set
+CONFIG_CONSOLE_TRUETYPE=y
+CONFIG_CONSOLE_TRUETYPE_SIZE=18
+CONFIG_CONSOLE_TRUETYPE_MAX_METRICS=10
+CONFIG_SYS_WHITE_ON_BLACK=y
+# CONFIG_NO_FB_CLEAR is not set
+CONFIG_VIDEO_SYNC_MS=100
+CONFIG_VIDEO_SYNC_CYCLIC_MS=10
+CONFIG_PANEL=y
+CONFIG_SIMPLE_PANEL=y
+# CONFIG_PANEL_HX8238D is not set
+
+#
+# TrueType Fonts
+#
+CONFIG_CONSOLE_TRUETYPE_NIMBUS=y
+# CONFIG_CONSOLE_TRUETYPE_ANKACODER is not set
+# CONFIG_CONSOLE_TRUETYPE_RUFSCRIPT is not set
+# CONFIG_CONSOLE_TRUETYPE_CANTORAONE is not set
+# CONFIG_VIDCONSOLE_AS_LCD is not set
+# CONFIG_VIDEO_BOCHS is not set
+CONFIG_VIDEO_COREBOOT=y
+# CONFIG_VIDEO_VESA is not set
+# CONFIG_VIDEO_LCD_ANX9804 is not set
+# CONFIG_ATMEL_LCD_BGR555 is not set
+# CONFIG_VIDEO_BCM2835 is not set
+# CONFIG_VIDEO_LCD_ENDEAVORU is not set
+# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set
+# CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set
+# CONFIG_VIDEO_LCD_LG_LD070WX3 is not set
+# CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set
+# CONFIG_VIDEO_LCD_SAMSUNG_LTL106HL02 is not set
+# CONFIG_VIDEO_LCD_SSD2828 is not set
+# CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set
+# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
+# CONFIG_VIDEO_MESON is not set
+# CONFIG_VIDEO_MVEBU is not set
+# CONFIG_I2C_EDID is not set
+# CONFIG_DISPLAY is not set
+# CONFIG_ATMEL_HLCD is not set
+# CONFIG_BACKLIGHT_LM3533 is not set
+# CONFIG_AM335X_LCD is not set
+# CONFIG_VIDEO_EXYNOS is not set
+# CONFIG_VIDEO_BROADWELL_IGD is not set
+# CONFIG_VIDEO_IVYBRIDGE_IGD is not set
+# CONFIG_VIDEO_ROCKCHIP is not set
+# CONFIG_VIDEO_ARM_MALIDP is not set
+# CONFIG_VIDEO_STM32 is not set
+# CONFIG_VIDEO_TIDSS is not set
+# CONFIG_VIDEO_TEGRA124 is not set
+# CONFIG_VIDEO_BRIDGE is not set
+# CONFIG_VIDEO_BRIDGE_PARADE_DP501 is not set
+# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set
+# CONFIG_VIDEO_BRIDGE_TOSHIBA_TC358768 is not set
+# CONFIG_VIDEO_TEGRA20 is not set
+# CONFIG_VIDEO_DSI_TEGRA30 is not set
+# CONFIG_TEGRA_BACKLIGHT_PWM is not set
+# CONFIG_VIDEO_MXS is not set
+# CONFIG_VIDEO_SEPS525 is not set
+CONFIG_CONSOLE_SCROLL_LINES=5
+# CONFIG_VIDEO_SIMPLE is not set
+# CONFIG_VIDEO_DT_SIMPLEFB is not set
+# CONFIG_VIDEO_MCDE_SIMPLE is not set
+# CONFIG_OSD is not set
+# CONFIG_VIDEO_REMOVE is not set
+# CONFIG_SPLASH_SCREEN is not set
+# CONFIG_BMP is not set
+CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000
+CONFIG_VIDEO_BMP_RLE8=y
+# CONFIG_BMP_16BPP is not set
+# CONFIG_BMP_24BPP is not set
+# CONFIG_BMP_32BPP is not set
+# CONFIG_SPL_VIDEO is not set
+
+#
+# VirtIO Drivers
+#
+# CONFIG_VIRTIO_MMIO is not set
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_PCI_LEGACY is not set
+
+#
+# 1-Wire support
+#
+# CONFIG_W1 is not set
+
+#
+# 1-wire EEPROM support
+#
+# CONFIG_W1_EEPROM is not set
+
+#
+# Watchdog Timer Support
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_IMX_WATCHDOG is not set
+# CONFIG_ULP_WATCHDOG is not set
+# CONFIG_WDT is not set
+# CONFIG_SPL_WDT is not set
+# CONFIG_PHYS_TO_BUS is not set
+
+#
+# File systems
+#
+# CONFIG_FS_BTRFS is not set
+CONFIG_FS_CBFS=y
+# CONFIG_SPL_FS_CBFS is not set
+CONFIG_FS_EXT4=y
+CONFIG_EXT4_WRITE=y
+CONFIG_FS_FAT=y
+CONFIG_FAT_WRITE=y
+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
+# CONFIG_FS_JFFS2 is not set
+# CONFIG_UBIFS_SILENCE_MSG is not set
+# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set
+# CONFIG_FS_CRAMFS is not set
+# CONFIG_YAFFS2 is not set
+# CONFIG_FS_SQUASHFS is not set
+# CONFIG_FS_EROFS is not set
+
+#
+# Library routines
+#
+# CONFIG_ADDR_MAP is not set
+# CONFIG_SYS_TIMER_COUNTS_DOWN is not set
+CONFIG_PHYSMEM=y
+# CONFIG_BCH is not set
+CONFIG_BINMAN_FDT=y
+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
+CONFIG_CHARSET=y
+# CONFIG_DYNAMIC_CRC_TABLE is not set
+CONFIG_HAVE_ARCH_IOMAP=y
+CONFIG_HAVE_PRIVATE_LIBGCC=y
+CONFIG_LIB_UUID=y
+# CONFIG_RANDOM_UUID is not set
+CONFIG_PRINTF=y
+CONFIG_SPL_PRINTF=y
+CONFIG_SPRINTF=y
+CONFIG_SPL_SPRINTF=y
+CONFIG_STRTO=y
+CONFIG_SPL_STRTO=y
+CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_SYS_HZ=1000
+CONFIG_SPL_USE_TINY_PRINTF=y
+# CONFIG_PANIC_HANG is not set
+CONFIG_REGEX=y
+CONFIG_LIB_RAND=y
+# CONFIG_LIB_HW_RAND is not set
+CONFIG_SUPPORT_ACPI=y
+CONFIG_ACPI=y
+CONFIG_SPL_ACPI=y
+# CONFIG_GENERATE_ACPI_TABLE is not set
+# CONFIG_SPL_TINY_MEMSET is not set
+# CONFIG_BITREVERSE is not set
+# CONFIG_TRACE is not set
+# CONFIG_CIRCBUF is not set
+CONFIG_CMD_DHRYSTONE=y
+
+#
+# Security support
+#
+# CONFIG_AES is not set
+# CONFIG_ECDSA is not set
+CONFIG_RSA=y
+# CONFIG_SPL_RSA is not set
+CONFIG_RSA_VERIFY=y
+# CONFIG_RSA_VERIFY_WITH_PKEY is not set
+# CONFIG_SPL_RSA_VERIFY_WITH_PKEY is not set
+CONFIG_RSA_SOFTWARE_EXP=y
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+# CONFIG_TPM is not set
+# CONFIG_SPL_TPM is not set
+
+#
+# Android Verified Boot
+#
+
+#
+# Hashing Support
+#
+# CONFIG_BLAKE2 is not set
+CONFIG_SHA1=y
+CONFIG_SHA256=y
+# CONFIG_SHA512 is not set
+# CONFIG_SHA384 is not set
+# CONFIG_SHA_HW_ACCEL is not set
+# CONFIG_SPL_CRC32 is not set
+CONFIG_SPL_SHA1=y
+CONFIG_SPL_SHA256=y
+# CONFIG_SPL_SHA512 is not set
+# CONFIG_SPL_SHA384 is not set
+# CONFIG_SPL_SHA_HW_ACCEL is not set
+CONFIG_MD5=y
+# CONFIG_SPL_MD5 is not set
+CONFIG_CRC8=y
+# CONFIG_SPL_CRC8 is not set
+# CONFIG_SPL_CRC16 is not set
+CONFIG_CRC32=y
+
+#
+# Compression Support
+#
+# CONFIG_LZ4 is not set
+# CONFIG_LZMA is not set
+# CONFIG_LZO is not set
+# CONFIG_GZIP is not set
+# CONFIG_ZLIB_UNCOMPRESS is not set
+# CONFIG_BZIP2 is not set
+CONFIG_ZLIB=y
+# CONFIG_ZSTD is not set
+# CONFIG_SPL_BZIP2 is not set
+# CONFIG_SPL_LZ4 is not set
+# CONFIG_SPL_LZMA is not set
+# CONFIG_VPL_LZMA is not set
+# CONFIG_SPL_LZO is not set
+# CONFIG_SPL_GZIP is not set
+# CONFIG_SPL_ZSTD is not set
+# CONFIG_ERRNO_STR is not set
+# CONFIG_HEXDUMP is not set
+# CONFIG_GETOPT is not set
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
+CONFIG_SYS_FDT_PAD=0x3000
+CONFIG_SPL_OF_LIBFDT=y
+CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+# CONFIG_LIB_RATIONAL is not set
+# CONFIG_SPL_LIB_RATIONAL is not set
+CONFIG_SMBIOS=y
+CONFIG_SMBIOS_PARSER=y
+# CONFIG_EFI is not set
+CONFIG_EFI_LOADER=y
+CONFIG_EFI_BINARY_EXEC=y
+CONFIG_EFI_BOOTMGR=y
+CONFIG_EFI_VARIABLE_FILE_STORE=y
+# CONFIG_EFI_RT_VOLATILE_STORE is not set
+# CONFIG_EFI_VARIABLE_NO_STORE is not set
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=131072
+CONFIG_EFI_GET_TIME=y
+# CONFIG_EFI_SET_TIME is not set
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+# CONFIG_EFI_SECURE_BOOT is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_EFI_HTTP_BOOT is not set
+# CONFIG_OPTEE_LIB is not set
+# CONFIG_OPTEE_IMAGE is not set
+# CONFIG_BOOTM_OPTEE is not set
+# CONFIG_TEST_FDTDEC is not set
+CONFIG_LIB_DATE=y
+CONFIG_LIB_ELF=y
+CONFIG_LMB=y
+CONFIG_LMB_USE_MAX_REGIONS=y
+CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_PHANDLE_CHECK_SEQ is not set
+
+#
+# Testing
+#
+# CONFIG_UNIT_TEST is not set
+# CONFIG_SPL_UNIT_TEST is not set
+# CONFIG_POST is not set
+
+#
+# Tools options
+#
+CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC32=y
+CONFIG_TOOLS_LIBCRYPTO=y
+CONFIG_TOOLS_KWBIMAGE=y
+CONFIG_TOOLS_FIT=y
+CONFIG_TOOLS_FIT_FULL_CHECK=y
+CONFIG_TOOLS_FIT_PRINT=y
+CONFIG_TOOLS_FIT_RSASSA_PSS=y
+CONFIG_TOOLS_FIT_SIGNATURE=y
+CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE=0x10000000
+CONFIG_TOOLS_FIT_VERBOSE=y
+CONFIG_TOOLS_MD5=y
+CONFIG_TOOLS_OF_LIBFDT=y
+CONFIG_TOOLS_SHA1=y
+CONFIG_TOOLS_SHA256=y
+CONFIG_TOOLS_SHA384=y
+CONFIG_TOOLS_SHA512=y
+CONFIG_TOOLS_MKEFICAPSULE=y
+# CONFIG_FSPI_CONF_HEADER is not set
+# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/config/u-boot/amd64coreboot/target.cfg b/config/u-boot/amd64coreboot/target.cfg
new file mode 100644
index 00000000..8b89408e
--- /dev/null
+++ b/config/u-boot/amd64coreboot/target.cfg
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+tree="x86_64"
+# test building with x86_64 hostcc by commenting these:
+# xtree="default" # coreboot tree containing crossgcc
+# xarch="x86_64-elf"
+# or uncomment them to use crossgcc(buggy)
diff --git a/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch b/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
index 4a3e8687..8227b076 100644
--- a/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
+++ b/config/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
@@ -1,4 +1,4 @@
-From 27d49512277677afb7f71e093b007b3e2022b83e Mon Sep 17 00:00:00 2001
+From ee94f55d37fc8c133faa5055184f75f99830cfdc Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Fri, 8 Oct 2021 17:33:22 +0300
Subject: [PATCH] clk: rockchip: rk3399: Set hardcoded clock rates same as
@@ -60,10 +60,10 @@ index d941a129f3e5..54035c0df1f3 100644
#define PWM_CLOCK_HZ PMU_PCLK_HZ
diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c
-index f748fb5189e0..33f02c2d633c 100644
+index 6e87db18be07..1b8ffe9e794e 100644
--- a/drivers/clk/rockchip/clk_rk3399.c
+++ b/drivers/clk/rockchip/clk_rk3399.c
-@@ -54,10 +54,11 @@ struct pll_div {
+@@ -53,10 +53,11 @@ struct pll_div {
.fbdiv = (u32)((u64)hz * _refdiv * _postdiv1 * _postdiv2 / OSC_HZ),\
.postdiv1 = _postdiv1, .postdiv2 = _postdiv2};
@@ -72,13 +72,13 @@ index f748fb5189e0..33f02c2d633c 100644
+static const struct pll_div gpll_init_cfg = PLL_DIVISORS(GPLL_HZ, 1, 4, 1);
+static const struct pll_div cpll_init_cfg = PLL_DIVISORS(CPLL_HZ, 1, 3, 1);
+static const struct pll_div npll_init_cfg = PLL_DIVISORS(NPLL_HZ, 1, 3, 1);
- #if !defined(CONFIG_SPL_BUILD)
+ #if !defined(CONFIG_XPL_BUILD)
-static const struct pll_div ppll_init_cfg = PLL_DIVISORS(PPLL_HZ, 2, 2, 1);
+static const struct pll_div ppll_init_cfg = PLL_DIVISORS(PPLL_HZ, 3, 2, 1);
#endif
static const struct pll_div apll_l_1600_cfg = PLL_DIVISORS(1600 * MHz, 3, 1, 1);
-@@ -682,7 +683,7 @@ static ulong rk3399_spi_set_clk(struct rockchip_cru *cru, ulong clk_id, uint hz)
+@@ -681,7 +682,7 @@ static ulong rk3399_spi_set_clk(struct rockchip_cru *cru, ulong clk_id, uint hz)
static ulong rk3399_vop_set_clk(struct rockchip_cru *cru, ulong clk_id, u32 hz)
{
struct pll_div vpll_config = {0};
@@ -87,7 +87,7 @@ index f748fb5189e0..33f02c2d633c 100644
void *aclkreg_addr, *dclkreg_addr;
u32 div;
-@@ -1336,6 +1337,7 @@ static void rkclk_init(struct rockchip_cru *cru)
+@@ -1394,6 +1395,7 @@ static void rkclk_init(struct rockchip_cru *cru)
/* configure gpll cpll */
rkclk_set_pll(&cru->gpll_con[0], &gpll_init_cfg);
rkclk_set_pll(&cru->cpll_con[0], &cpll_init_cfg);
@@ -96,5 +96,5 @@ index f748fb5189e0..33f02c2d633c 100644
/* configure perihp aclk, hclk, pclk */
aclk_div = GPLL_HZ / PERIHP_ACLK_HZ - 1;
--
-2.42.0
+2.49.0
diff --git a/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch b/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
index cd5a2751..e2de311c 100644
--- a/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
+++ b/config/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
@@ -1,7 +1,7 @@
-From ac31b6bc4bcfc328342ec1677db5b80548d43b35 Mon Sep 17 00:00:00 2001
+From 780d8ffe985441824a242e5b853721dfe14435dd Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@arm.com>
Date: Mon, 10 Jan 2022 00:56:31 +0000
-Subject: [PATCH 1/4] video: Add cursor support for video consoles
+Subject: [PATCH 1/3] video: Add cursor support for video consoles
So far the video console is completely lacking any cursor, which makes
typing and correcting quite irritating.
@@ -24,7 +24,7 @@ Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
3 files changed, 44 insertions(+)
diff --git a/drivers/video/console_core.c b/drivers/video/console_core.c
-index b5d0e3dceca3..60de5fcacb82 100644
+index 939363653f6c..6b531718276f 100644
--- a/drivers/video/console_core.c
+++ b/drivers/video/console_core.c
@@ -30,6 +30,7 @@ static int console_set_font(struct udevice *dev, struct video_fontdata *fontdata
@@ -36,10 +36,10 @@ index b5d0e3dceca3..60de5fcacb82 100644
vc_priv->y_charsize = fontdata->height;
if (vid_priv->rot % 2) {
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
-index b5b3b6625902..a6d994bd637c 100644
+index ebe96bf0c2f3..8613c464040f 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
-@@ -56,6 +56,26 @@ static int vidconsole_entry_start(struct udevice *dev)
+@@ -57,6 +57,26 @@ int vidconsole_entry_start(struct udevice *dev)
return ops->entry_start(dev);
}
@@ -66,7 +66,7 @@ index b5b3b6625902..a6d994bd637c 100644
/* Move backwards one space */
static int vidconsole_back(struct udevice *dev)
{
-@@ -63,6 +83,8 @@ static int vidconsole_back(struct udevice *dev)
+@@ -64,6 +84,8 @@ static int vidconsole_back(struct udevice *dev)
struct vidconsole_ops *ops = vidconsole_get_ops(dev);
int ret;
@@ -75,7 +75,7 @@ index b5b3b6625902..a6d994bd637c 100644
if (ops->backspace) {
ret = ops->backspace(dev);
if (ret != -ENOSYS)
-@@ -89,6 +111,8 @@ static void vidconsole_newline(struct udevice *dev)
+@@ -90,6 +112,8 @@ static void vidconsole_newline(struct udevice *dev)
const int rows = CONFIG_VAL(CONSOLE_SCROLL_LINES);
int i, ret;
@@ -84,7 +84,7 @@ index b5b3b6625902..a6d994bd637c 100644
priv->xcur_frac = priv->xstart_frac;
priv->ycur += priv->y_charsize;
-@@ -282,6 +306,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
+@@ -286,6 +310,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch)
break;
}
@@ -99,9 +99,9 @@ index b5b3b6625902..a6d994bd637c 100644
case 'J': {
int mode;
-@@ -456,6 +488,11 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+@@ -460,6 +492,11 @@ int vidconsole_put_char(struct udevice *dev, char ch)
struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
- int ret;
+ int cp, ret;
+ /*
+ * We don't need to clear the cursor since we are going to overwrite
@@ -111,7 +111,7 @@ index b5b3b6625902..a6d994bd637c 100644
if (priv->escape) {
vidconsole_escape_char(dev, ch);
return 0;
-@@ -470,6 +507,7 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+@@ -474,6 +511,7 @@ int vidconsole_put_char(struct udevice *dev, char ch)
/* beep */
break;
case '\r':
@@ -119,7 +119,7 @@ index b5b3b6625902..a6d994bd637c 100644
priv->xcur_frac = priv->xstart_frac;
break;
case '\n':
-@@ -477,6 +515,7 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+@@ -481,6 +519,7 @@ int vidconsole_put_char(struct udevice *dev, char ch)
vidconsole_entry_start(dev);
break;
case '\t': /* Tab (8 chars alignment) */
@@ -127,7 +127,7 @@ index b5b3b6625902..a6d994bd637c 100644
priv->xcur_frac = ((priv->xcur_frac / priv->tab_width_frac)
+ 1) * priv->tab_width_frac;
-@@ -494,6 +533,8 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+@@ -505,6 +544,8 @@ int vidconsole_put_char(struct udevice *dev, char ch)
break;
}
@@ -136,7 +136,7 @@ index b5b3b6625902..a6d994bd637c 100644
return 0;
}
-@@ -646,6 +687,7 @@ static int vidconsole_pre_probe(struct udevice *dev)
+@@ -725,6 +766,7 @@ static int vidconsole_pre_probe(struct udevice *dev)
struct video_priv *vid_priv = dev_get_uclass_priv(vid);
priv->xsize_frac = VID_TO_POS(vid_priv->xsize);
@@ -145,25 +145,25 @@ index b5b3b6625902..a6d994bd637c 100644
return 0;
}
diff --git a/include/video_console.h b/include/video_console.h
-index 2694e44f6ecf..949abb3861e7 100644
+index 723d2315606d..17a9aa3f9295 100644
--- a/include/video_console.h
+++ b/include/video_console.h
-@@ -59,6 +59,7 @@ struct vidconsole_priv {
+@@ -74,6 +74,7 @@ struct vidconsole_priv {
int escape_len;
int row_saved;
int col_saved;
+ bool cursor_visible;
char escape_buf[32];
+ char utf8_buf[5];
};
-
--
-2.42.0
+2.49.0
-From ab8ddf81c1442717f6ffddc3460d4e4adbd5b570 Mon Sep 17 00:00:00 2001
+From b2b921d7bc69b505562cf02d1b4c6f6d4325c7d5 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@arm.com>
Date: Mon, 10 Jan 2022 00:56:36 +0000
-Subject: [PATCH 2/4] efi-selftest: Add international characters test
+Subject: [PATCH 2/3] efi-selftest: Add international characters test
UEFI relies entirely on unicode output, which actual fonts displayed on
the screen might not be ready for.
@@ -180,10 +180,10 @@ Link: https://lore.kernel.org/r/20220110005638.21599-7-andre.przywara@arm.com
1 file changed, 5 insertions(+)
diff --git a/lib/efi_selftest/efi_selftest_textoutput.c b/lib/efi_selftest/efi_selftest_textoutput.c
-index cc44b38bc23a..175731ae96b6 100644
+index a3023c82567c..2f8d8d323c2b 100644
--- a/lib/efi_selftest/efi_selftest_textoutput.c
+++ b/lib/efi_selftest/efi_selftest_textoutput.c
-@@ -118,6 +118,11 @@ static int execute(void)
+@@ -154,6 +154,11 @@ static int execute(void)
efi_st_printf("Unicode not handled properly\n");
return EFI_ST_FAILURE;
}
@@ -193,16 +193,16 @@ index cc44b38bc23a..175731ae96b6 100644
+ return EFI_ST_FAILURE;
+ }
efi_st_printf("\n");
-
- return EFI_ST_SUCCESS;
+ ret = con_out->output_string(con_out, text);
+ if (ret != EFI_ST_SUCCESS) {
--
-2.42.0
+2.49.0
-From 48e918c31a46815325ffd7a77eb7a3ffedf8e59c Mon Sep 17 00:00:00 2001
+From 082422499a5f2689e715df68bfd025a5cc15cc64 Mon Sep 17 00:00:00 2001
From: Andre Przywara <andre.przywara@arm.com>
Date: Mon, 10 Jan 2022 00:56:37 +0000
-Subject: [PATCH 3/4] efi_selftest: Add box drawing character selftest
+Subject: [PATCH 3/3] efi_selftest: Add box drawing character selftest
UEFI applications rely on Unicode output capability, and might use that
for drawing pseudo-graphical interfaces using Unicode defined box
@@ -220,10 +220,10 @@ Link: https://lore.kernel.org/r/20220110005638.21599-8-andre.przywara@arm.com
1 file changed, 11 insertions(+)
diff --git a/lib/efi_selftest/efi_selftest_textoutput.c b/lib/efi_selftest/efi_selftest_textoutput.c
-index 175731ae96b6..3c6870f74241 100644
+index 2f8d8d323c2b..02209a5bf224 100644
--- a/lib/efi_selftest/efi_selftest_textoutput.c
+++ b/lib/efi_selftest/efi_selftest_textoutput.c
-@@ -123,6 +123,17 @@ static int execute(void)
+@@ -159,6 +159,17 @@ static int execute(void)
efi_st_error("OutputString failed for international chars\n");
return EFI_ST_FAILURE;
}
@@ -239,275 +239,8 @@ index 175731ae96b6..3c6870f74241 100644
+ con_out->output_string(con_out, L"waiting for admiration...\n");
+ EFI_CALL(systab.boottime->stall(3000000));
efi_st_printf("\n");
-
- return EFI_ST_SUCCESS;
---
-2.42.0
-
-
-From 407ca7e821aabf240c2602dd0db56d6398a0c03b Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara@arm.com>
-Date: Mon, 10 Jan 2022 00:56:38 +0000
-Subject: [PATCH 4/4] video: Convert UTF-8 input stream to the 437 code page
-
-The bitmap fonts (VGA 8x16 and friends) we import from Linux use the
-437 code page to map their glyphs. For U-Boot's own purposes this is
-probably fine, but UEFI applications output Unicode, which only matches
-in the very basic first 127 characters.
-
-Add a function that converts UTF-8 character sequences into the
-respective CP437 code point, as far as the characters defined in there
-allow this. This includes quite some international and box drawing
-characters, which are used by UEFI applications.
-
-Signed-off-by: Andre Przywara <andre.przywara@arm.com>
-Link: https://lore.kernel.org/r/20220110005638.21599-9-andre.przywara@arm.com
-[Alper: Rebase for makefile changes, use $(SPL_TPL_)VIDEO]
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
----
- drivers/video/Makefile | 1 +
- drivers/video/utf8_cp437.c | 169 ++++++++++++++++++++++++++++++
- drivers/video/vidconsole-uclass.c | 6 +-
- include/video_console.h | 9 ++
- 4 files changed, 184 insertions(+), 1 deletion(-)
- create mode 100644 drivers/video/utf8_cp437.c
-
-diff --git a/drivers/video/Makefile b/drivers/video/Makefile
-index d13af9f3b19b..4b1983990aba 100644
---- a/drivers/video/Makefile
-+++ b/drivers/video/Makefile
-@@ -20,6 +20,7 @@ obj-$(CONFIG_DISPLAY) += display-uclass.o
- obj-$(CONFIG_VIDEO_MIPI_DSI) += dsi-host-uclass.o
- obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video-uclass.o vidconsole-uclass.o
- obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o
-+obj-$(CONFIG_$(SPL_TPL_)VIDEO) += utf8_cp437.o
- obj-$(CONFIG_$(SPL_TPL_)PANEL) += panel-uclass.o
- obj-$(CONFIG_PANEL_HX8238D) += hx8238d.o
- obj-$(CONFIG_$(SPL_TPL_)SIMPLE_PANEL) += simple_panel.o
-diff --git a/drivers/video/utf8_cp437.c b/drivers/video/utf8_cp437.c
-new file mode 100644
-index 000000000000..cab68b92b6e3
---- /dev/null
-+++ b/drivers/video/utf8_cp437.c
-@@ -0,0 +1,169 @@
-+/*
-+ * Convert UTF-8 bytes into a code page 437 character.
-+ * Based on the table in the Code_page_437 Wikipedia page.
-+ */
-+
-+#include <linux/types.h>
-+
-+uint8_t code_points_00a0[] = {
-+ 255, 173, 155, 156, 7, 157, 7, 21,
-+ 7, 7, 166, 174, 170, 7, 7, 7,
-+ 248, 241, 253, 7, 7, 230, 20, 250,
-+ 7, 7, 167, 175, 172, 171, 7, 168,
-+ 7, 7, 7, 7, 142, 143, 146, 128,
-+ 7, 144, 7, 7, 7, 7, 7, 7,
-+ 7, 165, 7, 7, 7, 7, 153, 7,
-+ 7, 7, 7, 7, 154, 7, 7, 225,
-+ 133, 160, 131, 7, 132, 134, 145, 135,
-+ 138, 130, 136, 137, 141, 161, 140, 139,
-+ 7, 164, 149, 162, 147, 7, 148, 246,
-+ 7, 151, 163, 150, 129, 7, 7, 152,
-+};
-+
-+uint8_t code_points_2550[] = {
-+ 205, 186, 213, 214, 201, 184, 183, 187,
-+ 212, 211, 200, 190, 189, 188, 198, 199,
-+ 204, 181, 182, 185, 209, 210, 203, 207,
-+ 208, 202, 216, 215, 206
-+};
-+
-+static uint8_t utf8_convert_11bit(uint16_t code)
-+{
-+ switch (code) {
-+ case 0x0192: return 159;
-+ case 0x0393: return 226;
-+ case 0x0398: return 233;
-+ case 0x03A3: return 228;
-+ case 0x03A6: return 232;
-+ case 0x03A9: return 234;
-+ case 0x03B1: return 224;
-+ case 0x03B4: return 235;
-+ case 0x03B5: return 238;
-+ case 0x03C0: return 227;
-+ case 0x03C3: return 229;
-+ case 0x03C4: return 231;
-+ case 0x03C6: return 237;
-+ }
-+
-+ return 0;
-+};
-+
-+static uint8_t utf8_convert_2xxx(uint16_t code)
-+{
-+ switch (code) {
-+ case 0x2022: return 7;
-+ case 0x203C: return 19;
-+ case 0x207F: return 252;
-+ case 0x20A7: return 158;
-+ case 0x2190: return 27;
-+ case 0x2191: return 24;
-+ case 0x2192: return 26;
-+ case 0x2193: return 25;
-+ case 0x2194: return 29;
-+ case 0x2195: return 18;
-+ case 0x21A8: return 23;
-+ case 0x2219: return 249;
-+ case 0x221A: return 251;
-+ case 0x221E: return 236;
-+ case 0x221F: return 28;
-+ case 0x2229: return 239;
-+ case 0x2248: return 247;
-+ case 0x2261: return 240;
-+ case 0x2264: return 243;
-+ case 0x2265: return 242;
-+ case 0x2310: return 169;
-+ case 0x2320: return 244;
-+ case 0x2321: return 245;
-+ case 0x2500: return 196;
-+ case 0x2502: return 179;
-+ case 0x250C: return 218;
-+ case 0x2510: return 191;
-+ case 0x2514: return 192;
-+ case 0x2518: return 217;
-+ case 0x251C: return 195;
-+ case 0x2524: return 180;
-+ case 0x252C: return 194;
-+ case 0x2534: return 193;
-+ case 0x253C: return 197;
-+ case 0x2580: return 223;
-+ case 0x2584: return 220;
-+ case 0x2588: return 219;
-+ case 0x258C: return 221;
-+ case 0x2590: return 222;
-+ case 0x2591: return 176;
-+ case 0x2592: return 177;
-+ case 0x2593: return 178;
-+ case 0x25A0: return 254;
-+ case 0x25AC: return 22;
-+ case 0x25B2: return 30;
-+ case 0x25BA: return 16;
-+ case 0x25BC: return 31;
-+ case 0x25C4: return 17;
-+ case 0x25CB: return 9;
-+ case 0x25D8: return 8;
-+ case 0x25D9: return 10;
-+ case 0x263A: return 1;
-+ case 0x263B: return 2;
-+ case 0x263C: return 15;
-+ case 0x2640: return 12;
-+ case 0x2642: return 11;
-+ case 0x2660: return 6;
-+ case 0x2663: return 5;
-+ case 0x2665: return 3;
-+ case 0x2666: return 4;
-+ case 0x266A: return 13;
-+ case 0x266B: return 14;
-+ }
-+
-+ return 0;
-+}
-+
-+uint8_t convert_uc16_to_cp437(uint16_t code)
-+{
-+ if (code < 0x7f) // ASCII
-+ return code;
-+ if (code < 0xa0) // high control characters
-+ return code;
-+ if (code < 0x100) // international characters
-+ return code_points_00a0[code - 0xa0];
-+ if (code < 0x800)
-+ return utf8_convert_11bit(code);
-+ if (code >= 0x2550 && code < 0x256d) // block graphics
-+ return code_points_2550[code - 0x2550];
-+
-+ return utf8_convert_2xxx(code);
-+}
-+
-+uint8_t convert_utf8_to_cp437(uint8_t c, uint32_t *esc)
-+{
-+ int shift;
-+ uint16_t ucs;
-+
-+ if (c < 127) // ASCII
-+ return c;
-+ if (c == 127)
-+ return 8; // DEL (?)
-+
-+ switch (c & 0xf0) {
-+ case 0xc0: case 0xd0: // two bytes sequence
-+ *esc = (1U << 24) | ((c & 0x1f) << 6);
-+ return 0;
-+ case 0xe0: // three bytes sequence
-+ *esc = (2U << 24) | ((c & 0x0f) << 12);
-+ return 0;
-+ case 0xf0: // four bytes sequence
-+ *esc = (3U << 24) | ((c & 0x07) << 18);
-+ return 0;
-+ case 0x80: case 0x90: case 0xa0: case 0xb0: // continuation
-+ shift = (*esc >> 24) - 1;
-+ ucs = *esc & 0xffffff;
-+ if (shift) {
-+ *esc = (shift << 24) | ucs | (c & 0x3f) << (shift * 6);
-+ return 0;
-+ }
-+ *esc = 0;
-+ return convert_uc16_to_cp437(ucs | (c & 0x3f));
-+ }
-+
-+ return 0;
-+}
-diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
-index a6d994bd637c..a4029a58660b 100644
---- a/drivers/video/vidconsole-uclass.c
-+++ b/drivers/video/vidconsole-uclass.c
-@@ -486,6 +486,7 @@ static int vidconsole_output_glyph(struct udevice *dev, char ch)
- int vidconsole_put_char(struct udevice *dev, char ch)
- {
- struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
-+ uint8_t cp437;
- int ret;
-
- /*
-@@ -527,7 +528,10 @@ int vidconsole_put_char(struct udevice *dev, char ch)
- priv->last_ch = 0;
- break;
- default:
-- ret = vidconsole_output_glyph(dev, ch);
-+ cp437 = convert_utf8_to_cp437(ch, &priv->ucs);
-+ if (cp437 == 0)
-+ return 0;
-+ ret = vidconsole_output_glyph(dev, cp437);
- if (ret < 0)
- return ret;
- break;
-diff --git a/include/video_console.h b/include/video_console.h
-index 949abb3861e7..dbfb389f324f 100644
---- a/include/video_console.h
-+++ b/include/video_console.h
-@@ -59,6 +59,7 @@ struct vidconsole_priv {
- int escape_len;
- int row_saved;
- int col_saved;
-+ u32 ucs;
- bool cursor_visible;
- char escape_buf[32];
- };
-@@ -457,4 +458,12 @@ static inline int vidconsole_memmove(struct udevice *dev, void *dst,
-
- #endif
-
-+/*
-+ * Convert an UTF-8 byte into the corresponding character in the CP437
-+ * code page. Returns 0 if that character is part of a multi-byte sequence.
-+ * for which *esc holds the state of. Repeatedly feed in more bytes until
-+ * the return value returns a non-0 character.
-+ */
-+uint8_t convert_utf8_to_cp437(uint8_t c, uint32_t *esc);
-+
- #endif
+ ret = con_out->output_string(con_out, text);
+ if (ret != EFI_ST_SUCCESS) {
--
-2.42.0
+2.49.0
diff --git a/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch b/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch
index 80195dc0..18c93ab8 100644
--- a/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch
+++ b/config/u-boot/default/patches/0003-Add-video-damage-tracking.patch
@@ -1,4 +1,4 @@
-From 60a24786c1c542b2a5967632df15ae14d1385061 Mon Sep 17 00:00:00 2001
+From dae1f9cafd3d2061336f5d230ebc1f236423fa0e Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Fri, 18 Aug 2023 13:31:36 +0300
Subject: [PATCH 01/13] video: test: Split copy frame buffer check into a
@@ -12,16 +12,17 @@ function that we can skip calling, since we won't want it to error on
those mismatched cases.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-2-alpernebiyasak@gmail.com/
---
test/dm/video.c | 69 +++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 58 insertions(+), 11 deletions(-)
diff --git a/test/dm/video.c b/test/dm/video.c
-index d907f681600b..641a6250100a 100644
+index e347c1403fda..01fa9e1b2415 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
-@@ -55,9 +55,6 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+@@ -54,9 +54,6 @@ DM_TEST(dm_test_video_base, UTF_SCAN_PDATA | UTF_SCAN_FDT);
* size of the compressed data. This provides a pretty good level of
* certainty and the resulting tests need only check a single value.
*
@@ -31,7 +32,7 @@ index d907f681600b..641a6250100a 100644
* @uts: Test state
* @dev: Video device
* Return: compressed size of the frame buffer, or -ve on error
-@@ -66,7 +63,6 @@ static int compress_frame_buffer(struct unit_test_state *uts,
+@@ -65,7 +62,6 @@ static int compress_frame_buffer(struct unit_test_state *uts,
struct udevice *dev)
{
struct video_priv *priv = dev_get_uclass_priv(dev);
@@ -39,7 +40,7 @@ index d907f681600b..641a6250100a 100644
uint destlen;
void *dest;
int ret;
-@@ -82,16 +78,34 @@ static int compress_frame_buffer(struct unit_test_state *uts,
+@@ -81,16 +77,34 @@ static int compress_frame_buffer(struct unit_test_state *uts,
if (ret)
return ret;
@@ -81,7 +82,7 @@ index d907f681600b..641a6250100a 100644
/*
* Call this function at any point to halt and show the current display. Be
* sure to run the test with the -l flag.
-@@ -155,24 +169,30 @@ static int dm_test_video_text(struct unit_test_state *uts)
+@@ -154,24 +168,30 @@ static int dm_test_video_text(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "8x16", 0));
ut_asserteq(46, compress_frame_buffer(uts, dev));
@@ -112,7 +113,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -191,24 +211,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts)
+@@ -190,24 +210,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "12x22", 0));
ut_asserteq(46, compress_frame_buffer(uts, dev));
@@ -143,7 +144,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -226,6 +252,7 @@ static int dm_test_video_chars(struct unit_test_state *uts)
+@@ -225,6 +251,7 @@ static int dm_test_video_chars(struct unit_test_state *uts)
ut_assertok(vidconsole_select_font(con, "8x16", 0));
vidconsole_put_string(con, test_string);
ut_asserteq(466, compress_frame_buffer(uts, dev));
@@ -151,7 +152,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -247,19 +274,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts)
+@@ -246,19 +273,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts)
video_clear(con->parent);
video_sync(con->parent, false);
ut_asserteq(46, compress_frame_buffer(uts, dev));
@@ -175,7 +176,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -292,11 +323,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
+@@ -291,11 +322,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "8x16", 0));
ut_asserteq(46, compress_frame_buffer(uts, dev));
@@ -189,7 +190,7 @@ index d907f681600b..641a6250100a 100644
/* Check display scrolling */
for (i = 0; i < SCROLL_LINES; i++) {
-@@ -304,11 +337,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
+@@ -303,11 +336,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
vidconsole_put_char(con, '\n');
}
ut_asserteq(scroll_size, compress_frame_buffer(uts, dev));
@@ -203,7 +204,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -383,6 +418,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts)
+@@ -382,6 +417,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(1368, compress_frame_buffer(uts, dev));
@@ -211,7 +212,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -402,6 +438,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts)
+@@ -401,6 +437,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(1247, compress_frame_buffer(uts, dev));
@@ -219,7 +220,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -425,6 +462,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts)
+@@ -424,6 +461,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
ut_asserteq(3700, compress_frame_buffer(uts, dev));
@@ -227,7 +228,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -448,6 +486,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts)
+@@ -447,6 +485,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
ut_asserteq(3656, compress_frame_buffer(uts, dev));
@@ -235,7 +236,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -471,6 +510,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts)
+@@ -470,6 +509,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
ut_asserteq(6827, compress_frame_buffer(uts, dev));
@@ -243,7 +244,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -489,6 +529,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts)
+@@ -488,6 +528,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(2024, compress_frame_buffer(uts, dev));
@@ -251,7 +252,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -505,6 +546,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts)
+@@ -504,6 +545,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(1368, compress_frame_buffer(uts, dev));
@@ -259,7 +260,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -524,6 +566,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts)
+@@ -523,6 +565,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(2024, compress_frame_buffer(uts, dev));
@@ -267,7 +268,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -543,6 +586,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts)
+@@ -542,6 +585,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts)
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
ut_asserteq(1247, compress_frame_buffer(uts, dev));
@@ -275,7 +276,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -558,6 +602,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
+@@ -557,6 +601,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
ut_asserteq(12174, compress_frame_buffer(uts, dev));
@@ -283,7 +284,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -579,6 +624,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
+@@ -578,6 +623,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
ut_asserteq(34287, compress_frame_buffer(uts, dev));
@@ -291,7 +292,7 @@ index d907f681600b..641a6250100a 100644
return 0;
}
-@@ -600,6 +646,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
+@@ -599,6 +645,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
ut_asserteq(29471, compress_frame_buffer(uts, dev));
@@ -300,10 +301,10 @@ index d907f681600b..641a6250100a 100644
return 0;
}
--
-2.42.0
+2.49.0
-From e441c509aa784328c735c52e0a27a39601049de7 Mon Sep 17 00:00:00 2001
+From 3c4f71fb10a827db53d6ed637e39afb5cc19a871 Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Sun, 20 Aug 2023 17:46:46 +0300
Subject: [PATCH 02/13] video: test: Support checking copy frame buffer
@@ -320,16 +321,17 @@ Add a boolean argument to the existing helper function to indicate which
frame buffer we want to inspect, and update the existing callers.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-3-alpernebiyasak@gmail.com/
---
test/dm/video.c | 76 ++++++++++++++++++++++++++-----------------------
1 file changed, 41 insertions(+), 35 deletions(-)
diff --git a/test/dm/video.c b/test/dm/video.c
-index 641a6250100a..b9ff3da10c18 100644
+index 01fa9e1b2415..edb1b4ede8c9 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
-@@ -57,22 +57,28 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+@@ -56,22 +56,28 @@ DM_TEST(dm_test_video_base, UTF_SCAN_PDATA | UTF_SCAN_FDT);
*
* @uts: Test state
* @dev: Video device
@@ -360,7 +362,7 @@ index 641a6250100a..b9ff3da10c18 100644
3, 0, 0);
free(dest);
if (ret)
-@@ -168,30 +174,30 @@ static int dm_test_video_text(struct unit_test_state *uts)
+@@ -167,30 +173,30 @@ static int dm_test_video_text(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "8x16", 0));
@@ -397,7 +399,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -210,30 +216,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts)
+@@ -209,30 +215,30 @@ static int dm_test_video_text_12x22(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "12x22", 0));
@@ -434,7 +436,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -251,7 +257,7 @@ static int dm_test_video_chars(struct unit_test_state *uts)
+@@ -250,7 +256,7 @@ static int dm_test_video_chars(struct unit_test_state *uts)
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "8x16", 0));
vidconsole_put_string(con, test_string);
@@ -443,7 +445,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -273,23 +279,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts)
+@@ -272,23 +278,23 @@ static int dm_test_video_ansi(struct unit_test_state *uts)
/* reference clear: */
video_clear(con->parent);
video_sync(con->parent, false);
@@ -471,7 +473,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -322,13 +328,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
+@@ -321,13 +327,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
ut_assertok(vidconsole_select_font(con, "8x16", 0));
@@ -487,7 +489,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
/* Check display scrolling */
-@@ -336,13 +342,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
+@@ -335,13 +341,13 @@ static int check_vidconsole_output(struct unit_test_state *uts, int rot,
vidconsole_put_char(con, 'A' + i % 50);
vidconsole_put_char(con, '\n');
}
@@ -503,7 +505,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -417,7 +423,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts)
+@@ -416,7 +422,7 @@ static int dm_test_video_bmp(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -512,7 +514,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -437,7 +443,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts)
+@@ -436,7 +442,7 @@ static int dm_test_video_bmp8(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -521,7 +523,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -461,7 +467,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts)
+@@ -460,7 +466,7 @@ static int dm_test_video_bmp16(struct unit_test_state *uts)
&src_len));
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
@@ -530,7 +532,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -485,7 +491,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts)
+@@ -484,7 +490,7 @@ static int dm_test_video_bmp24(struct unit_test_state *uts)
&src_len));
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
@@ -539,7 +541,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -509,7 +515,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts)
+@@ -508,7 +514,7 @@ static int dm_test_video_bmp24_32(struct unit_test_state *uts)
&src_len));
ut_assertok(video_bmp_display(dev, dst, 0, 0, false));
@@ -548,7 +550,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -528,7 +534,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts)
+@@ -527,7 +533,7 @@ static int dm_test_video_bmp32(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -557,7 +559,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -545,7 +551,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts)
+@@ -544,7 +550,7 @@ static int dm_test_video_bmp_comp(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx-comp.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -566,7 +568,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -565,7 +571,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts)
+@@ -564,7 +570,7 @@ static int dm_test_video_comp_bmp32(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -575,7 +577,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -585,7 +591,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts)
+@@ -584,7 +590,7 @@ static int dm_test_video_comp_bmp8(struct unit_test_state *uts)
ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr));
ut_assertok(video_bmp_display(dev, addr, 0, 0, false));
@@ -584,7 +586,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -601,7 +607,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
+@@ -600,7 +606,7 @@ static int dm_test_video_truetype(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
@@ -593,7 +595,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -623,7 +629,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
+@@ -622,7 +628,7 @@ static int dm_test_video_truetype_scroll(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
@@ -602,7 +604,7 @@ index 641a6250100a..b9ff3da10c18 100644
ut_assertok(check_copy_frame_buffer(uts, dev));
return 0;
-@@ -645,7 +651,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
+@@ -644,7 +650,7 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
ut_assertok(video_get_nologo(uts, &dev));
ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con));
vidconsole_put_string(con, test_string);
@@ -612,10 +614,10 @@ index 641a6250100a..b9ff3da10c18 100644
return 0;
--
-2.42.0
+2.49.0
-From 2b431f45d217e3ab454fc719157cb8b78657a129 Mon Sep 17 00:00:00 2001
+From ecd9200f2068ab8bbeda5c7b8ddc4b8d7ca6b038 Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Fri, 18 Aug 2023 17:31:27 +0300
Subject: [PATCH 03/13] video: test: Test partial updates of hardware frame
@@ -628,19 +630,20 @@ then checking if the overwritten contents have been redrawn on the next
sync.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-4-alpernebiyasak@gmail.com/
---
test/dm/video.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 54 insertions(+)
diff --git a/test/dm/video.c b/test/dm/video.c
-index b9ff3da10c18..e4bd27a6b76f 100644
+index edb1b4ede8c9..80e65d66dbaf 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
-@@ -657,3 +657,57 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
+@@ -656,3 +656,57 @@ static int dm_test_video_truetype_bs(struct unit_test_state *uts)
return 0;
}
- DM_TEST(dm_test_video_truetype_bs, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+ DM_TEST(dm_test_video_truetype_bs, UTF_SCAN_PDATA | UTF_SCAN_FDT);
+
+/* Test partial rendering onto hardware frame buffer */
+static int dm_test_video_copy(struct unit_test_state *uts)
@@ -694,12 +697,12 @@ index b9ff3da10c18..e4bd27a6b76f 100644
+
+ return 0;
+}
-+DM_TEST(dm_test_video_copy, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
++DM_TEST(dm_test_video_copy, UTF_SCAN_PDATA | UTF_SCAN_FDT);
--
-2.42.0
+2.49.0
-From 5aea7d8d14de93dcd33acc2bc19d9de942b6d8cd Mon Sep 17 00:00:00 2001
+From 6ecfb63749d955fc28e6312583865c902ffb1175 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:15 +0200
Subject: [PATCH 04/13] dm: video: Add damage tracking API
@@ -717,17 +720,18 @@ Reported-by: Da Xue <da@libre.computer>
Co-developed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-5-alpernebiyasak@gmail.com/
+Reviewed-by: Simon Glass <sjg@chromium.org>
---
drivers/video/Kconfig | 13 ++++++++++++
- drivers/video/video-uclass.c | 41 +++++++++++++++++++++++++++++++++---
- include/video.h | 32 ++++++++++++++++++++++++++--
- 3 files changed, 81 insertions(+), 5 deletions(-)
+ drivers/video/video-uclass.c | 35 +++++++++++++++++++++++++++++++
+ include/video.h | 40 ++++++++++++++++++++++++++++++++++--
+ 3 files changed, 86 insertions(+), 2 deletions(-)
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index 69f4809cf4a6..db531d7caae0 100644
+index 3c3cebaacd02..5d67067891be 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
-@@ -92,6 +92,19 @@ config VIDEO_COPY
+@@ -98,6 +98,19 @@ config VIDEO_COPY
To use this, your video driver must set @copy_base in
struct video_uc_plat.
@@ -748,23 +752,21 @@ index 69f4809cf4a6..db531d7caae0 100644
bool "Generic PWM based Backlight Driver"
depends on BACKLIGHT && DM_PWM
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index f743ed74c818..9888a580bfd3 100644
+index ff4f21995859..da035e5c92b7 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
-@@ -351,9 +351,39 @@ void video_set_default_colors(struct udevice *dev, bool invert)
+@@ -367,6 +367,34 @@ void video_set_default_colors(struct udevice *dev, bool invert)
priv->colour_bg = video_index_to_colour(priv, back);
}
+/* Notify about changes in the frame buffer */
++#ifdef CONFIG_VIDEO_DAMAGE
+void video_damage(struct udevice *vid, int x, int y, int width, int height)
+{
+ struct video_priv *priv = dev_get_uclass_priv(vid);
+ int xend = x + width;
+ int yend = y + height;
+
-+ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE))
-+ return;
-+
+ if (x > priv->xsize)
+ return;
+
@@ -783,35 +785,15 @@ index f743ed74c818..9888a580bfd3 100644
+ priv->damage.xend = max(xend, priv->damage.xend);
+ priv->damage.yend = max(yend, priv->damage.yend);
+}
++#endif
+
/* Flush video activity to the caches */
int video_sync(struct udevice *vid, bool force)
{
-+ struct video_priv *priv = dev_get_uclass_priv(vid);
- struct video_ops *ops = video_get_ops(vid);
- int ret;
-
-@@ -369,15 +399,12 @@ int video_sync(struct udevice *vid, bool force)
- * out whether it exists? For now, ARM is safe.
- */
- #if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-- struct video_priv *priv = dev_get_uclass_priv(vid);
--
- if (priv->flush_dcache) {
- flush_dcache_range((ulong)priv->fb,
- ALIGN((ulong)priv->fb + priv->fb_size,
- CONFIG_SYS_CACHELINE_SIZE));
- }
- #elif defined(CONFIG_VIDEO_SANDBOX_SDL)
-- struct video_priv *priv = dev_get_uclass_priv(vid);
- static ulong last_sync;
-
- if (force || get_timer(last_sync) > 100) {
-@@ -385,6 +412,14 @@ int video_sync(struct udevice *vid, bool force)
- last_sync = get_timer(0);
- }
+@@ -400,6 +428,13 @@ int video_sync(struct udevice *vid, bool force)
#endif
-+
+ priv->last_sync = get_timer(0);
+
+ if (IS_ENABLED(CONFIG_VIDEO_DAMAGE)) {
+ priv->damage.xstart = priv->xsize;
+ priv->damage.ystart = priv->ysize;
@@ -823,7 +805,7 @@ index f743ed74c818..9888a580bfd3 100644
}
diff --git a/include/video.h b/include/video.h
-index 16f7a83f8d50..307e954db828 100644
+index a1f7fd7e839c..7eed112e00c4 100644
--- a/include/video.h
+++ b/include/video.h
@@ -85,6 +85,11 @@ enum video_format {
@@ -838,7 +820,7 @@ index 16f7a83f8d50..307e954db828 100644
* @line_length: Length of each frame buffer line, in bytes. This can be
* set by the driver, but if not, the uclass will set it after
* probing
-@@ -112,6 +117,12 @@ struct video_priv {
+@@ -113,6 +118,12 @@ struct video_priv {
void *fb;
int fb_size;
void *copy_fb;
@@ -851,7 +833,7 @@ index 16f7a83f8d50..307e954db828 100644
int line_length;
u32 colour_fg;
u32 colour_bg;
-@@ -254,8 +265,9 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
+@@ -259,8 +270,9 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
* @return: 0 on success, error code otherwise
*
* Some frame buffers are cached or have a secondary frame buffer. This
@@ -863,10 +845,11 @@ index 16f7a83f8d50..307e954db828 100644
*/
int video_sync(struct udevice *vid, bool force);
-@@ -375,6 +387,22 @@ static inline int video_sync_copy_all(struct udevice *dev)
+@@ -380,6 +392,30 @@ static inline int video_sync_copy_all(struct udevice *dev)
#endif
++#ifdef CONFIG_VIDEO_DAMAGE
+/**
+ * video_damage() - Notify the video subsystem about screen updates.
+ *
@@ -882,15 +865,22 @@ index 16f7a83f8d50..307e954db828 100644
+ * next call to video_sync().
+ */
+void video_damage(struct udevice *vid, int x, int y, int width, int height);
++#else
++static inline void video_damage(struct udevice *vid, int x, int y, int width,
++ int height)
++{
++ return;
++}
++#endif /* CONFIG_VIDEO_DAMAGE */
+
/**
* video_is_active() - Test if one video device it active
*
--
-2.42.0
+2.49.0
-From 9d61d286be0e696a719af0c25a60d31482ee152c Mon Sep 17 00:00:00 2001
+From c23d99983901910dadf43f2b4d0b833a0a6d6c92 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:16 +0200
Subject: [PATCH 05/13] dm: video: Add damage notification on display fills
@@ -902,16 +892,17 @@ Signed-off-by: Alexander Graf <agraf@csgraf.de>
Reported-by: Da Xue <da@libre.computer>
[Alper: Move from video_clear() to video_fill(), video_fill_part()]
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-6-alpernebiyasak@gmail.com/
---
drivers/video/video-uclass.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index 9888a580bfd3..09172f1f7f45 100644
+index da035e5c92b7..1c07613539f2 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
-@@ -203,6 +203,8 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
+@@ -214,6 +214,8 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
if (ret)
return ret;
@@ -920,7 +911,7 @@ index 9888a580bfd3..09172f1f7f45 100644
return 0;
}
-@@ -249,6 +251,8 @@ int video_fill(struct udevice *dev, u32 colour)
+@@ -262,6 +264,8 @@ int video_fill(struct udevice *dev, u32 colour)
if (ret)
return ret;
@@ -930,10 +921,10 @@ index 9888a580bfd3..09172f1f7f45 100644
}
--
-2.42.0
+2.49.0
-From 599159f0d1678a473211a2beda302d12ac64bf5c Mon Sep 17 00:00:00 2001
+From bc55519e74270926ee3680002c58fdeb21cd41ce Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:17 +0200
Subject: [PATCH 06/13] vidconsole: Add damage notifications to all vidconsole
@@ -954,11 +945,10 @@ Link: https://lore.kernel.org/u-boot/20230821135111.3558478-7-alpernebiyasak@gma
drivers/video/console_normal.c | 18 +++++++++++
drivers/video/console_rotate.c | 54 ++++++++++++++++++++++++++++++++
drivers/video/console_truetype.c | 21 +++++++++++++
- drivers/video/video-uclass.c | 1 +
- 4 files changed, 94 insertions(+)
+ 3 files changed, 93 insertions(+)
diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
-index 413c7abee9e1..a19ce6a2bc11 100644
+index 6f4194a18147..51ac8cc78e9d 100644
--- a/drivers/video/console_normal.c
+++ b/drivers/video/console_normal.c
@@ -39,6 +39,12 @@ static int console_set_row(struct udevice *dev, uint row, int clr)
@@ -987,7 +977,7 @@ index 413c7abee9e1..a19ce6a2bc11 100644
return 0;
}
-@@ -90,6 +102,12 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -91,6 +103,12 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, int cp)
if (ret)
return ret;
@@ -1001,7 +991,7 @@ index 413c7abee9e1..a19ce6a2bc11 100644
if (ret)
return ret;
diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c
-index 65358a1c6e74..6c3e7c1bb8dc 100644
+index a3f8c6352f83..f11dc3a0b075 100644
--- a/drivers/video/console_rotate.c
+++ b/drivers/video/console_rotate.c
@@ -36,6 +36,12 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr)
@@ -1030,7 +1020,7 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
return 0;
}
-@@ -96,6 +108,12 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -97,6 +109,12 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, int cp)
if (ret)
return ret;
@@ -1069,7 +1059,7 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
return 0;
}
-@@ -174,6 +204,12 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -175,6 +205,12 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, int cp)
if (ret)
return ret;
@@ -1082,7 +1072,7 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
return VID_TO_POS(fontdata->width);
}
-@@ -198,6 +234,12 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
+@@ -199,6 +235,12 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
if (ret)
return ret;
@@ -1095,7 +1085,7 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
return 0;
}
-@@ -224,6 +266,12 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc,
+@@ -225,6 +267,12 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc,
dst += vid_priv->line_length;
}
@@ -1108,7 +1098,7 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
return 0;
}
-@@ -255,6 +303,12 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -257,6 +305,12 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, int cp)
if (ret)
return ret;
@@ -1122,10 +1112,10 @@ index 65358a1c6e74..6c3e7c1bb8dc 100644
}
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
-index 0f9bb49e44f7..0adbf9cc3d67 100644
+index 17a29817664f..073ddcfb6950 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
-@@ -178,6 +178,7 @@ struct console_tt_priv {
+@@ -190,6 +190,7 @@ struct console_tt_store {
static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
{
struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent);
@@ -1133,7 +1123,7 @@ index 0f9bb49e44f7..0adbf9cc3d67 100644
struct console_tt_priv *priv = dev_get_priv(dev);
struct console_tt_metrics *met = priv->cur_met;
void *end, *line;
-@@ -221,6 +222,12 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
+@@ -233,6 +234,12 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
if (ret)
return ret;
@@ -1146,7 +1136,7 @@ index 0f9bb49e44f7..0adbf9cc3d67 100644
return 0;
}
-@@ -228,6 +235,7 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
+@@ -240,6 +247,7 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
uint rowsrc, uint count)
{
struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent);
@@ -1154,7 +1144,7 @@ index 0f9bb49e44f7..0adbf9cc3d67 100644
struct console_tt_priv *priv = dev_get_priv(dev);
struct console_tt_metrics *met = priv->cur_met;
void *dst;
-@@ -246,6 +254,12 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
+@@ -258,6 +266,12 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
for (i = 0; i < priv->pos_ptr; i++)
priv->pos[i].ypos -= diff;
@@ -1167,7 +1157,7 @@ index 0f9bb49e44f7..0adbf9cc3d67 100644
return 0;
}
-@@ -403,6 +417,13 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
+@@ -418,6 +432,13 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
line += vid_priv->line_length;
}
@@ -1181,23 +1171,11 @@ index 0f9bb49e44f7..0adbf9cc3d67 100644
ret = vidconsole_sync_copy(dev, start, line);
if (ret)
return ret;
-diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index 09172f1f7f45..06e344f415ce 100644
---- a/drivers/video/video-uclass.c
-+++ b/drivers/video/video-uclass.c
-@@ -199,6 +199,7 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
- }
- line += priv->line_length;
- }
-+
- ret = video_sync_copy(dev, start, line);
- if (ret)
- return ret;
--
-2.42.0
+2.49.0
-From 4946d75efb4a6b4ff1c2ec306cb7509e98c24c17 Mon Sep 17 00:00:00 2001
+From e759e3ab52f4373d4f2487d857118b3f0b5998b2 Mon Sep 17 00:00:00 2001
From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Date: Fri, 18 Aug 2023 17:55:08 +0300
Subject: [PATCH 07/13] video: test: Test video damage tracking via vidconsole
@@ -1208,6 +1186,7 @@ the config in sandbox and add a test for it, by printing strings at a
few locations and checking the tracked region.
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-8-alpernebiyasak@gmail.com/
---
configs/sandbox_defconfig | 1 +
@@ -1215,10 +1194,10 @@ Link: https://lore.kernel.org/u-boot/20230821135111.3558478-8-alpernebiyasak@gma
2 files changed, 57 insertions(+)
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
-index 62bc182ca161..d26659ff0a0b 100644
+index 861a1f4cd90e..8bf36ff325d8 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
-@@ -307,6 +307,7 @@ CONFIG_USB_ETH_CDC=y
+@@ -328,6 +328,7 @@ CONFIG_USB_ETH_CDC=y
CONFIG_VIDEO=y
CONFIG_VIDEO_FONT_SUN12X22=y
CONFIG_VIDEO_COPY=y
@@ -1227,13 +1206,13 @@ index 62bc182ca161..d26659ff0a0b 100644
CONFIG_CONSOLE_TRUETYPE=y
CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
diff --git a/test/dm/video.c b/test/dm/video.c
-index e4bd27a6b76f..8c7d9800a42e 100644
+index 80e65d66dbaf..e76fa986d359 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
-@@ -711,3 +711,59 @@ static int dm_test_video_copy(struct unit_test_state *uts)
+@@ -710,3 +710,59 @@ static int dm_test_video_copy(struct unit_test_state *uts)
return 0;
}
- DM_TEST(dm_test_video_copy, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+ DM_TEST(dm_test_video_copy, UTF_SCAN_PDATA | UTF_SCAN_FDT);
+
+/* Test video damage tracking */
+static int dm_test_video_damage(struct unit_test_state *uts)
@@ -1289,12 +1268,12 @@ index e4bd27a6b76f..8c7d9800a42e 100644
+
+ return 0;
+}
-+DM_TEST(dm_test_video_damage, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
++DM_TEST(dm_test_video_damage, UTF_SCAN_PDATA | UTF_SCAN_FDT);
--
-2.42.0
+2.49.0
-From a8073a8ba8a35600302ad6430977c766869f1605 Mon Sep 17 00:00:00 2001
+From aa9d791d839b1004809b4a6cba38cd0bfd3dafa9 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:18 +0200
Subject: [PATCH 08/13] video: Add damage notification on bmp display
@@ -1311,10 +1290,10 @@ Link: https://lore.kernel.org/u-boot/20230821135111.3558478-9-alpernebiyasak@gma
1 file changed, 2 insertions(+)
diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
-index 45f003c8251a..10943b9ca19f 100644
+index ad512d99a1b9..78de95607924 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
-@@ -460,6 +460,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
+@@ -459,6 +459,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
break;
};
@@ -1324,10 +1303,10 @@ index 45f003c8251a..10943b9ca19f 100644
fb = (uchar *)(priv->fb + y * priv->line_length + x * bpix / 8);
ret = video_sync_copy(dev, start, fb);
--
-2.42.0
+2.49.0
-From 210faf6dd92d4d7647cec88aa5affddf74c35fcb Mon Sep 17 00:00:00 2001
+From 68262daa712e3202149aa0249bcff233234b6dfa Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:19 +0200
Subject: [PATCH 09/13] efi_loader: GOP: Add damage notification on BLT
@@ -1340,16 +1319,17 @@ Reported-by: Da Xue <da@libre.computer>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
[Alper: Add struct comment for new member]
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-10-alpernebiyasak@gmail.com/
---
lib/efi_loader/efi_gop.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c
-index 778b693f983a..db6535e080c4 100644
+index 4593975be5af..3abb47d610e6 100644
--- a/lib/efi_loader/efi_gop.c
+++ b/lib/efi_loader/efi_gop.c
-@@ -24,6 +24,7 @@ static const efi_guid_t efi_gop_guid = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
+@@ -26,6 +26,7 @@ static const efi_guid_t efi_gop_guid = EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
* @ops: graphical output protocol interface
* @info: graphical output mode information
* @mode: graphical output mode
@@ -1357,7 +1337,7 @@ index 778b693f983a..db6535e080c4 100644
* @bpix: bits per pixel
* @fb: frame buffer
*/
-@@ -32,6 +33,7 @@ struct efi_gop_obj {
+@@ -34,6 +35,7 @@ struct efi_gop_obj {
struct efi_gop ops;
struct efi_gop_mode_info info;
struct efi_gop_mode mode;
@@ -1365,7 +1345,7 @@ index 778b693f983a..db6535e080c4 100644
/* Fields we only have access to during init */
u32 bpix;
void *fb;
-@@ -120,6 +122,7 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this,
+@@ -122,6 +124,7 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this,
u32 *fb32 = gopobj->fb;
u16 *fb16 = gopobj->fb;
struct efi_gop_pixel *buffer = __builtin_assume_aligned(bufferp, 4);
@@ -1373,7 +1353,7 @@ index 778b693f983a..db6535e080c4 100644
if (delta) {
/* Check for 4 byte alignment */
-@@ -243,6 +246,9 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this,
+@@ -245,6 +248,9 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this,
dlineoff += dwidth;
}
@@ -1383,19 +1363,19 @@ index 778b693f983a..db6535e080c4 100644
return EFI_SUCCESS;
}
-@@ -548,6 +554,7 @@ efi_status_t efi_gop_register(void)
+@@ -551,6 +557,7 @@ efi_status_t efi_gop_register(void)
gopobj->info.pixels_per_scanline = col;
gopobj->bpix = bpix;
- gopobj->fb = fb;
+ gopobj->fb = map_sysmem(fb_base, fb_size);
+ gopobj->vdev = vdev;
return EFI_SUCCESS;
}
--
-2.42.0
+2.49.0
-From 95c2109f13e9457961745193cae222523366d810 Mon Sep 17 00:00:00 2001
+From b9d38bb68233d917a84c589b098699bd9ef08d70 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:20 +0200
Subject: [PATCH 10/13] video: Only dcache flush damaged lines
@@ -1412,29 +1392,29 @@ Co-developed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-11-alpernebiyasak@gmail.com/
---
- drivers/video/video-uclass.c | 41 +++++++++++++++++++++++++++++++-----
- 1 file changed, 36 insertions(+), 5 deletions(-)
+ drivers/video/video-uclass.c | 43 +++++++++++++++++++++++++++++++-----
+ 1 file changed, 38 insertions(+), 5 deletions(-)
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index 06e344f415ce..ac2141892bf7 100644
+index 1c07613539f2..2dffcc229f6f 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
-@@ -385,6 +385,41 @@ void video_damage(struct udevice *vid, int x, int y, int width, int height)
- priv->damage.yend = max(yend, priv->damage.yend);
+@@ -399,6 +399,40 @@ void video_damage(struct udevice *vid, int x, int y, int width, int height)
}
+ #endif
+#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
-+static void video_flush_dcache(struct udevice *vid)
++static void video_flush_dcache(struct udevice *vid, bool use_copy)
+{
+ struct video_priv *priv = dev_get_uclass_priv(vid);
++ ulong fb = use_copy ? (ulong)priv->copy_fb : (ulong)priv->fb;
+
+ if (!priv->flush_dcache)
+ return;
+
+ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) {
-+ flush_dcache_range((ulong)priv->fb,
-+ ALIGN((ulong)priv->fb + priv->fb_size,
-+ CONFIG_SYS_CACHELINE_SIZE));
++ flush_dcache_range(fb, ALIGN(fb + priv->fb_size,
++ CONFIG_SYS_CACHELINE_SIZE));
+
+ return;
+ }
@@ -1445,7 +1425,6 @@ index 06e344f415ce..ac2141892bf7 100644
+ int y;
+
+ for (y = priv->damage.ystart; y < priv->damage.yend; y++) {
-+ ulong fb = (ulong)priv->fb;
+ ulong start = fb + (y * priv->line_length) + lstart;
+ ulong end = start + lend - lstart;
+
@@ -1461,7 +1440,7 @@ index 06e344f415ce..ac2141892bf7 100644
/* Flush video activity to the caches */
int video_sync(struct udevice *vid, bool force)
{
-@@ -404,11 +439,7 @@ int video_sync(struct udevice *vid, bool force)
+@@ -422,11 +456,10 @@ int video_sync(struct udevice *vid, bool force)
* out whether it exists? For now, ARM is safe.
*/
#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
@@ -1470,15 +1449,18 @@ index 06e344f415ce..ac2141892bf7 100644
- ALIGN((ulong)priv->fb + priv->fb_size,
- CONFIG_SYS_CACHELINE_SIZE));
- }
-+ video_flush_dcache(vid);
++ video_flush_dcache(vid, false);
++
++ if (IS_ENABLED(CONFIG_VIDEO_COPY))
++ video_flush_dcache(vid, true);
#elif defined(CONFIG_VIDEO_SANDBOX_SDL)
- static ulong last_sync;
-
+ sandbox_sdl_sync(priv->fb);
+ #endif
--
-2.42.0
+2.49.0
-From d4c117c2455f2df8fa224ec603f2749219c72243 Mon Sep 17 00:00:00 2001
+From bcb0061c373dca651760928ec6f8e13842b26e55 Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Fri, 10 Jun 2022 00:59:21 +0200
Subject: [PATCH 11/13] video: Use VIDEO_DAMAGE for VIDEO_COPY
@@ -1511,20 +1493,20 @@ Link: https://lore.kernel.org/u-boot/20230821135111.3558478-12-alpernebiyasak@gm
drivers/video/Kconfig | 5 ++
drivers/video/console_normal.c | 13 +----
drivers/video/console_rotate.c | 44 +++-----------
- drivers/video/console_truetype.c | 16 +----
- drivers/video/vidconsole-uclass.c | 16 -----
- drivers/video/video-uclass.c | 97 ++++++++-----------------------
+ drivers/video/console_truetype.c | 20 +------
+ drivers/video/vidconsole-uclass.c | 16 ------
+ drivers/video/video-uclass.c | 96 ++++++++-----------------------
drivers/video/video_bmp.c | 7 ---
include/video.h | 37 ------------
include/video_console.h | 52 -----------------
test/dm/video.c | 3 +-
- 11 files changed, 43 insertions(+), 248 deletions(-)
+ 11 files changed, 43 insertions(+), 251 deletions(-)
diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
-index d26659ff0a0b..62bc182ca161 100644
+index 8bf36ff325d8..861a1f4cd90e 100644
--- a/configs/sandbox_defconfig
+++ b/configs/sandbox_defconfig
-@@ -307,7 +307,6 @@ CONFIG_USB_ETH_CDC=y
+@@ -328,7 +328,6 @@ CONFIG_USB_ETH_CDC=y
CONFIG_VIDEO=y
CONFIG_VIDEO_FONT_SUN12X22=y
CONFIG_VIDEO_COPY=y
@@ -1533,10 +1515,10 @@ index d26659ff0a0b..62bc182ca161 100644
CONFIG_CONSOLE_TRUETYPE=y
CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index db531d7caae0..5f17c6be84ed 100644
+index 5d67067891be..964174b01acc 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
-@@ -83,11 +83,14 @@ config VIDEO_PCI_DEFAULT_FB_SIZE
+@@ -89,11 +89,14 @@ config VIDEO_PCI_DEFAULT_FB_SIZE
config VIDEO_COPY
bool "Enable copying the frame buffer to a hardware copy"
@@ -1551,7 +1533,7 @@ index db531d7caae0..5f17c6be84ed 100644
To use this, your video driver must set @copy_base in
struct video_uc_plat.
-@@ -105,6 +108,8 @@ config VIDEO_DAMAGE
+@@ -111,6 +114,8 @@ config VIDEO_DAMAGE
regions of the frame buffer that were modified before, speeding up
screen refreshes significantly.
@@ -1561,7 +1543,7 @@ index db531d7caae0..5f17c6be84ed 100644
bool "Generic PWM based Backlight Driver"
depends on BACKLIGHT && DM_PWM
diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
-index a19ce6a2bc11..c44aa09473a3 100644
+index 51ac8cc78e9d..07db613ac53c 100644
--- a/drivers/video/console_normal.c
+++ b/drivers/video/console_normal.c
@@ -35,10 +35,6 @@ static int console_set_row(struct udevice *dev, uint row, int clr)
@@ -1591,7 +1573,7 @@ index a19ce6a2bc11..c44aa09473a3 100644
video_damage(dev->parent,
0,
-@@ -108,10 +101,6 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -109,10 +102,6 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, int cp)
fontdata->width,
fontdata->height);
@@ -1603,7 +1585,7 @@ index a19ce6a2bc11..c44aa09473a3 100644
}
diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c
-index 6c3e7c1bb8dc..6e9067d1c7fb 100644
+index f11dc3a0b075..886b25dcfafc 100644
--- a/drivers/video/console_rotate.c
+++ b/drivers/video/console_rotate.c
@@ -21,7 +21,6 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr)
@@ -1645,7 +1627,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
src += vid_priv->line_length;
dst += vid_priv->line_length;
}
-@@ -104,10 +97,6 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -105,10 +98,6 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, int cp)
return ret;
/* We draw backwards from 'start, so account for the first line */
@@ -1685,7 +1667,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
video_damage(dev->parent,
0,
-@@ -199,11 +184,6 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -200,11 +185,6 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, int cp)
if (ret)
return ret;
@@ -1697,7 +1679,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
video_damage(dev->parent,
x - fontdata->width + 1,
linenum - fontdata->height + 1,
-@@ -220,7 +200,7 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
+@@ -221,7 +201,7 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
struct video_fontdata *fontdata = priv->fontdata;
int pbytes = VNBYTES(vid_priv->bpix);
void *start, *dst, *line;
@@ -1706,7 +1688,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
start = vid_priv->fb + row * fontdata->height * pbytes;
line = start;
-@@ -230,9 +210,6 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
+@@ -231,9 +211,6 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr)
fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes);
line += vid_priv->line_length;
}
@@ -1716,7 +1698,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
video_damage(dev->parent,
row * fontdata->height,
-@@ -252,16 +229,13 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc,
+@@ -253,16 +230,13 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc,
int pbytes = VNBYTES(vid_priv->bpix);
void *dst;
void *src;
@@ -1735,7 +1717,7 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
src += vid_priv->line_length;
dst += vid_priv->line_length;
}
-@@ -296,10 +270,6 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, char ch)
+@@ -298,10 +272,6 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, int cp)
line = start;
ret = fill_char_horizontally(pfont, &line, vid_priv, fontdata, NORMAL_DIRECTION);
@@ -1747,10 +1729,10 @@ index 6c3e7c1bb8dc..6e9067d1c7fb 100644
return ret;
diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c
-index 0adbf9cc3d67..07bb0af71311 100644
+index 073ddcfb6950..56c3af3d5aad 100644
--- a/drivers/video/console_truetype.c
+++ b/drivers/video/console_truetype.c
-@@ -182,7 +182,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
+@@ -194,7 +194,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
struct console_tt_priv *priv = dev_get_priv(dev);
struct console_tt_metrics *met = priv->cur_met;
void *end, *line;
@@ -1758,7 +1740,7 @@ index 0adbf9cc3d67..07bb0af71311 100644
line = vid_priv->fb + row * met->font_size * vid_priv->line_length;
end = line + met->font_size * vid_priv->line_length;
-@@ -218,9 +217,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
+@@ -230,9 +229,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr)
default:
return -ENOSYS;
}
@@ -1768,7 +1750,7 @@ index 0adbf9cc3d67..07bb0af71311 100644
video_damage(dev->parent,
0,
-@@ -240,14 +236,11 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
+@@ -252,14 +248,11 @@ static int console_truetype_move_rows(struct udevice *dev, uint rowdst,
struct console_tt_metrics *met = priv->cur_met;
void *dst;
void *src;
@@ -1785,7 +1767,7 @@ index 0adbf9cc3d67..07bb0af71311 100644
/* Scroll up our position history */
diff = (rowsrc - rowdst) * met->font_size;
-@@ -280,7 +273,7 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
+@@ -292,7 +285,7 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
u8 *bits, *data;
int advance;
void *start, *end, *line;
@@ -1793,8 +1775,8 @@ index 0adbf9cc3d67..07bb0af71311 100644
+ int row;
/* First get some basic metrics about this character */
- stbtt_GetCodepointHMetrics(font, ch, &advance, &lsb);
-@@ -424,9 +417,6 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
+ stbtt_GetCodepointHMetrics(font, cp, &advance, &lsb);
+@@ -439,9 +432,6 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y,
width,
height);
@@ -1804,11 +1786,29 @@ index 0adbf9cc3d67..07bb0af71311 100644
free(data);
return width_frac;
+@@ -872,7 +862,6 @@ static int truetype_set_cursor_visible(struct udevice *dev, bool visible,
+ uint row, width, height, xoff;
+ void *start, *line;
+ uint out, val;
+- int ret;
+
+ if (xpl_phase() <= PHASE_SPL)
+ return -ENOSYS;
+@@ -962,9 +951,6 @@ static int truetype_set_cursor_visible(struct udevice *dev, bool visible,
+
+ line += vid_priv->line_length;
+ }
+- ret = vidconsole_sync_copy(dev, start, line);
+- if (ret)
+- return ret;
+
+ return video_sync(vid, true);
+ }
diff --git a/drivers/video/vidconsole-uclass.c b/drivers/video/vidconsole-uclass.c
-index a4029a58660b..f0db412146a8 100644
+index 8613c464040f..ce6c8bb70cb7 100644
--- a/drivers/video/vidconsole-uclass.c
+++ b/drivers/video/vidconsole-uclass.c
-@@ -728,22 +728,6 @@ UCLASS_DRIVER(vidconsole) = {
+@@ -803,22 +803,6 @@ UCLASS_DRIVER(vidconsole) = {
.per_device_auto = sizeof(struct vidconsole_priv),
};
@@ -1832,10 +1832,10 @@ index a4029a58660b..f0db412146a8 100644
{
int ret;
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index ac2141892bf7..afbd4670240b 100644
+index 2dffcc229f6f..eeee5d960838 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
-@@ -160,7 +160,7 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
+@@ -171,7 +171,7 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
struct video_priv *priv = dev_get_uclass_priv(dev);
void *start, *line;
int pixels = xend - xstart;
@@ -1844,18 +1844,17 @@ index ac2141892bf7..afbd4670240b 100644
start = priv->fb + ystart * priv->line_length;
start += xstart * VNBYTES(priv->bpix);
-@@ -200,10 +200,6 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
+@@ -210,9 +210,6 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend,
+ }
line += priv->line_length;
}
-
- ret = video_sync_copy(dev, start, line);
- if (ret)
- return ret;
--
+
video_damage(dev, xstart, ystart, xend - xstart, yend - ystart);
- return 0;
-@@ -223,7 +219,6 @@ int video_reserve_from_bloblist(struct video_handoff *ho)
+@@ -235,7 +232,6 @@ int video_reserve_from_bloblist(struct video_handoff *ho)
int video_fill(struct udevice *dev, u32 colour)
{
struct video_priv *priv = dev_get_uclass_priv(dev);
@@ -1863,7 +1862,7 @@ index ac2141892bf7..afbd4670240b 100644
switch (priv->bpix) {
case VIDEO_BPP16:
-@@ -248,9 +243,6 @@ int video_fill(struct udevice *dev, u32 colour)
+@@ -260,9 +256,6 @@ int video_fill(struct udevice *dev, u32 colour)
memset(priv->fb, colour, priv->fb_size);
break;
}
@@ -1873,7 +1872,7 @@ index ac2141892bf7..afbd4670240b 100644
video_damage(dev, 0, 0, priv->xsize, priv->ysize);
-@@ -420,6 +412,27 @@ static void video_flush_dcache(struct udevice *vid)
+@@ -433,6 +426,27 @@ static void video_flush_dcache(struct udevice *vid, bool use_copy)
}
#endif
@@ -1901,7 +1900,7 @@ index ac2141892bf7..afbd4670240b 100644
/* Flush video activity to the caches */
int video_sync(struct udevice *vid, bool force)
{
-@@ -427,6 +440,9 @@ int video_sync(struct udevice *vid, bool force)
+@@ -440,6 +454,9 @@ int video_sync(struct udevice *vid, bool force)
struct video_ops *ops = video_get_ops(vid);
int ret;
@@ -1911,7 +1910,7 @@ index ac2141892bf7..afbd4670240b 100644
if (ops && ops->video_sync) {
ret = ops->video_sync(vid);
if (ret)
-@@ -503,69 +519,6 @@ int video_get_ysize(struct udevice *dev)
+@@ -523,69 +540,6 @@ int video_get_ysize(struct udevice *dev)
return priv->ysize;
}
@@ -1982,10 +1981,10 @@ index ac2141892bf7..afbd4670240b 100644
extern u8 __splash_ ## _name ## _begin[]; \
extern u8 __splash_ ## _name ## _end[]
diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c
-index 10943b9ca19f..da2bbe864a03 100644
+index 78de95607924..1f267d45812c 100644
--- a/drivers/video/video_bmp.c
+++ b/drivers/video/video_bmp.c
-@@ -268,7 +268,6 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
+@@ -267,7 +267,6 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
enum video_format eformat;
struct bmp_color_table_entry *palette;
int hdr_size;
@@ -1993,7 +1992,7 @@ index 10943b9ca19f..da2bbe864a03 100644
if (!bmp || !(bmp->header.signature[0] == 'B' &&
bmp->header.signature[1] == 'M')) {
-@@ -462,11 +461,5 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
+@@ -461,11 +460,5 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y,
video_damage(dev, x, y, width, height);
@@ -2006,10 +2005,10 @@ index 10943b9ca19f..da2bbe864a03 100644
return video_sync(dev, false);
}
diff --git a/include/video.h b/include/video.h
-index 307e954db828..3f072b4d6b89 100644
+index 7eed112e00c4..2fe2f73a865b 100644
--- a/include/video.h
+++ b/include/video.h
-@@ -350,43 +350,6 @@ void video_set_default_colors(struct udevice *dev, bool invert);
+@@ -355,43 +355,6 @@ void video_set_default_colors(struct udevice *dev, bool invert);
*/
int video_default_font_height(struct udevice *dev);
@@ -2050,14 +2049,14 @@ index 307e954db828..3f072b4d6b89 100644
-
-#endif
-
+ #ifdef CONFIG_VIDEO_DAMAGE
/**
* video_damage() - Notify the video subsystem about screen updates.
- *
diff --git a/include/video_console.h b/include/video_console.h
-index dbfb389f324f..4b4d2e621b30 100644
+index 17a9aa3f9295..b228c725fd80 100644
--- a/include/video_console.h
+++ b/include/video_console.h
-@@ -406,58 +406,6 @@ void vidconsole_list_fonts(struct udevice *dev);
+@@ -538,56 +538,4 @@ void vidconsole_list_fonts(struct udevice *dev);
*/
int vidconsole_get_font_size(struct udevice *dev, const char **name, uint *sizep);
@@ -2113,14 +2112,12 @@ index dbfb389f324f..4b4d2e621b30 100644
-
-#endif
-
- /*
- * Convert an UTF-8 byte into the corresponding character in the CP437
- * code page. Returns 0 if that character is part of a multi-byte sequence.
+ #endif
diff --git a/test/dm/video.c b/test/dm/video.c
-index 8c7d9800a42e..4c3bcd26e94f 100644
+index e76fa986d359..021f4b3fa733 100644
--- a/test/dm/video.c
+++ b/test/dm/video.c
-@@ -106,6 +106,7 @@ static int check_copy_frame_buffer(struct unit_test_state *uts,
+@@ -105,6 +105,7 @@ static int check_copy_frame_buffer(struct unit_test_state *uts,
if (!IS_ENABLED(CONFIG_VIDEO_COPY))
return 0;
@@ -2128,7 +2125,7 @@ index 8c7d9800a42e..4c3bcd26e94f 100644
ut_assertf(!memcmp(priv->fb, priv->copy_fb, priv->fb_size),
"Copy framebuffer does not match fb");
-@@ -706,7 +707,7 @@ static int dm_test_video_copy(struct unit_test_state *uts)
+@@ -705,7 +706,7 @@ static int dm_test_video_copy(struct unit_test_state *uts)
vidconsole_put_string(con, test_string);
vidconsole_put_string(con, test_string);
ut_asserteq(7589, compress_frame_buffer(uts, dev, false));
@@ -2138,10 +2135,10 @@ index 8c7d9800a42e..4c3bcd26e94f 100644
return 0;
}
--
-2.42.0
+2.49.0
-From cf7e5c9411fbe82487191e162bafcf178eaeaf5e Mon Sep 17 00:00:00 2001
+From 631692ed7090a8cfd0b2a3b3f23c295644f1393e Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Tue, 3 Jan 2023 22:50:03 +0100
Subject: [PATCH 12/13] video: Always compile cache flushing code
@@ -2162,21 +2159,16 @@ Signed-off-by: Alexander Graf <agraf@csgraf.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-13-alpernebiyasak@gmail.com/
---
- drivers/video/video-uclass.c | 14 +++++---------
- 1 file changed, 5 insertions(+), 9 deletions(-)
+ drivers/video/video-uclass.c | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
-index afbd4670240b..2c7777261ad1 100644
+index eeee5d960838..6c5a86d85dbc 100644
--- a/drivers/video/video-uclass.c
+++ b/drivers/video/video-uclass.c
-@@ -377,11 +377,13 @@ void video_damage(struct udevice *vid, int x, int y, int width, int height)
- priv->damage.yend = max(yend, priv->damage.yend);
- }
-
--#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
- static void video_flush_dcache(struct udevice *vid)
- {
+@@ -398,6 +398,9 @@ static void video_flush_dcache(struct udevice *vid, bool use_copy)
struct video_priv *priv = dev_get_uclass_priv(vid);
+ ulong fb = use_copy ? (ulong)priv->copy_fb : (ulong)priv->fb;
+ if (CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
+ return;
@@ -2184,17 +2176,9 @@ index afbd4670240b..2c7777261ad1 100644
if (!priv->flush_dcache)
return;
-@@ -410,7 +412,6 @@ static void video_flush_dcache(struct udevice *vid)
- }
- }
- }
--#endif
-
- static void video_flush_copy(struct udevice *vid)
- {
-@@ -449,14 +450,9 @@ int video_sync(struct udevice *vid, bool force)
- return ret;
- }
+@@ -467,17 +470,12 @@ int video_sync(struct udevice *vid, bool force)
+ get_timer(priv->last_sync) < CONFIG_VIDEO_SYNC_MS)
+ return 0;
- /*
- * flush_dcache_range() is declared in common.h but it seems that some
@@ -2202,18 +2186,21 @@ index afbd4670240b..2c7777261ad1 100644
- * out whether it exists? For now, ARM is safe.
- */
-#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
- video_flush_dcache(vid);
+ video_flush_dcache(vid, false);
+
+ if (IS_ENABLED(CONFIG_VIDEO_COPY))
+ video_flush_dcache(vid, true);
-#elif defined(CONFIG_VIDEO_SANDBOX_SDL)
+
+#if defined(CONFIG_VIDEO_SANDBOX_SDL)
- static ulong last_sync;
-
- if (force || get_timer(last_sync) > 100) {
+ sandbox_sdl_sync(priv->fb);
+ #endif
+ priv->last_sync = get_timer(0);
--
-2.42.0
+2.49.0
-From 2ada48e20ae7fb1ce66d63c6f549887c38b058d4 Mon Sep 17 00:00:00 2001
+From 08f3add44c202053f5ba882cb2f440e8e470229c Mon Sep 17 00:00:00 2001
From: Alexander Graf <agraf@csgraf.de>
Date: Tue, 3 Jan 2023 22:50:04 +0100
Subject: [PATCH 13/13] video: Enable VIDEO_DAMAGE for drivers that need it
@@ -2230,6 +2217,7 @@ Signed-off-by: Alexander Graf <agraf@csgraf.de>
[Alper: Add to VIDEO_TIDSS, imply instead of select]
Co-developed-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
Link: https://lore.kernel.org/u-boot/20230821135111.3558478-14-alpernebiyasak@gmail.com/
---
arch/arm/mach-sunxi/Kconfig | 1 +
@@ -2244,11 +2232,11 @@ Link: https://lore.kernel.org/u-boot/20230821135111.3558478-14-alpernebiyasak@gm
9 files changed, 16 insertions(+)
diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig
-index e20c3a3ee926..6bd813b68c9c 100644
+index ba1b15414379..bb1ea961704e 100644
--- a/arch/arm/mach-sunxi/Kconfig
+++ b/arch/arm/mach-sunxi/Kconfig
-@@ -813,6 +813,7 @@ config VIDEO_SUNXI
- depends on !SUN50I_GEN_H6
+@@ -882,6 +882,7 @@ config VIDEO_SUNXI
+ depends on !SUNXI_GEN_NCAT2
select VIDEO
select DISPLAY
+ imply VIDEO_DAMAGE
@@ -2256,10 +2244,10 @@ index e20c3a3ee926..6bd813b68c9c 100644
default y
---help---
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index 5f17c6be84ed..546df93f51a9 100644
+index 964174b01acc..6e1577ae6871 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
-@@ -499,6 +499,7 @@ config VIDEO_LCD_ANX9804
+@@ -534,6 +534,7 @@ config VIDEO_LCD_ANX9804
config ATMEL_LCD
bool "Atmel LCD panel support"
@@ -2267,7 +2255,7 @@ index 5f17c6be84ed..546df93f51a9 100644
depends on ARCH_AT91
config ATMEL_LCD_BGR555
-@@ -508,6 +509,7 @@ config ATMEL_LCD_BGR555
+@@ -543,6 +544,7 @@ config ATMEL_LCD_BGR555
config VIDEO_BCM2835
bool "Display support for BCM2835"
@@ -2275,7 +2263,7 @@ index 5f17c6be84ed..546df93f51a9 100644
help
The graphics processor already sets up the display so this driver
simply checks the resolution and then sets up the frame buffer with
-@@ -654,6 +656,7 @@ source "drivers/video/meson/Kconfig"
+@@ -715,6 +717,7 @@ source "drivers/video/meson/Kconfig"
config VIDEO_MVEBU
bool "Armada XP LCD controller"
@@ -2283,7 +2271,7 @@ index 5f17c6be84ed..546df93f51a9 100644
---help---
Support for the LCD controller integrated in the Marvell
Armada XP SoC.
-@@ -688,6 +691,7 @@ config NXP_TDA19988
+@@ -749,6 +752,7 @@ config NXP_TDA19988
config ATMEL_HLCD
bool "Enable ATMEL video support using HLCDC"
@@ -2291,7 +2279,7 @@ index 5f17c6be84ed..546df93f51a9 100644
help
HLCDC supports video output to an attached LCD panel.
-@@ -764,6 +768,7 @@ source "drivers/video/tidss/Kconfig"
+@@ -825,6 +829,7 @@ source "drivers/video/tidss/Kconfig"
config VIDEO_TEGRA124
bool "Enable video support on Tegra124"
@@ -2299,7 +2287,7 @@ index 5f17c6be84ed..546df93f51a9 100644
help
Tegra124 supports many video output options including eDP and
HDMI. At present only eDP is supported by U-Boot. This option
-@@ -778,6 +783,7 @@ source "drivers/video/imx/Kconfig"
+@@ -839,6 +844,7 @@ source "drivers/video/imx/Kconfig"
config VIDEO_MXS
bool "Enable video support on i.MX28/i.MX6UL/i.MX7 SoCs"
@@ -2307,7 +2295,7 @@ index 5f17c6be84ed..546df93f51a9 100644
help
Enable framebuffer driver for i.MX28/i.MX6UL/i.MX7 processors
-@@ -840,6 +846,7 @@ config VIDEO_DW_MIPI_DSI
+@@ -901,6 +907,7 @@ config VIDEO_DW_MIPI_DSI
config VIDEO_SIMPLE
bool "Simple display driver for preconfigured display"
@@ -2315,7 +2303,7 @@ index 5f17c6be84ed..546df93f51a9 100644
help
Enables a simple generic display driver which utilizes the
simple-framebuffer devicetree bindings.
-@@ -858,6 +865,7 @@ config VIDEO_DT_SIMPLEFB
+@@ -919,6 +926,7 @@ config VIDEO_DT_SIMPLEFB
config VIDEO_MCDE_SIMPLE
bool "Simple driver for ST-Ericsson MCDE with preconfigured display"
@@ -2407,5 +2395,5 @@ index 95086f3a5d66..3291b3ceb8d5 100644
TIDSS supports video output options LVDS and
DPI . This option enables these supports which can be used on
--
-2.42.0
+2.49.0
diff --git a/config/u-boot/default/patches/0004-HACK-Makefile-Ignore-missing-input-files-for-binman.patch b/config/u-boot/default/patches/0004-HACK-Makefile-Ignore-missing-input-files-for-binman.patch
new file mode 100644
index 00000000..5307f378
--- /dev/null
+++ b/config/u-boot/default/patches/0004-HACK-Makefile-Ignore-missing-input-files-for-binman.patch
@@ -0,0 +1,34 @@
+From faa87ed4d2ff07e9e8cc98cd08cbb34c905c1ac6 Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Wed, 10 Jul 2024 17:37:56 +0300
+Subject: [PATCH] HACK: Makefile: Ignore missing input files for binman images
+
+For Rockchip boards binman tries to build SPI and MMC images that
+require an externally built BL31 file to be provided, and the build
+fails otherwise.
+
+Some downstreams only care about build outputs for U-Boot proper. As a
+hack to make sure they can do so without passing in a BL31 file, tell
+binman to ignore missing input files.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a7593e8a1680..30deb760bf8f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1410,7 +1410,7 @@ cmd_binman = $(srctree)/tools/binman/binman $(if $(BINMAN_DEBUG),-D) \
+ $(if $(BINMAN_VERBOSE),-v$(BINMAN_VERBOSE)) \
+ build -u -d $(binman_dtb) -O . -m \
+ --allow-missing --fake-ext-blobs \
+- $(if $(BINMAN_ALLOW_MISSING),--ignore-missing) \
++ --ignore-missing \
+ -I . -I $(srctree) -I $(srctree)/board/$(BOARDDIR) \
+ $(foreach f,$(of_list_dirs),-I $(f)) -a of-list=$(of_list) \
+ $(foreach f,$(BINMAN_INDIRS),-I $(f)) \
+--
+2.49.0
+
diff --git a/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch b/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
deleted file mode 100644
index 3a66b99a..00000000
--- a/config/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2ab104621dc97a89bc8f75e3b5903b83e793baf8 Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Sat, 19 Aug 2023 16:43:58 +0300
-Subject: [PATCH] HACK: regulator: Don't error on reentrant regulator actions
-
-Commit 4fcba5d556b42 ("regulator: implement basic reference counter")
-implements reference counting for regulator enable/disable actions, but
-does not update its callers to handle the error cases it adds. This
-breaks gru-kevin, report enabling the regulator as a success as a
-workaround. It would be better to fix the callers but that needs more
-debugging.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
----
- drivers/power/regulator/regulator_common.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/power/regulator/regulator_common.c b/drivers/power/regulator/regulator_common.c
-index e26f5ebec347..1c2dfdf9b19d 100644
---- a/drivers/power/regulator/regulator_common.c
-+++ b/drivers/power/regulator/regulator_common.c
-@@ -75,7 +75,7 @@ int regulator_common_set_enable(const struct udevice *dev,
- /* If previously enabled, increase count */
- if (enable && plat->enable_count > 0) {
- plat->enable_count++;
-- return -EALREADY;
-+ return 0;
- }
-
- if (!enable) {
-@@ -85,7 +85,7 @@ int regulator_common_set_enable(const struct udevice *dev,
- return -EBUSY;
- } else if (!plat->enable_count) {
- /* If already disabled, do nothing */
-- return -EALREADY;
-+ return 0;
- }
- }
-
---
-2.42.0
-
diff --git a/config/u-boot/default/patches/0005-HACK-rk3399-gru-Remove-assigned-clock-dt-properties-.patch b/config/u-boot/default/patches/0005-HACK-rk3399-gru-Remove-assigned-clock-dt-properties-.patch
new file mode 100644
index 00000000..018da338
--- /dev/null
+++ b/config/u-boot/default/patches/0005-HACK-rk3399-gru-Remove-assigned-clock-dt-properties-.patch
@@ -0,0 +1,36 @@
+From d02163324baeb817ed55df41fac863cab4be038c Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Wed, 10 Jul 2024 14:32:19 +0300
+Subject: [PATCH] HACK: rk3399: gru: Remove assigned clock dt properties for
+ EDP node
+
+Having the PCLK_EDP clock in the assigned-clocks property of the `edp`
+node means that U-Boot tries to set its rate automatically. This clock
+isn't implemented for the RK3399 clock driver, so it fails and prevents
+display from being initialized.
+
+The display happens to work fine without it, remove the property until
+the clock driver can handle the clock.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+---
+ arch/arm/dts/rk3399-gru-u-boot.dtsi | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi b/arch/arm/dts/rk3399-gru-u-boot.dtsi
+index 5517176aa4a0..9f40cf1e0208 100644
+--- a/arch/arm/dts/rk3399-gru-u-boot.dtsi
++++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi
+@@ -27,6 +27,9 @@ &cros_ec {
+
+ &edp {
+ rockchip,panel = <&edp_panel>;
++
++ /delete-property/ assigned-clocks;
++ /delete-property/ assigned-clock-rates;
+ };
+
+ &emmc_phy {
+--
+2.49.0
+
diff --git a/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch b/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
deleted file mode 100644
index ac3ada3b..00000000
--- a/config/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
+++ /dev/null
@@ -1,307 +0,0 @@
-From b14bc4a5d8dc31294dde4ee9ce8008d763c695de Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Fri, 13 Oct 2023 14:06:26 +0300
-Subject: [PATCH] HACK: rockchip: Remove binman image descriptions
-
-For Rockchip boards binman tries to build SPI and MMC images that
-require an externally built BL31 file to be provided, and the build
-fails otherwise. This is not really as configurable as it should be.
-
-Some downstreams only care about build outputs for U-Boot proper. As a
-hack to make sure they can do so without building BL31, remove the
-binman image descriptions from the device-tree sources. However,
-BINMAN_FDT expects these to be present and has to be disabled as well.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
----
- arch/arm/dts/rk3288-u-boot.dtsi | 24 ----
- arch/arm/dts/rk3399-gru-u-boot.dtsi | 6 -
- arch/arm/dts/rk3399-u-boot.dtsi | 25 ----
- arch/arm/dts/rockchip-u-boot.dtsi | 186 ----------------------------
- 4 files changed, 241 deletions(-)
-
-diff --git a/arch/arm/dts/rk3288-u-boot.dtsi b/arch/arm/dts/rk3288-u-boot.dtsi
-index c4c5a2d225c4..432ab92d97c9 100644
---- a/arch/arm/dts/rk3288-u-boot.dtsi
-+++ b/arch/arm/dts/rk3288-u-boot.dtsi
-@@ -55,30 +55,6 @@ noc: syscon@ffac0000 {
- };
- };
-
--#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
--&binman {
-- rom {
-- filename = "u-boot.rom";
-- size = <0x400000>;
-- pad-byte = <0xff>;
--
-- mkimage {
-- args = "-n rk3288 -T rkspi";
-- u-boot-spl {
-- };
-- };
-- u-boot-img {
-- offset = <0x20000>;
-- };
-- u-boot {
-- offset = <0x300000>;
-- };
-- fdtmap {
-- };
-- };
--};
--#endif
--
- &bus_intmem {
- ddr_sram: ddr-sram@1000 {
- compatible = "rockchip,rk3288-ddr-sram";
-diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi b/arch/arm/dts/rk3399-gru-u-boot.dtsi
-index b1604a6872c0..54296b4d7a1c 100644
---- a/arch/arm/dts/rk3399-gru-u-boot.dtsi
-+++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi
-@@ -15,12 +15,6 @@ config {
- };
- };
-
--&binman {
-- rom {
-- size = <0x800000>;
-- };
--};
--
- &cros_ec {
- ec-interrupt = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>;
- };
-diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
-index 3423b882c437..0bf4c481b39a 100644
---- a/arch/arm/dts/rk3399-u-boot.dtsi
-+++ b/arch/arm/dts/rk3399-u-boot.dtsi
-@@ -60,31 +60,6 @@ pmusgrf: syscon@ff330000 {
-
- };
-
--#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
--&binman {
-- multiple-images;
-- rom {
-- filename = "u-boot.rom";
-- size = <0x400000>;
-- pad-byte = <0xff>;
--
-- mkimage {
-- args = "-n rk3399 -T rkspi";
-- u-boot-spl {
-- };
-- };
-- u-boot-img {
-- offset = <0x40000>;
-- };
-- u-boot {
-- offset = <0x300000>;
-- };
-- fdtmap {
-- };
-- };
--};
--#endif /* CONFIG_ROCKCHIP_SPI_IMAGE && CONFIG_HAS_ROM */
--
- &cru {
- bootph-all;
- };
-diff --git a/arch/arm/dts/rockchip-u-boot.dtsi b/arch/arm/dts/rockchip-u-boot.dtsi
-index be2658e8ef18..3d55553e4401 100644
---- a/arch/arm/dts/rockchip-u-boot.dtsi
-+++ b/arch/arm/dts/rockchip-u-boot.dtsi
-@@ -10,189 +10,3 @@ binman: binman {
- multiple-images;
- };
- };
--
--#ifdef CONFIG_SPL
--&binman {
-- simple-bin {
-- filename = "u-boot-rockchip.bin";
-- pad-byte = <0xff>;
--
-- mkimage {
-- filename = "idbloader.img";
-- args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
-- multiple-data-files;
--
--#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
-- rockchip-tpl {
-- };
--#elif defined(CONFIG_TPL)
-- u-boot-tpl {
-- };
--#endif
-- u-boot-spl {
-- };
-- };
--
--#if defined(CONFIG_SPL_FIT) && (defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE))
-- fit: fit {
--#ifdef CONFIG_ARM64
-- description = "FIT image for U-Boot with bl31 (TF-A)";
--#else
-- description = "FIT image with OP-TEE";
--#endif
-- #address-cells = <1>;
-- fit,fdt-list = "of-list";
-- filename = "u-boot.itb";
-- fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
-- fit,align = <512>;
-- offset = <CONFIG_SPL_PAD_TO>;
-- images {
-- u-boot {
-- description = "U-Boot";
-- type = "standalone";
-- os = "U-Boot";
--#ifdef CONFIG_ARM64
-- arch = "arm64";
--#else
-- arch = "arm";
--#endif
-- compression = "none";
-- load = <CONFIG_TEXT_BASE>;
-- entry = <CONFIG_TEXT_BASE>;
-- u-boot-nodtb {
-- };
--#ifdef CONFIG_SPL_FIT_SIGNATURE
-- hash {
-- algo = "sha256";
-- };
--#endif
-- };
--
--#ifdef CONFIG_ARM64
-- @atf-SEQ {
-- fit,operation = "split-elf";
-- description = "ARM Trusted Firmware";
-- type = "firmware";
-- arch = "arm64";
-- os = "arm-trusted-firmware";
-- compression = "none";
-- fit,load;
-- fit,entry;
-- fit,data;
--
-- atf-bl31 {
-- };
--#ifdef CONFIG_SPL_FIT_SIGNATURE
-- hash {
-- algo = "sha256";
-- };
--#endif
-- };
-- @tee-SEQ {
-- fit,operation = "split-elf";
-- description = "TEE";
-- type = "tee";
-- arch = "arm64";
-- os = "tee";
-- compression = "none";
-- fit,load;
-- fit,entry;
-- fit,data;
--
-- tee-os {
-- optional;
-- };
--#ifdef CONFIG_SPL_FIT_SIGNATURE
-- hash {
-- algo = "sha256";
-- };
--#endif
-- };
--#else
-- op-tee {
-- description = "OP-TEE";
-- type = "tee";
-- arch = "arm";
-- os = "tee";
-- compression = "none";
-- load = <(CFG_SYS_SDRAM_BASE + 0x8400000)>;
-- entry = <(CFG_SYS_SDRAM_BASE + 0x8400000)>;
--
-- tee-os {
-- };
--#ifdef CONFIG_SPL_FIT_SIGNATURE
-- hash {
-- algo = "sha256";
-- };
--#endif
-- };
--#endif
--
-- @fdt-SEQ {
-- description = "fdt-NAME";
-- compression = "none";
-- type = "flat_dt";
--#ifdef CONFIG_SPL_FIT_SIGNATURE
-- hash {
-- algo = "sha256";
-- };
--#endif
-- };
-- };
--
-- configurations {
-- default = "@config-DEFAULT-SEQ";
-- @config-SEQ {
-- description = "NAME.dtb";
-- fdt = "fdt-SEQ";
--#ifdef CONFIG_ARM64
-- fit,firmware = "atf-1", "u-boot";
--#else
-- fit,firmware = "op-tee", "u-boot";
--#endif
-- fit,loadables;
-- };
-- };
-- };
--#else
-- u-boot-img {
-- offset = <CONFIG_SPL_PAD_TO>;
-- };
--#endif
-- };
--
--#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
-- simple-bin-spi {
-- filename = "u-boot-rockchip-spi.bin";
-- pad-byte = <0xff>;
--
-- mkimage {
-- filename = "idbloader-spi.img";
-- args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
-- multiple-data-files;
--
--#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
-- rockchip-tpl {
-- };
--#elif defined(CONFIG_TPL)
-- u-boot-tpl {
-- };
--#endif
-- u-boot-spl {
-- };
-- };
--
--#if defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE)
-- fit {
-- type = "blob";
-- filename = "u-boot.itb";
--#else
-- u-boot-img {
--#endif
-- /* Sync with u-boot,spl-payload-offset if present */
-- offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>;
-- };
-- };
--#endif /* CONFIG_ROCKCHIP_SPI_IMAGE */
--};
--#endif /* CONFIG_SPL */
---
-2.42.0
-
diff --git a/config/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch
new file mode 100644
index 00000000..ffc7b581
--- /dev/null
+++ b/config/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch
@@ -0,0 +1,302 @@
+From d9371422ac74ea73d1620f01300a7136a7649754 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 06:52:39 +0000
+Subject: [PATCH 1/1] Support auto-boot timeout delay bootflow menu
+
+The bootflow menu cannot currently auto-boot a selected entry,
+which means that the user must press enter to boot their system.
+This can be a problem on headless setups; for example, it is not
+currently feasible to set up a headless server with U-Boot, when
+using it to boot via UEFI on a coreboot setup.
+
+This patch adds the following build-time configuration option:
+
+CONFIG_CMD_BOOTFLOW_BOOTDELAY
+
+This creates a timeout delay in the given number of seconds.
+If an arrow key is press to navigate the menu, the timer is
+disabled and the user must then press enter to boot the selected
+option. When this happens, the timeout display is replaced by
+the old message indicating that the user should press enter.
+
+The default boot delay is 30 seconds, and the timeout is enabled
+by default. Setting it to zero will restore the old behaviour,
+whereby no timeout is provided and the user must press enter.
+
+If a negative integer is provided, the timer will default to
+zero. The timer value is further filtered by modulus of 100,
+so that the maximum number of seconds allowed is 99 seconds.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 117 +++++++++++++++++++++++++++++++++++--
+ cmd/Kconfig | 12 ++++
+ doc/usage/cmd/bootflow.rst | 11 ++++
+ include/bootflow.h | 10 +++-
+ 4 files changed, 143 insertions(+), 7 deletions(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 9d0dc352f9..172139b187 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -30,7 +30,7 @@ struct menu_priv {
+ int num_bootflows;
+ };
+
+-int bootflow_menu_new(struct expo **expp)
++int bootflow_menu_new(struct expo **expp, const char *prompt)
+ {
+ struct udevice *last_bootdev;
+ struct scene_obj_menu *menu;
+@@ -54,7 +54,7 @@ int bootflow_menu_new(struct expo **expp)
+ return log_msg_ret("scn", ret);
+
+ ret |= scene_txt_str(scn, "prompt", OBJ_PROMPT, STR_PROMPT,
+- "UP and DOWN to choose, ENTER to select", NULL);
++ prompt, NULL);
+
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+@@ -138,6 +138,29 @@ int bootflow_menu_new(struct expo **expp)
+ return 0;
+ }
+
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay)
++{
++ char *i;
++
++ if (prompt == NULL)
++ return 0;
++ if (strlen(prompt) < 2)
++ return 0;
++
++ i = prompt + strlen(prompt) - 2;
++
++ if (bootflow_delay >= 10) {
++ *(i) = 48 + (bootflow_delay / 10);
++ *(i + 1) = 48 + (bootflow_delay % 10);
++ } else {
++ *(i) = 48 + bootflow_delay;
++ *(i + 1) = ' ';
++ }
++
++ return expo_render(exp);
++}
++
+ int bootflow_menu_apply_theme(struct expo *exp, ofnode node)
+ {
+ struct menu_priv *priv = exp->priv;
+@@ -184,14 +207,62 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ struct expo *exp;
+ uint sel_id;
+ bool done;
+- int ret;
++ int i, ret;
++
++ /* Auto-boot countdown */
++ char bootflow_delay_secs, *prompt;
++ int bootflow_time, bootflow_delay;
++ bool skip_render_once = false;
++ bool bootflow_countdown = false;
++
++ /* TODO: perhaps set based on defconfig? */
++ /* WARNING: These two strings must be of the same length. */
++ char promptChoice[] = "UP and DOWN to choose, ENTER to select";
++ char promptTimeout[] = "UP and DOWN to choose. Auto-boot in ";
++/*
++ // Uncomment if the strings become configurable (defconfig):
++ // (to prevent buffer overflows)
++ char promptDefault[] = "UP and DOWN to choose, ENTER to select";
++ if (promptTimeout = NULL)
++ promptTimeout = promptDefault;
++ if (promptChoice = NULL)
++ promptChoice = promptDefault;
++ if (strlen(promptChoice) < 2)
++ promptChoice = promptDefault;
++ if (strlen(promptTimeout) < 2)
++ promptTimeout = promptDefault;
++ if (strlen(promptChoice) != strlen(promptTimeout))
++ promptChoice = promptTimeout;
++*/
++ prompt = promptChoice;
++
++ bootflow_delay_secs = 15; /* TODO: set based on defconfig. */
++
++#if defined(CONFIG_CMD_BOOTFLOW_BOOTDELAY)
++ /* If set to zero, the auto-boot timeout is disabled. */
++ bootflow_delay_secs = CONFIG_CMD_BOOTFLOW_BOOTDELAY;
++#else
++ bootflow_delay_secs = 30;
++#endif
++
++ if (bootflow_delay_secs < 0)
++ bootflow_delay_secs = 0; /* disable countdown if negative */
++ bootflow_delay_secs %= 100; /* No higher than 99 seconds */
++
++ if (bootflow_delay_secs > 0) {
++ bootflow_countdown = true; /* enable auto-boot countdown */
++ prompt = promptTimeout;
++ bootflow_time = 0; /* Time elapsed in milliseconds */
++ bootflow_delay =
++ (int)bootflow_delay_secs * 1000; /* milliseconds */
++ }
+
+ cli_ch_init(cch);
+
+ sel_bflow = NULL;
+ *bflowp = NULL;
+
+- ret = bootflow_menu_new(&exp);
++ ret = bootflow_menu_new(&exp, prompt);
+ if (ret)
+ return log_msg_ret("exp", ret);
+
+@@ -216,12 +287,20 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ if (text_mode)
+ expo_set_text_mode(exp, text_mode);
+
++ if (bootflow_countdown) {
++ ret = bootflow_menu_show_countdown(exp, prompt,
++ bootflow_delay_secs);
++ skip_render_once = true; /* Don't print menu twice on start */
++ }
+ done = false;
+ do {
+ struct expo_action act;
+ int ichar, key;
+
+- ret = expo_render(exp);
++ if (skip_render_once)
++ skip_render_once = false;
++ else
++ ret = expo_render(exp);
+ if (ret)
+ break;
+
+@@ -231,7 +310,23 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ schedule();
+ mdelay(2);
+ ichar = cli_ch_process(cch, -ETIMEDOUT);
++ if (bootflow_countdown) {
++ bootflow_delay -= 2;
++ bootflow_time += 2;
++ if (bootflow_delay <= 0)
++ ichar='\n';
++ if (bootflow_time < 1000)
++ continue;
++ bootflow_time = 0;
++ --bootflow_delay_secs;
++ ret = bootflow_menu_show_countdown(exp,
++ prompt, bootflow_delay_secs);
++ if (ret)
++ break;
++ }
+ }
++ if (ret)
++ break;
+ if (!ichar) {
+ ichar = getchar();
+ ichar = cli_ch_process(cch, ichar);
+@@ -265,6 +360,17 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ break;
+ }
+ }
++ if (bootflow_countdown) {
++ /* A key press interrupted the auto-boot timeout */
++ bootflow_countdown = false;
++ if (strlen(prompt) == strlen(promptChoice)) {
++ /* "Auto-boot in" becomes "Press ENTER" */
++ (void) memcpy(prompt, promptChoice,
++ strlen(promptChoice));
++ ret = expo_render(exp);
++ skip_render_once = true;
++ }
++ }
+ } while (!done);
+
+ if (ret)
+@@ -272,7 +378,6 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+
+ if (sel_id) {
+ struct bootflow *bflow;
+- int i;
+
+ for (ret = bootflow_first_glob(&bflow), i = 0; !ret && i < 36;
+ ret = bootflow_next_glob(&bflow), i++) {
+diff --git a/cmd/Kconfig b/cmd/Kconfig
+index 978f44eda4..0303869625 100644
+--- a/cmd/Kconfig
++++ b/cmd/Kconfig
+@@ -288,6 +288,7 @@ config CMD_BOOTDEV
+ config CMD_BOOTFLOW
+ bool "bootflow"
+ depends on BOOTSTD
++ select CMD_BOOTFLOW_BOOTDELAY
+ default y
+ help
+ Support scanning for bootflows available with the bootdevs. The
+@@ -303,6 +304,17 @@ config CMD_BOOTFLOW_FULL
+
+ This command is not necessary for bootstd to work.
+
++config CMD_BOOTFLOW_BOOTDELAY
++ int "bootflow - delay in seconds before booting the first menu option"
++ depends on CMD_BOOTFLOW
++ default 30
++ help
++ On the bootflow menu, wait for the defined number of seconds before
++ automatically booting. Unless interrupted, this will auto-boot the
++ first option in the generated list of boot options.
++
++ Set this to zero if you wish to disable the auto-boot timeout.
++
+ config CMD_BOOTMETH
+ bool "bootmeth"
+ depends on BOOTSTD
+diff --git a/doc/usage/cmd/bootflow.rst b/doc/usage/cmd/bootflow.rst
+index 5d41fe37a7..728f294274 100644
+--- a/doc/usage/cmd/bootflow.rst
++++ b/doc/usage/cmd/bootflow.rst
+@@ -32,6 +32,17 @@ Note that `CONFIG_BOOTSTD_FULL` (which enables `CONFIG_CMD_BOOTFLOW_FULL) must
+ be enabled to obtain full functionality with this command. Otherwise, it only
+ supports `bootflow scan` which scans and boots the first available bootflow.
+
++The `CONFIG_CMD_BOOTFLOW_BOOTDELAY` option can be set, defining (in seconds) the
++amount of time that U-Boot will wait; after this time passes, it will
++automatically boot the first item when generating a bootflow menu. If the value
++is set to zero, the timeout is disabled and the user must press enter; if it's
++negative, the timeout is disabled, and the maximum number of seconds is 99
++seconds. If a value higher than 100 is provided, the value is changed to a
++modulus of 100 (remainder of the value divided by 100).
++
++If the `CONFIG_BOOTFLOW_BOOTFLOW` option is undefined, the timeout will default
++to 30 seconds.
++
+ bootflow scan
+ ~~~~~~~~~~~~~
+
+diff --git a/include/bootflow.h b/include/bootflow.h
+index 4d2fc7b69b..9f4245caa7 100644
+--- a/include/bootflow.h
++++ b/include/bootflow.h
+@@ -452,7 +452,15 @@ int bootflow_iter_check_system(const struct bootflow_iter *iter);
+ * @expp: Returns the expo created
+ * Returns 0 on success, -ve on error
+ */
+-int bootflow_menu_new(struct expo **expp);
++int bootflow_menu_new(struct expo **expp, const char *prompt);
++
++/**
++ * bootflow_menu_show_countdown() - Show countdown timer for auto-boot
++ *
++ * Returns the value of expo_render()
++ */
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay);
+
+ /**
+ * bootflow_menu_apply_theme() - Apply a theme to a bootmenu
+--
+2.39.5
+
diff --git a/config/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch b/config/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
deleted file mode 100644
index 7aa4e526..00000000
--- a/config/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
+++ /dev/null
@@ -1,348 +0,0 @@
-From 2957e8bf43edf8de6e579ce1ed7f95e5bb4a1437 Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Mon, 14 Aug 2023 20:39:41 +0300
-Subject: [PATCH 1/4] arm: qemu: Enable Bochs video support
-
-Commit 716161663ec49 ("riscv: qemu: Enable Bochs video support") enables
-a video console for QEMU RISC-V virtual machines using an emulated Bochs
-VGA card. Similarly, enable it for ARM virtual machines as well.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Reviewed-by: Bin Meng <bmeng@tinylab.org>
-Link: https://lore.kernel.org/u-boot/20230814173944.288356-2-alpernebiyasak@gmail.com/
----
- arch/arm/Kconfig | 4 ++++
- board/emulation/qemu-arm/qemu-arm.env | 3 +++
- doc/board/emulation/qemu-arm.rst | 4 ++++
- 3 files changed, 11 insertions(+)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 328e2ddc33af..d96e230e9ee8 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1036,6 +1036,10 @@ config ARCH_QEMU
- imply DM_RTC
- imply RTC_PL031
- imply OF_HAS_PRIOR_STAGE
-+ imply VIDEO
-+ imply VIDEO_BOCHS
-+ imply SYS_WHITE_ON_BLACK
-+ imply SYS_CONSOLE_IS_IN_ENV
-
- config ARCH_RMOBILE
- bool "Renesas ARM SoCs"
-diff --git a/board/emulation/qemu-arm/qemu-arm.env b/board/emulation/qemu-arm/qemu-arm.env
-index e658d5ee7d63..86a99a2e8713 100644
---- a/board/emulation/qemu-arm/qemu-arm.env
-+++ b/board/emulation/qemu-arm/qemu-arm.env
-@@ -2,6 +2,9 @@
-
- /* environment for qemu-arm and qemu-arm64 */
-
-+stdin=serial
-+stdout=serial,vidconsole
-+stderr=serial,vidconsole
- fdt_high=0xffffffff
- initrd_high=0xffffffff
- fdt_addr=0x40000000
-diff --git a/doc/board/emulation/qemu-arm.rst b/doc/board/emulation/qemu-arm.rst
-index 7291fa4a3150..c423fce76edd 100644
---- a/doc/board/emulation/qemu-arm.rst
-+++ b/doc/board/emulation/qemu-arm.rst
-@@ -67,6 +67,10 @@ Additional persistent U-Boot environment support can be added as follows:
- Additional peripherals that have been tested to work in both U-Boot and Linux
- can be enabled with the following command line parameters:
-
-+- To add a video console, remove "-nographic" and add e.g.::
-+
-+ -serial stdio -device VGA
-+
- - To add a Serial ATA disk via an Intel ICH9 AHCI controller, pass e.g.::
-
- -drive if=none,file=disk.img,format=raw,id=mydisk \
---
-2.42.0
-
-
-From 5330bc1c2ad84ba9ecc473f8c24d6e15b366adf9 Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Mon, 14 Aug 2023 20:39:42 +0300
-Subject: [PATCH 2/4] arm: qemu: Enable PRE_CONSOLE_BUFFER
-
-Commit 608b80b5b855 ("riscv: qemu: Enable PRE_CONSOLE_BUFFER") enables
-buffering console messages for QEMU RISC-V virtual machines so those
-printed before the video console is available will still show up on the
-display. Similarly, enable it for ARM virtual machines as well.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Reviewed-by: Simon Glass <sjg@chromium.org>
-Reviewed-by: Bin Meng <bmeng@tinylab.org>
-Link: https://lore.kernel.org/u-boot/20230814173944.288356-3-alpernebiyasak@gmail.com/
----
- arch/arm/Kconfig | 1 +
- board/emulation/qemu-arm/Kconfig | 4 ++++
- 2 files changed, 5 insertions(+)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index d96e230e9ee8..1cc2be55140a 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1040,6 +1040,7 @@ config ARCH_QEMU
- imply VIDEO_BOCHS
- imply SYS_WHITE_ON_BLACK
- imply SYS_CONSOLE_IS_IN_ENV
-+ imply PRE_CONSOLE_BUFFER
-
- config ARCH_RMOBILE
- bool "Renesas ARM SoCs"
-diff --git a/board/emulation/qemu-arm/Kconfig b/board/emulation/qemu-arm/Kconfig
-index ed9949651c4b..09c95413a541 100644
---- a/board/emulation/qemu-arm/Kconfig
-+++ b/board/emulation/qemu-arm/Kconfig
-@@ -12,6 +12,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
- imply VIRTIO_NET
- imply VIRTIO_BLK
-
-+config PRE_CON_BUF_ADDR
-+ hex
-+ default 0x40100000
-+
- endif
-
- if TARGET_QEMU_ARM_64BIT && !TFABOOT
---
-2.42.0
-
-
-From 7f666214855d062dc939ff54a0fa52fbde9f0391 Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Mon, 14 Aug 2023 20:39:43 +0300
-Subject: [PATCH 3/4] arm: qemu: Enable usb keyboard as an input device
-
-Commit 02be57caf730 ("riscv: qemu: Enable usb keyboard as an input
-device") adds PCI xHCI support to QEMU RISC-V virtual machines and
-enables using a USB keyboard as one of the input devices. Similarly,
-enable those for ARM virtual machines as well.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Reviewed-by: Simon Glass <sjg@chromium.org>
-Reviewed-by: Bin Meng <bmeng@tinylab.org>
-Link: https://lore.kernel.org/u-boot/20230814173944.288356-4-alpernebiyasak@gmail.com/
----
- arch/arm/Kconfig | 5 +++++
- board/emulation/qemu-arm/qemu-arm.c | 5 +++++
- board/emulation/qemu-arm/qemu-arm.env | 2 +-
- configs/qemu_arm64_defconfig | 2 --
- configs/qemu_arm_defconfig | 2 --
- doc/board/emulation/qemu-arm.rst | 4 ++++
- 6 files changed, 15 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 1cc2be55140a..4c739bd9bc82 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1041,6 +1041,11 @@ config ARCH_QEMU
- imply SYS_WHITE_ON_BLACK
- imply SYS_CONSOLE_IS_IN_ENV
- imply PRE_CONSOLE_BUFFER
-+ imply USB
-+ imply USB_XHCI_HCD
-+ imply USB_XHCI_PCI
-+ imply USB_KEYBOARD
-+ imply CMD_USB
-
- config ARCH_RMOBILE
- bool "Renesas ARM SoCs"
-diff --git a/board/emulation/qemu-arm/qemu-arm.c b/board/emulation/qemu-arm/qemu-arm.c
-index dfea0d92a3c8..942f1fff5717 100644
---- a/board/emulation/qemu-arm/qemu-arm.c
-+++ b/board/emulation/qemu-arm/qemu-arm.c
-@@ -11,6 +11,7 @@
- #include <fdtdec.h>
- #include <init.h>
- #include <log.h>
-+#include <usb.h>
- #include <virtio_types.h>
- #include <virtio.h>
-
-@@ -114,6 +115,10 @@ int board_late_init(void)
- */
- virtio_init();
-
-+ /* start usb so that usb keyboard can be used as input device */
-+ if (CONFIG_IS_ENABLED(USB_KEYBOARD))
-+ usb_init();
-+
- return 0;
- }
-
-diff --git a/board/emulation/qemu-arm/qemu-arm.env b/board/emulation/qemu-arm/qemu-arm.env
-index 86a99a2e8713..fb4adef281ed 100644
---- a/board/emulation/qemu-arm/qemu-arm.env
-+++ b/board/emulation/qemu-arm/qemu-arm.env
-@@ -2,7 +2,7 @@
-
- /* environment for qemu-arm and qemu-arm64 */
-
--stdin=serial
-+stdin=serial,usbkbd
- stdout=serial,vidconsole
- stderr=serial,vidconsole
- fdt_high=0xffffffff
-diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
-index 94bd96678443..f6b8ae530a4a 100644
---- a/configs/qemu_arm64_defconfig
-+++ b/configs/qemu_arm64_defconfig
-@@ -35,7 +35,6 @@ CONFIG_CMD_NVEDIT_EFI=y
- CONFIG_CMD_DFU=y
- CONFIG_CMD_MTD=y
- CONFIG_CMD_PCI=y
--CONFIG_CMD_USB=y
- CONFIG_CMD_TPM=y
- CONFIG_CMD_MTDPARTS=y
- CONFIG_ENV_IS_IN_FLASH=y
-@@ -68,7 +67,6 @@ CONFIG_SYSRESET=y
- CONFIG_SYSRESET_CMD_POWEROFF=y
- CONFIG_SYSRESET_PSCI=y
- CONFIG_TPM2_MMIO=y
--CONFIG_USB=y
- CONFIG_USB_EHCI_HCD=y
- CONFIG_USB_EHCI_PCI=y
- CONFIG_TPM=y
-diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
-index 7cb1e9f037ff..1347b86f34b1 100644
---- a/configs/qemu_arm_defconfig
-+++ b/configs/qemu_arm_defconfig
-@@ -36,7 +36,6 @@ CONFIG_CMD_NVEDIT_EFI=y
- CONFIG_CMD_DFU=y
- CONFIG_CMD_MTD=y
- CONFIG_CMD_PCI=y
--CONFIG_CMD_USB=y
- CONFIG_CMD_TPM=y
- CONFIG_CMD_MTDPARTS=y
- CONFIG_ENV_IS_IN_FLASH=y
-@@ -69,7 +68,6 @@ CONFIG_SYSRESET=y
- CONFIG_SYSRESET_CMD_POWEROFF=y
- CONFIG_SYSRESET_PSCI=y
- CONFIG_TPM2_MMIO=y
--CONFIG_USB=y
- CONFIG_USB_EHCI_HCD=y
- CONFIG_USB_EHCI_PCI=y
- CONFIG_TPM=y
-diff --git a/doc/board/emulation/qemu-arm.rst b/doc/board/emulation/qemu-arm.rst
-index c423fce76edd..5481ef6da328 100644
---- a/doc/board/emulation/qemu-arm.rst
-+++ b/doc/board/emulation/qemu-arm.rst
-@@ -84,6 +84,10 @@ can be enabled with the following command line parameters:
-
- -device usb-ehci,id=ehci
-
-+- To add a USB keyboard attached to an emulated xHCI controller, pass e.g.::
-+
-+ -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0
-+
- - To add an NVMe disk, pass e.g.::
-
- -drive if=none,file=disk.img,id=mydisk -device nvme,drive=mydisk,serial=foo
---
-2.42.0
-
-
-From fcc1b6cb56beaaf90bf80928627a606f33a42c3c Mon Sep 17 00:00:00 2001
-From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Date: Mon, 14 Aug 2023 20:39:44 +0300
-Subject: [PATCH 4/4] doc: qemu: arm: Add a section on booting Linux distros
-
-Add an example qemu-system-aarch64 command that can make U-Boot on QEMU
-boot into the Debian Installer, along with resulting console messages
-from U-Boot, based on the existing documentation section for the x86
-version.
-
-Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
-Link: https://lore.kernel.org/u-boot/20230814173944.288356-5-alpernebiyasak@gmail.com/
----
- doc/board/emulation/qemu-arm.rst | 68 ++++++++++++++++++++++++++++++++
- 1 file changed, 68 insertions(+)
-
-diff --git a/doc/board/emulation/qemu-arm.rst b/doc/board/emulation/qemu-arm.rst
-index 5481ef6da328..1c91c7f3ac67 100644
---- a/doc/board/emulation/qemu-arm.rst
-+++ b/doc/board/emulation/qemu-arm.rst
-@@ -98,6 +98,74 @@ can be enabled with the following command line parameters:
-
- These have been tested in QEMU 2.9.0 but should work in at least 2.5.0 as well.
-
-+Booting distros
-+---------------
-+
-+It is possible to install and boot a standard Linux distribution using
-+qemu_arm64 by setting up a root disk::
-+
-+ qemu-img create root.img 20G
-+
-+then using the installer to install. For example, with Debian 12::
-+
-+ qemu-system-aarch64 \
-+ -machine virt -cpu cortex-a53 -m 4G -smp 4 \
-+ -bios u-boot.bin \
-+ -serial stdio -device VGA \
-+ -nic user,model=virtio-net-pci \
-+ -device virtio-rng-pci \
-+ -device qemu-xhci,id=xhci \
-+ -device usb-kbd -device usb-tablet \
-+ -drive if=virtio,file=debian-12.0.0-arm64-netinst.iso,format=raw,readonly=on,media=cdrom \
-+ -drive if=virtio,file=root.img,format=raw,media=disk
-+
-+The output will be something like this::
-+
-+ U-Boot 2023.10-rc2-00075-gbe8fbe718e35 (Aug 11 2023 - 08:38:49 +0000)
-+
-+ DRAM: 4 GiB
-+ Core: 51 devices, 14 uclasses, devicetree: board
-+ Flash: 64 MiB
-+ Loading Environment from Flash... *** Warning - bad CRC, using default environment
-+
-+ In: serial,usbkbd
-+ Out: serial,vidconsole
-+ Err: serial,vidconsole
-+ Bus xhci_pci: Register 8001040 NbrPorts 8
-+ Starting the controller
-+ USB XHCI 1.00
-+ scanning bus xhci_pci for devices... 3 USB Device(s) found
-+ Net: eth0: virtio-net#32
-+ Hit any key to stop autoboot: 0
-+ Scanning for bootflows in all bootdevs
-+ Seq Method State Uclass Part Name Filename
-+ --- ----------- ------ -------- ---- ------------------------ ----------------
-+ Scanning global bootmeth 'efi_mgr':
-+ Scanning bootdev 'fw-cfg@9020000.bootdev':
-+ fatal: no kernel available
-+ scanning bus for devices...
-+ Scanning bootdev 'virtio-blk#34.bootdev':
-+ 0 efi ready virtio 2 virtio-blk#34.bootdev.par efi/boot/bootaa64.efi
-+ ** Booting bootflow 'virtio-blk#34.bootdev.part_2' with efi
-+ Using prior-stage device tree
-+ Failed to load EFI variables
-+ Error: writing contents
-+ ** Unable to write file ubootefi.var **
-+ Failed to persist EFI variables
-+ Missing TPMv2 device for EFI_TCG_PROTOCOL
-+ Booting /efi\boot\bootaa64.efi
-+ Error: writing contents
-+ ** Unable to write file ubootefi.var **
-+ Failed to persist EFI variables
-+ Welcome to GRUB!
-+
-+Standard boot looks through various available devices and finds the virtio
-+disks, then boots from the first one. After a second or so the grub menu appears
-+and you can work through the installer flow normally.
-+
-+After the installation, you can boot into the installed system by running QEMU
-+again without the drive argument corresponding to the installer CD image.
-+
- Enabling TPMv2 support
- ----------------------
-
---
-2.42.0
-
diff --git a/config/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch
new file mode 100644
index 00000000..754e2162
--- /dev/null
+++ b/config/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch
@@ -0,0 +1,213 @@
+From 4ff0f509aa28eb8e85f1c0c9929c63996c646bb8 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 18:20:19 +0000
+Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 2 +-
+ drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 84831915a2..8e26ec2aef 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt)
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+ ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE,
+- "U-Boot - Boot Menu", NULL);
++ "Libreboot 25.04 Corny Calamity (U-Boot menu): https://libreboot.org/", NULL);
+ ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT);
+
+ logo = video_get_u_boot_logo();
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644
+GIT binary patch
+literal 27350
+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
+
+literal 6932
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/default/patches/0008-change-the-logo-back-to-the-plain-libreboot-one.patch b/config/u-boot/default/patches/0008-change-the-logo-back-to-the-plain-libreboot-one.patch
new file mode 100644
index 00000000..febc2372
--- /dev/null
+++ b/config/u-boot/default/patches/0008-change-the-logo-back-to-the-plain-libreboot-one.patch
@@ -0,0 +1,157 @@
+From d721edb391618fca096ec7f63a2fbc9df0af9231 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Tue, 17 Dec 2024 12:59:54 +0000
+Subject: [PATCH 1/1] change the logo back to the plain libreboot one
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ drivers/video/u_boot_logo.bmp | Bin 27350 -> 27350 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index bc9ae001badb25bc900058c167a47247ef91dc7c..c9262cd206cc3cf5297daa94b696fcf102fc22b5 100644
+GIT binary patch
+literal 27350
+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
+HHU0e$+Zn$=
+
+literal 27350
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/default/target.cfg b/config/u-boot/default/target.cfg
index cdbb5216..f3c856d4 100644
--- a/config/u-boot/default/target.cfg
+++ b/config/u-boot/default/target.cfg
@@ -1,2 +1,4 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
tree="default"
-rev="4459ed60cb1e0562bc5b40405e2b4b9bbf766d57" # v2023.10
+rev="34820924edbc4ec7803eb89d9852f4b870fa760a" # v2025.04
diff --git a/config/u-boot/gru_bob/config/default b/config/u-boot/gru_bob/config/default
index 2bcbe3d8..cc93540c 100644
--- a/config/u-boot/gru_bob/config/default
+++ b/config/u-boot/gru_bob/config/default
@@ -1,13 +1,17 @@
#
# Automatically generated file; DO NOT EDIT.
-# U-Boot 2023.10 Configuration
+# U-Boot 2025.04 Configuration
#
#
-# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+# Compiler: gcc (Debian 14.2.0-19) 14.2.0
#
CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_HAVE_SETJMP=y
+CONFIG_SUPPORT_LITTLE_ENDIAN=y
CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_64BIT=y
+CONFIG_SPL_64BIT=y
CONFIG_SYS_CACHELINE_SIZE=64
CONFIG_LINKER_LIST_ALIGN=8
# CONFIG_ARC is not set
@@ -37,6 +41,7 @@ CONFIG_SKIP_LOWLEVEL_INIT=y
# CONFIG_TPL_SKIP_LOWLEVEL_INIT is not set
# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set
# CONFIG_SPL_SKIP_LOWLEVEL_INIT_ONLY is not set
+# CONFIG_TPL_SKIP_LOWLEVEL_INIT_ONLY is not set
# CONFIG_SYS_ICACHE_OFF is not set
# CONFIG_SPL_SYS_ICACHE_OFF is not set
# CONFIG_SYS_DCACHE_OFF is not set
@@ -49,10 +54,11 @@ CONFIG_ARM64=y
CONFIG_ARM64_CRC32=y
CONFIG_COUNTER_FREQUENCY=24000000
CONFIG_POSITION_INDEPENDENT=y
-CONFIG_INIT_SP_RELATIVE=y
-CONFIG_SYS_INIT_SP_BSS_OFFSET=524288
+# CONFIG_INIT_SP_RELATIVE is not set
CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE=0x18000000
+# CONFIG_DRIVER_GICV2 is not set
# CONFIG_GIC_V3_ITS is not set
+# CONFIG_GICV3_SUPPORT_GIC600 is not set
CONFIG_STATIC_RELA=y
CONFIG_DMA_ADDR_T_64BIT=y
CONFIG_ARM_ASM_UNIFIED=y
@@ -72,8 +78,10 @@ CONFIG_ARM_SMCCC=y
CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y
# CONFIG_USE_ARCH_MEMCPY is not set
# CONFIG_SPL_USE_ARCH_MEMCPY is not set
+# CONFIG_TPL_USE_ARCH_MEMCPY is not set
# CONFIG_USE_ARCH_MEMSET is not set
# CONFIG_SPL_USE_ARCH_MEMSET is not set
+# CONFIG_TPL_USE_ARCH_MEMSET is not set
CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_DAVINCI is not set
@@ -81,13 +89,11 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_MVEBU is not set
# CONFIG_ARCH_ORION5X is not set
-# CONFIG_TARGET_STV0991 is not set
# CONFIG_ARCH_BCM283X is not set
# CONFIG_ARCH_BCMSTB is not set
# CONFIG_ARCH_BCMBCA is not set
# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
# CONFIG_TARGET_BCMNS is not set
-# CONFIG_TARGET_BCMNS2 is not set
# CONFIG_TARGET_BCMNS3 is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_S5PC1XX is not set
@@ -99,6 +105,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_OMAP2PLUS is not set
# CONFIG_ARCH_MESON is not set
# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_IMX8 is not set
# CONFIG_ARCH_IMX8M is not set
@@ -117,12 +124,13 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_APPLE is not set
# CONFIG_ARCH_OWL is not set
# CONFIG_ARCH_QEMU is not set
-# CONFIG_ARCH_RMOBILE is not set
+# CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_SNAPDRAGON is not set
# CONFIG_ARCH_SOCFPGA is not set
# CONFIG_ARCH_SUNXI is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_VERSAL is not set
+# CONFIG_ARCH_VERSAL2 is not set
# CONFIG_ARCH_VERSAL_NET is not set
# CONFIG_ARCH_VF610 is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -162,6 +170,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_TARGET_LS1046AQDS is not set
# CONFIG_TARGET_LS1046ARDB is not set
# CONFIG_TARGET_LS1046AFRWY is not set
+# CONFIG_ARCH_SC5XX is not set
# CONFIG_TARGET_SL28 is not set
# CONFIG_TARGET_TEN64 is not set
# CONFIG_ARCH_UNIPHIER is not set
@@ -176,28 +185,30 @@ CONFIG_ARCH_ROCKCHIP=y
# CONFIG_ARCH_ASPEED is not set
# CONFIG_TARGET_DURIAN is not set
# CONFIG_TARGET_POMELO is not set
+# CONFIG_TARGET_PE2201 is not set
# CONFIG_TARGET_PRESIDIO_ASIC is not set
# CONFIG_TARGET_XENGUEST_ARM64 is not set
# CONFIG_ARCH_GXP is not set
-# CONFIG_STATIC_MACH_TYPE is not set
CONFIG_TEXT_BASE=0x18000000
CONFIG_SYS_MALLOC_LEN=0x2000000
-CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_MALLOC_F_LEN=0x10000
+CONFIG_BLOBLIST_SIZE_RELOC=0x1000
CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL_LDSCRIPT="arch/arm/cpu/armv8/u-boot-spl.lds"
CONFIG_ENV_SOURCE_FILE=""
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x3f00000
CONFIG_SF_DEFAULT_SPEED=20000000
CONFIG_SF_DEFAULT_MODE=0x0
-CONFIG_ENV_SIZE=0x8000
+CONFIG_ENV_SIZE=0x1f000
CONFIG_DM_GPIO=y
CONFIG_SPL_DM_SPI=y
-CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-bob"
-CONFIG_SPL_TEXT_BASE=0xff8c2000
-CONFIG_BOARD_SPECIFIC_OPTIONS=y
-# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-gru-bob"
+CONFIG_DDR_SI_TEST=y
+CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
CONFIG_DM_RESET=y
CONFIG_SYS_MONITOR_LEN=0
@@ -218,23 +229,33 @@ CONFIG_ROCKCHIP_RK3399=y
# CONFIG_ROCKCHIP_RV1126 is not set
# CONFIG_ROCKCHIP_USB_UART is not set
# CONFIG_SPL_ROCKCHIP_BACK_TO_BROM is not set
+CONFIG_TPL_ROCKCHIP_BACK_TO_BROM=y
CONFIG_ROCKCHIP_COMMON_BOARD=y
CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set
CONFIG_ROCKCHIP_BOOT_MODE_REG=0
# CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set
CONFIG_ROCKCHIP_STIMER=y
CONFIG_ROCKCHIP_STIMER_BASE=0xff8680a0
-CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
+CONFIG_ROCKCHIP_BROM_HELPER=y
# CONFIG_SPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
+CONFIG_ROCKCHIP_DISABLE_FORCE_JTAG=y
+# CONFIG_TPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
# CONFIG_SPL_MMC is not set
CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_ROCKCHIP_COMMON_STACK_ADDR=y
CONFIG_SPL_SERIAL=y
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
CONFIG_TPL_TEXT_BASE=0xff8c2000
CONFIG_TPL_STACK=0xff8effff
-CONFIG_SPL_DRIVERS_MISC=y
-CONFIG_SPL_STACK_R_ADDR=0x04000000
+CONFIG_TPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_TPL_LIBCOMMON_SUPPORT=y
+CONFIG_TPL_LIBGENERIC_SUPPORT=y
+CONFIG_TPL_SERIAL=y
+# CONFIG_SPL_DRIVERS_MISC is not set
+CONFIG_SPL_STACK_R_ADDR=0x3e00000
CONFIG_TARGET_CHROMEBOOK_BOB=y
# CONFIG_TARGET_CHROMEBOOK_KEVIN is not set
# CONFIG_TARGET_EVB_RK3399 is not set
@@ -242,16 +263,29 @@ CONFIG_TARGET_CHROMEBOOK_BOB=y
# CONFIG_TARGET_PINEPHONE_PRO_RK3399 is not set
# CONFIG_TARGET_PUMA_RK3399 is not set
# CONFIG_TARGET_ROCK960_RK3399 is not set
+# CONFIG_TARGET_ROCKPI4_RK3399 is not set
# CONFIG_TARGET_ROCKPRO64_RK3399 is not set
# CONFIG_TARGET_ROC_PC_RK3399 is not set
-CONFIG_SPL_STACK=0xff8effff
-CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_TPL_SYS_MALLOC_F=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x8000
+CONFIG_SPL_TEXT_BASE=0x0
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x3f80000
+CONFIG_SPL_BSS_MAX_SIZE=0x8000
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x200000
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_SYS_LOAD_ADDR=0x800800
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
+CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+CONFIG_SF_DEFAULT_BUS=1
+CONFIG_SF_DEFAULT_CS=0
+CONFIG_SPL_SYS_MALLOC_F=y
CONFIG_ERR_PTR_OFFSET=0x0
CONFIG_SPL_SIZE_LIMIT=0x0
CONFIG_SPL=y
CONFIG_PRE_CON_BUF_ADDR=0x0f200000
CONFIG_PRE_CON_BUF_SZ=4096
-CONFIG_BOOTSTAGE_STASH_ADDR=0
CONFIG_DEBUG_UART_BASE=0xff1a0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_BOARD_INIT=y
@@ -265,7 +299,7 @@ CONFIG_SPL_SPI=y
# CONFIG_CMO_BY_VA_ONLY is not set
# CONFIG_ARMV8_SPL_EXCEPTION_VECTORS is not set
# CONFIG_ARMV8_MULTIENTRY is not set
-# CONFIG_ARMV8_SET_SMPEN is not set
+CONFIG_ARMV8_SET_SMPEN=y
# CONFIG_ARMV8_SWITCH_TO_EL1 is not set
#
@@ -277,27 +311,22 @@ CONFIG_SPL_SPI=y
CONFIG_PSCI_RESET=y
# CONFIG_ARMV8_PSCI is not set
# CONFIG_ARMV8_EA_EL3_FIRST is not set
-# CONFIG_ARMV8_CRYPTO is not set
-# CONFIG_CMD_DEKBLOB is not set
-# CONFIG_IMX_CAAM_DEK_ENCAP is not set
-# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
-# CONFIG_IMX_SECO_DEK_ENCAP is not set
-# CONFIG_IMX_ELE_DEK_ENCAP is not set
-# CONFIG_CMD_HDMIDETECT is not set
-CONFIG_IMX_DCD_ADDR=0x00910000
-# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
-CONFIG_IMX_CONTAINER_CFG=""
+# CONFIG_ARMV8_UDELAY_EVENT_STREAM is not set
+CONFIG_ARMV8_CRYPTO=y
+CONFIG_ARMV8_CE_SHA1=y
+CONFIG_ARMV8_CE_SHA256=y
CONFIG_SYS_MEM_TOP_HIDE=0x0
-CONFIG_SYS_LOAD_ADDR=0x800800
#
# ARM debug
#
-CONFIG_SPL_PAYLOAD="u-boot.bin"
+CONFIG_TPL_MAX_SIZE=0x2e000
+CONFIG_SPL_PAYLOAD="tpl/u-boot-with-tpl.bin"
CONFIG_BUILD_TARGET=""
# CONFIG_PCI is not set
CONFIG_FWU_NUM_BANKS=2
CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+CONFIG_TPL_SIZE_LIMIT=0x0
CONFIG_DEBUG_UART=y
# CONFIG_AHCI is not set
# CONFIG_OF_BOARD_FIXUP is not set
@@ -306,6 +335,7 @@ CONFIG_DEBUG_UART=y
# Functionality shared between NXP SoCs
#
# CONFIG_NXP_ESBC is not set
+CONFIG_SYS_LITTLE_ENDIAN=y
#
# General setup
@@ -313,7 +343,7 @@ CONFIG_DEBUG_UART=y
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=130200
+CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
@@ -322,6 +352,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_SPL_OPTIMIZE_INLINING is not set
CONFIG_ARCH_SUPPORTS_LTO=y
# CONFIG_LTO is not set
+# CONFIG_TPL_OPTIMIZE_INLINING is not set
CONFIG_CC_HAS_ASM_INLINE=y
# CONFIG_XEN is not set
CONFIG_ENV_VARS_UBOOT_CONFIG=y
@@ -343,9 +374,11 @@ CONFIG_REMAKE_ELF=y
# CONFIG_SYS_CUSTOM_LDSCRIPT is not set
CONFIG_PLATFORM_ELFENTRY="_start"
CONFIG_STACK_SIZE=0x1000000
-CONFIG_SYS_SRAM_BASE=0x0
-CONFIG_SYS_SRAM_SIZE=0x0
# CONFIG_MP is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_HAVE_SYS_UBOOT_START is not set
+CONFIG_SYS_UBOOT_START=0x18000000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
# CONFIG_API is not set
#
@@ -353,58 +386,122 @@ CONFIG_SYS_SRAM_SIZE=0x0
#
#
+# UEFI Support
+#
+CONFIG_EFI_LOADER=y
+CONFIG_EFI_BINARY_EXEC=y
+# CONFIG_EFI_SECURE_BOOT is not set
+
+#
+# UEFI services
+#
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+
+#
+# UEFI Variables
+#
+# CONFIG_EFI_VARIABLE_FILE_STORE is not set
+CONFIG_EFI_VARIABLE_NO_STORE=y
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=131072
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+
+#
+# Capsule support
+#
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+
+#
+# UEFI protocol support
+#
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+# CONFIG_EFI_IP4_CONFIG2_PROTOCOL is not set
+
+#
+# Misc options
+#
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+
+#
+# EFI bootmanager
+#
+CONFIG_EFI_BOOTMGR=y
+# CONFIG_EFI_HTTP_BOOT is not set
+CONFIG_BOOTEFI_HELLO_COMPILE=y
+CONFIG_BOOTEFI_TESTAPP_COMPILE=y
+
+#
# Boot images
#
# CONFIG_ANDROID_BOOT_IMAGE is not set
-CONFIG_FIT=y
# CONFIG_TIMESTAMP is not set
+CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x0
CONFIG_FIT_FULL_CHECK=y
-# CONFIG_FIT_SIGNATURE is not set
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_FIT_RSASSA_PSS is not set
# CONFIG_FIT_CIPHER is not set
# CONFIG_FIT_VERBOSE is not set
# CONFIG_FIT_BEST_MATCH is not set
CONFIG_FIT_PRINT=y
CONFIG_SPL_FIT=y
+# CONFIG_TPL_FIT is not set
# CONFIG_SPL_FIT_PRINT is not set
-# CONFIG_SPL_FIT_FULL_CHECK is not set
-# CONFIG_SPL_FIT_SIGNATURE is not set
+CONFIG_SPL_FIT_FULL_CHECK=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_SPL_FIT_RSASSA_PSS is not set
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x0
# CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY is not set
# CONFIG_SPL_LOAD_FIT_FULL is not set
+# CONFIG_TPL_LOAD_FIT is not set
# CONFIG_SPL_FIT_IMAGE_POST_PROCESS is not set
-CONFIG_SPL_FIT_SOURCE=""
-# CONFIG_USE_SPL_FIT_GENERATOR is not set
CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS_FEATURES=y
+CONFIG_BOOT_DEFAULTS_CMDS=y
CONFIG_BOOT_DEFAULTS=y
CONFIG_BOOTSTD=y
# CONFIG_SPL_BOOTSTD is not set
CONFIG_BOOTSTD_FULL=y
CONFIG_BOOTSTD_DEFAULTS=y
CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTSTD_MENU=y
CONFIG_BOOTMETH_GLOBAL=y
+# CONFIG_BOOTMETH_ANDROID is not set
+# CONFIG_BOOTMETH_CROS is not set
CONFIG_BOOTMETH_EXTLINUX=y
CONFIG_BOOTMETH_EXTLINUX_PXE=y
CONFIG_BOOTMETH_EFILOADER=y
+CONFIG_BOOTMETH_EFI_BOOTMGR=y
CONFIG_BOOTMETH_VBE=y
CONFIG_BOOTMETH_DISTRO=y
# CONFIG_SPL_BOOTMETH_VBE is not set
+CONFIG_TPL_BOOTMETH_VBE=y
CONFIG_BOOTMETH_VBE_REQUEST=y
# CONFIG_SPL_BOOTMETH_VBE_REQUEST is not set
CONFIG_BOOTMETH_VBE_SIMPLE=y
+# CONFIG_BOOTMETH_VBE_ABREC is not set
CONFIG_BOOTMETH_VBE_SIMPLE_OS=y
# CONFIG_SPL_BOOTMETH_VBE_SIMPLE is not set
CONFIG_EXPO=y
CONFIG_BOOTMETH_SCRIPT=y
+# CONFIG_UPL is not set
CONFIG_LEGACY_IMAGE_FORMAT=y
CONFIG_SUPPORT_RAW_INITRD=y
-# CONFIG_OF_BOARD_SETUP is not set
-# CONFIG_OF_SYSTEM_SETUP is not set
-# CONFIG_OF_STDOUT_VIA_ALIAS is not set
-CONFIG_HAVE_TEXT_BASE=y
-# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
-CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_CHROMEOS is not set
# CONFIG_CHROMEOS_VBOOT is not set
# CONFIG_RAMBOOT_PBL is not set
@@ -415,7 +512,6 @@ CONFIG_SYS_BOOT_RAMDISK_HIGH=y
# Boot timing
#
# CONFIG_BOOTSTAGE is not set
-CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
# CONFIG_SHOW_BOOT_PROGRESS is not set
# CONFIG_SPL_SHOW_BOOT_PROGRESS is not set
@@ -444,11 +540,24 @@ CONFIG_BOOTDELAY=2
# Image support
#
# CONFIG_IMAGE_PRE_LOAD is not set
+
+#
+# Devicetree fixup
+#
+# CONFIG_OF_ENV_SETUP is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+# CONFIG_FDT_SIMPLEFB is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_USE_BOOTARGS is not set
# CONFIG_BOOTARGS_SUBST is not set
CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="bootflow scan -lb"
-# CONFIG_USE_PREBOOT is not set
+CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then cls; bootflow boot; fi"
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
+CONFIG_PREBOOT_DEFINED=y
CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb"
# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set
# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set
@@ -463,14 +572,18 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-bob.dtb"
#
CONFIG_MENU=y
# CONFIG_CONSOLE_RECORD is not set
+CONFIG_SYS_CBSIZE=1024
+CONFIG_SYS_PBSIZE=1044
# CONFIG_DISABLE_CONSOLE is not set
CONFIG_LOGLEVEL=4
CONFIG_SPL_LOGLEVEL=4
+CONFIG_TPL_LOGLEVEL=4
# CONFIG_SILENT_CONSOLE is not set
# CONFIG_SPL_SILENT_CONSOLE is not set
# CONFIG_TPL_SILENT_CONSOLE is not set
CONFIG_PRE_CONSOLE_BUFFER=y
CONFIG_CONSOLE_FLUSH_SUPPORT=y
+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set
CONFIG_CONSOLE_MUX=y
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
@@ -493,6 +606,7 @@ CONFIG_LOG_CONSOLE=y
CONFIG_LOGF_FUNC_PAD=20
# CONFIG_LOG_SYSLOG is not set
# CONFIG_SPL_LOG is not set
+# CONFIG_TPL_LOG is not set
# CONFIG_LOG_ERROR_RETURN is not set
#
@@ -506,7 +620,9 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
#
# Start-up hooks
#
-# CONFIG_CYCLIC is not set
+CONFIG_CYCLIC=y
+# CONFIG_SPL_CYCLIC is not set
+CONFIG_CYCLIC_MAX_CPU_TIME_US=5000
CONFIG_EVENT=y
CONFIG_EVENT_DYNAMIC=y
# CONFIG_EVENT_DEBUG is not set
@@ -517,7 +633,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
CONFIG_BOARD_LATE_INIT=y
# CONFIG_CLOCKS is not set
# CONFIG_HWCONFIG is not set
-# CONFIG_LAST_STAGE_INIT is not set
+CONFIG_LAST_STAGE_INIT=y
CONFIG_MISC_INIT_R=y
# CONFIG_SYS_MALLOC_BOOTPARAMS is not set
# CONFIG_ID_EEPROM is not set
@@ -527,6 +643,7 @@ CONFIG_MISC_INIT_R=y
# Security support
#
CONFIG_HASH=y
+# CONFIG_HASH_CRC8 is not set
CONFIG_SPL_HASH=y
# CONFIG_STACKPROTECTOR is not set
# CONFIG_BOARD_RNG_SEED is not set
@@ -542,11 +659,11 @@ CONFIG_SPL_HASH=y
#
CONFIG_BLOBLIST=y
CONFIG_SPL_BLOBLIST=y
+# CONFIG_TPL_BLOBLIST is not set
CONFIG_BLOBLIST_FIXED=y
# CONFIG_BLOBLIST_ALLOC is not set
CONFIG_BLOBLIST_ADDR=0x100000
CONFIG_BLOBLIST_SIZE=0x1000
-CONFIG_BLOBLIST_SIZE_RELOC=0x1000
CONFIG_SPL_BLOBLIST_FIXED=y
# CONFIG_SPL_BLOBLIST_ALLOC is not set
CONFIG_SUPPORT_SPL=y
@@ -557,14 +674,11 @@ CONFIG_SUPPORT_TPL=y
#
CONFIG_SPL_FRAMEWORK=y
# CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
-CONFIG_SPL_MAX_SIZE=0x2e000
+CONFIG_SPL_MAX_SIZE=0x40000
CONFIG_SPL_PAD_TO=0x7f8000
-CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-CONFIG_SPL_BSS_START_ADDR=0xff8e0000
# CONFIG_SPL_NO_BSS_LIMIT is not set
CONFIG_SPL_BSS_LIMIT=y
# CONFIG_SPL_FOOTPRINT_LIMIT is not set
-CONFIG_SPL_BSS_MAX_SIZE=0x10000
CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
# CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
# CONFIG_SPL_SHOW_ERRORS is not set
@@ -572,26 +686,29 @@ CONFIG_SPL_BINMAN_SYMBOLS=y
CONFIG_SPL_BINMAN_UBOOT_SYMBOLS=y
CONFIG_HANDOFF=y
CONFIG_SPL_HANDOFF=y
+# CONFIG_SPL_SOC_INIT is not set
CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_LOAD_BLOCK=y
# CONFIG_SPL_BOOTROM_SUPPORT is not set
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set
+# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK_R=y
-CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_SHARES_INIT_SP_ADDR=y
CONFIG_SPL_SEPARATE_BSS=y
-# CONFIG_SYS_SPL_MALLOC is not set
+# CONFIG_SPL_SYS_MALLOC is not set
CONFIG_SPL_BANNER_PRINT=y
# CONFIG_SPL_DISPLAY_PRINT is not set
+CONFIG_SPL_SYS_MMCSD_RAW_MODE=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE is not set
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
-# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
# CONFIG_SPL_FIT_IMAGE_TINY is not set
# CONFIG_SPL_CACHE is not set
# CONFIG_SPL_CPU is not set
-# CONFIG_SPL_CRYPTO is not set
+CONFIG_SPL_CRYPTO=y
# CONFIG_SPL_DMA is not set
# CONFIG_SPL_ENV_SUPPORT is not set
# CONFIG_SPL_FS_EXT4 is not set
@@ -602,12 +719,13 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
# CONFIG_SPL_DM_MAILBOX is not set
# CONFIG_SPL_MEMORY is not set
# CONFIG_SPL_MPC8XXX_INIT_DDR is not set
-# CONFIG_SPL_MTD_SUPPORT is not set
+# CONFIG_SPL_MTD is not set
# CONFIG_SPL_MUSB_NEW is not set
# CONFIG_SPL_NAND_SUPPORT is not set
# CONFIG_SPL_NAND_DRIVERS is not set
# CONFIG_SPL_NAND_ECC is not set
# CONFIG_SPL_NAND_SIMPLE is not set
+# CONFIG_SPL_RELOC_LOADER is not set
# CONFIG_SPL_UBI is not set
CONFIG_SPL_DM_SPI_FLASH=y
# CONFIG_SPL_NET is not set
@@ -621,7 +739,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
# CONFIG_SPL_DM_RESET is not set
# CONFIG_SPL_POWER is not set
# CONFIG_SPL_POWER_DOMAIN is not set
-# CONFIG_SPL_RAM_SUPPORT is not set
+# CONFIG_SPL_RAM_DEVICE is not set
# CONFIG_SPL_REMOTEPROC is not set
# CONFIG_SPL_RTC is not set
# CONFIG_SPL_SATA is not set
@@ -629,7 +747,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_SPI_FLASH_TINY=y
# CONFIG_SPL_SPI_FLASH_MTD is not set
CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000
+CONFIG_SYS_SPI_U_BOOT_OFFS=0xE0000
# CONFIG_SPL_THERMAL is not set
# CONFIG_SPL_WATCHDOG is not set
# CONFIG_SPL_YMODEM_SUPPORT is not set
@@ -638,25 +756,57 @@ CONFIG_SPL_ATF=y
CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
# CONFIG_SPL_OPTEE_IMAGE is not set
CONFIG_SPL_TARGET=""
-# CONFIG_TPL is not set
+CONFIG_TPL=y
+
+#
+# TPL configuration options
+#
+CONFIG_TPL_BINMAN_SYMBOLS=y
+CONFIG_TPL_BINMAN_UBOOT_SYMBOLS=y
+CONFIG_TPL_FRAMEWORK=y
+CONFIG_TPL_BANNER_PRINT=y
+# CONFIG_TPL_BOARD_INIT is not set
+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
+CONFIG_TPL_SEPARATE_BSS=y
+CONFIG_TPL_NEEDS_SEPARATE_STACK=y
+# CONFIG_TPL_POWER is not set
+CONFIG_TPL_BOOTROM_SUPPORT=y
+# CONFIG_TPL_CRC32 is not set
+# CONFIG_TPL_DRIVERS_MISC is not set
+# CONFIG_TPL_ENV_SUPPORT is not set
+CONFIG_TPL_GPIO=y
+# CONFIG_TPL_I2C is not set
+# CONFIG_TPL_MPC8XXX_INIT_DDR is not set
+# CONFIG_TPL_MMC is not set
+# CONFIG_TPL_NAND_SUPPORT is not set
+# CONFIG_TPL_PCI is not set
+# CONFIG_TPL_PCH is not set
+# CONFIG_TPL_RAM_SUPPORT is not set
+# CONFIG_TPL_RELOC_LOADER is not set
+# CONFIG_TPL_RTC is not set
+# CONFIG_TPL_SPI_FLASH_SUPPORT is not set
+# CONFIG_TPL_SPI is not set
+# CONFIG_TPL_DM_SPI is not set
+# CONFIG_TPL_DM_SPI_FLASH is not set
+# CONFIG_TPL_YMODEM_SUPPORT is not set
# CONFIG_VPL is not set
-# CONFIG_FDT_SIMPLEFB is not set
-# CONFIG_BMP is not set
+CONFIG_IMAGE_SIGN_INFO=y
+CONFIG_SPL_IMAGE_SIGN_INFO=y
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
#
-# Command line interface
+# Hush flavor to use
#
-CONFIG_CMDLINE=y
-CONFIG_HUSH_PARSER=y
+CONFIG_HUSH_OLD_PARSER=y
+# CONFIG_HUSH_MODERN_PARSER is not set
CONFIG_CMDLINE_EDITING=y
# CONFIG_CMDLINE_PS_SUPPORT is not set
CONFIG_AUTO_COMPLETE=y
CONFIG_SYS_LONGHELP=y
CONFIG_SYS_PROMPT="=> "
CONFIG_SYS_PROMPT_HUSH_PS2="> "
-CONFIG_SYS_MAXARGS=16
-CONFIG_SYS_CBSIZE=1024
-CONFIG_SYS_PBSIZE=1044
+CONFIG_SYS_MAXARGS=64
CONFIG_SYS_XTRACE=y
#
@@ -670,8 +820,11 @@ CONFIG_CMD_BDI=y
# CONFIG_CMD_BDINFO_EXTRA is not set
# CONFIG_CMD_CONFIG is not set
CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_UFETCH is not set
+# CONFIG_CMD_HISTORY is not set
# CONFIG_CMD_LICENSE is not set
# CONFIG_CMD_PMC is not set
+# CONFIG_CMD_SMBIOS is not set
#
# Boot commands
@@ -681,8 +834,11 @@ CONFIG_CMD_BOOTM=y
CONFIG_CMD_BOOTDEV=y
CONFIG_CMD_BOOTFLOW=y
CONFIG_CMD_BOOTFLOW_FULL=y
+CONFIG_CMD_BOOTFLOW_BOOTDELAY=30
CONFIG_CMD_BOOTMETH=y
+CONFIG_CMD_BOOTSTD=y
CONFIG_BOOTM_EFI=y
+CONFIG_BOOTM_ELF=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTI=y
CONFIG_BOOTM_LINUX=y
@@ -691,26 +847,26 @@ CONFIG_BOOTM_NETBSD=y
# CONFIG_BOOTM_OSE is not set
CONFIG_BOOTM_PLAN9=y
CONFIG_BOOTM_RTEMS=y
+# CONFIG_CMD_UPL is not set
CONFIG_CMD_VBE=y
CONFIG_BOOTM_VXWORKS=y
-CONFIG_SYS_BOOTM_LEN=0x4000000
CONFIG_CMD_BOOTEFI=y
-CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+CONFIG_CMD_BOOTEFI_BINARY=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
CONFIG_CMD_BOOTEFI_HELLO=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_BOOTMENU=y
# CONFIG_CMD_ADTIMG is not set
CONFIG_CMD_ELF=y
+CONFIG_CMD_ELF_BOOTVX=y
+# CONFIG_CMD_ELF_FDT_SETUP is not set
CONFIG_CMD_FDT=y
CONFIG_CMD_GO=y
CONFIG_CMD_RUN=y
CONFIG_CMD_IMI=y
-# CONFIG_CMD_IMLS is not set
CONFIG_CMD_XIMG=y
-# CONFIG_CMD_XXD is not set
+CONFIG_SYS_XIMG_LEN=0x800000
# CONFIG_CMD_SPL is not set
-# CONFIG_CMD_THOR_DOWNLOAD is not set
-# CONFIG_CMD_ZBOOT is not set
#
# Environment commands
@@ -762,7 +918,6 @@ CONFIG_CMD_UNZIP=y
#
# Device access commands
#
-# CONFIG_CMD_ARMFLASH is not set
# CONFIG_CMD_ADC is not set
# CONFIG_CMD_BCB is not set
# CONFIG_CMD_BIND is not set
@@ -770,13 +925,11 @@ CONFIG_CMD_UNZIP=y
# CONFIG_CMD_DEMO is not set
# CONFIG_CMD_DFU is not set
CONFIG_CMD_DM=y
-# CONFIG_CMD_FPGAD is not set
# CONFIG_CMD_FUSE is not set
CONFIG_CMD_GPIO=y
# CONFIG_CMD_GPIO_READ is not set
# CONFIG_CMD_PWM is not set
CONFIG_CMD_GPT=y
-CONFIG_RANDOM_UUID=y
# CONFIG_CMD_GPT_RENAME is not set
# CONFIG_CMD_IDE is not set
# CONFIG_CMD_IO is not set
@@ -794,9 +947,12 @@ CONFIG_CMD_LOADXY_TIMEOUT=90
# CONFIG_CMD_MISC is not set
CONFIG_CMD_MMC=y
# CONFIG_CMD_BKOPS_ENABLE is not set
+# CONFIG_CMD_MMC_REG is not set
# CONFIG_CMD_MMC_SWRITE is not set
+CONFIG_MMC_SPEED_MODE_SET=y
# CONFIG_CMD_CLONE is not set
-# CONFIG_CMD_OSD is not set
+# CONFIG_CMD_MTD is not set
+# CONFIG_CMD_ONENAND is not set
CONFIG_CMD_PART=y
# CONFIG_CMD_PCI is not set
CONFIG_CMD_PINMUX=y
@@ -808,11 +964,9 @@ CONFIG_CMD_SF=y
CONFIG_CMD_SF_TEST=y
CONFIG_CMD_SPI=y
CONFIG_DEFAULT_SPI_BUS=0
-CONFIG_DEFAULT_SPI_MODE=0
-# CONFIG_CMD_TSI148 is not set
-# CONFIG_CMD_UNIVERSE is not set
+CONFIG_DEFAULT_SPI_MODE=0x0
CONFIG_CMD_USB=y
-# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_RKMTD is not set
# CONFIG_CMD_WRITE is not set
#
@@ -823,13 +977,9 @@ CONFIG_CMD_ECHO=y
CONFIG_CMD_ITEST=y
CONFIG_CMD_SOURCE=y
# CONFIG_CMD_SETEXPR is not set
-
-#
-# Android support commands
-#
+# CONFIG_CMD_XXD is not set
CONFIG_CMD_NET=y
CONFIG_CMD_BOOTP=y
-CONFIG_CMD_DHCP=y
# CONFIG_BOOTP_MAY_FAIL is not set
CONFIG_BOOTP_BOOTPATH=y
# CONFIG_BOOTP_VENDOREX is not set
@@ -845,25 +995,27 @@ CONFIG_BOOTP_SUBNETMASK=y
# CONFIG_CMD_PCAP is not set
CONFIG_BOOTP_PXE=y
CONFIG_BOOTP_PXE_CLIENTARCH=0x16
+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set
CONFIG_BOOTP_VCI_STRING="U-Boot.armv8"
-CONFIG_CMD_TFTPBOOT=y
# CONFIG_CMD_TFTPPUT is not set
# CONFIG_CMD_TFTPSRV is not set
CONFIG_NET_TFTP_VARS=y
# CONFIG_CMD_RARP is not set
# CONFIG_CMD_NFS is not set
# CONFIG_SYS_DISABLE_AUTOLOAD is not set
-# CONFIG_CMD_WGET is not set
-CONFIG_CMD_MII=y
-CONFIG_CMD_MDIO=y
-CONFIG_CMD_PING=y
# CONFIG_CMD_CDP is not set
# CONFIG_CMD_SNTP is not set
-# CONFIG_CMD_DNS is not set
# CONFIG_CMD_LINK_LOCAL is not set
# CONFIG_CMD_ETHSW is not set
-CONFIG_CMD_PXE=y
# CONFIG_CMD_WOL is not set
+CONFIG_CMD_DHCP=y
+# CONFIG_CMD_DNS is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_PXE=y
#
# Misc commands
@@ -898,7 +1050,6 @@ CONFIG_CMD_VIDCONSOLE=y
#
# TI specific command line interface
#
-# CONFIG_CMD_DDR3 is not set
#
# Power commands
@@ -933,19 +1084,19 @@ CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
# CONFIG_CMD_FS_UUID is not set
# CONFIG_CMD_JFFS2 is not set
+# CONFIG_CMD_MTDPARTS is not set
CONFIG_MTDIDS_DEFAULT=""
CONFIG_MTDPARTS_DEFAULT=""
-# CONFIG_CMD_REISER is not set
# CONFIG_CMD_ZFS is not set
#
# Debug commands
#
+CONFIG_CMD_CYCLIC=y
# CONFIG_CMD_DIAG is not set
# CONFIG_CMD_EVENT is not set
CONFIG_CMD_LOG=y
# CONFIG_CMD_UBI is not set
-CONFIG_MMC_SPEED_MODE_SET=y
#
# Partition Types
@@ -954,6 +1105,7 @@ CONFIG_PARTITIONS=y
CONFIG_SPL_PARTITIONS=y
# CONFIG_MAC_PARTITION is not set
# CONFIG_SPL_MAC_PARTITION is not set
+# CONFIG_TEGRA_PARTITION is not set
CONFIG_DOS_PARTITION=y
CONFIG_SPL_DOS_PARTITION=y
CONFIG_ISO_PARTITION=y
@@ -979,26 +1131,35 @@ CONFIG_BINMAN=y
CONFIG_OF_CONTROL=y
CONFIG_OF_REAL=y
CONFIG_SPL_OF_CONTROL=y
-# CONFIG_OF_LIVE is not set
+CONFIG_TPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_UPSTREAM=y
+# CONFIG_OF_UPSTREAM_BUILD_VENDOR is not set
+# CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is not set
CONFIG_OF_SEPARATE=y
# CONFIG_OF_EMBED is not set
+# CONFIG_OF_INITIAL_DTB_READONLY is not set
# CONFIG_OF_BOARD is not set
# CONFIG_OF_OMIT_DTB is not set
CONFIG_DEVICE_TREE_INCLUDES=""
-CONFIG_OF_LIST="rk3399-gru-bob"
+CONFIG_OF_LIST="rockchip/rk3399-gru-bob"
+CONFIG_OF_OVERLAY_LIST=""
# CONFIG_MULTI_DTB_FIT is not set
# CONFIG_SPL_MULTI_DTB_FIT is not set
-CONFIG_SPL_OF_LIST="rk3399-gru-bob"
+CONFIG_SPL_OF_LIST="rockchip/rk3399-gru-bob"
CONFIG_OF_TAG_MIGRATE=y
-CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
# CONFIG_OF_DTB_PROPS_REMOVE is not set
# CONFIG_SPL_OF_PLATDATA is not set
CONFIG_SPL_OF_REAL=y
+CONFIG_TPL_OF_REAL=y
+# CONFIG_TPL_OF_PLATDATA is not set
#
# Environment
#
CONFIG_ENV_SUPPORT=y
+CONFIG_ENV_CALLBACK_LIST_STATIC=""
CONFIG_SAVEENV=y
# CONFIG_ENV_OVERWRITE is not set
# CONFIG_OVERWRITE_ETHADDR_ONCE is not set
@@ -1013,7 +1174,6 @@ CONFIG_ENV_IS_NOWHERE=y
# CONFIG_ENV_IS_IN_MMC is not set
# CONFIG_ENV_IS_IN_NAND is not set
# CONFIG_ENV_IS_IN_NVRAM is not set
-# CONFIG_ENV_IS_IN_ONENAND is not set
# CONFIG_ENV_IS_IN_REMOTE is not set
# CONFIG_ENV_IS_IN_SPI_FLASH is not set
# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
@@ -1028,17 +1188,20 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_USE_ETHPRIME is not set
# CONFIG_USE_HOSTNAME is not set
# CONFIG_VERSION_VARIABLE is not set
+
+#
+# Networking
+#
+# CONFIG_NO_NET is not set
CONFIG_NET=y
+# CONFIG_NET_LWIP is not set
CONFIG_ARP_TIMEOUT=5000
CONFIG_NET_RETRY_COUNT=5
# CONFIG_PROT_UDP is not set
-CONFIG_BOOTDEV_ETH=y
# CONFIG_BOOTP_SEND_HOSTNAME is not set
-# CONFIG_NET_RANDOM_ETHADDR is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_IP_DEFRAG is not set
# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set
-CONFIG_TFTP_BLOCKSIZE=1468
# CONFIG_TFTP_PORT is not set
CONFIG_TFTP_WINDOWSIZE=1
# CONFIG_TFTP_TSIZE is not set
@@ -1055,6 +1218,10 @@ CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64
# CONFIG_USE_SERVERIP is not set
# CONFIG_PROT_TCP is not set
# CONFIG_IPV6 is not set
+CONFIG_BOOTDEV_ETH=y
+# CONFIG_NET_RANDOM_ETHADDR is not set
+# CONFIG_WGET is not set
+CONFIG_TFTP_BLOCKSIZE=1468
CONFIG_SYS_RX_ETH_BUFFER=4
#
@@ -1066,33 +1233,42 @@ CONFIG_SYS_RX_ETH_BUFFER=4
#
CONFIG_DM=y
CONFIG_SPL_DM=y
-CONFIG_DM_WARN=y
+CONFIG_TPL_DM=y
+# CONFIG_DM_WARN is not set
# CONFIG_SPL_DM_WARN is not set
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_STATS is not set
+# CONFIG_SPL_DM_STATS is not set
CONFIG_DM_DEVICE_REMOVE=y
CONFIG_DM_EVENT=y
# CONFIG_SPL_DM_DEVICE_REMOVE is not set
CONFIG_DM_STDIO=y
CONFIG_DM_SEQ_ALIAS=y
CONFIG_SPL_DM_SEQ_ALIAS=y
+# CONFIG_TPL_DM_SEQ_ALIAS is not set
CONFIG_SPL_DM_INLINE_OFNODE=y
+CONFIG_TPL_DM_INLINE_OFNODE=y
# CONFIG_DM_DMA is not set
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
+CONFIG_TPL_REGMAP=y
CONFIG_SYSCON=y
CONFIG_SPL_SYSCON=y
+CONFIG_TPL_SYSCON=y
# CONFIG_DEVRES is not set
CONFIG_SIMPLE_BUS=y
CONFIG_SPL_SIMPLE_BUS=y
+# CONFIG_TPL_SIMPLE_BUS is not set
# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set
CONFIG_OF_TRANSLATE=y
# CONFIG_SPL_OF_TRANSLATE is not set
+# CONFIG_TPL_OF_TRANSLATE is not set
# CONFIG_TRANSLATION_OFFSET is not set
-CONFIG_DM_DEV_READ_INLINE=y
-# CONFIG_OFNODE_MULTI_TREE is not set
+CONFIG_OFNODE_MULTI_TREE=y
+CONFIG_OFNODE_MULTI_TREE_MAX=4
CONFIG_BOUNCE_BUFFER=y
CONFIG_ADC=y
+# CONFIG_SPL_ADC is not set
# CONFIG_ADC_EXYNOS is not set
# CONFIG_ADC_SANDBOX is not set
# CONFIG_SARADC_MESON is not set
@@ -1111,14 +1287,15 @@ CONFIG_SARADC_ROCKCHIP=y
#
CONFIG_BLK=y
CONFIG_SPL_BLK=y
+# CONFIG_TPL_BLK is not set
CONFIG_BLOCK_CACHE=y
# CONFIG_BLKMAP is not set
# CONFIG_SPL_BLOCK_CACHE is not set
# CONFIG_EFI_MEDIA is not set
-# CONFIG_SPL_BLK_FS is not set
# CONFIG_IDE is not set
# CONFIG_LBA48 is not set
# CONFIG_SYS_64BIT_LBA is not set
+# CONFIG_RKMTD is not set
# CONFIG_BOOTCOUNT_LIMIT is not set
#
@@ -1131,25 +1308,32 @@ CONFIG_BLOCK_CACHE=y
#
# CONFIG_CACHE is not set
# CONFIG_L2X0_CACHE is not set
-# CONFIG_V5L2_CACHE is not set
+# CONFIG_ANDES_L2_CACHE is not set
# CONFIG_NCORE_CACHE is not set
# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SIFIVE_PL2 is not set
#
# Clock
#
CONFIG_CLK=y
CONFIG_SPL_CLK=y
+CONFIG_TPL_CLK=y
# CONFIG_SPL_CLK_CCF is not set
# CONFIG_CLK_CCF is not set
+# CONFIG_CLK_GPIO is not set
+# CONFIG_SPL_CLK_GPIO is not set
+# CONFIG_CLK_STUB is not set
# CONFIG_CLK_CDCE9XX is not set
# CONFIG_CLK_ICS8N3QV01 is not set
# CONFIG_CLK_K210 is not set
# CONFIG_CLK_MPC83XX is not set
# CONFIG_CLK_XLNX_CLKWZRD is not set
+# CONFIG_COMMON_CLK_ADI_SHARED is not set
# CONFIG_CLK_AT91 is not set
# CONFIG_CLK_RCAR is not set
# CONFIG_CLK_RCAR_CPG_LIB is not set
+# CONFIG_CLK_SOPHGO_CV1800B is not set
# CONFIG_CLK_SIFIVE is not set
# CONFIG_CLK_TI_AM3_DPLL is not set
# CONFIG_CLK_TI_CTRL is not set
@@ -1219,6 +1403,7 @@ CONFIG_ARM_PSCI_FW=y
# CONFIG_FWU_MDATA is not set
CONFIG_GPIO=y
CONFIG_SPL_DM_GPIO=y
+CONFIG_TPL_DM_GPIO=y
# CONFIG_GPIO_HOG is not set
# CONFIG_SPL_GPIO_HOG is not set
# CONFIG_DM_GPIO_LOOKUP_LABEL is not set
@@ -1229,6 +1414,8 @@ CONFIG_SPL_DM_GPIO=y
# CONFIG_AT91_GPIO is not set
# CONFIG_ATMEL_PIO4 is not set
# CONFIG_ASPEED_GPIO is not set
+# CONFIG_ASPEED_SGPIO is not set
+# CONFIG_ASPEED_G7_GPIO is not set
# CONFIG_DA8XX_GPIO is not set
# CONFIG_FXL6408_GPIO is not set
# CONFIG_HIKEY_GPIO is not set
@@ -1246,6 +1433,7 @@ CONFIG_SPL_DM_GPIO=y
# CONFIG_MXC_GPIO is not set
# CONFIG_MXS_GPIO is not set
# CONFIG_NPCM_GPIO is not set
+# CONFIG_NPCM_SGPIO is not set
# CONFIG_CMD_PCA953X is not set
# CONFIG_PCF8575_GPIO is not set
CONFIG_ROCKCHIP_GPIO=y
@@ -1264,9 +1452,7 @@ CONFIG_ROCKCHIP_GPIO=y
# CONFIG_MPC8XX_GPIO is not set
# CONFIG_NX_GPIO is not set
# CONFIG_NOMADIK_GPIO is not set
-# CONFIG_ZYNQMP_GPIO_MODEPIN is not set
# CONFIG_SLG7XL45106_I2C_GPO is not set
-# CONFIG_TURRIS_OMNIA_MCU is not set
# CONFIG_FTGPIO010 is not set
# CONFIG_ADP5585_GPIO is not set
@@ -1277,6 +1463,7 @@ CONFIG_ROCKCHIP_GPIO=y
CONFIG_I2C=y
CONFIG_DM_I2C=y
CONFIG_SPL_DM_I2C=y
+# CONFIG_TPL_DM_I2C is not set
CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_I2C_CROS_EC_LDO is not set
# CONFIG_I2C_SET_DEFAULT_BUS_NUM is not set
@@ -1295,6 +1482,7 @@ CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_SYS_I2C_OCORES is not set
CONFIG_SYS_I2C_ROCKCHIP=y
# CONFIG_SYS_I2C_SOFT is not set
+# CONFIG_SYS_I2C_S3C24X0 is not set
# CONFIG_SYS_I2C_MV is not set
# CONFIG_SYS_I2C_MVTWSI is not set
# CONFIG_SYS_I2C_XILINX_XIIC is not set
@@ -1306,8 +1494,10 @@ CONFIG_I2C_MUX=y
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_INPUT=y
# CONFIG_SPL_INPUT is not set
+# CONFIG_TPL_INPUT is not set
CONFIG_DM_KEYBOARD=y
# CONFIG_SPL_DM_KEYBOARD is not set
+# CONFIG_TPL_DM_KEYBOARD is not set
# CONFIG_APPLE_SPI_KEYB is not set
# CONFIG_BUTTON_KEYBOARD is not set
CONFIG_CROS_EC_KEYB=y
@@ -1324,6 +1514,8 @@ CONFIG_CROS_EC_KEYB=y
# LED Support
#
# CONFIG_LED is not set
+# CONFIG_LED_BOOT is not set
+# CONFIG_LED_ACTIVITY is not set
# CONFIG_SPL_LED is not set
# CONFIG_LED_STATUS is not set
@@ -1344,6 +1536,7 @@ CONFIG_CROS_EC_KEYB=y
#
CONFIG_MISC=y
CONFIG_SPL_MISC=y
+CONFIG_TPL_MISC=y
# CONFIG_NVMEM is not set
# CONFIG_SPL_NVMEM is not set
# CONFIG_ALTERA_SYSID is not set
@@ -1351,15 +1544,18 @@ CONFIG_SPL_MISC=y
# CONFIG_GATEWORKS_SC is not set
CONFIG_ROCKCHIP_EFUSE=y
# CONFIG_ROCKCHIP_OTP is not set
+CONFIG_ROCKCHIP_IODOMAIN=y
# CONFIG_SIFIVE_OTP is not set
# CONFIG_SMSC_LPC47M is not set
# CONFIG_SMSC_SIO1007 is not set
# CONFIG_VEXPRESS_CONFIG is not set
CONFIG_CROS_EC=y
# CONFIG_SPL_CROS_EC is not set
+# CONFIG_TPL_CROS_EC is not set
# CONFIG_CROS_EC_I2C is not set
# CONFIG_CROS_EC_LPC is not set
# CONFIG_SPL_CROS_EC_LPC is not set
+# CONFIG_TPL_CROS_EC_LPC is not set
CONFIG_CROS_EC_SPI=y
# CONFIG_DS4510 is not set
# CONFIG_FSL_SEC_MON is not set
@@ -1370,6 +1566,7 @@ CONFIG_PWRSEQ=y
# CONFIG_SPL_PWRSEQ is not set
# CONFIG_PCA9551_LED is not set
# CONFIG_TEST_DRV is not set
+# CONFIG_TURRIS_OMNIA_MCU is not set
# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_TWL4030_LED is not set
# CONFIG_WINBOND_W83627 is not set
@@ -1385,6 +1582,7 @@ CONFIG_PWRSEQ=y
# CONFIG_MICROCHIP_FLEXCOM is not set
# CONFIG_ESM_PMIC is not set
# CONFIG_SL28CPLD is not set
+# CONFIG_SPL_SOCFPGA_DT_REG is not set
#
# MMC Host controller Support
@@ -1395,6 +1593,7 @@ CONFIG_MMC_PWRSEQ=y
# CONFIG_MMC_BROKEN_CD is not set
CONFIG_DM_MMC=y
CONFIG_SPL_DM_MMC=y
+# CONFIG_TPL_DM_MMC is not set
# CONFIG_MMC_SPI is not set
# CONFIG_ARM_PL180_MMCI is not set
CONFIG_MMC_QUIRKS=y
@@ -1403,6 +1602,7 @@ CONFIG_MMC_HW_PARTITIONING=y
# CONFIG_SUPPORT_EMMC_RPMB is not set
# CONFIG_SUPPORT_EMMC_BOOT is not set
CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_MMC_SUPPORTS_TUNING=y
CONFIG_MMC_UHS_SUPPORT=y
CONFIG_MMC_HS400_ES_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
@@ -1420,8 +1620,11 @@ CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
# CONFIG_MMC_SDHCI_ADMA is not set
+# CONFIG_MMC_SDHCI_ADMA_FORCE_32BIT is not set
+CONFIG_MMC_SDHCI_ADMA_64BIT=y
# CONFIG_MMC_SDHCI_BCMSTB is not set
# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_CV1800B is not set
# CONFIG_MMC_SDHCI_IPROC is not set
# CONFIG_MMC_SDHCI_F_SDH30 is not set
# CONFIG_MMC_SDHCI_KONA is not set
@@ -1429,6 +1632,7 @@ CONFIG_MMC_SDHCI_SDMA=y
# CONFIG_MMC_SDHCI_NPCM is not set
CONFIG_MMC_SDHCI_ROCKCHIP=y
# CONFIG_MMC_SDHCI_S5P is not set
+# CONFIG_MMC_SDHCI_SNPS is not set
# CONFIG_MMC_SDHCI_STI is not set
# CONFIG_MMC_SDHCI_XENON is not set
# CONFIG_MMC_SDHCI_TANGIER is not set
@@ -1442,11 +1646,13 @@ CONFIG_MMC_SDHCI_ROCKCHIP=y
#
# MTD Support
#
-# CONFIG_MTD is not set
+CONFIG_MTD=y
# CONFIG_DM_MTD is not set
# CONFIG_MTD_NOR_FLASH is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_SYS_MTDPARTS_RUNTIME is not set
# CONFIG_FLASH_CFI_DRIVER is not set
-# CONFIG_HBMC_AM654 is not set
# CONFIG_SAMSUNG_ONENAND is not set
# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set
# CONFIG_MTD_RAW_NAND is not set
@@ -1456,28 +1662,31 @@ CONFIG_MMC_SDHCI_ROCKCHIP=y
#
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH=y
-CONFIG_SF_DEFAULT_BUS=1
-CONFIG_SF_DEFAULT_CS=0
# CONFIG_BOOTDEV_SPI_FLASH is not set
# CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
CONFIG_SPI_FLASH_SMART_HWCAPS=y
# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set
# CONFIG_SPI_FLASH_SOFT_RESET is not set
# CONFIG_SPI_FLASH_BAR is not set
+CONFIG_SPI_FLASH_LOCK=y
CONFIG_SPI_FLASH_UNLOCK_ALL=y
# CONFIG_SPI_FLASH_ATMEL is not set
# CONFIG_SPI_FLASH_EON is not set
CONFIG_SPI_FLASH_GIGADEVICE=y
# CONFIG_SPI_FLASH_ISSI is not set
# CONFIG_SPI_FLASH_MACRONIX is not set
+# CONFIG_SPI_FLASH_PUYA is not set
+# CONFIG_SPI_FLASH_SILICONKAISER is not set
# CONFIG_SPI_FLASH_SPANSION is not set
# CONFIG_SPI_FLASH_STMICRO is not set
# CONFIG_SPI_FLASH_SST is not set
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_SPI_FLASH_XMC is not set
# CONFIG_SPI_FLASH_XTX is not set
+# CONFIG_SPI_FLASH_ZBIT is not set
CONFIG_SPI_FLASH_USE_4K_SECTORS=y
# CONFIG_SPI_FLASH_DATAFLASH is not set
+# CONFIG_SPI_FLASH_MTD is not set
#
# UBI support
@@ -1495,6 +1704,7 @@ CONFIG_SPI_FLASH_USE_4K_SECTORS=y
# CONFIG_MV88E6352_SWITCH is not set
CONFIG_PHYLIB=y
# CONFIG_PHY_ADDR_ENABLE is not set
+CONFIG_PHY_ANEG_TIMEOUT=4000
# CONFIG_B53_SWITCH is not set
# CONFIG_MV88E61XX_SWITCH is not set
# CONFIG_PHYLIB_10G is not set
@@ -1538,12 +1748,13 @@ CONFIG_DM_ETH=y
# CONFIG_DM_MDIO is not set
# CONFIG_DM_ETH_PHY is not set
CONFIG_NETDEVICES=y
-# CONFIG_PHY_GIGE is not set
+CONFIG_PHY_GIGE=y
# CONFIG_ALTERA_TSE is not set
# CONFIG_BCM_SF2_ETH is not set
# CONFIG_BCMGENET is not set
# CONFIG_BNXT_ETH is not set
# CONFIG_CALXEDA_XGMAC is not set
+# CONFIG_DWC_ETH_XGMAC is not set
# CONFIG_DRIVER_DM9000 is not set
# CONFIG_DWC_ETH_QOS is not set
# CONFIG_EEPRO100 is not set
@@ -1557,7 +1768,6 @@ CONFIG_ETH_DESIGNWARE=y
# CONFIG_FTMAC100 is not set
# CONFIG_FTGMAC100 is not set
# CONFIG_MCFFEC is not set
-# CONFIG_FSLDMAFEC is not set
# CONFIG_KS8851_MLL is not set
# CONFIG_LITEETH is not set
# CONFIG_MACB is not set
@@ -1586,6 +1796,7 @@ CONFIG_GMAC_ROCKCHIP=y
# CONFIG_SYS_DPAA_QBMAN is not set
# CONFIG_TSEC_ENET is not set
# CONFIG_MEDIATEK_ETH is not set
+# CONFIG_HIFEMAC_ETH is not set
# CONFIG_HIGMACV300_ETH is not set
# CONFIG_NVME is not set
# CONFIG_NVME_APPLE is not set
@@ -1611,6 +1822,7 @@ CONFIG_PHY=y
# Rockchip PHY driver
#
# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
+# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
# CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY is not set
# CONFIG_PHY_ROCKCHIP_PCIE is not set
@@ -1632,6 +1844,7 @@ CONFIG_PINMUX=y
# CONFIG_PINCONF is not set
CONFIG_PINCONF_RECURSIVE=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_TPL_PINCTRL is not set
CONFIG_SPL_PINCTRL_FULL=y
CONFIG_SPL_PINCTRL_GENERIC=y
CONFIG_SPL_PINMUX=y
@@ -1649,10 +1862,13 @@ CONFIG_SPL_PINCONF_RECURSIVE=y
# CONFIG_PINCTRL_K210 is not set
CONFIG_PINCTRL_ROCKCHIP=y
CONFIG_SPL_PINCTRL_ROCKCHIP=y
+# CONFIG_PINCTRL_TEGRA is not set
+# CONFIG_SPL_PINCTRL_TEGRA is not set
CONFIG_POWER=y
# CONFIG_POWER_LEGACY is not set
# CONFIG_ACPI_PMC is not set
# CONFIG_SPL_ACPI_PMC is not set
+# CONFIG_TPL_ACPI_PMC is not set
#
# Power Domain Support
@@ -1678,6 +1894,7 @@ CONFIG_SPL_PMIC_CHILDREN=y
# CONFIG_SPL_DM_PMIC_PCA9450 is not set
# CONFIG_DM_PMIC_PFUZE100 is not set
# CONFIG_SPL_DM_PMIC_PFUZE100 is not set
+# CONFIG_DM_PMIC_MAX77663 is not set
# CONFIG_DM_PMIC_MAX77686 is not set
# CONFIG_DM_PMIC_MAX8998 is not set
# CONFIG_DM_PMIC_MC34708 is not set
@@ -1695,12 +1912,14 @@ CONFIG_PMIC_RK8XX=y
# CONFIG_PMIC_LP873X is not set
# CONFIG_PMIC_LP87565 is not set
# CONFIG_DM_PMIC_TPS65910 is not set
+# CONFIG_DM_PMIC_TPS80031 is not set
# CONFIG_PMIC_STPMIC1 is not set
# CONFIG_SPL_PMIC_PALMAS is not set
# CONFIG_SPL_PMIC_LP873X is not set
# CONFIG_SPL_PMIC_LP87565 is not set
# CONFIG_PMIC_TPS65941 is not set
# CONFIG_PMIC_TPS65219 is not set
+# CONFIG_PMIC_RAA215300 is not set
# CONFIG_PMIC_TPS65217 is not set
# CONFIG_POWER_TPS65218 is not set
# CONFIG_POWER_TPS62362 is not set
@@ -1710,13 +1929,15 @@ CONFIG_DM_REGULATOR=y
CONFIG_REGULATOR_PWM=y
# CONFIG_SPL_REGULATOR_PWM is not set
CONFIG_DM_REGULATOR_COMMON=y
+CONFIG_SPL_DM_REGULATOR_COMMON=y
CONFIG_DM_REGULATOR_FIXED=y
-# CONFIG_SPL_DM_REGULATOR_FIXED is not set
+CONFIG_SPL_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
# CONFIG_SPL_DM_REGULATOR_GPIO is not set
CONFIG_REGULATOR_RK8XX=y
# CONFIG_DM_REGULATOR_PBIAS is not set
# CONFIG_DM_REGULATOR_TPS62360 is not set
+# CONFIG_DM_REGULATOR_TPS6287X is not set
# CONFIG_DM_REGULATOR_ANATOP is not set
# CONFIG_DM_REGULATOR_SCMI is not set
# CONFIG_TPS6586X_POWER is not set
@@ -1737,6 +1958,7 @@ CONFIG_PWM_ROCKCHIP=y
# CONFIG_U_QE is not set
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_TPL_RAM=y
# CONFIG_STM32_SDRAM is not set
# CONFIG_MPC83XX_SDRAM is not set
# CONFIG_K3_DDRSS is not set
@@ -1758,6 +1980,7 @@ CONFIG_RAM_ROCKCHIP_DEBUG=y
#
# Remote Processor drivers
#
+CONFIG_REMOTEPROC_MAX_FW_SIZE=0x10000
#
# Reset Controller Support
@@ -1770,17 +1993,21 @@ CONFIG_RESET_ROCKCHIP=y
# CONFIG_RESET_SCMI is not set
# CONFIG_RESET_DRA7 is not set
CONFIG_DM_RNG=y
+# CONFIG_SPL_DM_RNG is not set
# CONFIG_RNG_MSM is not set
# CONFIG_RNG_NPCM is not set
CONFIG_RNG_ROCKCHIP=y
# CONFIG_RNG_IPROC200 is not set
# CONFIG_RNG_SMCCC_TRNG is not set
+# CONFIG_RNG_ARM_RNDR is not set
+# CONFIG_RNG_EXYNOS is not set
#
# Real Time Clock
#
# CONFIG_DM_RTC is not set
# CONFIG_SPL_DM_RTC is not set
+# CONFIG_TPL_DM_RTC is not set
# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set
# CONFIG_RTC_DS1337 is not set
# CONFIG_RTC_DS1338 is not set
@@ -1788,28 +2015,30 @@ CONFIG_RNG_ROCKCHIP=y
# CONFIG_RTC_DS3231 is not set
# CONFIG_RTC_PCF8563 is not set
# CONFIG_RTC_PT7C4338 is not set
-# CONFIG_RTC_PL031 is not set
# CONFIG_RTC_S35392A is not set
# CONFIG_RTC_MC13XXX is not set
# CONFIG_RTC_MC146818 is not set
# CONFIG_RTC_M41T62 is not set
# CONFIG_SCSI is not set
-# CONFIG_DM_SCSI is not set
CONFIG_SERIAL=y
CONFIG_BAUDRATE=115200
+# CONFIG_DEFAULT_ENV_IS_RW is not set
CONFIG_REQUIRE_SERIAL_CONSOLE=y
# CONFIG_SPECIFY_CONSOLE_INDEX is not set
CONFIG_SERIAL_PRESENT=y
CONFIG_SPL_SERIAL_PRESENT=y
+CONFIG_TPL_SERIAL_PRESENT=y
CONFIG_DM_SERIAL=y
# CONFIG_SERIAL_RX_BUFFER is not set
# CONFIG_SERIAL_PUTS is not set
# CONFIG_SERIAL_SEARCH_ALL is not set
# CONFIG_SERIAL_PROBE_ALL is not set
CONFIG_SPL_DM_SERIAL=y
+CONFIG_TPL_DM_SERIAL=y
# CONFIG_VPL_DM_SERIAL is not set
CONFIG_DEBUG_UART_NS16550=y
CONFIG_SPL_DEBUG_UART_BASE=0xff1a0000
+CONFIG_TPL_DEBUG_UART_BASE=0xff1a0000
CONFIG_DEBUG_UART_SHIFT=2
# CONFIG_DEBUG_UART_ANNOUNCE is not set
# CONFIG_DEBUG_UART_SKIP_INIT is not set
@@ -1838,11 +2067,14 @@ CONFIG_SYS_NS16550_MEM32=y
# CONFIG_MSM_GENI_SERIAL is not set
# CONFIG_MXS_AUART_SERIAL is not set
# CONFIG_OMAP_SERIAL is not set
+# CONFIG_HTIF_CONSOLE is not set
# CONFIG_SIFIVE_SERIAL is not set
# CONFIG_ZYNQ_SERIAL is not set
# CONFIG_MTK_SERIAL is not set
# CONFIG_MT7620_SERIAL is not set
# CONFIG_NPCM_SERIAL is not set
+# CONFIG_SM is not set
+# CONFIG_MESON_SM is not set
# CONFIG_SMEM is not set
#
@@ -1854,6 +2086,8 @@ CONFIG_SYS_NS16550_MEM32=y
# SOC (System On Chip) specific Drivers
#
# CONFIG_SOC_DEVICE is not set
+# CONFIG_SOC_QCOM is not set
+# CONFIG_SOC_SAMSUNG is not set
# CONFIG_SOC_TI is not set
CONFIG_SPI=y
CONFIG_DM_SPI=y
@@ -1862,26 +2096,18 @@ CONFIG_SPI_MEM=y
# CONFIG_ALTERA_SPI is not set
# CONFIG_APPLE_SPI is not set
# CONFIG_ATCSPI200_SPI is not set
-# CONFIG_ATMEL_SPI is not set
-# CONFIG_BCMSTB_SPI is not set
# CONFIG_CORTINA_SFLASH is not set
# CONFIG_CADENCE_QSPI is not set
-# CONFIG_CF_SPI is not set
+# CONFIG_CV1800B_SPIF is not set
# CONFIG_DESIGNWARE_SPI is not set
-# CONFIG_EXYNOS_SPI is not set
-# CONFIG_FSL_DSPI is not set
# CONFIG_FSL_QSPI is not set
# CONFIG_GXP_SPI is not set
-# CONFIG_ICH_SPI is not set
# CONFIG_IPROC_QSPI is not set
-# CONFIG_KIRKWOOD_SPI is not set
# CONFIG_MICROCHIP_COREQSPI is not set
-# CONFIG_MPC8XXX_SPI is not set
# CONFIG_MTK_SNOR is not set
# CONFIG_MTK_SNFI_SPI is not set
# CONFIG_MTK_SPIM is not set
# CONFIG_MVEBU_A3700_SPI is not set
-# CONFIG_MXS_SPI is not set
# CONFIG_SPI_MXIC is not set
# CONFIG_NPCM_FIU_SPI is not set
# CONFIG_NPCM_PSPI is not set
@@ -1895,17 +2121,11 @@ CONFIG_ROCKCHIP_SPI=y
# CONFIG_SOFT_SPI is not set
# CONFIG_SPI_SN_F_OSPI is not set
# CONFIG_SPI_SUNXI is not set
-# CONFIG_TEGRA114_SPI is not set
-# CONFIG_TEGRA20_SFLASH is not set
-# CONFIG_TEGRA20_SLINK is not set
-# CONFIG_TEGRA210_QSPI is not set
-# CONFIG_TI_QSPI is not set
# CONFIG_XILINX_SPI is not set
# CONFIG_ZYNQ_SPI is not set
# CONFIG_ZYNQ_QSPI is not set
# CONFIG_ZYNQMP_GQSPI is not set
-# CONFIG_SH_QSPI is not set
-# CONFIG_MXC_SPI is not set
+# CONFIG_SPI_STACKED_PARALLEL is not set
#
# SPMI support
@@ -1918,8 +2138,10 @@ CONFIG_ROCKCHIP_SPI=y
#
CONFIG_SYSRESET=y
CONFIG_SPL_SYSRESET=y
+CONFIG_TPL_SYSRESET=y
CONFIG_SYSRESET_CMD_RESET=y
-# CONFIG_SYSRESET_CMD_POWEROFF is not set
+CONFIG_SYSRESET_CMD_POWEROFF=y
+# CONFIG_SYSRESET_CV1800B is not set
# CONFIG_POWEROFF_GPIO is not set
# CONFIG_SYSRESET_GPIO is not set
# CONFIG_SYSRESET_PSCI is not set
@@ -1950,9 +2172,9 @@ CONFIG_SPL_DM_USB=y
CONFIG_USB_HOST=y
# CONFIG_SPL_USB_HOST is not set
CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_DWC3=y
-CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
-# CONFIG_USB_XHCI_PCI is not set
+# CONFIG_USB_XHCI_DWC3 is not set
+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set
+# CONFIG_USB_XHCI_GENERIC is not set
# CONFIG_USB_XHCI_FSL is not set
# CONFIG_USB_XHCI_BRCM is not set
CONFIG_USB_EHCI_HCD=y
@@ -1977,9 +2199,11 @@ CONFIG_USB_DWC3=y
# Platform Glue Driver Support
#
# CONFIG_USB_DWC3_OMAP is not set
-# CONFIG_USB_DWC3_GENERIC is not set
+CONFIG_USB_DWC3_GENERIC=y
# CONFIG_SPL_USB_DWC3_GENERIC is not set
+# CONFIG_USB_DWC3_AM62 is not set
# CONFIG_USB_DWC3_LAYERSCAPE is not set
+# CONFIG_USB_DWC3_STI is not set
#
# PHY Subsystem
@@ -2004,6 +2228,7 @@ CONFIG_USB_DWC3=y
#
# CONFIG_TWL4030_USB is not set
# CONFIG_ROCKCHIP_USB2_PHY is not set
+# CONFIG_TYPEC_TCPM is not set
#
# ULPI drivers
@@ -2046,7 +2271,7 @@ CONFIG_VIDEO_FONT_8X16=y
# CONFIG_VIDEO_FONT_16X32 is not set
CONFIG_VIDEO_LOGO=y
CONFIG_BACKLIGHT=y
-CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0
+CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0x0
# CONFIG_VIDEO_COPY is not set
CONFIG_VIDEO_DAMAGE=y
CONFIG_BACKLIGHT_PWM=y
@@ -2061,6 +2286,8 @@ CONFIG_CONSOLE_NORMAL=y
# CONFIG_CONSOLE_TRUETYPE is not set
CONFIG_SYS_WHITE_ON_BLACK=y
# CONFIG_NO_FB_CLEAR is not set
+CONFIG_VIDEO_SYNC_MS=100
+CONFIG_VIDEO_SYNC_CYCLIC_MS=10
CONFIG_PANEL=y
CONFIG_SIMPLE_PANEL=y
# CONFIG_PANEL_HX8238D is not set
@@ -2077,9 +2304,12 @@ CONFIG_SIMPLE_PANEL=y
# CONFIG_VIDEO_LCD_ENDEAVORU is not set
# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set
# CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set
+# CONFIG_VIDEO_LCD_LG_LD070WX3 is not set
# CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set
# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set
+# CONFIG_VIDEO_LCD_SAMSUNG_LTL106HL02 is not set
+# CONFIG_VIDEO_LCD_SHARP_LQ101R1SX01 is not set
# CONFIG_VIDEO_LCD_SSD2828 is not set
# CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set
# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
@@ -2106,7 +2336,9 @@ CONFIG_DISPLAY_ROCKCHIP_EDP=y
# CONFIG_VIDEO_TIDSS is not set
# CONFIG_VIDEO_TEGRA124 is not set
# CONFIG_VIDEO_BRIDGE is not set
+# CONFIG_VIDEO_BRIDGE_PARADE_DP501 is not set
# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set
+# CONFIG_VIDEO_BRIDGE_TOSHIBA_TC358768 is not set
# CONFIG_VIDEO_TEGRA20 is not set
# CONFIG_VIDEO_DSI_TEGRA30 is not set
# CONFIG_TEGRA_BACKLIGHT_PWM is not set
@@ -2119,6 +2351,7 @@ CONFIG_CONSOLE_SCROLL_LINES=1
# CONFIG_OSD is not set
# CONFIG_VIDEO_REMOVE is not set
# CONFIG_SPLASH_SCREEN is not set
+# CONFIG_BMP is not set
CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000
CONFIG_VIDEO_BMP_RLE8=y
# CONFIG_BMP_16BPP is not set
@@ -2145,7 +2378,6 @@ CONFIG_VIDEO_BMP_RLE8=y
# Watchdog Timer Support
#
# CONFIG_WATCHDOG is not set
-CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
# CONFIG_IMX_WATCHDOG is not set
# CONFIG_ULP_WATCHDOG is not set
# CONFIG_WDT is not set
@@ -2167,7 +2399,6 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
# CONFIG_UBIFS_SILENCE_MSG is not set
# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set
# CONFIG_FS_CRAMFS is not set
-# CONFIG_YAFFS2 is not set
# CONFIG_FS_SQUASHFS is not set
# CONFIG_FS_EROFS is not set
@@ -2179,41 +2410,77 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
# CONFIG_PHYSMEM is not set
# CONFIG_BCH is not set
# CONFIG_BINMAN_FDT is not set
+CONFIG_BINMAN_DTB=""
# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
CONFIG_CHARSET=y
# CONFIG_DYNAMIC_CRC_TABLE is not set
CONFIG_LIB_UUID=y
+CONFIG_RANDOM_UUID=y
CONFIG_SPL_LIB_UUID=y
# CONFIG_SEMIHOSTING is not set
# CONFIG_SPL_SEMIHOSTING is not set
CONFIG_PRINTF=y
CONFIG_SPL_PRINTF=y
+CONFIG_TPL_PRINTF=y
CONFIG_SPRINTF=y
CONFIG_SPL_SPRINTF=y
+CONFIG_TPL_SPRINTF=y
CONFIG_STRTO=y
CONFIG_SPL_STRTO=y
+CONFIG_TPL_STRTO=y
CONFIG_SYS_HZ=1000
CONFIG_SPL_USE_TINY_PRINTF=y
+CONFIG_TPL_USE_TINY_PRINTF=y
CONFIG_PANIC_HANG=y
CONFIG_REGEX=y
CONFIG_LIB_RAND=y
# CONFIG_LIB_HW_RAND is not set
CONFIG_SUPPORT_ACPI=y
# CONFIG_ACPI is not set
+# CONFIG_SPL_ACPI is not set
# CONFIG_SPL_TINY_MEMSET is not set
+CONFIG_TPL_TINY_MEMSET=y
# CONFIG_BITREVERSE is not set
# CONFIG_TRACE is not set
# CONFIG_CIRCBUF is not set
CONFIG_CMD_DHRYSTONE=y
#
+# Alternative crypto libraries
+#
+CONFIG_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_MBEDTLS_LIB is not set
+CONFIG_LEGACY_HASHING=y
+CONFIG_SHA1_LEGACY=y
+CONFIG_SHA256_LEGACY=y
+CONFIG_MD5_LEGACY=y
+CONFIG_LEGACY_CRYPTO=y
+CONFIG_SPL_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_SPL_MBEDTLS_LIB is not set
+CONFIG_SPL_LEGACY_HASHING=y
+CONFIG_SPL_SHA1_LEGACY=y
+CONFIG_SPL_SHA256_LEGACY=y
+CONFIG_SPL_LEGACY_CRYPTO=y
+CONFIG_TPL_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_TPL_MBEDTLS_LIB is not set
+CONFIG_TPL_LEGACY_HASHING=y
+
+#
# Security support
#
# CONFIG_AES is not set
# CONFIG_ECDSA is not set
-# CONFIG_RSA is not set
+CONFIG_RSA=y
+CONFIG_SPL_RSA=y
+CONFIG_SPL_RSA_VERIFY=y
+CONFIG_RSA_VERIFY=y
+# CONFIG_RSA_VERIFY_WITH_PKEY is not set
+# CONFIG_SPL_RSA_VERIFY_WITH_PKEY is not set
+CONFIG_RSA_SOFTWARE_EXP=y
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_TPM is not set
# CONFIG_SPL_TPM is not set
+# CONFIG_TPL_TPM is not set
#
# Android Verified Boot
@@ -2237,7 +2504,10 @@ CONFIG_SPL_SHA256=y
CONFIG_MD5=y
# CONFIG_SPL_MD5 is not set
CONFIG_CRC8=y
-# CONFIG_SPL_CRC8 is not set
+CONFIG_SPL_CRC8=y
+# CONFIG_TPL_CRC8 is not set
+CONFIG_CRC16=y
+# CONFIG_SPL_CRC16 is not set
CONFIG_CRC32=y
#
@@ -2253,77 +2523,58 @@ CONFIG_ZLIB=y
# CONFIG_ZSTD is not set
# CONFIG_SPL_BZIP2 is not set
# CONFIG_SPL_LZ4 is not set
+# CONFIG_TPL_LZ4 is not set
# CONFIG_SPL_LZMA is not set
+# CONFIG_TPL_LZMA is not set
CONFIG_VPL_LZMA=y
# CONFIG_SPL_LZO is not set
# CONFIG_SPL_GZIP is not set
+# CONFIG_TPL_GZIP is not set
# CONFIG_SPL_ZSTD is not set
CONFIG_ERRNO_STR=y
# CONFIG_HEXDUMP is not set
CONFIG_GETOPT=y
CONFIG_OF_LIBFDT=y
-CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
CONFIG_SYS_FDT_PAD=0x3000
CONFIG_SPL_OF_LIBFDT=y
-CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+CONFIG_TPL_OF_LIBFDT=y
+CONFIG_TPL_OF_LIBFDT_ASSUME_MASK=0xff
#
# System tables
#
+# CONFIG_BLOBLIST_TABLES is not set
CONFIG_GENERATE_SMBIOS_TABLE=y
+# CONFIG_GENERATE_SMBIOS_TABLE_VERBOSE is not set
# CONFIG_LIB_RATIONAL is not set
# CONFIG_SPL_LIB_RATIONAL is not set
+CONFIG_SMBIOS=y
# CONFIG_SMBIOS_PARSER is not set
-CONFIG_EFI_LOADER=y
-CONFIG_CMD_BOOTEFI_BOOTMGR=y
-# CONFIG_EFI_VARIABLE_FILE_STORE is not set
-CONFIG_EFI_VARIABLE_NO_STORE=y
-# CONFIG_EFI_VARIABLES_PRESEED is not set
-CONFIG_EFI_VAR_BUF_SIZE=65536
-# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
-# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
-# CONFIG_EFI_CAPSULE_ON_DISK is not set
-CONFIG_EFI_CAPSULE_MAX=15
-CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
-CONFIG_EFI_DEVICE_PATH_UTIL=y
-CONFIG_EFI_DT_FIXUP=y
-CONFIG_EFI_LOADER_HII=y
-CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
-CONFIG_EFI_UNICODE_CAPITALIZATION=y
-# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
-CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
-CONFIG_EFI_HAVE_RUNTIME_RESET=y
-CONFIG_EFI_RNG_PROTOCOL=y
-CONFIG_EFI_LOAD_FILE2_INITRD=y
-CONFIG_EFI_ECPT=y
-CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
# CONFIG_OPTEE_LIB is not set
# CONFIG_OPTEE_IMAGE is not set
# CONFIG_BOOTM_OPTEE is not set
# CONFIG_TEST_FDTDEC is not set
CONFIG_LIB_ELF=y
CONFIG_LMB=y
-CONFIG_LMB_USE_MAX_REGIONS=y
-CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_LMB_ARCH_MEM_MAP is not set
# CONFIG_PHANDLE_CHECK_SEQ is not set
#
-# FWU Multi Bank Updates
-#
-# CONFIG_POST is not set
-
-#
-# Unit tests
+# Testing
#
# CONFIG_UNIT_TEST is not set
# CONFIG_SPL_UNIT_TEST is not set
+# CONFIG_POST is not set
#
# Tools options
#
CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC16=y
CONFIG_TOOLS_CRC32=y
CONFIG_TOOLS_LIBCRYPTO=y
+CONFIG_TOOLS_KWBIMAGE=y
CONFIG_TOOLS_FIT=y
CONFIG_TOOLS_FIT_FULL_CHECK=y
CONFIG_TOOLS_FIT_PRINT=y
@@ -2337,6 +2588,6 @@ CONFIG_TOOLS_SHA1=y
CONFIG_TOOLS_SHA256=y
CONFIG_TOOLS_SHA384=y
CONFIG_TOOLS_SHA512=y
-# CONFIG_TOOLS_MKEFICAPSULE is not set
+CONFIG_TOOLS_MKEFICAPSULE=y
# CONFIG_FSPI_CONF_HEADER is not set
# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/config/u-boot/gru_bob/target.cfg b/config/u-boot/gru_bob/target.cfg
index f7d4d7d9..e19603c2 100644
--- a/config/u-boot/gru_bob/target.cfg
+++ b/config/u-boot/gru_bob/target.cfg
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
tree="default"
xtree="default"
xarch="aarch64-elf arm-eabi"
diff --git a/config/u-boot/gru_kevin/config/default b/config/u-boot/gru_kevin/config/default
index 466bc96d..310fcb6f 100644
--- a/config/u-boot/gru_kevin/config/default
+++ b/config/u-boot/gru_kevin/config/default
@@ -1,13 +1,17 @@
#
# Automatically generated file; DO NOT EDIT.
-# U-Boot 2023.10 Configuration
+# U-Boot 2025.04 Configuration
#
#
-# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+# Compiler: gcc (Debian 14.2.0-19) 14.2.0
#
CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_HAVE_SETJMP=y
+CONFIG_SUPPORT_LITTLE_ENDIAN=y
CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_64BIT=y
+CONFIG_SPL_64BIT=y
CONFIG_SYS_CACHELINE_SIZE=64
CONFIG_LINKER_LIST_ALIGN=8
# CONFIG_ARC is not set
@@ -37,6 +41,7 @@ CONFIG_SKIP_LOWLEVEL_INIT=y
# CONFIG_TPL_SKIP_LOWLEVEL_INIT is not set
# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set
# CONFIG_SPL_SKIP_LOWLEVEL_INIT_ONLY is not set
+# CONFIG_TPL_SKIP_LOWLEVEL_INIT_ONLY is not set
# CONFIG_SYS_ICACHE_OFF is not set
# CONFIG_SPL_SYS_ICACHE_OFF is not set
# CONFIG_SYS_DCACHE_OFF is not set
@@ -49,10 +54,11 @@ CONFIG_ARM64=y
CONFIG_ARM64_CRC32=y
CONFIG_COUNTER_FREQUENCY=24000000
CONFIG_POSITION_INDEPENDENT=y
-CONFIG_INIT_SP_RELATIVE=y
-CONFIG_SYS_INIT_SP_BSS_OFFSET=524288
+# CONFIG_INIT_SP_RELATIVE is not set
CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE=0x18000000
+# CONFIG_DRIVER_GICV2 is not set
# CONFIG_GIC_V3_ITS is not set
+# CONFIG_GICV3_SUPPORT_GIC600 is not set
CONFIG_STATIC_RELA=y
CONFIG_DMA_ADDR_T_64BIT=y
CONFIG_ARM_ASM_UNIFIED=y
@@ -72,8 +78,10 @@ CONFIG_ARM_SMCCC=y
CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK=y
# CONFIG_USE_ARCH_MEMCPY is not set
# CONFIG_SPL_USE_ARCH_MEMCPY is not set
+# CONFIG_TPL_USE_ARCH_MEMCPY is not set
# CONFIG_USE_ARCH_MEMSET is not set
# CONFIG_SPL_USE_ARCH_MEMSET is not set
+# CONFIG_TPL_USE_ARCH_MEMSET is not set
CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_AT91 is not set
# CONFIG_ARCH_DAVINCI is not set
@@ -81,13 +89,11 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_MVEBU is not set
# CONFIG_ARCH_ORION5X is not set
-# CONFIG_TARGET_STV0991 is not set
# CONFIG_ARCH_BCM283X is not set
# CONFIG_ARCH_BCMSTB is not set
# CONFIG_ARCH_BCMBCA is not set
# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
# CONFIG_TARGET_BCMNS is not set
-# CONFIG_TARGET_BCMNS2 is not set
# CONFIG_TARGET_BCMNS3 is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_S5PC1XX is not set
@@ -99,6 +105,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_OMAP2PLUS is not set
# CONFIG_ARCH_MESON is not set
# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_IMX8 is not set
# CONFIG_ARCH_IMX8M is not set
@@ -117,12 +124,13 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_APPLE is not set
# CONFIG_ARCH_OWL is not set
# CONFIG_ARCH_QEMU is not set
-# CONFIG_ARCH_RMOBILE is not set
+# CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_SNAPDRAGON is not set
# CONFIG_ARCH_SOCFPGA is not set
# CONFIG_ARCH_SUNXI is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_VERSAL is not set
+# CONFIG_ARCH_VERSAL2 is not set
# CONFIG_ARCH_VERSAL_NET is not set
# CONFIG_ARCH_VF610 is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -162,6 +170,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_TARGET_LS1046AQDS is not set
# CONFIG_TARGET_LS1046ARDB is not set
# CONFIG_TARGET_LS1046AFRWY is not set
+# CONFIG_ARCH_SC5XX is not set
# CONFIG_TARGET_SL28 is not set
# CONFIG_TARGET_TEN64 is not set
# CONFIG_ARCH_UNIPHIER is not set
@@ -176,28 +185,30 @@ CONFIG_ARCH_ROCKCHIP=y
# CONFIG_ARCH_ASPEED is not set
# CONFIG_TARGET_DURIAN is not set
# CONFIG_TARGET_POMELO is not set
+# CONFIG_TARGET_PE2201 is not set
# CONFIG_TARGET_PRESIDIO_ASIC is not set
# CONFIG_TARGET_XENGUEST_ARM64 is not set
# CONFIG_ARCH_GXP is not set
-# CONFIG_STATIC_MACH_TYPE is not set
CONFIG_TEXT_BASE=0x18000000
CONFIG_SYS_MALLOC_LEN=0x2000000
-CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_SYS_MALLOC_F_LEN=0x10000
+CONFIG_BLOBLIST_SIZE_RELOC=0x1000
CONFIG_SPL_GPIO=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_NR_DRAM_BANKS=1
CONFIG_SPL_LDSCRIPT="arch/arm/cpu/armv8/u-boot-spl.lds"
CONFIG_ENV_SOURCE_FILE=""
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x3f00000
CONFIG_SF_DEFAULT_SPEED=20000000
CONFIG_SF_DEFAULT_MODE=0x0
-CONFIG_ENV_SIZE=0x8000
+CONFIG_ENV_SIZE=0x1f000
CONFIG_DM_GPIO=y
CONFIG_SPL_DM_SPI=y
-CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-kevin"
-CONFIG_SPL_TEXT_BASE=0xff8c2000
-CONFIG_BOARD_SPECIFIC_OPTIONS=y
-# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3399-gru-kevin"
+CONFIG_DDR_SI_TEST=y
+CONFIG_OF_LIBFDT_OVERLAY=y
CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
CONFIG_DM_RESET=y
CONFIG_SYS_MONITOR_LEN=0
@@ -218,23 +229,33 @@ CONFIG_ROCKCHIP_RK3399=y
# CONFIG_ROCKCHIP_RV1126 is not set
# CONFIG_ROCKCHIP_USB_UART is not set
# CONFIG_SPL_ROCKCHIP_BACK_TO_BROM is not set
+CONFIG_TPL_ROCKCHIP_BACK_TO_BROM=y
CONFIG_ROCKCHIP_COMMON_BOARD=y
CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+CONFIG_TPL_ROCKCHIP_COMMON_BOARD=y
# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set
CONFIG_ROCKCHIP_BOOT_MODE_REG=0
# CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set
CONFIG_ROCKCHIP_STIMER=y
CONFIG_ROCKCHIP_STIMER_BASE=0xff8680a0
-CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x0
+CONFIG_ROCKCHIP_BROM_HELPER=y
# CONFIG_SPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
+CONFIG_ROCKCHIP_DISABLE_FORCE_JTAG=y
+# CONFIG_TPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
# CONFIG_SPL_MMC is not set
CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_ROCKCHIP_COMMON_STACK_ADDR=y
CONFIG_SPL_SERIAL=y
CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
CONFIG_TPL_TEXT_BASE=0xff8c2000
CONFIG_TPL_STACK=0xff8effff
-CONFIG_SPL_DRIVERS_MISC=y
-CONFIG_SPL_STACK_R_ADDR=0x04000000
+CONFIG_TPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_TPL_LIBCOMMON_SUPPORT=y
+CONFIG_TPL_LIBGENERIC_SUPPORT=y
+CONFIG_TPL_SERIAL=y
+# CONFIG_SPL_DRIVERS_MISC is not set
+CONFIG_SPL_STACK_R_ADDR=0x3e00000
# CONFIG_TARGET_CHROMEBOOK_BOB is not set
CONFIG_TARGET_CHROMEBOOK_KEVIN=y
# CONFIG_TARGET_EVB_RK3399 is not set
@@ -242,16 +263,29 @@ CONFIG_TARGET_CHROMEBOOK_KEVIN=y
# CONFIG_TARGET_PINEPHONE_PRO_RK3399 is not set
# CONFIG_TARGET_PUMA_RK3399 is not set
# CONFIG_TARGET_ROCK960_RK3399 is not set
+# CONFIG_TARGET_ROCKPI4_RK3399 is not set
# CONFIG_TARGET_ROCKPRO64_RK3399 is not set
# CONFIG_TARGET_ROC_PC_RK3399 is not set
-CONFIG_SPL_STACK=0xff8effff
-CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_TPL_SYS_MALLOC_F=y
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x8000
+CONFIG_SPL_TEXT_BASE=0x0
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0x3f80000
+CONFIG_SPL_BSS_MAX_SIZE=0x8000
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x200000
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_SYS_LOAD_ADDR=0x800800
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
+CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+CONFIG_SF_DEFAULT_BUS=1
+CONFIG_SF_DEFAULT_CS=0
+CONFIG_SPL_SYS_MALLOC_F=y
CONFIG_ERR_PTR_OFFSET=0x0
CONFIG_SPL_SIZE_LIMIT=0x0
CONFIG_SPL=y
CONFIG_PRE_CON_BUF_ADDR=0x0f200000
CONFIG_PRE_CON_BUF_SZ=4096
-CONFIG_BOOTSTAGE_STASH_ADDR=0
CONFIG_DEBUG_UART_BASE=0xff1a0000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_BOARD_INIT=y
@@ -265,7 +299,7 @@ CONFIG_SPL_SPI=y
# CONFIG_CMO_BY_VA_ONLY is not set
# CONFIG_ARMV8_SPL_EXCEPTION_VECTORS is not set
# CONFIG_ARMV8_MULTIENTRY is not set
-# CONFIG_ARMV8_SET_SMPEN is not set
+CONFIG_ARMV8_SET_SMPEN=y
# CONFIG_ARMV8_SWITCH_TO_EL1 is not set
#
@@ -277,27 +311,22 @@ CONFIG_SPL_SPI=y
CONFIG_PSCI_RESET=y
# CONFIG_ARMV8_PSCI is not set
# CONFIG_ARMV8_EA_EL3_FIRST is not set
-# CONFIG_ARMV8_CRYPTO is not set
-# CONFIG_CMD_DEKBLOB is not set
-# CONFIG_IMX_CAAM_DEK_ENCAP is not set
-# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
-# CONFIG_IMX_SECO_DEK_ENCAP is not set
-# CONFIG_IMX_ELE_DEK_ENCAP is not set
-# CONFIG_CMD_HDMIDETECT is not set
-CONFIG_IMX_DCD_ADDR=0x00910000
-# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
-CONFIG_IMX_CONTAINER_CFG=""
+# CONFIG_ARMV8_UDELAY_EVENT_STREAM is not set
+CONFIG_ARMV8_CRYPTO=y
+CONFIG_ARMV8_CE_SHA1=y
+CONFIG_ARMV8_CE_SHA256=y
CONFIG_SYS_MEM_TOP_HIDE=0x0
-CONFIG_SYS_LOAD_ADDR=0x800800
#
# ARM debug
#
-CONFIG_SPL_PAYLOAD="u-boot.bin"
+CONFIG_TPL_MAX_SIZE=0x2e000
+CONFIG_SPL_PAYLOAD="tpl/u-boot-with-tpl.bin"
CONFIG_BUILD_TARGET=""
# CONFIG_PCI is not set
CONFIG_FWU_NUM_BANKS=2
CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+CONFIG_TPL_SIZE_LIMIT=0x0
CONFIG_DEBUG_UART=y
# CONFIG_AHCI is not set
# CONFIG_OF_BOARD_FIXUP is not set
@@ -306,6 +335,7 @@ CONFIG_DEBUG_UART=y
# Functionality shared between NXP SoCs
#
# CONFIG_NXP_ESBC is not set
+CONFIG_SYS_LITTLE_ENDIAN=y
#
# General setup
@@ -313,7 +343,7 @@ CONFIG_DEBUG_UART=y
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=130200
+CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
@@ -322,6 +352,7 @@ CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_SPL_OPTIMIZE_INLINING is not set
CONFIG_ARCH_SUPPORTS_LTO=y
# CONFIG_LTO is not set
+# CONFIG_TPL_OPTIMIZE_INLINING is not set
CONFIG_CC_HAS_ASM_INLINE=y
# CONFIG_XEN is not set
CONFIG_ENV_VARS_UBOOT_CONFIG=y
@@ -343,9 +374,11 @@ CONFIG_REMAKE_ELF=y
# CONFIG_SYS_CUSTOM_LDSCRIPT is not set
CONFIG_PLATFORM_ELFENTRY="_start"
CONFIG_STACK_SIZE=0x1000000
-CONFIG_SYS_SRAM_BASE=0x0
-CONFIG_SYS_SRAM_SIZE=0x0
# CONFIG_MP is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_HAVE_SYS_UBOOT_START is not set
+CONFIG_SYS_UBOOT_START=0x18000000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
# CONFIG_API is not set
#
@@ -353,58 +386,122 @@ CONFIG_SYS_SRAM_SIZE=0x0
#
#
+# UEFI Support
+#
+CONFIG_EFI_LOADER=y
+CONFIG_EFI_BINARY_EXEC=y
+# CONFIG_EFI_SECURE_BOOT is not set
+
+#
+# UEFI services
+#
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+
+#
+# UEFI Variables
+#
+# CONFIG_EFI_VARIABLE_FILE_STORE is not set
+CONFIG_EFI_VARIABLE_NO_STORE=y
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=131072
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+
+#
+# Capsule support
+#
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+
+#
+# UEFI protocol support
+#
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+# CONFIG_EFI_IP4_CONFIG2_PROTOCOL is not set
+
+#
+# Misc options
+#
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+
+#
+# EFI bootmanager
+#
+CONFIG_EFI_BOOTMGR=y
+# CONFIG_EFI_HTTP_BOOT is not set
+CONFIG_BOOTEFI_HELLO_COMPILE=y
+CONFIG_BOOTEFI_TESTAPP_COMPILE=y
+
+#
# Boot images
#
# CONFIG_ANDROID_BOOT_IMAGE is not set
-CONFIG_FIT=y
# CONFIG_TIMESTAMP is not set
+CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x0
CONFIG_FIT_FULL_CHECK=y
-# CONFIG_FIT_SIGNATURE is not set
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_FIT_RSASSA_PSS is not set
# CONFIG_FIT_CIPHER is not set
# CONFIG_FIT_VERBOSE is not set
# CONFIG_FIT_BEST_MATCH is not set
CONFIG_FIT_PRINT=y
CONFIG_SPL_FIT=y
+# CONFIG_TPL_FIT is not set
# CONFIG_SPL_FIT_PRINT is not set
-# CONFIG_SPL_FIT_FULL_CHECK is not set
-# CONFIG_SPL_FIT_SIGNATURE is not set
+CONFIG_SPL_FIT_FULL_CHECK=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_SPL_FIT_RSASSA_PSS is not set
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_LOAD_FIT_ADDRESS=0x0
# CONFIG_SPL_LOAD_FIT_APPLY_OVERLAY is not set
# CONFIG_SPL_LOAD_FIT_FULL is not set
+# CONFIG_TPL_LOAD_FIT is not set
# CONFIG_SPL_FIT_IMAGE_POST_PROCESS is not set
-CONFIG_SPL_FIT_SOURCE=""
-# CONFIG_USE_SPL_FIT_GENERATOR is not set
CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS_FEATURES=y
+CONFIG_BOOT_DEFAULTS_CMDS=y
CONFIG_BOOT_DEFAULTS=y
CONFIG_BOOTSTD=y
# CONFIG_SPL_BOOTSTD is not set
CONFIG_BOOTSTD_FULL=y
CONFIG_BOOTSTD_DEFAULTS=y
CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTSTD_MENU=y
CONFIG_BOOTMETH_GLOBAL=y
+# CONFIG_BOOTMETH_ANDROID is not set
+# CONFIG_BOOTMETH_CROS is not set
CONFIG_BOOTMETH_EXTLINUX=y
CONFIG_BOOTMETH_EXTLINUX_PXE=y
CONFIG_BOOTMETH_EFILOADER=y
+CONFIG_BOOTMETH_EFI_BOOTMGR=y
CONFIG_BOOTMETH_VBE=y
CONFIG_BOOTMETH_DISTRO=y
# CONFIG_SPL_BOOTMETH_VBE is not set
+CONFIG_TPL_BOOTMETH_VBE=y
CONFIG_BOOTMETH_VBE_REQUEST=y
# CONFIG_SPL_BOOTMETH_VBE_REQUEST is not set
CONFIG_BOOTMETH_VBE_SIMPLE=y
+# CONFIG_BOOTMETH_VBE_ABREC is not set
CONFIG_BOOTMETH_VBE_SIMPLE_OS=y
# CONFIG_SPL_BOOTMETH_VBE_SIMPLE is not set
CONFIG_EXPO=y
CONFIG_BOOTMETH_SCRIPT=y
+# CONFIG_UPL is not set
CONFIG_LEGACY_IMAGE_FORMAT=y
CONFIG_SUPPORT_RAW_INITRD=y
-# CONFIG_OF_BOARD_SETUP is not set
-# CONFIG_OF_SYSTEM_SETUP is not set
-# CONFIG_OF_STDOUT_VIA_ALIAS is not set
-CONFIG_HAVE_TEXT_BASE=y
-# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
-CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_CHROMEOS is not set
# CONFIG_CHROMEOS_VBOOT is not set
# CONFIG_RAMBOOT_PBL is not set
@@ -415,7 +512,6 @@ CONFIG_SYS_BOOT_RAMDISK_HIGH=y
# Boot timing
#
# CONFIG_BOOTSTAGE is not set
-CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
# CONFIG_SHOW_BOOT_PROGRESS is not set
# CONFIG_SPL_SHOW_BOOT_PROGRESS is not set
@@ -444,11 +540,24 @@ CONFIG_BOOTDELAY=2
# Image support
#
# CONFIG_IMAGE_PRE_LOAD is not set
+
+#
+# Devicetree fixup
+#
+# CONFIG_OF_ENV_SETUP is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+# CONFIG_FDT_SIMPLEFB is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_USE_BOOTARGS is not set
# CONFIG_BOOTARGS_SUBST is not set
CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="bootflow scan -lb"
-# CONFIG_USE_PREBOOT is not set
+CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then cls; bootflow boot; fi"
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
+CONFIG_PREBOOT_DEFINED=y
CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-kevin.dtb"
# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set
# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set
@@ -463,14 +572,18 @@ CONFIG_DEFAULT_FDT_FILE="rockchip/rk3399-gru-kevin.dtb"
#
CONFIG_MENU=y
# CONFIG_CONSOLE_RECORD is not set
+CONFIG_SYS_CBSIZE=1024
+CONFIG_SYS_PBSIZE=1044
# CONFIG_DISABLE_CONSOLE is not set
CONFIG_LOGLEVEL=4
CONFIG_SPL_LOGLEVEL=4
+CONFIG_TPL_LOGLEVEL=4
# CONFIG_SILENT_CONSOLE is not set
# CONFIG_SPL_SILENT_CONSOLE is not set
# CONFIG_TPL_SILENT_CONSOLE is not set
CONFIG_PRE_CONSOLE_BUFFER=y
CONFIG_CONSOLE_FLUSH_SUPPORT=y
+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set
CONFIG_CONSOLE_MUX=y
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
@@ -493,6 +606,7 @@ CONFIG_LOG_CONSOLE=y
CONFIG_LOGF_FUNC_PAD=20
# CONFIG_LOG_SYSLOG is not set
# CONFIG_SPL_LOG is not set
+# CONFIG_TPL_LOG is not set
# CONFIG_LOG_ERROR_RETURN is not set
#
@@ -506,7 +620,9 @@ CONFIG_DISPLAY_BOARDINFO_LATE=y
#
# Start-up hooks
#
-# CONFIG_CYCLIC is not set
+CONFIG_CYCLIC=y
+# CONFIG_SPL_CYCLIC is not set
+CONFIG_CYCLIC_MAX_CPU_TIME_US=5000
CONFIG_EVENT=y
CONFIG_EVENT_DYNAMIC=y
# CONFIG_EVENT_DEBUG is not set
@@ -517,7 +633,7 @@ CONFIG_BOARD_EARLY_INIT_R=y
CONFIG_BOARD_LATE_INIT=y
# CONFIG_CLOCKS is not set
# CONFIG_HWCONFIG is not set
-# CONFIG_LAST_STAGE_INIT is not set
+CONFIG_LAST_STAGE_INIT=y
CONFIG_MISC_INIT_R=y
# CONFIG_SYS_MALLOC_BOOTPARAMS is not set
# CONFIG_ID_EEPROM is not set
@@ -527,6 +643,7 @@ CONFIG_MISC_INIT_R=y
# Security support
#
CONFIG_HASH=y
+# CONFIG_HASH_CRC8 is not set
CONFIG_SPL_HASH=y
# CONFIG_STACKPROTECTOR is not set
# CONFIG_BOARD_RNG_SEED is not set
@@ -542,11 +659,11 @@ CONFIG_SPL_HASH=y
#
CONFIG_BLOBLIST=y
CONFIG_SPL_BLOBLIST=y
+# CONFIG_TPL_BLOBLIST is not set
CONFIG_BLOBLIST_FIXED=y
# CONFIG_BLOBLIST_ALLOC is not set
CONFIG_BLOBLIST_ADDR=0x100000
CONFIG_BLOBLIST_SIZE=0x1000
-CONFIG_BLOBLIST_SIZE_RELOC=0x1000
CONFIG_SPL_BLOBLIST_FIXED=y
# CONFIG_SPL_BLOBLIST_ALLOC is not set
CONFIG_SUPPORT_SPL=y
@@ -557,14 +674,11 @@ CONFIG_SUPPORT_TPL=y
#
CONFIG_SPL_FRAMEWORK=y
# CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
-CONFIG_SPL_MAX_SIZE=0x2e000
+CONFIG_SPL_MAX_SIZE=0x40000
CONFIG_SPL_PAD_TO=0x7f8000
-CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-CONFIG_SPL_BSS_START_ADDR=0xff8e0000
# CONFIG_SPL_NO_BSS_LIMIT is not set
CONFIG_SPL_BSS_LIMIT=y
# CONFIG_SPL_FOOTPRINT_LIMIT is not set
-CONFIG_SPL_BSS_MAX_SIZE=0x10000
CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
# CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
# CONFIG_SPL_SHOW_ERRORS is not set
@@ -572,26 +686,29 @@ CONFIG_SPL_BINMAN_SYMBOLS=y
CONFIG_SPL_BINMAN_UBOOT_SYMBOLS=y
CONFIG_HANDOFF=y
CONFIG_SPL_HANDOFF=y
+# CONFIG_SPL_SOC_INIT is not set
CONFIG_SPL_BOARD_INIT=y
+CONFIG_SPL_LOAD_BLOCK=y
# CONFIG_SPL_BOOTROM_SUPPORT is not set
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_FORMAT is not set
+# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
CONFIG_SPL_SYS_MALLOC_SIMPLE=y
-# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
-CONFIG_SPL_STACK_R=y
-CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_SHARES_INIT_SP_ADDR=y
CONFIG_SPL_SEPARATE_BSS=y
-# CONFIG_SYS_SPL_MALLOC is not set
+# CONFIG_SPL_SYS_MALLOC is not set
CONFIG_SPL_BANNER_PRINT=y
# CONFIG_SPL_DISPLAY_PRINT is not set
+CONFIG_SPL_SYS_MMCSD_RAW_MODE=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION_TYPE is not set
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
-# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
# CONFIG_SPL_FIT_IMAGE_TINY is not set
# CONFIG_SPL_CACHE is not set
# CONFIG_SPL_CPU is not set
-# CONFIG_SPL_CRYPTO is not set
+CONFIG_SPL_CRYPTO=y
# CONFIG_SPL_DMA is not set
# CONFIG_SPL_ENV_SUPPORT is not set
# CONFIG_SPL_FS_EXT4 is not set
@@ -602,12 +719,13 @@ CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
# CONFIG_SPL_DM_MAILBOX is not set
# CONFIG_SPL_MEMORY is not set
# CONFIG_SPL_MPC8XXX_INIT_DDR is not set
-# CONFIG_SPL_MTD_SUPPORT is not set
+# CONFIG_SPL_MTD is not set
# CONFIG_SPL_MUSB_NEW is not set
# CONFIG_SPL_NAND_SUPPORT is not set
# CONFIG_SPL_NAND_DRIVERS is not set
# CONFIG_SPL_NAND_ECC is not set
# CONFIG_SPL_NAND_SIMPLE is not set
+# CONFIG_SPL_RELOC_LOADER is not set
# CONFIG_SPL_UBI is not set
CONFIG_SPL_DM_SPI_FLASH=y
# CONFIG_SPL_NET is not set
@@ -621,7 +739,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
# CONFIG_SPL_DM_RESET is not set
# CONFIG_SPL_POWER is not set
# CONFIG_SPL_POWER_DOMAIN is not set
-# CONFIG_SPL_RAM_SUPPORT is not set
+# CONFIG_SPL_RAM_DEVICE is not set
# CONFIG_SPL_REMOTEPROC is not set
# CONFIG_SPL_RTC is not set
# CONFIG_SPL_SATA is not set
@@ -629,7 +747,7 @@ CONFIG_SPL_DM_SPI_FLASH=y
CONFIG_SPL_SPI_FLASH_TINY=y
# CONFIG_SPL_SPI_FLASH_MTD is not set
CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000
+CONFIG_SYS_SPI_U_BOOT_OFFS=0xE0000
# CONFIG_SPL_THERMAL is not set
# CONFIG_SPL_WATCHDOG is not set
# CONFIG_SPL_YMODEM_SUPPORT is not set
@@ -638,25 +756,57 @@ CONFIG_SPL_ATF=y
CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y
# CONFIG_SPL_OPTEE_IMAGE is not set
CONFIG_SPL_TARGET=""
-# CONFIG_TPL is not set
+CONFIG_TPL=y
+
+#
+# TPL configuration options
+#
+CONFIG_TPL_BINMAN_SYMBOLS=y
+CONFIG_TPL_BINMAN_UBOOT_SYMBOLS=y
+CONFIG_TPL_FRAMEWORK=y
+CONFIG_TPL_BANNER_PRINT=y
+# CONFIG_TPL_BOARD_INIT is not set
+CONFIG_TPL_SYS_MALLOC_SIMPLE=y
+CONFIG_TPL_SEPARATE_BSS=y
+CONFIG_TPL_NEEDS_SEPARATE_STACK=y
+# CONFIG_TPL_POWER is not set
+CONFIG_TPL_BOOTROM_SUPPORT=y
+# CONFIG_TPL_CRC32 is not set
+# CONFIG_TPL_DRIVERS_MISC is not set
+# CONFIG_TPL_ENV_SUPPORT is not set
+CONFIG_TPL_GPIO=y
+# CONFIG_TPL_I2C is not set
+# CONFIG_TPL_MPC8XXX_INIT_DDR is not set
+# CONFIG_TPL_MMC is not set
+# CONFIG_TPL_NAND_SUPPORT is not set
+# CONFIG_TPL_PCI is not set
+# CONFIG_TPL_PCH is not set
+# CONFIG_TPL_RAM_SUPPORT is not set
+# CONFIG_TPL_RELOC_LOADER is not set
+# CONFIG_TPL_RTC is not set
+# CONFIG_TPL_SPI_FLASH_SUPPORT is not set
+# CONFIG_TPL_SPI is not set
+# CONFIG_TPL_DM_SPI is not set
+# CONFIG_TPL_DM_SPI_FLASH is not set
+# CONFIG_TPL_YMODEM_SUPPORT is not set
# CONFIG_VPL is not set
-# CONFIG_FDT_SIMPLEFB is not set
-# CONFIG_BMP is not set
+CONFIG_IMAGE_SIGN_INFO=y
+CONFIG_SPL_IMAGE_SIGN_INFO=y
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
#
-# Command line interface
+# Hush flavor to use
#
-CONFIG_CMDLINE=y
-CONFIG_HUSH_PARSER=y
+CONFIG_HUSH_OLD_PARSER=y
+# CONFIG_HUSH_MODERN_PARSER is not set
CONFIG_CMDLINE_EDITING=y
# CONFIG_CMDLINE_PS_SUPPORT is not set
CONFIG_AUTO_COMPLETE=y
CONFIG_SYS_LONGHELP=y
CONFIG_SYS_PROMPT="=> "
CONFIG_SYS_PROMPT_HUSH_PS2="> "
-CONFIG_SYS_MAXARGS=16
-CONFIG_SYS_CBSIZE=1024
-CONFIG_SYS_PBSIZE=1044
+CONFIG_SYS_MAXARGS=64
CONFIG_SYS_XTRACE=y
#
@@ -670,8 +820,11 @@ CONFIG_CMD_BDI=y
# CONFIG_CMD_BDINFO_EXTRA is not set
# CONFIG_CMD_CONFIG is not set
CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_UFETCH is not set
+# CONFIG_CMD_HISTORY is not set
# CONFIG_CMD_LICENSE is not set
# CONFIG_CMD_PMC is not set
+# CONFIG_CMD_SMBIOS is not set
#
# Boot commands
@@ -681,8 +834,11 @@ CONFIG_CMD_BOOTM=y
CONFIG_CMD_BOOTDEV=y
CONFIG_CMD_BOOTFLOW=y
CONFIG_CMD_BOOTFLOW_FULL=y
+CONFIG_CMD_BOOTFLOW_BOOTDELAY=30
CONFIG_CMD_BOOTMETH=y
+CONFIG_CMD_BOOTSTD=y
CONFIG_BOOTM_EFI=y
+CONFIG_BOOTM_ELF=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTI=y
CONFIG_BOOTM_LINUX=y
@@ -691,26 +847,26 @@ CONFIG_BOOTM_NETBSD=y
# CONFIG_BOOTM_OSE is not set
CONFIG_BOOTM_PLAN9=y
CONFIG_BOOTM_RTEMS=y
+# CONFIG_CMD_UPL is not set
CONFIG_CMD_VBE=y
CONFIG_BOOTM_VXWORKS=y
-CONFIG_SYS_BOOTM_LEN=0x4000000
CONFIG_CMD_BOOTEFI=y
-CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+CONFIG_CMD_BOOTEFI_BINARY=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
CONFIG_CMD_BOOTEFI_HELLO=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
CONFIG_CMD_BOOTMENU=y
# CONFIG_CMD_ADTIMG is not set
CONFIG_CMD_ELF=y
+CONFIG_CMD_ELF_BOOTVX=y
+# CONFIG_CMD_ELF_FDT_SETUP is not set
CONFIG_CMD_FDT=y
CONFIG_CMD_GO=y
CONFIG_CMD_RUN=y
CONFIG_CMD_IMI=y
-# CONFIG_CMD_IMLS is not set
CONFIG_CMD_XIMG=y
-# CONFIG_CMD_XXD is not set
+CONFIG_SYS_XIMG_LEN=0x800000
# CONFIG_CMD_SPL is not set
-# CONFIG_CMD_THOR_DOWNLOAD is not set
-# CONFIG_CMD_ZBOOT is not set
#
# Environment commands
@@ -762,7 +918,6 @@ CONFIG_CMD_UNZIP=y
#
# Device access commands
#
-# CONFIG_CMD_ARMFLASH is not set
# CONFIG_CMD_ADC is not set
# CONFIG_CMD_BCB is not set
# CONFIG_CMD_BIND is not set
@@ -770,13 +925,11 @@ CONFIG_CMD_UNZIP=y
# CONFIG_CMD_DEMO is not set
# CONFIG_CMD_DFU is not set
CONFIG_CMD_DM=y
-# CONFIG_CMD_FPGAD is not set
# CONFIG_CMD_FUSE is not set
CONFIG_CMD_GPIO=y
# CONFIG_CMD_GPIO_READ is not set
# CONFIG_CMD_PWM is not set
CONFIG_CMD_GPT=y
-CONFIG_RANDOM_UUID=y
# CONFIG_CMD_GPT_RENAME is not set
# CONFIG_CMD_IDE is not set
# CONFIG_CMD_IO is not set
@@ -794,9 +947,12 @@ CONFIG_CMD_LOADXY_TIMEOUT=90
# CONFIG_CMD_MISC is not set
CONFIG_CMD_MMC=y
# CONFIG_CMD_BKOPS_ENABLE is not set
+# CONFIG_CMD_MMC_REG is not set
# CONFIG_CMD_MMC_SWRITE is not set
+CONFIG_MMC_SPEED_MODE_SET=y
# CONFIG_CMD_CLONE is not set
-# CONFIG_CMD_OSD is not set
+# CONFIG_CMD_MTD is not set
+# CONFIG_CMD_ONENAND is not set
CONFIG_CMD_PART=y
# CONFIG_CMD_PCI is not set
CONFIG_CMD_PINMUX=y
@@ -808,11 +964,9 @@ CONFIG_CMD_SF=y
CONFIG_CMD_SF_TEST=y
CONFIG_CMD_SPI=y
CONFIG_DEFAULT_SPI_BUS=0
-CONFIG_DEFAULT_SPI_MODE=0
-# CONFIG_CMD_TSI148 is not set
-# CONFIG_CMD_UNIVERSE is not set
+CONFIG_DEFAULT_SPI_MODE=0x0
CONFIG_CMD_USB=y
-# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_RKMTD is not set
# CONFIG_CMD_WRITE is not set
#
@@ -823,13 +977,9 @@ CONFIG_CMD_ECHO=y
CONFIG_CMD_ITEST=y
CONFIG_CMD_SOURCE=y
# CONFIG_CMD_SETEXPR is not set
-
-#
-# Android support commands
-#
+# CONFIG_CMD_XXD is not set
CONFIG_CMD_NET=y
CONFIG_CMD_BOOTP=y
-CONFIG_CMD_DHCP=y
# CONFIG_BOOTP_MAY_FAIL is not set
CONFIG_BOOTP_BOOTPATH=y
# CONFIG_BOOTP_VENDOREX is not set
@@ -845,25 +995,27 @@ CONFIG_BOOTP_SUBNETMASK=y
# CONFIG_CMD_PCAP is not set
CONFIG_BOOTP_PXE=y
CONFIG_BOOTP_PXE_CLIENTARCH=0x16
+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set
CONFIG_BOOTP_VCI_STRING="U-Boot.armv8"
-CONFIG_CMD_TFTPBOOT=y
# CONFIG_CMD_TFTPPUT is not set
# CONFIG_CMD_TFTPSRV is not set
CONFIG_NET_TFTP_VARS=y
# CONFIG_CMD_RARP is not set
# CONFIG_CMD_NFS is not set
# CONFIG_SYS_DISABLE_AUTOLOAD is not set
-# CONFIG_CMD_WGET is not set
-CONFIG_CMD_MII=y
-CONFIG_CMD_MDIO=y
-CONFIG_CMD_PING=y
# CONFIG_CMD_CDP is not set
# CONFIG_CMD_SNTP is not set
-# CONFIG_CMD_DNS is not set
# CONFIG_CMD_LINK_LOCAL is not set
# CONFIG_CMD_ETHSW is not set
-CONFIG_CMD_PXE=y
# CONFIG_CMD_WOL is not set
+CONFIG_CMD_DHCP=y
+# CONFIG_CMD_DNS is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_PXE=y
#
# Misc commands
@@ -898,7 +1050,6 @@ CONFIG_CMD_VIDCONSOLE=y
#
# TI specific command line interface
#
-# CONFIG_CMD_DDR3 is not set
#
# Power commands
@@ -933,19 +1084,19 @@ CONFIG_CMD_FAT=y
CONFIG_CMD_FS_GENERIC=y
# CONFIG_CMD_FS_UUID is not set
# CONFIG_CMD_JFFS2 is not set
+# CONFIG_CMD_MTDPARTS is not set
CONFIG_MTDIDS_DEFAULT=""
CONFIG_MTDPARTS_DEFAULT=""
-# CONFIG_CMD_REISER is not set
# CONFIG_CMD_ZFS is not set
#
# Debug commands
#
+CONFIG_CMD_CYCLIC=y
# CONFIG_CMD_DIAG is not set
# CONFIG_CMD_EVENT is not set
CONFIG_CMD_LOG=y
# CONFIG_CMD_UBI is not set
-CONFIG_MMC_SPEED_MODE_SET=y
#
# Partition Types
@@ -954,6 +1105,7 @@ CONFIG_PARTITIONS=y
CONFIG_SPL_PARTITIONS=y
# CONFIG_MAC_PARTITION is not set
# CONFIG_SPL_MAC_PARTITION is not set
+# CONFIG_TEGRA_PARTITION is not set
CONFIG_DOS_PARTITION=y
CONFIG_SPL_DOS_PARTITION=y
CONFIG_ISO_PARTITION=y
@@ -979,26 +1131,35 @@ CONFIG_BINMAN=y
CONFIG_OF_CONTROL=y
CONFIG_OF_REAL=y
CONFIG_SPL_OF_CONTROL=y
-# CONFIG_OF_LIVE is not set
+CONFIG_TPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_UPSTREAM=y
+# CONFIG_OF_UPSTREAM_BUILD_VENDOR is not set
+# CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS is not set
CONFIG_OF_SEPARATE=y
# CONFIG_OF_EMBED is not set
+# CONFIG_OF_INITIAL_DTB_READONLY is not set
# CONFIG_OF_BOARD is not set
# CONFIG_OF_OMIT_DTB is not set
CONFIG_DEVICE_TREE_INCLUDES=""
-CONFIG_OF_LIST="rk3399-gru-kevin"
+CONFIG_OF_LIST="rockchip/rk3399-gru-kevin"
+CONFIG_OF_OVERLAY_LIST=""
# CONFIG_MULTI_DTB_FIT is not set
# CONFIG_SPL_MULTI_DTB_FIT is not set
-CONFIG_SPL_OF_LIST="rk3399-gru-kevin"
+CONFIG_SPL_OF_LIST="rockchip/rk3399-gru-kevin"
CONFIG_OF_TAG_MIGRATE=y
-CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
# CONFIG_OF_DTB_PROPS_REMOVE is not set
# CONFIG_SPL_OF_PLATDATA is not set
CONFIG_SPL_OF_REAL=y
+CONFIG_TPL_OF_REAL=y
+# CONFIG_TPL_OF_PLATDATA is not set
#
# Environment
#
CONFIG_ENV_SUPPORT=y
+CONFIG_ENV_CALLBACK_LIST_STATIC=""
CONFIG_SAVEENV=y
# CONFIG_ENV_OVERWRITE is not set
# CONFIG_OVERWRITE_ETHADDR_ONCE is not set
@@ -1013,7 +1174,6 @@ CONFIG_ENV_IS_NOWHERE=y
# CONFIG_ENV_IS_IN_MMC is not set
# CONFIG_ENV_IS_IN_NAND is not set
# CONFIG_ENV_IS_IN_NVRAM is not set
-# CONFIG_ENV_IS_IN_ONENAND is not set
# CONFIG_ENV_IS_IN_REMOTE is not set
# CONFIG_ENV_IS_IN_SPI_FLASH is not set
# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
@@ -1028,17 +1188,20 @@ CONFIG_SYS_RELOC_GD_ENV_ADDR=y
# CONFIG_USE_ETHPRIME is not set
# CONFIG_USE_HOSTNAME is not set
# CONFIG_VERSION_VARIABLE is not set
+
+#
+# Networking
+#
+# CONFIG_NO_NET is not set
CONFIG_NET=y
+# CONFIG_NET_LWIP is not set
CONFIG_ARP_TIMEOUT=5000
CONFIG_NET_RETRY_COUNT=5
# CONFIG_PROT_UDP is not set
-CONFIG_BOOTDEV_ETH=y
# CONFIG_BOOTP_SEND_HOSTNAME is not set
-# CONFIG_NET_RANDOM_ETHADDR is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_IP_DEFRAG is not set
# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set
-CONFIG_TFTP_BLOCKSIZE=1468
# CONFIG_TFTP_PORT is not set
CONFIG_TFTP_WINDOWSIZE=1
# CONFIG_TFTP_TSIZE is not set
@@ -1055,6 +1218,10 @@ CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64
# CONFIG_USE_SERVERIP is not set
# CONFIG_PROT_TCP is not set
# CONFIG_IPV6 is not set
+CONFIG_BOOTDEV_ETH=y
+# CONFIG_NET_RANDOM_ETHADDR is not set
+# CONFIG_WGET is not set
+CONFIG_TFTP_BLOCKSIZE=1468
CONFIG_SYS_RX_ETH_BUFFER=4
#
@@ -1066,33 +1233,42 @@ CONFIG_SYS_RX_ETH_BUFFER=4
#
CONFIG_DM=y
CONFIG_SPL_DM=y
-CONFIG_DM_WARN=y
+CONFIG_TPL_DM=y
+# CONFIG_DM_WARN is not set
# CONFIG_SPL_DM_WARN is not set
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_STATS is not set
+# CONFIG_SPL_DM_STATS is not set
CONFIG_DM_DEVICE_REMOVE=y
CONFIG_DM_EVENT=y
# CONFIG_SPL_DM_DEVICE_REMOVE is not set
CONFIG_DM_STDIO=y
CONFIG_DM_SEQ_ALIAS=y
CONFIG_SPL_DM_SEQ_ALIAS=y
+# CONFIG_TPL_DM_SEQ_ALIAS is not set
CONFIG_SPL_DM_INLINE_OFNODE=y
+CONFIG_TPL_DM_INLINE_OFNODE=y
# CONFIG_DM_DMA is not set
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
+CONFIG_TPL_REGMAP=y
CONFIG_SYSCON=y
CONFIG_SPL_SYSCON=y
+CONFIG_TPL_SYSCON=y
# CONFIG_DEVRES is not set
CONFIG_SIMPLE_BUS=y
CONFIG_SPL_SIMPLE_BUS=y
+# CONFIG_TPL_SIMPLE_BUS is not set
# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set
CONFIG_OF_TRANSLATE=y
# CONFIG_SPL_OF_TRANSLATE is not set
+# CONFIG_TPL_OF_TRANSLATE is not set
# CONFIG_TRANSLATION_OFFSET is not set
-CONFIG_DM_DEV_READ_INLINE=y
-# CONFIG_OFNODE_MULTI_TREE is not set
+CONFIG_OFNODE_MULTI_TREE=y
+CONFIG_OFNODE_MULTI_TREE_MAX=4
CONFIG_BOUNCE_BUFFER=y
CONFIG_ADC=y
+# CONFIG_SPL_ADC is not set
# CONFIG_ADC_EXYNOS is not set
# CONFIG_ADC_SANDBOX is not set
# CONFIG_SARADC_MESON is not set
@@ -1111,14 +1287,15 @@ CONFIG_SARADC_ROCKCHIP=y
#
CONFIG_BLK=y
CONFIG_SPL_BLK=y
+# CONFIG_TPL_BLK is not set
CONFIG_BLOCK_CACHE=y
# CONFIG_BLKMAP is not set
# CONFIG_SPL_BLOCK_CACHE is not set
# CONFIG_EFI_MEDIA is not set
-# CONFIG_SPL_BLK_FS is not set
# CONFIG_IDE is not set
# CONFIG_LBA48 is not set
# CONFIG_SYS_64BIT_LBA is not set
+# CONFIG_RKMTD is not set
# CONFIG_BOOTCOUNT_LIMIT is not set
#
@@ -1131,25 +1308,32 @@ CONFIG_BLOCK_CACHE=y
#
# CONFIG_CACHE is not set
# CONFIG_L2X0_CACHE is not set
-# CONFIG_V5L2_CACHE is not set
+# CONFIG_ANDES_L2_CACHE is not set
# CONFIG_NCORE_CACHE is not set
# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SIFIVE_PL2 is not set
#
# Clock
#
CONFIG_CLK=y
CONFIG_SPL_CLK=y
+CONFIG_TPL_CLK=y
# CONFIG_SPL_CLK_CCF is not set
# CONFIG_CLK_CCF is not set
+# CONFIG_CLK_GPIO is not set
+# CONFIG_SPL_CLK_GPIO is not set
+# CONFIG_CLK_STUB is not set
# CONFIG_CLK_CDCE9XX is not set
# CONFIG_CLK_ICS8N3QV01 is not set
# CONFIG_CLK_K210 is not set
# CONFIG_CLK_MPC83XX is not set
# CONFIG_CLK_XLNX_CLKWZRD is not set
+# CONFIG_COMMON_CLK_ADI_SHARED is not set
# CONFIG_CLK_AT91 is not set
# CONFIG_CLK_RCAR is not set
# CONFIG_CLK_RCAR_CPG_LIB is not set
+# CONFIG_CLK_SOPHGO_CV1800B is not set
# CONFIG_CLK_SIFIVE is not set
# CONFIG_CLK_TI_AM3_DPLL is not set
# CONFIG_CLK_TI_CTRL is not set
@@ -1219,6 +1403,7 @@ CONFIG_ARM_PSCI_FW=y
# CONFIG_FWU_MDATA is not set
CONFIG_GPIO=y
CONFIG_SPL_DM_GPIO=y
+CONFIG_TPL_DM_GPIO=y
# CONFIG_GPIO_HOG is not set
# CONFIG_SPL_GPIO_HOG is not set
# CONFIG_DM_GPIO_LOOKUP_LABEL is not set
@@ -1229,6 +1414,8 @@ CONFIG_SPL_DM_GPIO=y
# CONFIG_AT91_GPIO is not set
# CONFIG_ATMEL_PIO4 is not set
# CONFIG_ASPEED_GPIO is not set
+# CONFIG_ASPEED_SGPIO is not set
+# CONFIG_ASPEED_G7_GPIO is not set
# CONFIG_DA8XX_GPIO is not set
# CONFIG_FXL6408_GPIO is not set
# CONFIG_HIKEY_GPIO is not set
@@ -1246,6 +1433,7 @@ CONFIG_SPL_DM_GPIO=y
# CONFIG_MXC_GPIO is not set
# CONFIG_MXS_GPIO is not set
# CONFIG_NPCM_GPIO is not set
+# CONFIG_NPCM_SGPIO is not set
# CONFIG_CMD_PCA953X is not set
# CONFIG_PCF8575_GPIO is not set
CONFIG_ROCKCHIP_GPIO=y
@@ -1264,9 +1452,7 @@ CONFIG_ROCKCHIP_GPIO=y
# CONFIG_MPC8XX_GPIO is not set
# CONFIG_NX_GPIO is not set
# CONFIG_NOMADIK_GPIO is not set
-# CONFIG_ZYNQMP_GPIO_MODEPIN is not set
# CONFIG_SLG7XL45106_I2C_GPO is not set
-# CONFIG_TURRIS_OMNIA_MCU is not set
# CONFIG_FTGPIO010 is not set
# CONFIG_ADP5585_GPIO is not set
@@ -1277,6 +1463,7 @@ CONFIG_ROCKCHIP_GPIO=y
CONFIG_I2C=y
CONFIG_DM_I2C=y
CONFIG_SPL_DM_I2C=y
+# CONFIG_TPL_DM_I2C is not set
CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_I2C_CROS_EC_LDO is not set
# CONFIG_I2C_SET_DEFAULT_BUS_NUM is not set
@@ -1295,6 +1482,7 @@ CONFIG_I2C_CROS_EC_TUNNEL=y
# CONFIG_SYS_I2C_OCORES is not set
CONFIG_SYS_I2C_ROCKCHIP=y
# CONFIG_SYS_I2C_SOFT is not set
+# CONFIG_SYS_I2C_S3C24X0 is not set
# CONFIG_SYS_I2C_MV is not set
# CONFIG_SYS_I2C_MVTWSI is not set
# CONFIG_SYS_I2C_XILINX_XIIC is not set
@@ -1306,8 +1494,10 @@ CONFIG_I2C_MUX=y
# CONFIG_I2C_MUX_GPIO is not set
CONFIG_INPUT=y
# CONFIG_SPL_INPUT is not set
+# CONFIG_TPL_INPUT is not set
CONFIG_DM_KEYBOARD=y
# CONFIG_SPL_DM_KEYBOARD is not set
+# CONFIG_TPL_DM_KEYBOARD is not set
# CONFIG_APPLE_SPI_KEYB is not set
# CONFIG_BUTTON_KEYBOARD is not set
CONFIG_CROS_EC_KEYB=y
@@ -1324,6 +1514,8 @@ CONFIG_CROS_EC_KEYB=y
# LED Support
#
# CONFIG_LED is not set
+# CONFIG_LED_BOOT is not set
+# CONFIG_LED_ACTIVITY is not set
# CONFIG_SPL_LED is not set
# CONFIG_LED_STATUS is not set
@@ -1344,6 +1536,7 @@ CONFIG_CROS_EC_KEYB=y
#
CONFIG_MISC=y
CONFIG_SPL_MISC=y
+CONFIG_TPL_MISC=y
# CONFIG_NVMEM is not set
# CONFIG_SPL_NVMEM is not set
# CONFIG_ALTERA_SYSID is not set
@@ -1351,15 +1544,18 @@ CONFIG_SPL_MISC=y
# CONFIG_GATEWORKS_SC is not set
CONFIG_ROCKCHIP_EFUSE=y
# CONFIG_ROCKCHIP_OTP is not set
+CONFIG_ROCKCHIP_IODOMAIN=y
# CONFIG_SIFIVE_OTP is not set
# CONFIG_SMSC_LPC47M is not set
# CONFIG_SMSC_SIO1007 is not set
# CONFIG_VEXPRESS_CONFIG is not set
CONFIG_CROS_EC=y
# CONFIG_SPL_CROS_EC is not set
+# CONFIG_TPL_CROS_EC is not set
# CONFIG_CROS_EC_I2C is not set
# CONFIG_CROS_EC_LPC is not set
# CONFIG_SPL_CROS_EC_LPC is not set
+# CONFIG_TPL_CROS_EC_LPC is not set
CONFIG_CROS_EC_SPI=y
# CONFIG_DS4510 is not set
# CONFIG_FSL_SEC_MON is not set
@@ -1370,6 +1566,7 @@ CONFIG_PWRSEQ=y
# CONFIG_SPL_PWRSEQ is not set
# CONFIG_PCA9551_LED is not set
# CONFIG_TEST_DRV is not set
+# CONFIG_TURRIS_OMNIA_MCU is not set
# CONFIG_USB_HUB_USB251XB is not set
# CONFIG_TWL4030_LED is not set
# CONFIG_WINBOND_W83627 is not set
@@ -1385,6 +1582,7 @@ CONFIG_PWRSEQ=y
# CONFIG_MICROCHIP_FLEXCOM is not set
# CONFIG_ESM_PMIC is not set
# CONFIG_SL28CPLD is not set
+# CONFIG_SPL_SOCFPGA_DT_REG is not set
#
# MMC Host controller Support
@@ -1395,6 +1593,7 @@ CONFIG_MMC_PWRSEQ=y
# CONFIG_MMC_BROKEN_CD is not set
CONFIG_DM_MMC=y
CONFIG_SPL_DM_MMC=y
+# CONFIG_TPL_DM_MMC is not set
# CONFIG_MMC_SPI is not set
# CONFIG_ARM_PL180_MMCI is not set
CONFIG_MMC_QUIRKS=y
@@ -1403,6 +1602,7 @@ CONFIG_MMC_HW_PARTITIONING=y
# CONFIG_SUPPORT_EMMC_RPMB is not set
# CONFIG_SUPPORT_EMMC_BOOT is not set
CONFIG_MMC_IO_VOLTAGE=y
+CONFIG_MMC_SUPPORTS_TUNING=y
CONFIG_MMC_UHS_SUPPORT=y
CONFIG_MMC_HS400_ES_SUPPORT=y
CONFIG_MMC_HS400_SUPPORT=y
@@ -1420,8 +1620,11 @@ CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
# CONFIG_MMC_SDHCI_ADMA is not set
+# CONFIG_MMC_SDHCI_ADMA_FORCE_32BIT is not set
+CONFIG_MMC_SDHCI_ADMA_64BIT=y
# CONFIG_MMC_SDHCI_BCMSTB is not set
# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_CV1800B is not set
# CONFIG_MMC_SDHCI_IPROC is not set
# CONFIG_MMC_SDHCI_F_SDH30 is not set
# CONFIG_MMC_SDHCI_KONA is not set
@@ -1429,6 +1632,7 @@ CONFIG_MMC_SDHCI_SDMA=y
# CONFIG_MMC_SDHCI_NPCM is not set
CONFIG_MMC_SDHCI_ROCKCHIP=y
# CONFIG_MMC_SDHCI_S5P is not set
+# CONFIG_MMC_SDHCI_SNPS is not set
# CONFIG_MMC_SDHCI_STI is not set
# CONFIG_MMC_SDHCI_XENON is not set
# CONFIG_MMC_SDHCI_TANGIER is not set
@@ -1442,11 +1646,13 @@ CONFIG_MMC_SDHCI_ROCKCHIP=y
#
# MTD Support
#
-# CONFIG_MTD is not set
+CONFIG_MTD=y
# CONFIG_DM_MTD is not set
# CONFIG_MTD_NOR_FLASH is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_SYS_MTDPARTS_RUNTIME is not set
# CONFIG_FLASH_CFI_DRIVER is not set
-# CONFIG_HBMC_AM654 is not set
# CONFIG_SAMSUNG_ONENAND is not set
# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set
# CONFIG_MTD_RAW_NAND is not set
@@ -1456,28 +1662,31 @@ CONFIG_MMC_SDHCI_ROCKCHIP=y
#
CONFIG_DM_SPI_FLASH=y
CONFIG_SPI_FLASH=y
-CONFIG_SF_DEFAULT_BUS=1
-CONFIG_SF_DEFAULT_CS=0
# CONFIG_BOOTDEV_SPI_FLASH is not set
# CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
CONFIG_SPI_FLASH_SMART_HWCAPS=y
# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set
# CONFIG_SPI_FLASH_SOFT_RESET is not set
# CONFIG_SPI_FLASH_BAR is not set
+CONFIG_SPI_FLASH_LOCK=y
CONFIG_SPI_FLASH_UNLOCK_ALL=y
# CONFIG_SPI_FLASH_ATMEL is not set
# CONFIG_SPI_FLASH_EON is not set
CONFIG_SPI_FLASH_GIGADEVICE=y
# CONFIG_SPI_FLASH_ISSI is not set
# CONFIG_SPI_FLASH_MACRONIX is not set
+# CONFIG_SPI_FLASH_PUYA is not set
+# CONFIG_SPI_FLASH_SILICONKAISER is not set
# CONFIG_SPI_FLASH_SPANSION is not set
# CONFIG_SPI_FLASH_STMICRO is not set
# CONFIG_SPI_FLASH_SST is not set
CONFIG_SPI_FLASH_WINBOND=y
# CONFIG_SPI_FLASH_XMC is not set
# CONFIG_SPI_FLASH_XTX is not set
+# CONFIG_SPI_FLASH_ZBIT is not set
CONFIG_SPI_FLASH_USE_4K_SECTORS=y
# CONFIG_SPI_FLASH_DATAFLASH is not set
+# CONFIG_SPI_FLASH_MTD is not set
#
# UBI support
@@ -1495,6 +1704,7 @@ CONFIG_SPI_FLASH_USE_4K_SECTORS=y
# CONFIG_MV88E6352_SWITCH is not set
CONFIG_PHYLIB=y
# CONFIG_PHY_ADDR_ENABLE is not set
+CONFIG_PHY_ANEG_TIMEOUT=4000
# CONFIG_B53_SWITCH is not set
# CONFIG_MV88E61XX_SWITCH is not set
# CONFIG_PHYLIB_10G is not set
@@ -1538,12 +1748,13 @@ CONFIG_DM_ETH=y
# CONFIG_DM_MDIO is not set
# CONFIG_DM_ETH_PHY is not set
CONFIG_NETDEVICES=y
-# CONFIG_PHY_GIGE is not set
+CONFIG_PHY_GIGE=y
# CONFIG_ALTERA_TSE is not set
# CONFIG_BCM_SF2_ETH is not set
# CONFIG_BCMGENET is not set
# CONFIG_BNXT_ETH is not set
# CONFIG_CALXEDA_XGMAC is not set
+# CONFIG_DWC_ETH_XGMAC is not set
# CONFIG_DRIVER_DM9000 is not set
# CONFIG_DWC_ETH_QOS is not set
# CONFIG_EEPRO100 is not set
@@ -1557,7 +1768,6 @@ CONFIG_ETH_DESIGNWARE=y
# CONFIG_FTMAC100 is not set
# CONFIG_FTGMAC100 is not set
# CONFIG_MCFFEC is not set
-# CONFIG_FSLDMAFEC is not set
# CONFIG_KS8851_MLL is not set
# CONFIG_LITEETH is not set
# CONFIG_MACB is not set
@@ -1586,6 +1796,7 @@ CONFIG_GMAC_ROCKCHIP=y
# CONFIG_SYS_DPAA_QBMAN is not set
# CONFIG_TSEC_ENET is not set
# CONFIG_MEDIATEK_ETH is not set
+# CONFIG_HIFEMAC_ETH is not set
# CONFIG_HIGMACV300_ETH is not set
# CONFIG_NVME is not set
# CONFIG_NVME_APPLE is not set
@@ -1611,6 +1822,7 @@ CONFIG_PHY=y
# Rockchip PHY driver
#
# CONFIG_PHY_ROCKCHIP_INNO_DSIDPHY is not set
+# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
# CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY is not set
# CONFIG_PHY_ROCKCHIP_PCIE is not set
@@ -1632,6 +1844,7 @@ CONFIG_PINMUX=y
# CONFIG_PINCONF is not set
CONFIG_PINCONF_RECURSIVE=y
CONFIG_SPL_PINCTRL=y
+# CONFIG_TPL_PINCTRL is not set
CONFIG_SPL_PINCTRL_FULL=y
CONFIG_SPL_PINCTRL_GENERIC=y
CONFIG_SPL_PINMUX=y
@@ -1649,10 +1862,13 @@ CONFIG_SPL_PINCONF_RECURSIVE=y
# CONFIG_PINCTRL_K210 is not set
CONFIG_PINCTRL_ROCKCHIP=y
CONFIG_SPL_PINCTRL_ROCKCHIP=y
+# CONFIG_PINCTRL_TEGRA is not set
+# CONFIG_SPL_PINCTRL_TEGRA is not set
CONFIG_POWER=y
# CONFIG_POWER_LEGACY is not set
# CONFIG_ACPI_PMC is not set
# CONFIG_SPL_ACPI_PMC is not set
+# CONFIG_TPL_ACPI_PMC is not set
#
# Power Domain Support
@@ -1678,6 +1894,7 @@ CONFIG_SPL_PMIC_CHILDREN=y
# CONFIG_SPL_DM_PMIC_PCA9450 is not set
# CONFIG_DM_PMIC_PFUZE100 is not set
# CONFIG_SPL_DM_PMIC_PFUZE100 is not set
+# CONFIG_DM_PMIC_MAX77663 is not set
# CONFIG_DM_PMIC_MAX77686 is not set
# CONFIG_DM_PMIC_MAX8998 is not set
# CONFIG_DM_PMIC_MC34708 is not set
@@ -1695,12 +1912,14 @@ CONFIG_PMIC_RK8XX=y
# CONFIG_PMIC_LP873X is not set
# CONFIG_PMIC_LP87565 is not set
# CONFIG_DM_PMIC_TPS65910 is not set
+# CONFIG_DM_PMIC_TPS80031 is not set
# CONFIG_PMIC_STPMIC1 is not set
# CONFIG_SPL_PMIC_PALMAS is not set
# CONFIG_SPL_PMIC_LP873X is not set
# CONFIG_SPL_PMIC_LP87565 is not set
# CONFIG_PMIC_TPS65941 is not set
# CONFIG_PMIC_TPS65219 is not set
+# CONFIG_PMIC_RAA215300 is not set
# CONFIG_PMIC_TPS65217 is not set
# CONFIG_POWER_TPS65218 is not set
# CONFIG_POWER_TPS62362 is not set
@@ -1710,13 +1929,15 @@ CONFIG_DM_REGULATOR=y
CONFIG_REGULATOR_PWM=y
# CONFIG_SPL_REGULATOR_PWM is not set
CONFIG_DM_REGULATOR_COMMON=y
+CONFIG_SPL_DM_REGULATOR_COMMON=y
CONFIG_DM_REGULATOR_FIXED=y
-# CONFIG_SPL_DM_REGULATOR_FIXED is not set
+CONFIG_SPL_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
# CONFIG_SPL_DM_REGULATOR_GPIO is not set
CONFIG_REGULATOR_RK8XX=y
# CONFIG_DM_REGULATOR_PBIAS is not set
# CONFIG_DM_REGULATOR_TPS62360 is not set
+# CONFIG_DM_REGULATOR_TPS6287X is not set
# CONFIG_DM_REGULATOR_ANATOP is not set
# CONFIG_DM_REGULATOR_SCMI is not set
# CONFIG_TPS6586X_POWER is not set
@@ -1737,6 +1958,7 @@ CONFIG_PWM_ROCKCHIP=y
# CONFIG_U_QE is not set
CONFIG_RAM=y
CONFIG_SPL_RAM=y
+CONFIG_TPL_RAM=y
# CONFIG_STM32_SDRAM is not set
# CONFIG_MPC83XX_SDRAM is not set
# CONFIG_K3_DDRSS is not set
@@ -1758,6 +1980,7 @@ CONFIG_RAM_ROCKCHIP_DEBUG=y
#
# Remote Processor drivers
#
+CONFIG_REMOTEPROC_MAX_FW_SIZE=0x10000
#
# Reset Controller Support
@@ -1770,17 +1993,21 @@ CONFIG_RESET_ROCKCHIP=y
# CONFIG_RESET_SCMI is not set
# CONFIG_RESET_DRA7 is not set
CONFIG_DM_RNG=y
+# CONFIG_SPL_DM_RNG is not set
# CONFIG_RNG_MSM is not set
# CONFIG_RNG_NPCM is not set
CONFIG_RNG_ROCKCHIP=y
# CONFIG_RNG_IPROC200 is not set
# CONFIG_RNG_SMCCC_TRNG is not set
+# CONFIG_RNG_ARM_RNDR is not set
+# CONFIG_RNG_EXYNOS is not set
#
# Real Time Clock
#
# CONFIG_DM_RTC is not set
# CONFIG_SPL_DM_RTC is not set
+# CONFIG_TPL_DM_RTC is not set
# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set
# CONFIG_RTC_DS1337 is not set
# CONFIG_RTC_DS1338 is not set
@@ -1788,28 +2015,30 @@ CONFIG_RNG_ROCKCHIP=y
# CONFIG_RTC_DS3231 is not set
# CONFIG_RTC_PCF8563 is not set
# CONFIG_RTC_PT7C4338 is not set
-# CONFIG_RTC_PL031 is not set
# CONFIG_RTC_S35392A is not set
# CONFIG_RTC_MC13XXX is not set
# CONFIG_RTC_MC146818 is not set
# CONFIG_RTC_M41T62 is not set
# CONFIG_SCSI is not set
-# CONFIG_DM_SCSI is not set
CONFIG_SERIAL=y
CONFIG_BAUDRATE=115200
+# CONFIG_DEFAULT_ENV_IS_RW is not set
CONFIG_REQUIRE_SERIAL_CONSOLE=y
# CONFIG_SPECIFY_CONSOLE_INDEX is not set
CONFIG_SERIAL_PRESENT=y
CONFIG_SPL_SERIAL_PRESENT=y
+CONFIG_TPL_SERIAL_PRESENT=y
CONFIG_DM_SERIAL=y
# CONFIG_SERIAL_RX_BUFFER is not set
# CONFIG_SERIAL_PUTS is not set
# CONFIG_SERIAL_SEARCH_ALL is not set
# CONFIG_SERIAL_PROBE_ALL is not set
CONFIG_SPL_DM_SERIAL=y
+CONFIG_TPL_DM_SERIAL=y
# CONFIG_VPL_DM_SERIAL is not set
CONFIG_DEBUG_UART_NS16550=y
CONFIG_SPL_DEBUG_UART_BASE=0xff1a0000
+CONFIG_TPL_DEBUG_UART_BASE=0xff1a0000
CONFIG_DEBUG_UART_SHIFT=2
# CONFIG_DEBUG_UART_ANNOUNCE is not set
# CONFIG_DEBUG_UART_SKIP_INIT is not set
@@ -1838,11 +2067,14 @@ CONFIG_SYS_NS16550_MEM32=y
# CONFIG_MSM_GENI_SERIAL is not set
# CONFIG_MXS_AUART_SERIAL is not set
# CONFIG_OMAP_SERIAL is not set
+# CONFIG_HTIF_CONSOLE is not set
# CONFIG_SIFIVE_SERIAL is not set
# CONFIG_ZYNQ_SERIAL is not set
# CONFIG_MTK_SERIAL is not set
# CONFIG_MT7620_SERIAL is not set
# CONFIG_NPCM_SERIAL is not set
+# CONFIG_SM is not set
+# CONFIG_MESON_SM is not set
# CONFIG_SMEM is not set
#
@@ -1854,6 +2086,8 @@ CONFIG_SYS_NS16550_MEM32=y
# SOC (System On Chip) specific Drivers
#
# CONFIG_SOC_DEVICE is not set
+# CONFIG_SOC_QCOM is not set
+# CONFIG_SOC_SAMSUNG is not set
# CONFIG_SOC_TI is not set
CONFIG_SPI=y
CONFIG_DM_SPI=y
@@ -1862,26 +2096,18 @@ CONFIG_SPI_MEM=y
# CONFIG_ALTERA_SPI is not set
# CONFIG_APPLE_SPI is not set
# CONFIG_ATCSPI200_SPI is not set
-# CONFIG_ATMEL_SPI is not set
-# CONFIG_BCMSTB_SPI is not set
# CONFIG_CORTINA_SFLASH is not set
# CONFIG_CADENCE_QSPI is not set
-# CONFIG_CF_SPI is not set
+# CONFIG_CV1800B_SPIF is not set
# CONFIG_DESIGNWARE_SPI is not set
-# CONFIG_EXYNOS_SPI is not set
-# CONFIG_FSL_DSPI is not set
# CONFIG_FSL_QSPI is not set
# CONFIG_GXP_SPI is not set
-# CONFIG_ICH_SPI is not set
# CONFIG_IPROC_QSPI is not set
-# CONFIG_KIRKWOOD_SPI is not set
# CONFIG_MICROCHIP_COREQSPI is not set
-# CONFIG_MPC8XXX_SPI is not set
# CONFIG_MTK_SNOR is not set
# CONFIG_MTK_SNFI_SPI is not set
# CONFIG_MTK_SPIM is not set
# CONFIG_MVEBU_A3700_SPI is not set
-# CONFIG_MXS_SPI is not set
# CONFIG_SPI_MXIC is not set
# CONFIG_NPCM_FIU_SPI is not set
# CONFIG_NPCM_PSPI is not set
@@ -1895,17 +2121,11 @@ CONFIG_ROCKCHIP_SPI=y
# CONFIG_SOFT_SPI is not set
# CONFIG_SPI_SN_F_OSPI is not set
# CONFIG_SPI_SUNXI is not set
-# CONFIG_TEGRA114_SPI is not set
-# CONFIG_TEGRA20_SFLASH is not set
-# CONFIG_TEGRA20_SLINK is not set
-# CONFIG_TEGRA210_QSPI is not set
-# CONFIG_TI_QSPI is not set
# CONFIG_XILINX_SPI is not set
# CONFIG_ZYNQ_SPI is not set
# CONFIG_ZYNQ_QSPI is not set
# CONFIG_ZYNQMP_GQSPI is not set
-# CONFIG_SH_QSPI is not set
-# CONFIG_MXC_SPI is not set
+# CONFIG_SPI_STACKED_PARALLEL is not set
#
# SPMI support
@@ -1918,8 +2138,10 @@ CONFIG_ROCKCHIP_SPI=y
#
CONFIG_SYSRESET=y
CONFIG_SPL_SYSRESET=y
+CONFIG_TPL_SYSRESET=y
CONFIG_SYSRESET_CMD_RESET=y
-# CONFIG_SYSRESET_CMD_POWEROFF is not set
+CONFIG_SYSRESET_CMD_POWEROFF=y
+# CONFIG_SYSRESET_CV1800B is not set
# CONFIG_POWEROFF_GPIO is not set
# CONFIG_SYSRESET_GPIO is not set
# CONFIG_SYSRESET_PSCI is not set
@@ -1950,9 +2172,9 @@ CONFIG_SPL_DM_USB=y
CONFIG_USB_HOST=y
# CONFIG_SPL_USB_HOST is not set
CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_DWC3=y
-CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
-# CONFIG_USB_XHCI_PCI is not set
+# CONFIG_USB_XHCI_DWC3 is not set
+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set
+# CONFIG_USB_XHCI_GENERIC is not set
# CONFIG_USB_XHCI_FSL is not set
# CONFIG_USB_XHCI_BRCM is not set
CONFIG_USB_EHCI_HCD=y
@@ -1977,9 +2199,11 @@ CONFIG_USB_DWC3=y
# Platform Glue Driver Support
#
# CONFIG_USB_DWC3_OMAP is not set
-# CONFIG_USB_DWC3_GENERIC is not set
+CONFIG_USB_DWC3_GENERIC=y
# CONFIG_SPL_USB_DWC3_GENERIC is not set
+# CONFIG_USB_DWC3_AM62 is not set
# CONFIG_USB_DWC3_LAYERSCAPE is not set
+# CONFIG_USB_DWC3_STI is not set
#
# PHY Subsystem
@@ -2004,6 +2228,7 @@ CONFIG_USB_DWC3=y
#
# CONFIG_TWL4030_USB is not set
# CONFIG_ROCKCHIP_USB2_PHY is not set
+# CONFIG_TYPEC_TCPM is not set
#
# ULPI drivers
@@ -2046,7 +2271,7 @@ CONFIG_VIDEO=y
CONFIG_VIDEO_FONT_16X32=y
CONFIG_VIDEO_LOGO=y
CONFIG_BACKLIGHT=y
-CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0
+CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0x0
# CONFIG_VIDEO_COPY is not set
CONFIG_VIDEO_DAMAGE=y
CONFIG_BACKLIGHT_PWM=y
@@ -2061,6 +2286,8 @@ CONFIG_CONSOLE_NORMAL=y
# CONFIG_CONSOLE_TRUETYPE is not set
CONFIG_SYS_WHITE_ON_BLACK=y
# CONFIG_NO_FB_CLEAR is not set
+CONFIG_VIDEO_SYNC_MS=100
+CONFIG_VIDEO_SYNC_CYCLIC_MS=10
CONFIG_PANEL=y
CONFIG_SIMPLE_PANEL=y
# CONFIG_PANEL_HX8238D is not set
@@ -2077,9 +2304,12 @@ CONFIG_SIMPLE_PANEL=y
# CONFIG_VIDEO_LCD_ENDEAVORU is not set
# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set
# CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set
+# CONFIG_VIDEO_LCD_LG_LD070WX3 is not set
# CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set
# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set
+# CONFIG_VIDEO_LCD_SAMSUNG_LTL106HL02 is not set
+# CONFIG_VIDEO_LCD_SHARP_LQ101R1SX01 is not set
# CONFIG_VIDEO_LCD_SSD2828 is not set
# CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set
# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
@@ -2106,7 +2336,9 @@ CONFIG_DISPLAY_ROCKCHIP_EDP=y
# CONFIG_VIDEO_TIDSS is not set
# CONFIG_VIDEO_TEGRA124 is not set
# CONFIG_VIDEO_BRIDGE is not set
+# CONFIG_VIDEO_BRIDGE_PARADE_DP501 is not set
# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set
+# CONFIG_VIDEO_BRIDGE_TOSHIBA_TC358768 is not set
# CONFIG_VIDEO_TEGRA20 is not set
# CONFIG_VIDEO_DSI_TEGRA30 is not set
# CONFIG_TEGRA_BACKLIGHT_PWM is not set
@@ -2119,6 +2351,7 @@ CONFIG_CONSOLE_SCROLL_LINES=1
# CONFIG_OSD is not set
# CONFIG_VIDEO_REMOVE is not set
# CONFIG_SPLASH_SCREEN is not set
+# CONFIG_BMP is not set
CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000
CONFIG_VIDEO_BMP_RLE8=y
# CONFIG_BMP_16BPP is not set
@@ -2145,7 +2378,6 @@ CONFIG_VIDEO_BMP_RLE8=y
# Watchdog Timer Support
#
# CONFIG_WATCHDOG is not set
-CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
# CONFIG_IMX_WATCHDOG is not set
# CONFIG_ULP_WATCHDOG is not set
# CONFIG_WDT is not set
@@ -2167,7 +2399,6 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
# CONFIG_UBIFS_SILENCE_MSG is not set
# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set
# CONFIG_FS_CRAMFS is not set
-# CONFIG_YAFFS2 is not set
# CONFIG_FS_SQUASHFS is not set
# CONFIG_FS_EROFS is not set
@@ -2179,41 +2410,77 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
# CONFIG_PHYSMEM is not set
# CONFIG_BCH is not set
# CONFIG_BINMAN_FDT is not set
+CONFIG_BINMAN_DTB=""
# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
CONFIG_CHARSET=y
# CONFIG_DYNAMIC_CRC_TABLE is not set
CONFIG_LIB_UUID=y
+CONFIG_RANDOM_UUID=y
CONFIG_SPL_LIB_UUID=y
# CONFIG_SEMIHOSTING is not set
# CONFIG_SPL_SEMIHOSTING is not set
CONFIG_PRINTF=y
CONFIG_SPL_PRINTF=y
+CONFIG_TPL_PRINTF=y
CONFIG_SPRINTF=y
CONFIG_SPL_SPRINTF=y
+CONFIG_TPL_SPRINTF=y
CONFIG_STRTO=y
CONFIG_SPL_STRTO=y
+CONFIG_TPL_STRTO=y
CONFIG_SYS_HZ=1000
CONFIG_SPL_USE_TINY_PRINTF=y
+CONFIG_TPL_USE_TINY_PRINTF=y
CONFIG_PANIC_HANG=y
CONFIG_REGEX=y
CONFIG_LIB_RAND=y
# CONFIG_LIB_HW_RAND is not set
CONFIG_SUPPORT_ACPI=y
# CONFIG_ACPI is not set
+# CONFIG_SPL_ACPI is not set
# CONFIG_SPL_TINY_MEMSET is not set
+CONFIG_TPL_TINY_MEMSET=y
# CONFIG_BITREVERSE is not set
# CONFIG_TRACE is not set
# CONFIG_CIRCBUF is not set
CONFIG_CMD_DHRYSTONE=y
#
+# Alternative crypto libraries
+#
+CONFIG_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_MBEDTLS_LIB is not set
+CONFIG_LEGACY_HASHING=y
+CONFIG_SHA1_LEGACY=y
+CONFIG_SHA256_LEGACY=y
+CONFIG_MD5_LEGACY=y
+CONFIG_LEGACY_CRYPTO=y
+CONFIG_SPL_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_SPL_MBEDTLS_LIB is not set
+CONFIG_SPL_LEGACY_HASHING=y
+CONFIG_SPL_SHA1_LEGACY=y
+CONFIG_SPL_SHA256_LEGACY=y
+CONFIG_SPL_LEGACY_CRYPTO=y
+CONFIG_TPL_LEGACY_HASHING_AND_CRYPTO=y
+# CONFIG_TPL_MBEDTLS_LIB is not set
+CONFIG_TPL_LEGACY_HASHING=y
+
+#
# Security support
#
# CONFIG_AES is not set
# CONFIG_ECDSA is not set
-# CONFIG_RSA is not set
+CONFIG_RSA=y
+CONFIG_SPL_RSA=y
+CONFIG_SPL_RSA_VERIFY=y
+CONFIG_RSA_VERIFY=y
+# CONFIG_RSA_VERIFY_WITH_PKEY is not set
+# CONFIG_SPL_RSA_VERIFY_WITH_PKEY is not set
+CONFIG_RSA_SOFTWARE_EXP=y
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
# CONFIG_TPM is not set
# CONFIG_SPL_TPM is not set
+# CONFIG_TPL_TPM is not set
#
# Android Verified Boot
@@ -2237,7 +2504,10 @@ CONFIG_SPL_SHA256=y
CONFIG_MD5=y
# CONFIG_SPL_MD5 is not set
CONFIG_CRC8=y
-# CONFIG_SPL_CRC8 is not set
+CONFIG_SPL_CRC8=y
+# CONFIG_TPL_CRC8 is not set
+CONFIG_CRC16=y
+# CONFIG_SPL_CRC16 is not set
CONFIG_CRC32=y
#
@@ -2253,77 +2523,58 @@ CONFIG_ZLIB=y
# CONFIG_ZSTD is not set
# CONFIG_SPL_BZIP2 is not set
# CONFIG_SPL_LZ4 is not set
+# CONFIG_TPL_LZ4 is not set
# CONFIG_SPL_LZMA is not set
+# CONFIG_TPL_LZMA is not set
CONFIG_VPL_LZMA=y
# CONFIG_SPL_LZO is not set
# CONFIG_SPL_GZIP is not set
+# CONFIG_TPL_GZIP is not set
# CONFIG_SPL_ZSTD is not set
CONFIG_ERRNO_STR=y
# CONFIG_HEXDUMP is not set
CONFIG_GETOPT=y
CONFIG_OF_LIBFDT=y
-CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
CONFIG_SYS_FDT_PAD=0x3000
CONFIG_SPL_OF_LIBFDT=y
-CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+CONFIG_TPL_OF_LIBFDT=y
+CONFIG_TPL_OF_LIBFDT_ASSUME_MASK=0xff
#
# System tables
#
+# CONFIG_BLOBLIST_TABLES is not set
CONFIG_GENERATE_SMBIOS_TABLE=y
+# CONFIG_GENERATE_SMBIOS_TABLE_VERBOSE is not set
# CONFIG_LIB_RATIONAL is not set
# CONFIG_SPL_LIB_RATIONAL is not set
+CONFIG_SMBIOS=y
# CONFIG_SMBIOS_PARSER is not set
-CONFIG_EFI_LOADER=y
-CONFIG_CMD_BOOTEFI_BOOTMGR=y
-# CONFIG_EFI_VARIABLE_FILE_STORE is not set
-CONFIG_EFI_VARIABLE_NO_STORE=y
-# CONFIG_EFI_VARIABLES_PRESEED is not set
-CONFIG_EFI_VAR_BUF_SIZE=65536
-# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
-# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
-# CONFIG_EFI_CAPSULE_ON_DISK is not set
-CONFIG_EFI_CAPSULE_MAX=15
-CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
-CONFIG_EFI_DEVICE_PATH_UTIL=y
-CONFIG_EFI_DT_FIXUP=y
-CONFIG_EFI_LOADER_HII=y
-CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
-CONFIG_EFI_UNICODE_CAPITALIZATION=y
-# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
-CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
-CONFIG_EFI_HAVE_RUNTIME_RESET=y
-CONFIG_EFI_RNG_PROTOCOL=y
-CONFIG_EFI_LOAD_FILE2_INITRD=y
-CONFIG_EFI_ECPT=y
-CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
# CONFIG_OPTEE_LIB is not set
# CONFIG_OPTEE_IMAGE is not set
# CONFIG_BOOTM_OPTEE is not set
# CONFIG_TEST_FDTDEC is not set
CONFIG_LIB_ELF=y
CONFIG_LMB=y
-CONFIG_LMB_USE_MAX_REGIONS=y
-CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_LMB_ARCH_MEM_MAP is not set
# CONFIG_PHANDLE_CHECK_SEQ is not set
#
-# FWU Multi Bank Updates
-#
-# CONFIG_POST is not set
-
-#
-# Unit tests
+# Testing
#
# CONFIG_UNIT_TEST is not set
# CONFIG_SPL_UNIT_TEST is not set
+# CONFIG_POST is not set
#
# Tools options
#
CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC16=y
CONFIG_TOOLS_CRC32=y
CONFIG_TOOLS_LIBCRYPTO=y
+CONFIG_TOOLS_KWBIMAGE=y
CONFIG_TOOLS_FIT=y
CONFIG_TOOLS_FIT_FULL_CHECK=y
CONFIG_TOOLS_FIT_PRINT=y
@@ -2337,6 +2588,6 @@ CONFIG_TOOLS_SHA1=y
CONFIG_TOOLS_SHA256=y
CONFIG_TOOLS_SHA384=y
CONFIG_TOOLS_SHA512=y
-# CONFIG_TOOLS_MKEFICAPSULE is not set
+CONFIG_TOOLS_MKEFICAPSULE=y
# CONFIG_FSPI_CONF_HEADER is not set
# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/config/u-boot/gru_kevin/target.cfg b/config/u-boot/gru_kevin/target.cfg
index f7d4d7d9..e19603c2 100644
--- a/config/u-boot/gru_kevin/target.cfg
+++ b/config/u-boot/gru_kevin/target.cfg
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
tree="default"
xtree="default"
xarch="aarch64-elf arm-eabi"
diff --git a/config/u-boot/i386coreboot/config/default b/config/u-boot/i386coreboot/config/default
new file mode 100644
index 00000000..ba4fd18b
--- /dev/null
+++ b/config/u-boot/i386coreboot/config/default
@@ -0,0 +1,1792 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2024.10 Configuration
+#
+
+#
+# Compiler: gcc (Debian 12.2.0-14) 12.2.0
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_SUPPORT_LITTLE_ENDIAN=y
+CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_SYS_CACHELINE_SIZE=64
+CONFIG_LINKER_LIST_ALIGN=8
+# CONFIG_ARC is not set
+# CONFIG_ARM is not set
+# CONFIG_M68K is not set
+# CONFIG_MICROBLAZE is not set
+# CONFIG_MIPS is not set
+# CONFIG_NIOS2 is not set
+# CONFIG_PPC is not set
+# CONFIG_RISCV is not set
+# CONFIG_SANDBOX is not set
+# CONFIG_SH is not set
+CONFIG_X86=y
+# CONFIG_XTENSA is not set
+CONFIG_SYS_ARCH="x86"
+CONFIG_SYS_SOC="coreboot"
+CONFIG_SYS_VENDOR="coreboot"
+CONFIG_SYS_BOARD="coreboot"
+CONFIG_TEXT_BASE=0x1110000
+CONFIG_SYS_MALLOC_LEN=0x2000000
+CONFIG_SYS_MALLOC_F_LEN=0x800
+CONFIG_NR_DRAM_BANKS=8
+CONFIG_ENV_SOURCE_FILE=""
+CONFIG_ENV_SIZE=0x1000
+CONFIG_DM_GPIO=y
+CONFIG_DEFAULT_DEVICE_TREE="coreboot"
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
+# CONFIG_DM_RESET is not set
+CONFIG_SYS_MONITOR_LEN=1048576
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
+CONFIG_ERR_PTR_OFFSET=0x0
+# CONFIG_SPL is not set
+CONFIG_PRE_CON_BUF_ADDR=0x100000
+CONFIG_PRE_CON_BUF_SZ=4096
+CONFIG_IDENT_STRING=""
+CONFIG_SYS_CLK_FREQ=0
+CONFIG_SYS_MEM_TOP_HIDE=0x0
+CONFIG_SYS_LOAD_ADDR=0x02000000
+CONFIG_BUILD_TARGET=""
+# CONFIG_SYS_PCI_64BIT is not set
+CONFIG_PCI=y
+CONFIG_FWU_NUM_BANKS=2
+CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+
+#
+# x86 architecture
+#
+CONFIG_X86_RUN_32BIT=y
+# CONFIG_X86_RUN_64BIT is not set
+# CONFIG_VENDOR_ADVANTECH is not set
+# CONFIG_VENDOR_CONGATEC is not set
+CONFIG_VENDOR_COREBOOT=y
+# CONFIG_VENDOR_DFI is not set
+# CONFIG_VENDOR_EFI is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_INTEL_MID is not set
+CONFIG_PCIE_ECAM_BASE=0xe0000000
+CONFIG_TARGET_COREBOOT=y
+CONFIG_SYS_CAR_ADDR=0x01920000
+CONFIG_SYS_CAR_SIZE=0x4000
+CONFIG_ROM_TABLE_ADDR=0xf0000
+CONFIG_ROM_TABLE_SIZE=0x10000
+CONFIG_CPU_ADDR_BITS=36
+# CONFIG_DEBUG_UART is not set
+CONFIG_SYS_COREBOOT=y
+CONFIG_X86_TSC_TIMER_FREQ=1000000000
+CONFIG_AHCI=y
+CONFIG_RAMBASE=0x100000
+CONFIG_HPET_ADDRESS=0xfed00000
+# CONFIG_X86_LOAD_FROM_32_BIT is not set
+# CONFIG_HAVE_INTEL_ME is not set
+# CONFIG_X86_RAMTEST is not set
+# CONFIG_USE_HOB is not set
+# CONFIG_HAVE_FSP is not set
+CONFIG_USE_CAR=y
+# CONFIG_HAVE_MRC is not set
+# CONFIG_HAVE_REFCODE is not set
+CONFIG_HAVE_MICROCODE=y
+# CONFIG_SMP is not set
+# CONFIG_HAVE_VGA_BIOS is not set
+CONFIG_X86_HARDFP=y
+# CONFIG_HAVE_ITSS is not set
+# CONFIG_HAVE_ACPI_RESUME is not set
+CONFIG_MAX_PIRQ_LINKS=8
+CONFIG_IRQ_SLOT_COUNT=128
+CONFIG_PCIE_ECAM_SIZE=0x10000000
+CONFIG_I8259_PIC=y
+CONFIG_APIC=y
+CONFIG_I8254_TIMER=y
+# CONFIG_SEABIOS is not set
+# CONFIG_INTEL_CAR_CQOS is not set
+CONFIG_X86_OFFSET_U_BOOT=0x1110000
+# CONFIG_ACPI_GPE is not set
+CONFIG_SA_PCIEX_LENGTH=0x10000000
+CONFIG_COREBOOT_SYSINFO=y
+CONFIG_ZBOOT=y
+# CONFIG_OF_BOARD_FIXUP is not set
+CONFIG_SYS_LITTLE_ENDIAN=y
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=120200
+CONFIG_CLANG_VERSION=0
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
+# CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set
+# CONFIG_OPTIMIZE_INLINING is not set
+CONFIG_CC_HAS_ASM_INLINE=y
+CONFIG_ENV_VARS_UBOOT_CONFIG=y
+# CONFIG_SYS_BOOT_GET_CMDLINE is not set
+# CONFIG_SYS_BOOT_GET_KBD is not set
+CONFIG_SYS_MALLOC_F=y
+# CONFIG_VALGRIND is not set
+CONFIG_EXPERT=y
+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y
+# CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set
+# CONFIG_TOOLS_DEBUG is not set
+# CONFIG_PHYS_64BIT is not set
+# CONFIG_FDT_64BIT is not set
+# CONFIG_REMAKE_ELF is not set
+# CONFIG_HAS_BOARD_SIZE_LIMIT is not set
+# CONFIG_SYS_CUSTOM_LDSCRIPT is not set
+CONFIG_PLATFORM_ELFENTRY="_start"
+CONFIG_STACK_SIZE=0x1000000
+CONFIG_SYS_SRAM_BASE=0x0
+CONFIG_SYS_SRAM_SIZE=0x0
+# CONFIG_MP is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_HAVE_SYS_UBOOT_START is not set
+CONFIG_SYS_UBOOT_START=0x1110000
+CONFIG_HAVE_SYS_MONITOR_BASE=y
+CONFIG_SYS_MONITOR_BASE=0x01110000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
+# CONFIG_API is not set
+
+#
+# Boot options
+#
+
+#
+# Boot images
+#
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_TIMESTAMP=y
+CONFIG_FIT=y
+CONFIG_FIT_EXTERNAL_OFFSET=0x0
+CONFIG_FIT_FULL_CHECK=y
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_SIGNATURE_MAX_SIZE=0x10000000
+# CONFIG_FIT_RSASSA_PSS is not set
+# CONFIG_FIT_CIPHER is not set
+# CONFIG_FIT_VERBOSE is not set
+# CONFIG_FIT_BEST_MATCH is not set
+CONFIG_FIT_PRINT=y
+# CONFIG_SPL_LOAD_FIT_FULL is not set
+CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS_FEATURES=y
+CONFIG_BOOT_DEFAULTS_CMDS=y
+CONFIG_BOOT_DEFAULTS=y
+CONFIG_BOOTSTD=y
+CONFIG_BOOTSTD_FULL=y
+CONFIG_BOOTSTD_DEFAULTS=y
+CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTMETH_GLOBAL=y
+# CONFIG_BOOTMETH_ANDROID is not set
+CONFIG_BOOTMETH_CROS=y
+CONFIG_BOOTMETH_EXTLINUX=y
+CONFIG_BOOTMETH_EXTLINUX_PXE=y
+CONFIG_BOOTMETH_EFILOADER=y
+CONFIG_BOOTMETH_EFI_BOOTMGR=y
+CONFIG_BOOTMETH_VBE=y
+CONFIG_BOOTMETH_DISTRO=y
+CONFIG_BOOTMETH_VBE_REQUEST=y
+CONFIG_BOOTMETH_VBE_SIMPLE=y
+CONFIG_BOOTMETH_VBE_SIMPLE_OS=y
+CONFIG_EXPO=y
+CONFIG_BOOTMETH_SCRIPT=y
+# CONFIG_LEGACY_IMAGE_FORMAT is not set
+CONFIG_SYS_BOOTM_LEN=0x1000000
+CONFIG_SUPPORT_RAW_INITRD=y
+# CONFIG_CHROMEOS is not set
+# CONFIG_CHROMEOS_VBOOT is not set
+# CONFIG_RAMBOOT_PBL is not set
+CONFIG_SYS_BOOT_RAMDISK_HIGH=y
+# CONFIG_DISTRO_DEFAULTS is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_SHOW_BOOT_PROGRESS=y
+
+#
+# Boot media
+#
+# CONFIG_NAND_BOOT is not set
+# CONFIG_ONENAND_BOOT is not set
+# CONFIG_QSPI_BOOT is not set
+# CONFIG_SATA_BOOT is not set
+# CONFIG_SD_BOOT is not set
+# CONFIG_SD_BOOT_QSPI is not set
+# CONFIG_SPI_BOOT is not set
+
+#
+# Autoboot options
+#
+CONFIG_AUTOBOOT=y
+CONFIG_BOOTDELAY=2
+# CONFIG_AUTOBOOT_KEYED is not set
+# CONFIG_AUTOBOOT_USE_MENUKEY is not set
+# CONFIG_BOOT_RETRY is not set
+
+#
+# Image support
+#
+# CONFIG_IMAGE_PRE_LOAD is not set
+
+#
+# Devicetree fixup
+#
+# CONFIG_OF_ENV_SETUP is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+# CONFIG_FDT_SIMPLEFB is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+CONFIG_USE_BOOTARGS=y
+CONFIG_BOOTARGS="root=/dev/sdb3 init=/sbin/init rootwait ro"
+# CONFIG_BOOTARGS_SUBST is not set
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then cls; bootflow boot; fi"
+CONFIG_USE_PREBOOT=y
+CONFIG_PREBOOT="usb start"
+CONFIG_PREBOOT_DEFINED=y
+CONFIG_DEFAULT_FDT_FILE=""
+
+#
+# Configuration editor
+#
+# CONFIG_CEDIT is not set
+
+#
+# Console
+#
+CONFIG_MENU=y
+# CONFIG_CONSOLE_RECORD is not set
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=1044
+# CONFIG_DISABLE_CONSOLE is not set
+CONFIG_LOGLEVEL=4
+# CONFIG_SILENT_CONSOLE is not set
+# CONFIG_SPL_SILENT_CONSOLE is not set
+# CONFIG_TPL_SILENT_CONSOLE is not set
+CONFIG_PRE_CONSOLE_BUFFER=y
+CONFIG_CONSOLE_FLUSH_SUPPORT=y
+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set
+CONFIG_CONSOLE_MUX=y
+CONFIG_SYS_CONSOLE_IS_IN_ENV=y
+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
+# CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set
+CONFIG_SYS_CONSOLE_INFO_QUIET=y
+CONFIG_SYS_STDIO_DEREGISTER=y
+# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set
+CONFIG_SYS_DEVICE_NULLDEV=y
+
+#
+# Logging
+#
+CONFIG_LOG=y
+CONFIG_LOG_MAX_LEVEL=6
+CONFIG_LOG_DEFAULT_LEVEL=6
+CONFIG_LOG_CONSOLE=y
+# CONFIG_LOGF_FILE is not set
+CONFIG_LOGF_LINE=y
+CONFIG_LOGF_FUNC=y
+CONFIG_LOGF_FUNC_PAD=20
+# CONFIG_LOG_SYSLOG is not set
+# CONFIG_LOG_ERROR_RETURN is not set
+
+#
+# Init options
+#
+# CONFIG_BOARD_TYPES is not set
+CONFIG_DISPLAY_CPUINFO=y
+# CONFIG_DISPLAY_BOARDINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+
+#
+# Start-up hooks
+#
+CONFIG_CYCLIC=y
+# CONFIG_SPL_CYCLIC is not set
+CONFIG_CYCLIC_MAX_CPU_TIME_US=5000
+CONFIG_EVENT=y
+CONFIG_EVENT_DYNAMIC=y
+# CONFIG_EVENT_DEBUG is not set
+# CONFIG_ARCH_MISC_INIT is not set
+# CONFIG_BOARD_EARLY_INIT_F is not set
+CONFIG_BOARD_EARLY_INIT_R=y
+# CONFIG_BOARD_POSTCLK_INIT is not set
+# CONFIG_BOARD_LATE_INIT is not set
+# CONFIG_HWCONFIG is not set
+CONFIG_LAST_STAGE_INIT=y
+# CONFIG_MISC_INIT_R is not set
+# CONFIG_SYS_MALLOC_BOOTPARAMS is not set
+# CONFIG_ID_EEPROM is not set
+CONFIG_PCI_INIT_R=y
+# CONFIG_RESET_PHY_R is not set
+
+#
+# Security support
+#
+CONFIG_HASH=y
+# CONFIG_STACKPROTECTOR is not set
+# CONFIG_BOARD_RNG_SEED is not set
+
+#
+# Update support
+#
+# CONFIG_UPDATE_TFTP is not set
+# CONFIG_ANDROID_AB is not set
+
+#
+# Blob list
+#
+# CONFIG_BLOBLIST is not set
+CONFIG_SUPPORT_SPL=y
+CONFIG_SUPPORT_TPL=y
+# CONFIG_TPL is not set
+# CONFIG_VPL is not set
+CONFIG_IMAGE_SIGN_INFO=y
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+
+#
+# Hush flavor to use
+#
+CONFIG_HUSH_OLD_PARSER=y
+# CONFIG_HUSH_MODERN_PARSER is not set
+CONFIG_CMDLINE_EDITING=y
+# CONFIG_CMDLINE_PS_SUPPORT is not set
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_PROMPT="=> "
+CONFIG_SYS_PROMPT_HUSH_PS2="> "
+CONFIG_SYS_MAXARGS=64
+CONFIG_SYS_XTRACE=y
+
+#
+# Commands
+#
+
+#
+# Info commands
+#
+CONFIG_CMD_ACPI=y
+CONFIG_CMD_BDI=y
+CONFIG_CMD_BDINFO_EXTRA=y
+# CONFIG_CMD_CONFIG is not set
+CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_HISTORY is not set
+# CONFIG_CMD_PMC is not set
+# CONFIG_CMD_SMBIOS is not set
+
+#
+# Boot commands
+#
+CONFIG_CMD_BOOTD=y
+CONFIG_CMD_BOOTM=y
+CONFIG_CMD_BOOTDEV=y
+CONFIG_CMD_BOOTFLOW=y
+CONFIG_CMD_BOOTFLOW_FULL=y
+CONFIG_CMD_BOOTFLOW_BOOTDELAY=8
+CONFIG_CMD_BOOTMETH=y
+CONFIG_BOOTM_EFI=y
+CONFIG_BOOTM_ELF=y
+# CONFIG_CMD_BOOTZ is not set
+CONFIG_BOOTM_LINUX=y
+CONFIG_BOOTM_NETBSD=y
+# CONFIG_BOOTM_OPENRTOS is not set
+# CONFIG_BOOTM_OSE is not set
+CONFIG_BOOTM_PLAN9=y
+CONFIG_BOOTM_RTEMS=y
+CONFIG_CMD_VBE=y
+CONFIG_BOOTM_VXWORKS=y
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_BINARY=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+# CONFIG_CMD_BOOTEFI_HELLO is not set
+# CONFIG_CMD_BOOTEFI_SELFTEST is not set
+# CONFIG_CMD_BOOTMENU is not set
+# CONFIG_CMD_ADTIMG is not set
+CONFIG_CMD_ELF=y
+# CONFIG_CMD_ELF_FDT_SETUP is not set
+CONFIG_CMD_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+CONFIG_CMD_XIMG=y
+CONFIG_CMD_ZBOOT=y
+
+#
+# Environment commands
+#
+# CONFIG_CMD_ASKENV is not set
+CONFIG_CMD_EXPORTENV=y
+CONFIG_CMD_IMPORTENV=y
+CONFIG_CMD_EDITENV=y
+# CONFIG_CMD_GREPENV is not set
+CONFIG_CMD_SAVEENV=y
+# CONFIG_CMD_ERASEENV is not set
+CONFIG_CMD_ENV_EXISTS=y
+# CONFIG_CMD_ENV_CALLBACK is not set
+# CONFIG_CMD_ENV_FLAGS is not set
+# CONFIG_CMD_NVEDIT_EFI is not set
+# CONFIG_CMD_NVEDIT_INDIRECT is not set
+# CONFIG_CMD_NVEDIT_INFO is not set
+# CONFIG_CMD_NVEDIT_LOAD is not set
+# CONFIG_CMD_NVEDIT_SELECT is not set
+
+#
+# Memory commands
+#
+# CONFIG_CMD_BINOP is not set
+CONFIG_CMD_CRC32=y
+# CONFIG_CRC32_VERIFY is not set
+# CONFIG_LOOPW is not set
+# CONFIG_CMD_MD5SUM is not set
+# CONFIG_CMD_MEMINFO is not set
+CONFIG_CMD_MEMORY=y
+# CONFIG_CMD_MEM_SEARCH is not set
+# CONFIG_CMD_MX_CYCLIC is not set
+CONFIG_CMD_RANDOM=y
+# CONFIG_CMD_MEMTEST is not set
+# CONFIG_CMD_SHA1SUM is not set
+# CONFIG_CMD_STRINGS is not set
+
+#
+# Compression commands
+#
+# CONFIG_CMD_LZMADEC is not set
+# CONFIG_CMD_UNLZ4 is not set
+# CONFIG_CMD_UNZIP is not set
+# CONFIG_CMD_ZIP is not set
+
+#
+# Device access commands
+#
+# CONFIG_CMD_BCB is not set
+# CONFIG_CMD_BIND is not set
+# CONFIG_CMD_CLK is not set
+# CONFIG_CMD_DEMO is not set
+# CONFIG_CMD_DFU is not set
+CONFIG_CMD_DM=y
+# CONFIG_CMD_FUSE is not set
+# CONFIG_CMD_GPIO is not set
+# CONFIG_CMD_GPT is not set
+CONFIG_CMD_IDE=y
+CONFIG_CMD_IO=y
+# CONFIG_CMD_IOTRACE is not set
+# CONFIG_CMD_I2C is not set
+CONFIG_CMD_LOADB=y
+# CONFIG_CMD_LOADM is not set
+CONFIG_CMD_LOADS=y
+# CONFIG_LOADS_ECHO is not set
+# CONFIG_CMD_SAVES is not set
+# CONFIG_SYS_LOADS_BAUD_CHANGE is not set
+CONFIG_CMD_LOADXY_TIMEOUT=90
+# CONFIG_CMD_LSBLK is not set
+# CONFIG_CMD_MBR is not set
+CONFIG_CMD_MMC=y
+# CONFIG_CMD_BKOPS_ENABLE is not set
+# CONFIG_CMD_MMC_REG is not set
+# CONFIG_CMD_MMC_SWRITE is not set
+# CONFIG_CMD_CLONE is not set
+# CONFIG_CMD_MTD is not set
+CONFIG_CMD_NVME=y
+# CONFIG_CMD_ONENAND is not set
+# CONFIG_CMD_OSD is not set
+CONFIG_CMD_PART=y
+CONFIG_CMD_PCI=y
+# CONFIG_CMD_PCI_MPS is not set
+# CONFIG_CMD_POWEROFF is not set
+# CONFIG_CMD_READ is not set
+CONFIG_CMD_SATA=y
+CONFIG_CMD_SCSI=y
+# CONFIG_CMD_SDRAM is not set
+CONFIG_CMD_USB=y
+# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_RKMTD is not set
+# CONFIG_CMD_WRITE is not set
+
+#
+# Shell scripting commands
+#
+# CONFIG_CMD_CAT is not set
+CONFIG_CMD_ECHO=y
+CONFIG_CMD_ITEST=y
+CONFIG_CMD_SOURCE=y
+# CONFIG_CMD_SETEXPR is not set
+# CONFIG_CMD_XXD is not set
+
+#
+# Android support commands
+#
+CONFIG_CMD_NET=y
+CONFIG_CMD_BOOTP=y
+CONFIG_CMD_DHCP=y
+# CONFIG_BOOTP_MAY_FAIL is not set
+CONFIG_BOOTP_BOOTPATH=y
+# CONFIG_BOOTP_VENDOREX is not set
+CONFIG_BOOTP_BOOTFILESIZE=y
+CONFIG_BOOTP_DNS=y
+# CONFIG_BOOTP_DNS2 is not set
+CONFIG_BOOTP_GATEWAY=y
+CONFIG_BOOTP_HOSTNAME=y
+# CONFIG_BOOTP_PREFER_SERVERIP is not set
+CONFIG_BOOTP_SUBNETMASK=y
+# CONFIG_BOOTP_NISDOMAIN is not set
+# CONFIG_BOOTP_NTPSERVER is not set
+# CONFIG_CMD_PCAP is not set
+CONFIG_BOOTP_PXE=y
+CONFIG_BOOTP_PXE_CLIENTARCH=0x0
+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set
+CONFIG_BOOTP_VCI_STRING="U-Boot"
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+CONFIG_NET_TFTP_VARS=y
+# CONFIG_CMD_RARP is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_SYS_DISABLE_AUTOLOAD is not set
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_WOL is not set
+
+#
+# Misc commands
+#
+# CONFIG_CMD_2048 is not set
+# CONFIG_CMD_BMP is not set
+# CONFIG_CMD_BSP is not set
+CONFIG_CMD_BLOCK_CACHE=y
+# CONFIG_CMD_CACHE is not set
+# CONFIG_CMD_CONITRACE is not set
+CONFIG_CMD_CLS=y
+# CONFIG_CMD_EFIDEBUG is not set
+CONFIG_CMD_EFICONFIG=y
+# CONFIG_CMD_EXCEPTION is not set
+# CONFIG_CMD_INI is not set
+CONFIG_CMD_DATE=y
+# CONFIG_CMD_RTC is not set
+CONFIG_CMD_TIME=y
+CONFIG_CMD_GETTIME=y
+# CONFIG_CMD_PAUSE is not set
+CONFIG_CMD_SLEEP=y
+# CONFIG_CMD_TIMER is not set
+CONFIG_CMD_SOUND=y
+# CONFIG_CMD_SYSBOOT is not set
+# CONFIG_CMD_QFW is not set
+# CONFIG_CMD_PSTORE is not set
+# CONFIG_CMD_TERMINAL is not set
+# CONFIG_CMD_UUID is not set
+CONFIG_CMD_VIDCONSOLE=y
+CONFIG_CMD_SELECT_FONT=y
+
+#
+# TI specific command line interface
+#
+
+#
+# Power commands
+#
+
+#
+# Security commands
+#
+# CONFIG_CMD_AES is not set
+# CONFIG_CMD_BLOB is not set
+# CONFIG_CMD_HASH is not set
+
+#
+# Firmware commands
+#
+
+#
+# Filesystem commands
+#
+# CONFIG_CMD_BTRFS is not set
+CONFIG_CMD_CBFS=y
+# CONFIG_CMD_EROFS is not set
+CONFIG_CMD_EXT2=y
+CONFIG_CMD_EXT4=y
+CONFIG_CMD_EXT4_WRITE=y
+CONFIG_CMD_FAT=y
+# CONFIG_CMD_SQUASHFS is not set
+CONFIG_CMD_FS_GENERIC=y
+# CONFIG_CMD_FS_UUID is not set
+# CONFIG_CMD_JFFS2 is not set
+# CONFIG_CMD_MTDPARTS is not set
+CONFIG_MTDIDS_DEFAULT=""
+CONFIG_MTDPARTS_DEFAULT=""
+# CONFIG_CMD_ZFS is not set
+
+#
+# Debug commands
+#
+CONFIG_CMD_CBSYSINFO=y
+CONFIG_CMD_CYCLIC=y
+# CONFIG_CMD_DIAG is not set
+# CONFIG_CMD_EVENT is not set
+CONFIG_CMD_IRQ=y
+# CONFIG_CMD_LOG is not set
+# CONFIG_CMD_UBI is not set
+# CONFIG_MMC_SPEED_MODE_SET is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITIONS=y
+CONFIG_MAC_PARTITION=y
+CONFIG_DOS_PARTITION=y
+CONFIG_ISO_PARTITION=y
+# CONFIG_AMIGA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128
+CONFIG_EFI_PARTITION_ENTRIES_OFF=0
+CONFIG_PARTITION_UUIDS=y
+CONFIG_PARTITION_TYPE_GUID=y
+CONFIG_SUPPORT_OF_CONTROL=y
+
+#
+# Device Tree Control
+#
+CONFIG_OF_CONTROL=y
+CONFIG_OF_REAL=y
+# CONFIG_OF_LIVE is not set
+# CONFIG_OF_UPSTREAM is not set
+CONFIG_OF_SEPARATE=y
+# CONFIG_OF_EMBED is not set
+# CONFIG_OF_INITIAL_DTB_READONLY is not set
+# CONFIG_OF_BOARD is not set
+# CONFIG_OF_OMIT_DTB is not set
+CONFIG_DEVICE_TREE_INCLUDES=""
+CONFIG_OF_LIST="coreboot"
+# CONFIG_MULTI_DTB_FIT is not set
+CONFIG_OF_TAG_MIGRATE=y
+# CONFIG_OF_DTB_PROPS_REMOVE is not set
+
+#
+# Environment
+#
+CONFIG_ENV_SUPPORT=y
+CONFIG_SAVEENV=y
+CONFIG_ENV_OVERWRITE=y
+CONFIG_ENV_MIN_ENTRIES=64
+CONFIG_ENV_MAX_ENTRIES=512
+CONFIG_ENV_IS_DEFAULT=y
+CONFIG_ENV_IS_NOWHERE=y
+# CONFIG_ENV_IS_IN_EEPROM is not set
+# CONFIG_ENV_IS_IN_FAT is not set
+# CONFIG_ENV_IS_IN_EXT4 is not set
+# CONFIG_ENV_IS_IN_FLASH is not set
+# CONFIG_ENV_IS_IN_MMC is not set
+# CONFIG_ENV_IS_IN_NAND is not set
+# CONFIG_ENV_IS_IN_NVRAM is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+# CONFIG_USE_DEFAULT_ENV_FILE is not set
+# CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG is not set
+# CONFIG_ENV_IMPORT_FDT is not set
+# CONFIG_ENV_APPEND is not set
+# CONFIG_ENV_WRITEABLE_LIST is not set
+# CONFIG_ENV_ACCESS_IGNORE_FORCE is not set
+CONFIG_USE_BOOTFILE=y
+CONFIG_BOOTFILE="bzImage"
+# CONFIG_USE_ETHPRIME is not set
+CONFIG_USE_HOSTNAME=y
+CONFIG_HOSTNAME="x86"
+# CONFIG_VERSION_VARIABLE is not set
+CONFIG_NET=y
+CONFIG_ARP_TIMEOUT=5000
+CONFIG_NET_RETRY_COUNT=5
+# CONFIG_PROT_UDP is not set
+CONFIG_BOOTDEV_ETH=y
+# CONFIG_BOOTP_SEND_HOSTNAME is not set
+# CONFIG_NET_RANDOM_ETHADDR is not set
+# CONFIG_NETCONSOLE is not set
+# CONFIG_IP_DEFRAG is not set
+# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set
+CONFIG_TFTP_BLOCKSIZE=1468
+# CONFIG_TFTP_PORT is not set
+CONFIG_TFTP_WINDOWSIZE=1
+CONFIG_TFTP_TSIZE=y
+# CONFIG_SERVERIP_FROM_PROXYDHCP is not set
+CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100
+# CONFIG_KEEP_SERVERADDR is not set
+# CONFIG_UDP_CHECKSUM is not set
+# CONFIG_BOOTP_SERVERIP is not set
+CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64
+# CONFIG_USE_GATEWAYIP is not set
+# CONFIG_USE_IPADDR is not set
+# CONFIG_USE_NETMASK is not set
+CONFIG_USE_ROOTPATH=y
+CONFIG_ROOTPATH="/opt/nfsroot"
+# CONFIG_USE_SERVERIP is not set
+# CONFIG_PROT_TCP is not set
+# CONFIG_IPV6 is not set
+CONFIG_SYS_RX_ETH_BUFFER=4
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+# CONFIG_DM_WARN is not set
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_STATS is not set
+CONFIG_DM_DEVICE_REMOVE=y
+CONFIG_DM_EVENT=y
+CONFIG_DM_STDIO=y
+CONFIG_DM_SEQ_ALIAS=y
+# CONFIG_DM_DMA is not set
+CONFIG_REGMAP=y
+CONFIG_SYSCON=y
+# CONFIG_DEVRES is not set
+CONFIG_SIMPLE_BUS=y
+# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set
+CONFIG_OF_TRANSLATE=y
+# CONFIG_TRANSLATION_OFFSET is not set
+CONFIG_DM_DEV_READ_INLINE=y
+# CONFIG_OFNODE_MULTI_TREE is not set
+# CONFIG_ACPIGEN is not set
+# CONFIG_BOUNCE_BUFFER is not set
+# CONFIG_ADC is not set
+CONFIG_SATA=y
+CONFIG_LIBATA=y
+CONFIG_SCSI_AHCI=y
+
+#
+# SATA/SCSI device support
+#
+CONFIG_AHCI_PCI=y
+# CONFIG_DWC_AHCI is not set
+# CONFIG_DWC_AHSATA is not set
+# CONFIG_MTK_AHCI is not set
+# CONFIG_SUNXI_AHCI is not set
+# CONFIG_SATA_CEVA is not set
+# CONFIG_SATA_MV is not set
+# CONFIG_SATA_SIL is not set
+# CONFIG_AXI is not set
+
+#
+# Bus devices
+#
+CONFIG_BLK=y
+CONFIG_BLOCK_CACHE=y
+# CONFIG_BLKMAP is not set
+# CONFIG_EFI_MEDIA is not set
+CONFIG_IDE=y
+CONFIG_SYS_IDE_MAXBUS=2
+CONFIG_SYS_IDE_MAXDEVICE=4
+CONFIG_SYS_ATA_BASE_ADDR=0x0
+CONFIG_SYS_ATA_STRIDE=0x1
+CONFIG_SYS_ATA_DATA_OFFSET=0
+CONFIG_SYS_ATA_REG_OFFSET=0
+CONFIG_SYS_ATA_ALT_OFFSET=0
+CONFIG_SYS_ATA_IDE0_OFFSET=0x1f0
+CONFIG_SYS_ATA_IDE1_OFFSET=0x170
+CONFIG_ATAPI=y
+# CONFIG_IDE_RESET is not set
+CONFIG_LBA48=y
+CONFIG_SYS_64BIT_LBA=y
+# CONFIG_RKMTD is not set
+# CONFIG_BOOTCOUNT_LIMIT is not set
+
+#
+# Button Support
+#
+# CONFIG_BUTTON is not set
+
+#
+# Cache Controller drivers
+#
+# CONFIG_CACHE is not set
+# CONFIG_ANDES_L2_CACHE is not set
+# CONFIG_NCORE_CACHE is not set
+# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SIFIVE_PL2 is not set
+
+#
+# Clock
+#
+# CONFIG_CLK is not set
+# CONFIG_CLK_CCF is not set
+# CONFIG_COMMON_CLK_ADI_SHARED is not set
+# CONFIG_CLK_RCAR is not set
+# CONFIG_CLK_RCAR_CPG_LIB is not set
+# CONFIG_CPU is not set
+
+#
+# Hardware crypto devices
+#
+# CONFIG_DM_HASH is not set
+# CONFIG_FSL_CAAM is not set
+# CONFIG_SYS_FSL_SEC_BE is not set
+# CONFIG_SYS_FSL_SEC_LE is not set
+# CONFIG_NPCM_AES is not set
+# CONFIG_NPCM_SHA is not set
+# CONFIG_DDR_SPD is not set
+# CONFIG_IMX_SNPS_DDR_PHY is not set
+
+#
+# Demo for driver model
+#
+# CONFIG_DM_DEMO is not set
+
+#
+# DFU support
+#
+
+#
+# DMA Support
+#
+# CONFIG_DMA is not set
+# CONFIG_DMA_LPC32XX is not set
+# CONFIG_TI_EDMA3 is not set
+# CONFIG_DMA_LEGACY is not set
+
+#
+# Extcon Support
+#
+# CONFIG_EXTCON is not set
+
+#
+# Fastboot support
+#
+# CONFIG_UDP_FUNCTION_FASTBOOT is not set
+# CONFIG_TCP_FUNCTION_FASTBOOT is not set
+# CONFIG_FIRMWARE is not set
+# CONFIG_ZYNQMP_FIRMWARE is not set
+# CONFIG_DM_FUZZING_ENGINE is not set
+
+#
+# FPGA support
+#
+# CONFIG_FPGA_ALTERA is not set
+# CONFIG_FPGA_SOCFPGA is not set
+# CONFIG_FPGA_LATTICE is not set
+# CONFIG_FPGA_XILINX is not set
+# CONFIG_DM_FPGA is not set
+# CONFIG_FWU_MDATA is not set
+CONFIG_GPIO=y
+# CONFIG_GPIO_HOG is not set
+# CONFIG_DM_GPIO_LOOKUP_LABEL is not set
+# CONFIG_ALTERA_PIO is not set
+# CONFIG_BCM2835_GPIO is not set
+# CONFIG_DWAPB_GPIO is not set
+# CONFIG_AT91_GPIO is not set
+# CONFIG_ATMEL_PIO4 is not set
+# CONFIG_ASPEED_GPIO is not set
+# CONFIG_DA8XX_GPIO is not set
+# CONFIG_HIKEY_GPIO is not set
+# CONFIG_INTEL_BROADWELL_GPIO is not set
+# CONFIG_INTEL_GPIO is not set
+# CONFIG_INTEL_ICH6_GPIO is not set
+# CONFIG_IMX_RGPIO2P is not set
+# CONFIG_IPROC_GPIO is not set
+# CONFIG_HSDK_CREG_GPIO is not set
+# CONFIG_KIRKWOOD_GPIO is not set
+# CONFIG_LPC32XX_GPIO is not set
+# CONFIG_MCP230XX_GPIO is not set
+# CONFIG_MSM_GPIO is not set
+# CONFIG_MXC_GPIO is not set
+# CONFIG_MXS_GPIO is not set
+# CONFIG_NPCM_GPIO is not set
+# CONFIG_CMD_PCA953X is not set
+# CONFIG_ROCKCHIP_GPIO is not set
+# CONFIG_XILINX_GPIO is not set
+# CONFIG_TCA642X is not set
+# CONFIG_TEGRA_GPIO is not set
+# CONFIG_TEGRA186_GPIO is not set
+# CONFIG_VYBRID_GPIO is not set
+# CONFIG_SIFIVE_GPIO is not set
+# CONFIG_ZYNQ_GPIO is not set
+# CONFIG_DM_74X164 is not set
+# CONFIG_PCA953X is not set
+# CONFIG_MPC8XXX_GPIO is not set
+# CONFIG_MPC8XX_GPIO is not set
+# CONFIG_NX_GPIO is not set
+# CONFIG_NOMADIK_GPIO is not set
+# CONFIG_SLG7XL45106_I2C_GPO is not set
+# CONFIG_FTGPIO010 is not set
+
+#
+# Hardware Spinlock Support
+#
+# CONFIG_DM_HWSPINLOCK is not set
+CONFIG_I2C=y
+# CONFIG_DM_I2C is not set
+# CONFIG_SYS_I2C_LEGACY is not set
+# CONFIG_SPL_SYS_I2C_LEGACY is not set
+# CONFIG_TPL_SYS_I2C_LEGACY is not set
+# CONFIG_SYS_I2C_FSL is not set
+# CONFIG_SYS_I2C_DW is not set
+# CONFIG_SYS_I2C_IMX_LPI2C is not set
+# CONFIG_SYS_I2C_MTK is not set
+# CONFIG_SYS_I2C_MICROCHIP is not set
+# CONFIG_SYS_I2C_MXC is not set
+# CONFIG_SYS_I2C_NPCM is not set
+# CONFIG_SYS_I2C_SOFT is not set
+# CONFIG_SYS_I2C_MV is not set
+# CONFIG_SYS_I2C_MVTWSI is not set
+CONFIG_INPUT=y
+CONFIG_DM_KEYBOARD=y
+# CONFIG_BUTTON_KEYBOARD is not set
+# CONFIG_CROS_EC_KEYB is not set
+CONFIG_I8042_KEYB=y
+# CONFIG_TEGRA_KEYBOARD is not set
+# CONFIG_TWL4030_INPUT is not set
+
+#
+# IOMMU device drivers
+#
+# CONFIG_IOMMU is not set
+
+#
+# LED Support
+#
+# CONFIG_LED is not set
+# CONFIG_LED_STATUS is not set
+
+#
+# Mailbox Controller Support
+#
+# CONFIG_DM_MAILBOX is not set
+
+#
+# Memory Controller drivers
+#
+# CONFIG_MEMORY is not set
+# CONFIG_ATMEL_EBI is not set
+# CONFIG_MFD_ATMEL_SMC is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MISC is not set
+# CONFIG_NVMEM is not set
+# CONFIG_SPL_NVMEM is not set
+# CONFIG_SMSC_LPC47M is not set
+# CONFIG_SMSC_SIO1007 is not set
+CONFIG_CBMEM_CONSOLE=y
+# CONFIG_CROS_EC is not set
+# CONFIG_DS4510 is not set
+# CONFIG_FSL_SEC_MON is not set
+CONFIG_IRQ=y
+# CONFIG_NPCM_HOST is not set
+# CONFIG_NUVOTON_NCT6102D is not set
+# CONFIG_P2SB is not set
+# CONFIG_PWRSEQ is not set
+# CONFIG_PCA9551_LED is not set
+# CONFIG_TEST_DRV is not set
+# CONFIG_USB_HUB_USB251XB is not set
+# CONFIG_TWL4030_LED is not set
+# CONFIG_WINBOND_W83627 is not set
+# CONFIG_FS_LOADER is not set
+
+#
+# MMC Host controller Support
+#
+CONFIG_MMC=y
+CONFIG_MMC_WRITE=y
+# CONFIG_MMC_BROKEN_CD is not set
+CONFIG_DM_MMC=y
+# CONFIG_ARM_PL180_MMCI is not set
+CONFIG_MMC_QUIRKS=y
+CONFIG_SYS_MMC_MAX_BLK_COUNT=65535
+CONFIG_MMC_HW_PARTITIONING=y
+# CONFIG_SUPPORT_EMMC_RPMB is not set
+# CONFIG_SUPPORT_EMMC_BOOT is not set
+# CONFIG_MMC_IO_VOLTAGE is not set
+# CONFIG_MMC_HS400_ES_SUPPORT is not set
+# CONFIG_MMC_HS400_SUPPORT is not set
+# CONFIG_MMC_HS200_SUPPORT is not set
+CONFIG_MMC_VERBOSE=y
+# CONFIG_MMC_TRACE is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_MXC is not set
+CONFIG_MMC_PCI=y
+# CONFIG_MMC_OMAP_HS is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+# CONFIG_MMC_SDHCI_ADMA is not set
+# CONFIG_MMC_SDHCI_ADMA_FORCE_32BIT is not set
+# CONFIG_MMC_SDHCI_ADMA_64BIT is not set
+# CONFIG_MMC_SDHCI_BCMSTB is not set
+# CONFIG_MMC_SDHCI_CADENCE is not set
+# CONFIG_MMC_SDHCI_CV1800B is not set
+# CONFIG_MMC_SDHCI_IPROC is not set
+# CONFIG_MMC_SDHCI_F_SDH30 is not set
+# CONFIG_MMC_SDHCI_KONA is not set
+# CONFIG_MMC_SDHCI_MSM is not set
+# CONFIG_MMC_SDHCI_NPCM is not set
+# CONFIG_MMC_SDHCI_S5P is not set
+# CONFIG_MMC_SDHCI_STI is not set
+# CONFIG_MMC_SDHCI_XENON is not set
+# CONFIG_MMC_SDHCI_TANGIER is not set
+# CONFIG_MMC_SDHCI_ZYNQ is not set
+# CONFIG_MMC_PITON is not set
+# CONFIG_STM32_SDMMC2 is not set
+# CONFIG_FTSDC010 is not set
+# CONFIG_FSL_ESDHC is not set
+# CONFIG_FSL_ESDHC_IMX is not set
+
+#
+# MTD Support
+#
+CONFIG_MTD=y
+# CONFIG_DM_MTD is not set
+# CONFIG_MTD_NOR_FLASH is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_BLOCK is not set
+# CONFIG_SYS_MTDPARTS_RUNTIME is not set
+# CONFIG_FLASH_CFI_DRIVER is not set
+# CONFIG_HBMC_AM654 is not set
+# CONFIG_SAMSUNG_ONENAND is not set
+# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set
+# CONFIG_MTD_RAW_NAND is not set
+
+#
+# SPI Flash Support
+#
+# CONFIG_SPI_FLASH is not set
+
+#
+# UBI support
+#
+# CONFIG_UBI_SILENCE_MSG is not set
+# CONFIG_MTD_UBI is not set
+# CONFIG_NVMXIP is not set
+# CONFIG_NVMXIP_QSPI is not set
+
+#
+# Multiplexer drivers
+#
+# CONFIG_MULTIPLEXER is not set
+# CONFIG_BITBANGMII is not set
+# CONFIG_MV88E6352_SWITCH is not set
+CONFIG_PHYLIB=y
+# CONFIG_PHY_ADDR_ENABLE is not set
+CONFIG_PHY_ANEG_TIMEOUT=4000
+# CONFIG_B53_SWITCH is not set
+# CONFIG_MV88E61XX_SWITCH is not set
+# CONFIG_PHYLIB_10G is not set
+# CONFIG_PHY_ADIN is not set
+# CONFIG_PHY_AQUANTIA is not set
+# CONFIG_PHY_ATHEROS is not set
+# CONFIG_SPL_PHY_ATHEROS is not set
+# CONFIG_PHY_BROADCOM is not set
+# CONFIG_PHY_CORTINA is not set
+# CONFIG_PHY_DAVICOM is not set
+# CONFIG_PHY_ET1011C is not set
+# CONFIG_PHY_LXT is not set
+# CONFIG_PHY_MARVELL is not set
+# CONFIG_PHY_MARVELL_10G is not set
+# CONFIG_PHY_MESON_GXL is not set
+# CONFIG_PHY_MICREL is not set
+# CONFIG_PHY_MOTORCOMM is not set
+# CONFIG_PHY_MSCC is not set
+# CONFIG_PHY_NATSEMI is not set
+# CONFIG_PHY_NXP_C45_TJA11XX is not set
+# CONFIG_PHY_NXP_TJA11XX is not set
+# CONFIG_PHY_REALTEK is not set
+# CONFIG_PHY_SMSC is not set
+# CONFIG_PHY_TERANETICS is not set
+# CONFIG_PHY_TI is not set
+# CONFIG_PHY_TI_DP83867 is not set
+# CONFIG_PHY_TI_DP83869 is not set
+# CONFIG_PHY_TI_GENERIC is not set
+# CONFIG_PHY_VITESSE is not set
+# CONFIG_PHY_XILINX is not set
+# CONFIG_PHY_XILINX_GMII2RGMII is not set
+# CONFIG_PHY_XWAY is not set
+# CONFIG_PHY_ETHERNET_ID is not set
+# CONFIG_PHY_FIXED is not set
+# CONFIG_PHY_NCSI is not set
+# CONFIG_FSL_MEMAC is not set
+CONFIG_PHY_RESET_DELAY=0
+# CONFIG_FSL_PFE is not set
+CONFIG_ETH=y
+CONFIG_DM_ETH=y
+# CONFIG_DM_MDIO is not set
+# CONFIG_DM_ETH_PHY is not set
+CONFIG_NETDEVICES=y
+# CONFIG_PHY_GIGE is not set
+# CONFIG_ALTERA_TSE is not set
+# CONFIG_BCM_SF2_ETH is not set
+# CONFIG_BCMGENET is not set
+# CONFIG_BNXT_ETH is not set
+# CONFIG_CALXEDA_XGMAC is not set
+# CONFIG_DWC_ETH_XGMAC is not set
+# CONFIG_DRIVER_DM9000 is not set
+# CONFIG_DWC_ETH_QOS is not set
+CONFIG_E1000=y
+# CONFIG_E1000_NO_NVM is not set
+# CONFIG_E1000_SPI_GENERIC is not set
+# CONFIG_E1000_SPI is not set
+# CONFIG_CMD_E1000 is not set
+# CONFIG_EEPRO100 is not set
+CONFIG_ETH_DESIGNWARE=y
+# CONFIG_ETH_DESIGNWARE_MESON8B is not set
+# CONFIG_ETH_DESIGNWARE_SOCFPGA is not set
+# CONFIG_ETH_DESIGNWARE_S700 is not set
+# CONFIG_DW_ALTDESCRIPTOR is not set
+# CONFIG_ETHOC is not set
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+# CONFIG_MCFFEC is not set
+# CONFIG_KS8851_MLL is not set
+# CONFIG_LITEETH is not set
+# CONFIG_MACB is not set
+# CONFIG_NET_NPCM750 is not set
+CONFIG_PCH_GBE=y
+# CONFIG_RGMII is not set
+# CONFIG_MII is not set
+# CONFIG_RMII is not set
+# CONFIG_PCNET is not set
+# CONFIG_QE_UEC is not set
+# CONFIG_RTL8139 is not set
+CONFIG_RTL8169=y
+# CONFIG_SMC911X is not set
+# CONFIG_SUN7I_GMAC is not set
+# CONFIG_SUN4I_EMAC is not set
+# CONFIG_SUN8I_EMAC is not set
+# CONFIG_SH_ETHER is not set
+# CONFIG_DRIVER_TI_CPSW is not set
+# CONFIG_DRIVER_TI_EMAC is not set
+# CONFIG_DRIVER_TI_KEYSTONE_NET is not set
+# CONFIG_TULIP is not set
+# CONFIG_XILINX_AXIEMAC is not set
+# CONFIG_VSC7385_ENET is not set
+# CONFIG_XILINX_EMACLITE is not set
+# CONFIG_ZYNQ_GEM is not set
+# CONFIG_GMAC_ROCKCHIP is not set
+# CONFIG_TSEC_ENET is not set
+# CONFIG_MEDIATEK_ETH is not set
+# CONFIG_HIFEMAC_ETH is not set
+# CONFIG_HIGMACV300_ETH is not set
+CONFIG_NVME=y
+# CONFIG_NVME_APPLE is not set
+CONFIG_NVME_PCI=y
+# CONFIG_DM_PCI_COMPAT is not set
+# CONFIG_PCI_PNP is not set
+# CONFIG_PCI_REGION_MULTI_ENTRY is not set
+CONFIG_PCI_CONFIG_HOST_BRIDGE=y
+# CONFIG_PCI_SRIOV is not set
+CONFIG_PCI_ENHANCED_ALLOCATION=y
+# CONFIG_PCI_ARID is not set
+# CONFIG_PCIE_ECAM_GENERIC is not set
+# CONFIG_PCIE_ECAM_SYNQUACER is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCI_PHYTIUM is not set
+# CONFIG_PCIE_FSL is not set
+# CONFIG_PCI_MPC85XX is not set
+# CONFIG_PCI_XILINX is not set
+# CONFIG_PCIE_LAYERSCAPE_RC is not set
+# CONFIG_PCIE_LAYERSCAPE_EP is not set
+# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set
+# CONFIG_PCIE_INTEL_FPGA is not set
+# CONFIG_PCIE_IPROC is not set
+# CONFIG_PCI_KEYSTONE is not set
+# CONFIG_PCIE_STARFIVE_JH7110 is not set
+
+#
+# PCI Endpoint
+#
+# CONFIG_PCI_ENDPOINT is not set
+CONFIG_PCH=y
+CONFIG_X86_PCH7=y
+CONFIG_X86_PCH9=y
+
+#
+# PHY Subsystem
+#
+# CONFIG_PHY is not set
+# CONFIG_MIPI_DPHY_HELPERS is not set
+
+#
+# Rockchip PHY driver
+#
+# CONFIG_MVEBU_COMPHY_SUPPORT is not set
+
+#
+# Pin controllers
+#
+# CONFIG_PINCTRL is not set
+# CONFIG_PINCTRL_TEGRA is not set
+CONFIG_POWER=y
+# CONFIG_POWER_LEGACY is not set
+# CONFIG_ACPI_PMC is not set
+
+#
+# Power Domain Support
+#
+# CONFIG_POWER_DOMAIN is not set
+# CONFIG_DM_PMIC is not set
+# CONFIG_PMIC_TPS65217 is not set
+# CONFIG_POWER_TPS65218 is not set
+# CONFIG_POWER_TPS62362 is not set
+# CONFIG_DM_REGULATOR is not set
+# CONFIG_TPS6586X_POWER is not set
+# CONFIG_POWER_MT6323 is not set
+# CONFIG_DM_PWM is not set
+# CONFIG_PWM_IMX is not set
+# CONFIG_PWM_SANDBOX is not set
+# CONFIG_U_QE is not set
+# CONFIG_RAM is not set
+
+#
+# Reboot Mode Support
+#
+# CONFIG_DM_REBOOT_MODE is not set
+
+#
+# Remote Processor drivers
+#
+CONFIG_REMOTEPROC_MAX_FW_SIZE=0x10000
+
+#
+# Reset Controller Support
+#
+# CONFIG_RESET_SCMI is not set
+# CONFIG_DM_RNG is not set
+
+#
+# Real Time Clock
+#
+CONFIG_DM_RTC=y
+# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set
+# CONFIG_RTC_PCF2127 is not set
+# CONFIG_RTC_DS1307 is not set
+# CONFIG_RTC_DS1337 is not set
+# CONFIG_RTC_DS1338 is not set
+# CONFIG_RTC_DS3231 is not set
+# CONFIG_RTC_EMULATION is not set
+# CONFIG_RTC_GOLDFISH is not set
+# CONFIG_RTC_ISL1208 is not set
+# CONFIG_RTC_PCF8563 is not set
+# CONFIG_RTC_PT7C4338 is not set
+# CONFIG_RTC_RV3028 is not set
+# CONFIG_RTC_RV3029 is not set
+# CONFIG_RTC_RV8803 is not set
+# CONFIG_RTC_RX8010SJ is not set
+# CONFIG_RTC_RX8025 is not set
+# CONFIG_RTC_PL031 is not set
+# CONFIG_RTC_MV is not set
+# CONFIG_RTC_S35392A is not set
+CONFIG_RTC_MC146818=y
+# CONFIG_RTC_M41T62 is not set
+# CONFIG_RTC_STM32 is not set
+# CONFIG_RTC_ABX80X is not set
+# CONFIG_RTC_HT1380 is not set
+CONFIG_SCSI=y
+CONFIG_SERIAL=y
+CONFIG_BAUDRATE=115200
+# CONFIG_DEFAULT_ENV_IS_RW is not set
+CONFIG_REQUIRE_SERIAL_CONSOLE=y
+# CONFIG_SPECIFY_CONSOLE_INDEX is not set
+CONFIG_SERIAL_PRESENT=y
+CONFIG_DM_SERIAL=y
+# CONFIG_SERIAL_RX_BUFFER is not set
+# CONFIG_SERIAL_PUTS is not set
+# CONFIG_SERIAL_SEARCH_ALL is not set
+# CONFIG_SERIAL_PROBE_ALL is not set
+# CONFIG_VPL_DM_SERIAL is not set
+# CONFIG_ALTERA_JTAG_UART is not set
+# CONFIG_ALTERA_UART is not set
+# CONFIG_ARC_SERIAL is not set
+# CONFIG_ATMEL_USART is not set
+# CONFIG_BCM6345_SERIAL is not set
+CONFIG_COREBOOT_SERIAL=y
+CONFIG_COREBOOT_SERIAL_FROM_DBG2=y
+# CONFIG_CORTINA_UART is not set
+# CONFIG_FSL_LINFLEXUART is not set
+# CONFIG_FSL_LPUART is not set
+# CONFIG_MVEBU_A3700_UART is not set
+# CONFIG_MCFUART is not set
+# CONFIG_NULLDEV_SERIAL is not set
+CONFIG_SYS_NS16550=y
+CONFIG_NS16550_DYNAMIC=y
+CONFIG_SYS_NS16550_MEM32=y
+# CONFIG_SYS_NS16550_PORT_MAPPED is not set
+# CONFIG_PL01X_SERIAL is not set
+# CONFIG_ROCKCHIP_SERIAL is not set
+# CONFIG_XILINX_UARTLITE is not set
+# CONFIG_MSM_SERIAL is not set
+# CONFIG_MSM_GENI_SERIAL is not set
+# CONFIG_MXS_AUART_SERIAL is not set
+# CONFIG_OMAP_SERIAL is not set
+# CONFIG_SIFIVE_SERIAL is not set
+# CONFIG_ZYNQ_SERIAL is not set
+# CONFIG_MTK_SERIAL is not set
+# CONFIG_MT7620_SERIAL is not set
+# CONFIG_NPCM_SERIAL is not set
+# CONFIG_SM is not set
+# CONFIG_MESON_SM is not set
+# CONFIG_SMEM is not set
+
+#
+# Sound support
+#
+CONFIG_SOUND=y
+# CONFIG_I2S is not set
+# CONFIG_SOUND_DA7219 is not set
+CONFIG_SOUND_I8254=y
+# CONFIG_SOUND_INTEL_HDA is not set
+# CONFIG_SOUND_IVYBRIDGE is not set
+# CONFIG_SOUND_MAX98357A is not set
+# CONFIG_SOUND_RT5677 is not set
+
+#
+# SOC (System On Chip) specific Drivers
+#
+# CONFIG_SOC_DEVICE is not set
+# CONFIG_SOC_QCOM is not set
+# CONFIG_SOC_SAMSUNG is not set
+# CONFIG_SOC_TI is not set
+# CONFIG_SPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+CONFIG_SYSINFO=y
+CONFIG_SYSINFO_EXTRA=y
+# CONFIG_SYSINFO_GAZERBEAM is not set
+# CONFIG_SYSINFO_SANDBOX is not set
+# CONFIG_SYSINFO_SMBIOS is not set
+# CONFIG_SYSINFO_GPIO is not set
+
+#
+# System reset device drivers
+#
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_CMD_RESET=y
+# CONFIG_SYSRESET_CV1800B is not set
+# CONFIG_POWEROFF_GPIO is not set
+# CONFIG_SYSRESET_GPIO is not set
+# CONFIG_SYSRESET_SYSCON is not set
+# CONFIG_SYSRESET_WATCHDOG is not set
+# CONFIG_SYSRESET_RESETCTL is not set
+CONFIG_SYSRESET_X86=y
+# CONFIG_SYSRESET_SPL_X86 is not set
+# CONFIG_SYSRESET_TPL_X86 is not set
+# CONFIG_SYSRESET_MPC83XX is not set
+# CONFIG_DM_THERMAL is not set
+
+#
+# Timer Support
+#
+CONFIG_TIMER=y
+# CONFIG_TIMER_EARLY is not set
+# CONFIG_ALTERA_TIMER is not set
+# CONFIG_AST_TIMER is not set
+# CONFIG_ATCPIT100_TIMER is not set
+# CONFIG_ATMEL_PIT_TIMER is not set
+# CONFIG_CADENCE_TTC_TIMER is not set
+# CONFIG_DESIGNWARE_APB_TIMER is not set
+# CONFIG_FTTMR010_TIMER is not set
+# CONFIG_GXP_TIMER is not set
+# CONFIG_MPC83XX_TIMER is not set
+# CONFIG_RENESAS_OSTM_TIMER is not set
+# CONFIG_NOMADIK_MTU_TIMER is not set
+# CONFIG_NPCM_TIMER is not set
+# CONFIG_OMAP_TIMER is not set
+# CONFIG_ORION_TIMER is not set
+# CONFIG_ROCKCHIP_TIMER is not set
+# CONFIG_SP804_TIMER is not set
+# CONFIG_STM32_TIMER is not set
+# CONFIG_TEGRA_TIMER is not set
+CONFIG_X86_TSC_TIMER=y
+CONFIG_X86_TSC_READ_BASE=y
+# CONFIG_MTK_TIMER is not set
+# CONFIG_MCHP_PIT64B_TIMER is not set
+# CONFIG_IMX_GPT_TIMER is not set
+# CONFIG_XILINX_TIMER is not set
+# CONFIG_STARFIVE_TIMER is not set
+
+#
+# TPM support
+#
+CONFIG_USB=y
+CONFIG_DM_USB=y
+# CONFIG_DM_USB_GADGET is not set
+
+#
+# USB Host Controller Drivers
+#
+CONFIG_USB_HOST=y
+CONFIG_USB_XHCI_HCD=y
+# CONFIG_USB_XHCI_DWC3 is not set
+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set
+CONFIG_USB_XHCI_PCI=y
+# CONFIG_USB_XHCI_FSL is not set
+# CONFIG_USB_XHCI_BRCM is not set
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_MSM is not set
+CONFIG_USB_EHCI_PCI=y
+# CONFIG_USB_EHCI_ZYNQ is not set
+# CONFIG_USB_EHCI_GENERIC is not set
+# CONFIG_USB_EHCI_FSL is not set
+# CONFIG_USB_OHCI_HCD is not set
+# CONFIG_USB_UHCI_HCD is not set
+# CONFIG_USB_DWC2 is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_ISP1760 is not set
+# CONFIG_USB_CDNS3 is not set
+# CONFIG_USB_DWC3 is not set
+
+#
+# Legacy MUSB Support
+#
+# CONFIG_USB_MUSB_HCD is not set
+# CONFIG_USB_MUSB_UDC is not set
+
+#
+# MUSB Controller Driver
+#
+# CONFIG_USB_MUSB_HOST is not set
+# CONFIG_USB_MUSB_PIO_ONLY is not set
+
+#
+# USB Phy
+#
+# CONFIG_TWL4030_USB is not set
+# CONFIG_ROCKCHIP_USB2_PHY is not set
+
+#
+# ULPI drivers
+#
+
+#
+# USB peripherals
+#
+CONFIG_USB_STORAGE=y
+CONFIG_USB_KEYBOARD=y
+# CONFIG_USB_ONBOARD_HUB is not set
+CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000
+CONFIG_USB_KEYBOARD_FN_KEYS=y
+CONFIG_SYS_USB_EVENT_POLL=y
+# CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE is not set
+# CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP is not set
+CONFIG_USB_HOST_ETHER=y
+CONFIG_USB_ETHER_ASIX=y
+# CONFIG_USB_ETHER_ASIX88179 is not set
+# CONFIG_USB_ETHER_LAN75XX is not set
+# CONFIG_USB_ETHER_LAN78XX is not set
+# CONFIG_USB_ETHER_MCS7830 is not set
+# CONFIG_USB_ETHER_RTL8152 is not set
+CONFIG_USB_ETHER_SMSC95XX=y
+# CONFIG_USB_GADGET is not set
+# CONFIG_SPL_USB_GADGET is not set
+
+#
+# UFS Host Controller Support
+#
+# CONFIG_UFS is not set
+# CONFIG_TI_J721E_UFS is not set
+
+#
+# Graphics support
+#
+CONFIG_VIDEO=y
+# CONFIG_VIDEO_FONT_4X6 is not set
+CONFIG_VIDEO_FONT_8X16=y
+# CONFIG_VIDEO_FONT_SUN12X22 is not set
+# CONFIG_VIDEO_FONT_16X32 is not set
+CONFIG_VIDEO_LOGO=y
+CONFIG_BACKLIGHT=y
+CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0x1000000
+CONFIG_VIDEO_COPY=y
+# CONFIG_BACKLIGHT_GPIO is not set
+CONFIG_VIDEO_BPP8=y
+CONFIG_VIDEO_BPP16=y
+CONFIG_VIDEO_BPP32=y
+CONFIG_VIDEO_ANSI=y
+# CONFIG_VIDEO_MIPI_DSI is not set
+CONFIG_CONSOLE_NORMAL=y
+# CONFIG_CONSOLE_ROTATION is not set
+CONFIG_CONSOLE_TRUETYPE=y
+CONFIG_CONSOLE_TRUETYPE_SIZE=18
+CONFIG_CONSOLE_TRUETYPE_MAX_METRICS=10
+CONFIG_SYS_WHITE_ON_BLACK=y
+# CONFIG_NO_FB_CLEAR is not set
+CONFIG_VIDEO_SYNC_MS=100
+CONFIG_VIDEO_SYNC_CYCLIC_MS=10
+CONFIG_PANEL=y
+CONFIG_SIMPLE_PANEL=y
+# CONFIG_PANEL_HX8238D is not set
+
+#
+# TrueType Fonts
+#
+CONFIG_CONSOLE_TRUETYPE_NIMBUS=y
+# CONFIG_CONSOLE_TRUETYPE_ANKACODER is not set
+# CONFIG_CONSOLE_TRUETYPE_RUFSCRIPT is not set
+# CONFIG_CONSOLE_TRUETYPE_CANTORAONE is not set
+# CONFIG_VIDCONSOLE_AS_LCD is not set
+# CONFIG_VIDEO_BOCHS is not set
+CONFIG_VIDEO_COREBOOT=y
+# CONFIG_VIDEO_VESA is not set
+# CONFIG_VIDEO_LCD_ANX9804 is not set
+# CONFIG_ATMEL_LCD_BGR555 is not set
+# CONFIG_VIDEO_BCM2835 is not set
+# CONFIG_VIDEO_LCD_ENDEAVORU is not set
+# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set
+# CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set
+# CONFIG_VIDEO_LCD_LG_LD070WX3 is not set
+# CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set
+# CONFIG_VIDEO_LCD_SAMSUNG_LTL106HL02 is not set
+# CONFIG_VIDEO_LCD_SSD2828 is not set
+# CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set
+# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
+# CONFIG_VIDEO_MESON is not set
+# CONFIG_VIDEO_MVEBU is not set
+# CONFIG_I2C_EDID is not set
+# CONFIG_DISPLAY is not set
+# CONFIG_ATMEL_HLCD is not set
+# CONFIG_BACKLIGHT_LM3533 is not set
+# CONFIG_AM335X_LCD is not set
+# CONFIG_VIDEO_EXYNOS is not set
+# CONFIG_VIDEO_BROADWELL_IGD is not set
+# CONFIG_VIDEO_IVYBRIDGE_IGD is not set
+# CONFIG_VIDEO_ROCKCHIP is not set
+# CONFIG_VIDEO_ARM_MALIDP is not set
+# CONFIG_VIDEO_STM32 is not set
+# CONFIG_VIDEO_TIDSS is not set
+# CONFIG_VIDEO_TEGRA124 is not set
+# CONFIG_VIDEO_BRIDGE is not set
+# CONFIG_VIDEO_BRIDGE_PARADE_DP501 is not set
+# CONFIG_VIDEO_BRIDGE_SOLOMON_SSD2825 is not set
+# CONFIG_VIDEO_BRIDGE_TOSHIBA_TC358768 is not set
+# CONFIG_VIDEO_TEGRA20 is not set
+# CONFIG_VIDEO_DSI_TEGRA30 is not set
+# CONFIG_TEGRA_BACKLIGHT_PWM is not set
+# CONFIG_VIDEO_MXS is not set
+# CONFIG_VIDEO_SEPS525 is not set
+CONFIG_CONSOLE_SCROLL_LINES=5
+# CONFIG_VIDEO_SIMPLE is not set
+# CONFIG_VIDEO_DT_SIMPLEFB is not set
+# CONFIG_VIDEO_MCDE_SIMPLE is not set
+# CONFIG_OSD is not set
+# CONFIG_VIDEO_REMOVE is not set
+# CONFIG_SPLASH_SCREEN is not set
+# CONFIG_BMP is not set
+CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000
+CONFIG_VIDEO_BMP_RLE8=y
+# CONFIG_BMP_16BPP is not set
+# CONFIG_BMP_24BPP is not set
+# CONFIG_BMP_32BPP is not set
+
+#
+# VirtIO Drivers
+#
+# CONFIG_VIRTIO_MMIO is not set
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_PCI_LEGACY is not set
+
+#
+# 1-Wire support
+#
+# CONFIG_W1 is not set
+
+#
+# 1-wire EEPROM support
+#
+# CONFIG_W1_EEPROM is not set
+
+#
+# Watchdog Timer Support
+#
+# CONFIG_WATCHDOG is not set
+# CONFIG_IMX_WATCHDOG is not set
+# CONFIG_ULP_WATCHDOG is not set
+# CONFIG_WDT is not set
+# CONFIG_PHYS_TO_BUS is not set
+
+#
+# File systems
+#
+# CONFIG_FS_BTRFS is not set
+CONFIG_FS_CBFS=y
+CONFIG_FS_EXT4=y
+CONFIG_EXT4_WRITE=y
+CONFIG_FS_FAT=y
+CONFIG_FAT_WRITE=y
+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
+# CONFIG_FS_JFFS2 is not set
+# CONFIG_UBIFS_SILENCE_MSG is not set
+# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set
+# CONFIG_FS_CRAMFS is not set
+# CONFIG_YAFFS2 is not set
+# CONFIG_FS_SQUASHFS is not set
+# CONFIG_FS_EROFS is not set
+
+#
+# Library routines
+#
+# CONFIG_ADDR_MAP is not set
+# CONFIG_SYS_TIMER_COUNTS_DOWN is not set
+CONFIG_PHYSMEM=y
+# CONFIG_BCH is not set
+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set
+CONFIG_CHARSET=y
+# CONFIG_DYNAMIC_CRC_TABLE is not set
+CONFIG_HAVE_ARCH_IOMAP=y
+CONFIG_HAVE_PRIVATE_LIBGCC=y
+CONFIG_LIB_UUID=y
+# CONFIG_RANDOM_UUID is not set
+CONFIG_PRINTF=y
+CONFIG_SPRINTF=y
+CONFIG_STRTO=y
+CONFIG_USE_PRIVATE_LIBGCC=y
+CONFIG_SYS_HZ=1000
+# CONFIG_PANIC_HANG is not set
+CONFIG_REGEX=y
+CONFIG_LIB_RAND=y
+# CONFIG_LIB_HW_RAND is not set
+CONFIG_SUPPORT_ACPI=y
+CONFIG_ACPI=y
+# CONFIG_GENERATE_ACPI_TABLE is not set
+# CONFIG_BITREVERSE is not set
+# CONFIG_TRACE is not set
+# CONFIG_CIRCBUF is not set
+CONFIG_CMD_DHRYSTONE=y
+
+#
+# Security support
+#
+# CONFIG_AES is not set
+# CONFIG_ECDSA is not set
+CONFIG_RSA=y
+CONFIG_RSA_VERIFY=y
+# CONFIG_RSA_VERIFY_WITH_PKEY is not set
+CONFIG_RSA_SOFTWARE_EXP=y
+# CONFIG_ASYMMETRIC_KEY_TYPE is not set
+# CONFIG_TPM is not set
+
+#
+# Android Verified Boot
+#
+
+#
+# Hashing Support
+#
+# CONFIG_BLAKE2 is not set
+CONFIG_SHA1=y
+CONFIG_SHA256=y
+# CONFIG_SHA512 is not set
+# CONFIG_SHA384 is not set
+# CONFIG_SHA_HW_ACCEL is not set
+CONFIG_MD5=y
+CONFIG_CRC8=y
+CONFIG_CRC32=y
+
+#
+# Compression Support
+#
+# CONFIG_LZ4 is not set
+# CONFIG_LZMA is not set
+# CONFIG_LZO is not set
+# CONFIG_GZIP is not set
+# CONFIG_ZLIB_UNCOMPRESS is not set
+# CONFIG_BZIP2 is not set
+CONFIG_ZLIB=y
+# CONFIG_ZSTD is not set
+# CONFIG_VPL_LZMA is not set
+# CONFIG_SPL_GZIP is not set
+# CONFIG_ERRNO_STR is not set
+# CONFIG_HEXDUMP is not set
+# CONFIG_GETOPT is not set
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
+CONFIG_SYS_FDT_PAD=0x3000
+# CONFIG_LIB_RATIONAL is not set
+CONFIG_SMBIOS=y
+CONFIG_SMBIOS_PARSER=y
+# CONFIG_EFI is not set
+CONFIG_EFI_LOADER=y
+CONFIG_EFI_BINARY_EXEC=y
+CONFIG_EFI_BOOTMGR=y
+CONFIG_EFI_VARIABLE_FILE_STORE=y
+# CONFIG_EFI_RT_VOLATILE_STORE is not set
+# CONFIG_EFI_VARIABLE_NO_STORE is not set
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=131072
+CONFIG_EFI_GET_TIME=y
+# CONFIG_EFI_SET_TIME is not set
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+# CONFIG_EFI_SECURE_BOOT is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_EFI_HTTP_BOOT is not set
+# CONFIG_OPTEE_LIB is not set
+# CONFIG_OPTEE_IMAGE is not set
+# CONFIG_BOOTM_OPTEE is not set
+# CONFIG_TEST_FDTDEC is not set
+CONFIG_LIB_DATE=y
+CONFIG_LIB_ELF=y
+CONFIG_LMB=y
+CONFIG_LMB_USE_MAX_REGIONS=y
+CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_PHANDLE_CHECK_SEQ is not set
+
+#
+# Testing
+#
+# CONFIG_UNIT_TEST is not set
+# CONFIG_POST is not set
+
+#
+# Tools options
+#
+CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC32=y
+CONFIG_TOOLS_LIBCRYPTO=y
+CONFIG_TOOLS_KWBIMAGE=y
+CONFIG_TOOLS_FIT=y
+CONFIG_TOOLS_FIT_FULL_CHECK=y
+CONFIG_TOOLS_FIT_PRINT=y
+CONFIG_TOOLS_FIT_RSASSA_PSS=y
+CONFIG_TOOLS_FIT_SIGNATURE=y
+CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE=0x10000000
+CONFIG_TOOLS_FIT_VERBOSE=y
+CONFIG_TOOLS_MD5=y
+CONFIG_TOOLS_OF_LIBFDT=y
+CONFIG_TOOLS_SHA1=y
+CONFIG_TOOLS_SHA256=y
+CONFIG_TOOLS_SHA384=y
+CONFIG_TOOLS_SHA512=y
+CONFIG_TOOLS_MKEFICAPSULE=y
+# CONFIG_FSPI_CONF_HEADER is not set
+# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/config/u-boot/i386coreboot/target.cfg b/config/u-boot/i386coreboot/target.cfg
new file mode 100644
index 00000000..71cdde44
--- /dev/null
+++ b/config/u-boot/i386coreboot/target.cfg
@@ -0,0 +1,7 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+tree="x86"
+# test building with x86_64 hostcc by commenting these:
+# xtree="default" # coreboot tree containing crossgcc
+# xarch="i386-elf"
+# or uncomment them to use crossgcc(buggy)
diff --git a/config/u-boot/qemu_arm64_12mb/config/default b/config/u-boot/qemu_arm64_12mb/config/default
index 83c90261..2cd0b94c 100644
--- a/config/u-boot/qemu_arm64_12mb/config/default
+++ b/config/u-boot/qemu_arm64_12mb/config/default
@@ -1,13 +1,16 @@
#
# Automatically generated file; DO NOT EDIT.
-# U-Boot 2023.10 Configuration
+# U-Boot 2025.04 Configuration
#
#
-# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+# Compiler: gcc (Debian 14.2.0-19) 14.2.0
#
CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_HAVE_SETJMP=y
+CONFIG_SUPPORT_LITTLE_ENDIAN=y
CONFIG_SYS_CACHE_SHIFT_6=y
+CONFIG_64BIT=y
CONFIG_SYS_CACHELINE_SIZE=64
CONFIG_LINKER_LIST_ALIGN=8
# CONFIG_ARC is not set
@@ -44,7 +47,9 @@ CONFIG_ARM64_CRC32=y
CONFIG_COUNTER_FREQUENCY=0
CONFIG_POSITION_INDEPENDENT=y
# CONFIG_INIT_SP_RELATIVE is not set
+# CONFIG_DRIVER_GICV2 is not set
# CONFIG_GIC_V3_ITS is not set
+# CONFIG_GICV3_SUPPORT_GIC600 is not set
CONFIG_STATIC_RELA=y
CONFIG_DMA_ADDR_T_64BIT=y
CONFIG_ARM_ASM_UNIFIED=y
@@ -71,13 +76,11 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_KIRKWOOD is not set
# CONFIG_ARCH_MVEBU is not set
# CONFIG_ARCH_ORION5X is not set
-# CONFIG_TARGET_STV0991 is not set
# CONFIG_ARCH_BCM283X is not set
# CONFIG_ARCH_BCMSTB is not set
# CONFIG_ARCH_BCMBCA is not set
# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
# CONFIG_TARGET_BCMNS is not set
-# CONFIG_TARGET_BCMNS2 is not set
# CONFIG_TARGET_BCMNS3 is not set
# CONFIG_ARCH_EXYNOS is not set
# CONFIG_ARCH_S5PC1XX is not set
@@ -89,6 +92,7 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_OMAP2PLUS is not set
# CONFIG_ARCH_MESON is not set
# CONFIG_ARCH_MEDIATEK is not set
+# CONFIG_ARCH_MMP is not set
# CONFIG_ARCH_LPC32XX is not set
# CONFIG_ARCH_IMX8 is not set
# CONFIG_ARCH_IMX8M is not set
@@ -107,12 +111,13 @@ CONFIG_ARM64_SUPPORT_AARCH32=y
# CONFIG_ARCH_APPLE is not set
# CONFIG_ARCH_OWL is not set
CONFIG_ARCH_QEMU=y
-# CONFIG_ARCH_RMOBILE is not set
+# CONFIG_ARCH_RENESAS is not set
# CONFIG_ARCH_SNAPDRAGON is not set
# CONFIG_ARCH_SOCFPGA is not set
# CONFIG_ARCH_SUNXI is not set
# CONFIG_ARCH_U8500 is not set
# CONFIG_ARCH_VERSAL is not set
+# CONFIG_ARCH_VERSAL2 is not set
# CONFIG_ARCH_VERSAL_NET is not set
# CONFIG_ARCH_VF610 is not set
# CONFIG_ARCH_ZYNQ is not set
@@ -152,6 +157,7 @@ CONFIG_ARCH_QEMU=y
# CONFIG_TARGET_LS1046AQDS is not set
# CONFIG_TARGET_LS1046ARDB is not set
# CONFIG_TARGET_LS1046AFRWY is not set
+# CONFIG_ARCH_SC5XX is not set
# CONFIG_TARGET_SL28 is not set
# CONFIG_TARGET_TEN64 is not set
# CONFIG_ARCH_UNIPHIER is not set
@@ -166,13 +172,14 @@ CONFIG_ARCH_QEMU=y
# CONFIG_ARCH_ASPEED is not set
# CONFIG_TARGET_DURIAN is not set
# CONFIG_TARGET_POMELO is not set
+# CONFIG_TARGET_PE2201 is not set
# CONFIG_TARGET_PRESIDIO_ASIC is not set
# CONFIG_TARGET_XENGUEST_ARM64 is not set
# CONFIG_ARCH_GXP is not set
-# CONFIG_STATIC_MACH_TYPE is not set
CONFIG_TEXT_BASE=0x50000000
CONFIG_SYS_MALLOC_LEN=0x1000000
CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_BLOBLIST_SIZE_RELOC=0x2000
CONFIG_NR_DRAM_BANKS=1
CONFIG_ENV_SOURCE_FILE=""
CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
@@ -180,6 +187,7 @@ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x40200000
CONFIG_ENV_SIZE=0x40000
# CONFIG_DM_GPIO is not set
CONFIG_DEFAULT_DEVICE_TREE="qemu-arm64"
+CONFIG_DDR_SI_TEST=y
CONFIG_BOARD_SPECIFIC_OPTIONS=y
# CONFIG_OF_LIBFDT_OVERLAY is not set
CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
@@ -187,10 +195,13 @@ CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000
CONFIG_SYS_MONITOR_LEN=0
# CONFIG_TARGET_QEMU_ARM_32BIT is not set
CONFIG_TARGET_QEMU_ARM_64BIT=y
+# CONFIG_TARGET_QEMU_ARM_SBSA is not set
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_SYS_LOAD_ADDR=0x40200000
+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
CONFIG_ERR_PTR_OFFSET=0x0
CONFIG_PRE_CON_BUF_ADDR=0x40100000
CONFIG_PRE_CON_BUF_SZ=4096
-CONFIG_BOOTSTAGE_STASH_ADDR=0
CONFIG_DEBUG_UART_BASE=0x9000000
CONFIG_DEBUG_UART_CLOCK=0
# CONFIG_DEBUG_UART_BOARD_INIT is not set
@@ -209,18 +220,11 @@ CONFIG_SYS_CLK_FREQ=0
CONFIG_PSCI_RESET=y
# CONFIG_ARMV8_PSCI is not set
# CONFIG_ARMV8_EA_EL3_FIRST is not set
+# CONFIG_ARMV8_UDELAY_EVENT_STREAM is not set
CONFIG_ARMV8_CRYPTO=y
CONFIG_ARMV8_CE_SHA1=y
CONFIG_ARMV8_CE_SHA256=y
-# CONFIG_CMD_DEKBLOB is not set
-# CONFIG_IMX_CAAM_DEK_ENCAP is not set
-# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
-# CONFIG_IMX_SECO_DEK_ENCAP is not set
-# CONFIG_IMX_ELE_DEK_ENCAP is not set
-# CONFIG_CMD_HDMIDETECT is not set
-CONFIG_IMX_DCD_ADDR=0x00910000
CONFIG_SYS_MEM_TOP_HIDE=0x0
-CONFIG_SYS_LOAD_ADDR=0x40200000
CONFIG_MTDPARTS_NOR0="64m(u-boot)"
CONFIG_MTDPARTS_NOR1="64m(u-boot-env)"
@@ -240,6 +244,7 @@ CONFIG_AHCI=y
# Functionality shared between NXP SoCs
#
# CONFIG_NXP_ESBC is not set
+CONFIG_SYS_LITTLE_ENDIAN=y
#
# General setup
@@ -247,7 +252,7 @@ CONFIG_AHCI=y
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=130200
+CONFIG_GCC_VERSION=140200
CONFIG_CLANG_VERSION=0
CONFIG_CC_OPTIMIZE_FOR_SIZE=y
# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set
@@ -273,9 +278,13 @@ CONFIG_FDT_64BIT=y
# CONFIG_SYS_CUSTOM_LDSCRIPT is not set
CONFIG_PLATFORM_ELFENTRY="_start"
CONFIG_STACK_SIZE=0x1000000
-CONFIG_SYS_SRAM_BASE=0x0
-CONFIG_SYS_SRAM_SIZE=0x0
# CONFIG_MP is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_HAVE_SYS_UBOOT_START is not set
+CONFIG_SYS_UBOOT_START=0x50000000
+CONFIG_HAVE_SYS_MONITOR_BASE=y
+CONFIG_SYS_MONITOR_BASE=0x50000000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
# CONFIG_API is not set
#
@@ -283,11 +292,74 @@ CONFIG_SYS_SRAM_SIZE=0x0
#
#
+# UEFI Support
+#
+CONFIG_EFI_LOADER=y
+CONFIG_EFI_BINARY_EXEC=y
+# CONFIG_EFI_SECURE_BOOT is not set
+
+#
+# UEFI services
+#
+CONFIG_EFI_GET_TIME=y
+CONFIG_EFI_SET_TIME=y
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+
+#
+# UEFI Variables
+#
+CONFIG_EFI_VARIABLE_FILE_STORE=y
+# CONFIG_EFI_RT_VOLATILE_STORE is not set
+# CONFIG_EFI_VARIABLE_NO_STORE is not set
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=131072
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+
+#
+# Capsule support
+#
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+
+#
+# UEFI protocol support
+#
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_TCG2_PROTOCOL=y
+# CONFIG_EFI_TCG2_PROTOCOL_MEASURE_DTB is not set
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+CONFIG_EFI_IP4_CONFIG2_PROTOCOL=y
+CONFIG_EFI_HTTP_PROTOCOL=y
+
+#
+# Misc options
+#
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+
+#
+# EFI bootmanager
+#
+CONFIG_EFI_BOOTMGR=y
+CONFIG_EFI_HTTP_BOOT=y
+CONFIG_BOOTEFI_HELLO_COMPILE=y
+CONFIG_BOOTEFI_TESTAPP_COMPILE=y
+
+#
# Boot images
#
# CONFIG_ANDROID_BOOT_IMAGE is not set
-CONFIG_FIT=y
CONFIG_TIMESTAMP=y
+CONFIG_FIT=y
CONFIG_FIT_EXTERNAL_OFFSET=0x0
CONFIG_FIT_FULL_CHECK=y
CONFIG_FIT_SIGNATURE=y
@@ -299,32 +371,34 @@ CONFIG_FIT_BEST_MATCH=y
CONFIG_FIT_PRINT=y
# CONFIG_SPL_LOAD_FIT_FULL is not set
CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS_FEATURES=y
+CONFIG_BOOT_DEFAULTS_CMDS=y
CONFIG_BOOT_DEFAULTS=y
CONFIG_BOOTSTD=y
CONFIG_BOOTSTD_FULL=y
CONFIG_BOOTSTD_DEFAULTS=y
CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTSTD_MENU=y
CONFIG_BOOTMETH_GLOBAL=y
+# CONFIG_BOOTMETH_ANDROID is not set
+# CONFIG_BOOTMETH_CROS is not set
CONFIG_BOOTMETH_EXTLINUX=y
CONFIG_BOOTMETH_EXTLINUX_PXE=y
CONFIG_BOOTMETH_EFILOADER=y
+CONFIG_BOOTMETH_EFI_BOOTMGR=y
+CONFIG_BOOTMETH_QFW=y
CONFIG_BOOTMETH_VBE=y
CONFIG_BOOTMETH_DISTRO=y
CONFIG_BOOTMETH_VBE_REQUEST=y
CONFIG_BOOTMETH_VBE_SIMPLE=y
+# CONFIG_BOOTMETH_VBE_ABREC is not set
CONFIG_BOOTMETH_VBE_SIMPLE_OS=y
CONFIG_EXPO=y
CONFIG_BOOTMETH_SCRIPT=y
+# CONFIG_UPL is not set
CONFIG_LEGACY_IMAGE_FORMAT=y
+# CONFIG_MEASURED_BOOT is not set
CONFIG_SUPPORT_RAW_INITRD=y
-# CONFIG_OF_BOARD_SETUP is not set
-# CONFIG_OF_SYSTEM_SETUP is not set
-# CONFIG_OF_STDOUT_VIA_ALIAS is not set
-CONFIG_HAVE_TEXT_BASE=y
-CONFIG_HAVE_SYS_MONITOR_BASE=y
-CONFIG_SYS_MONITOR_BASE=0x50000000
-# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
-CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_CHROMEOS is not set
# CONFIG_CHROMEOS_VBOOT is not set
# CONFIG_RAMBOOT_PBL is not set
@@ -335,7 +409,6 @@ CONFIG_SYS_BOOT_RAMDISK_HIGH=y
# Boot timing
#
# CONFIG_BOOTSTAGE is not set
-CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
# CONFIG_SHOW_BOOT_PROGRESS is not set
#
@@ -362,10 +435,21 @@ CONFIG_BOOTDELAY=2
# Image support
#
# CONFIG_IMAGE_PRE_LOAD is not set
+
+#
+# Devicetree fixup
+#
+# CONFIG_OF_ENV_SETUP is not set
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+# CONFIG_FDT_SIMPLEFB is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
# CONFIG_USE_BOOTARGS is not set
# CONFIG_BOOTARGS_SUBST is not set
CONFIG_USE_BOOTCOMMAND=y
-CONFIG_BOOTCOMMAND="bootflow scan -lb"
+CONFIG_BOOTCOMMAND="bootflow scan -l; if bootflow menu; then cls; bootflow boot; fi"
CONFIG_USE_PREBOOT=y
CONFIG_PREBOOT="usb start"
CONFIG_PREBOOT_DEFINED=y
@@ -383,6 +467,8 @@ CONFIG_DEFAULT_FDT_FILE=""
#
CONFIG_MENU=y
# CONFIG_CONSOLE_RECORD is not set
+CONFIG_SYS_CBSIZE=1024
+CONFIG_SYS_PBSIZE=1044
# CONFIG_DISABLE_CONSOLE is not set
CONFIG_LOGLEVEL=4
# CONFIG_SILENT_CONSOLE is not set
@@ -390,6 +476,7 @@ CONFIG_LOGLEVEL=4
# CONFIG_TPL_SILENT_CONSOLE is not set
CONFIG_PRE_CONSOLE_BUFFER=y
CONFIG_CONSOLE_FLUSH_SUPPORT=y
+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set
CONFIG_CONSOLE_MUX=y
CONFIG_SYS_CONSOLE_IS_IN_ENV=y
# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set
@@ -415,7 +502,9 @@ CONFIG_SYS_DEVICE_NULLDEV=y
#
# Start-up hooks
#
-# CONFIG_CYCLIC is not set
+CONFIG_CYCLIC=y
+# CONFIG_SPL_CYCLIC is not set
+CONFIG_CYCLIC_MAX_CPU_TIME_US=5000
CONFIG_EVENT=y
CONFIG_EVENT_DYNAMIC=y
# CONFIG_EVENT_DEBUG is not set
@@ -426,7 +515,7 @@ CONFIG_EVENT_DYNAMIC=y
CONFIG_BOARD_LATE_INIT=y
# CONFIG_CLOCKS is not set
# CONFIG_HWCONFIG is not set
-# CONFIG_LAST_STAGE_INIT is not set
+CONFIG_LAST_STAGE_INIT=y
# CONFIG_MISC_INIT_R is not set
# CONFIG_SYS_MALLOC_BOOTPARAMS is not set
# CONFIG_ID_EEPROM is not set
@@ -437,6 +526,7 @@ CONFIG_PCI_INIT_R=y
# Security support
#
CONFIG_HASH=y
+# CONFIG_HASH_CRC8 is not set
# CONFIG_STACKPROTECTOR is not set
# CONFIG_BOARD_RNG_SEED is not set
@@ -453,25 +543,26 @@ CONFIG_UPDATE_LOAD_ADDR=0x100000
#
# Blob list
#
-# CONFIG_BLOBLIST is not set
+CONFIG_BLOBLIST=y
+# CONFIG_BLOBLIST_FIXED is not set
+CONFIG_BLOBLIST_ALLOC=y
+CONFIG_BLOBLIST_SIZE=0x400
CONFIG_IMAGE_SIGN_INFO=y
-# CONFIG_FDT_SIMPLEFB is not set
-# CONFIG_BMP is not set
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
#
-# Command line interface
+# Hush flavor to use
#
-CONFIG_CMDLINE=y
-CONFIG_HUSH_PARSER=y
+CONFIG_HUSH_OLD_PARSER=y
+# CONFIG_HUSH_MODERN_PARSER is not set
CONFIG_CMDLINE_EDITING=y
# CONFIG_CMDLINE_PS_SUPPORT is not set
CONFIG_AUTO_COMPLETE=y
CONFIG_SYS_LONGHELP=y
CONFIG_SYS_PROMPT="=> "
CONFIG_SYS_PROMPT_HUSH_PS2="> "
-CONFIG_SYS_MAXARGS=16
-CONFIG_SYS_CBSIZE=512
-CONFIG_SYS_PBSIZE=532
+CONFIG_SYS_MAXARGS=64
CONFIG_SYS_XTRACE=y
#
@@ -485,8 +576,11 @@ CONFIG_CMD_BDI=y
# CONFIG_CMD_BDINFO_EXTRA is not set
# CONFIG_CMD_CONFIG is not set
CONFIG_CMD_CONSOLE=y
+# CONFIG_CMD_UFETCH is not set
+# CONFIG_CMD_HISTORY is not set
# CONFIG_CMD_LICENSE is not set
# CONFIG_CMD_PMC is not set
+CONFIG_CMD_SMBIOS=y
#
# Boot commands
@@ -496,8 +590,11 @@ CONFIG_CMD_BOOTM=y
CONFIG_CMD_BOOTDEV=y
CONFIG_CMD_BOOTFLOW=y
CONFIG_CMD_BOOTFLOW_FULL=y
+CONFIG_CMD_BOOTFLOW_BOOTDELAY=30
CONFIG_CMD_BOOTMETH=y
+CONFIG_CMD_BOOTSTD=y
CONFIG_BOOTM_EFI=y
+CONFIG_BOOTM_ELF=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTI=y
CONFIG_BOOTM_LINUX=y
@@ -506,25 +603,26 @@ CONFIG_BOOTM_NETBSD=y
# CONFIG_BOOTM_OSE is not set
CONFIG_BOOTM_PLAN9=y
CONFIG_BOOTM_RTEMS=y
+# CONFIG_CMD_UPL is not set
CONFIG_CMD_VBE=y
CONFIG_BOOTM_VXWORKS=y
-CONFIG_SYS_BOOTM_LEN=0x4000000
CONFIG_CMD_BOOTEFI=y
-CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
+CONFIG_CMD_BOOTEFI_BINARY=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
CONFIG_CMD_BOOTEFI_HELLO=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
# CONFIG_CMD_BOOTMENU is not set
# CONFIG_CMD_ADTIMG is not set
CONFIG_CMD_ELF=y
+CONFIG_CMD_ELF_BOOTVX=y
+# CONFIG_CMD_ELF_FDT_SETUP is not set
CONFIG_CMD_FDT=y
CONFIG_CMD_GO=y
CONFIG_CMD_RUN=y
CONFIG_CMD_IMI=y
# CONFIG_CMD_IMLS is not set
CONFIG_CMD_XIMG=y
-# CONFIG_CMD_XXD is not set
-# CONFIG_CMD_THOR_DOWNLOAD is not set
-# CONFIG_CMD_ZBOOT is not set
+CONFIG_SYS_XIMG_LEN=0x800000
#
# Environment commands
@@ -549,10 +647,9 @@ CONFIG_CMD_NVEDIT_EFI=y
# Memory commands
#
# CONFIG_CMD_BINOP is not set
-# CONFIG_CMD_BLOBLIST is not set
+CONFIG_CMD_BLOBLIST=y
CONFIG_CMD_CRC32=y
# CONFIG_CRC32_VERIFY is not set
-# CONFIG_CMD_EEPROM is not set
# CONFIG_LOOPW is not set
# CONFIG_CMD_MD5SUM is not set
# CONFIG_CMD_MEMINFO is not set
@@ -576,17 +673,15 @@ CONFIG_CMD_UNZIP=y
# Device access commands
#
# CONFIG_CMD_ARMFLASH is not set
+# CONFIG_CMD_BCB is not set
# CONFIG_CMD_BIND is not set
-# CONFIG_CMD_CLK is not set
# CONFIG_CMD_DEMO is not set
CONFIG_CMD_DFU=y
CONFIG_CMD_DM=y
CONFIG_CMD_FLASH=y
-# CONFIG_CMD_FPGAD is not set
# CONFIG_CMD_FUSE is not set
# CONFIG_CMD_GPIO is not set
# CONFIG_CMD_GPT is not set
-# CONFIG_RANDOM_UUID is not set
# CONFIG_CMD_IDE is not set
# CONFIG_CMD_IO is not set
# CONFIG_CMD_IOTRACE is not set
@@ -602,9 +697,9 @@ CONFIG_CMD_LOADXY_TIMEOUT=90
# CONFIG_CMD_MBR is not set
# CONFIG_CMD_CLONE is not set
CONFIG_CMD_MTD=y
+# CONFIG_CMD_MTD_OTP is not set
CONFIG_CMD_NVME=y
# CONFIG_CMD_ONENAND is not set
-# CONFIG_CMD_OSD is not set
CONFIG_CMD_PART=y
CONFIG_CMD_PCI=y
# CONFIG_CMD_PCI_MPS is not set
@@ -613,10 +708,8 @@ CONFIG_CMD_POWEROFF=y
# CONFIG_CMD_SATA is not set
CONFIG_CMD_SCSI=y
# CONFIG_CMD_SDRAM is not set
-# CONFIG_CMD_TSI148 is not set
-# CONFIG_CMD_UNIVERSE is not set
CONFIG_CMD_USB=y
-# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_RKMTD is not set
CONFIG_CMD_VIRTIO=y
# CONFIG_CMD_WRITE is not set
@@ -629,13 +722,9 @@ CONFIG_CMD_ITEST=y
CONFIG_CMD_SOURCE=y
CONFIG_CMD_SETEXPR=y
# CONFIG_CMD_SETEXPR_FMT is not set
-
-#
-# Android support commands
-#
+# CONFIG_CMD_XXD is not set
CONFIG_CMD_NET=y
CONFIG_CMD_BOOTP=y
-CONFIG_CMD_DHCP=y
# CONFIG_BOOTP_MAY_FAIL is not set
CONFIG_BOOTP_BOOTPATH=y
# CONFIG_BOOTP_VENDOREX is not set
@@ -651,24 +740,26 @@ CONFIG_BOOTP_SUBNETMASK=y
# CONFIG_CMD_PCAP is not set
CONFIG_BOOTP_PXE=y
CONFIG_BOOTP_PXE_CLIENTARCH=0x16
+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set
CONFIG_BOOTP_VCI_STRING="U-Boot.armv8"
-CONFIG_CMD_TFTPBOOT=y
# CONFIG_CMD_TFTPPUT is not set
# CONFIG_CMD_TFTPSRV is not set
CONFIG_NET_TFTP_VARS=y
# CONFIG_CMD_RARP is not set
# CONFIG_CMD_NFS is not set
# CONFIG_SYS_DISABLE_AUTOLOAD is not set
-# CONFIG_CMD_WGET is not set
-CONFIG_CMD_MII=y
-CONFIG_CMD_PING=y
# CONFIG_CMD_CDP is not set
# CONFIG_CMD_SNTP is not set
-# CONFIG_CMD_DNS is not set
# CONFIG_CMD_LINK_LOCAL is not set
# CONFIG_CMD_ETHSW is not set
-CONFIG_CMD_PXE=y
# CONFIG_CMD_WOL is not set
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_DNS=y
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+CONFIG_CMD_TFTPBOOT=y
+CONFIG_CMD_WGET=y
+CONFIG_CMD_PXE=y
#
# Misc commands
@@ -677,10 +768,11 @@ CONFIG_CMD_PXE=y
# CONFIG_CMD_BMP is not set
# CONFIG_CMD_BSP is not set
CONFIG_CMD_BLOCK_CACHE=y
+CONFIG_CMD_BLKMAP=y
# CONFIG_CMD_CACHE is not set
# CONFIG_CMD_CONITRACE is not set
CONFIG_CMD_CLS=y
-# CONFIG_CMD_EFIDEBUG is not set
+CONFIG_CMD_EFIDEBUG=y
CONFIG_CMD_EFICONFIG=y
# CONFIG_CMD_EXCEPTION is not set
# CONFIG_CMD_INI is not set
@@ -704,7 +796,6 @@ CONFIG_CMD_VIDCONSOLE=y
#
# TI specific command line interface
#
-# CONFIG_CMD_DDR3 is not set
#
# Power commands
@@ -743,12 +834,12 @@ CONFIG_CMD_FS_GENERIC=y
CONFIG_CMD_MTDPARTS=y
# CONFIG_CMD_MTDPARTS_SPREAD is not set
# CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES is not set
-# CONFIG_CMD_REISER is not set
# CONFIG_CMD_ZFS is not set
#
# Debug commands
#
+CONFIG_CMD_CYCLIC=y
# CONFIG_CMD_DIAG is not set
# CONFIG_CMD_EVENT is not set
# CONFIG_CMD_LOG is not set
@@ -759,6 +850,7 @@ CONFIG_CMD_MTDPARTS=y
#
CONFIG_PARTITIONS=y
# CONFIG_MAC_PARTITION is not set
+# CONFIG_TEGRA_PARTITION is not set
CONFIG_DOS_PARTITION=y
CONFIG_ISO_PARTITION=y
# CONFIG_AMIGA_PARTITION is not set
@@ -775,13 +867,16 @@ CONFIG_SUPPORT_OF_CONTROL=y
CONFIG_OF_CONTROL=y
CONFIG_OF_REAL=y
# CONFIG_OF_LIVE is not set
+# CONFIG_OF_UPSTREAM is not set
CONFIG_OF_SEPARATE=y
# CONFIG_OF_EMBED is not set
+# CONFIG_OF_INITIAL_DTB_READONLY is not set
CONFIG_OF_BOARD=y
CONFIG_OF_HAS_PRIOR_STAGE=y
CONFIG_OF_OMIT_DTB=y
CONFIG_DEVICE_TREE_INCLUDES=""
CONFIG_OF_LIST="qemu-arm64"
+CONFIG_OF_OVERLAY_LIST=""
# CONFIG_MULTI_DTB_FIT is not set
CONFIG_OF_TAG_MIGRATE=y
# CONFIG_OF_DTB_PROPS_REMOVE is not set
@@ -790,6 +885,7 @@ CONFIG_OF_TAG_MIGRATE=y
# Environment
#
CONFIG_ENV_SUPPORT=y
+CONFIG_ENV_CALLBACK_LIST_STATIC=""
CONFIG_SAVEENV=y
# CONFIG_ENV_OVERWRITE is not set
# CONFIG_OVERWRITE_ETHADDR_ONCE is not set
@@ -803,7 +899,6 @@ CONFIG_ENV_IS_NOWHERE=y
# CONFIG_ENV_IS_IN_FLASH is not set
# CONFIG_ENV_IS_IN_NAND is not set
# CONFIG_ENV_IS_IN_NVRAM is not set
-# CONFIG_ENV_IS_IN_ONENAND is not set
# CONFIG_ENV_IS_IN_REMOTE is not set
# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
# CONFIG_SYS_RELOC_GD_ENV_ADDR is not set
@@ -817,17 +912,20 @@ CONFIG_ENV_IS_NOWHERE=y
# CONFIG_USE_ETHPRIME is not set
# CONFIG_USE_HOSTNAME is not set
# CONFIG_VERSION_VARIABLE is not set
+
+#
+# Networking
+#
+# CONFIG_NO_NET is not set
CONFIG_NET=y
+# CONFIG_NET_LWIP is not set
CONFIG_ARP_TIMEOUT=5000
CONFIG_NET_RETRY_COUNT=5
# CONFIG_PROT_UDP is not set
-CONFIG_BOOTDEV_ETH=y
# CONFIG_BOOTP_SEND_HOSTNAME is not set
-# CONFIG_NET_RANDOM_ETHADDR is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_IP_DEFRAG is not set
# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set
-CONFIG_TFTP_BLOCKSIZE=1468
# CONFIG_TFTP_PORT is not set
CONFIG_TFTP_WINDOWSIZE=1
# CONFIG_TFTP_TSIZE is not set
@@ -842,8 +940,13 @@ CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64
# CONFIG_USE_NETMASK is not set
# CONFIG_USE_ROOTPATH is not set
# CONFIG_USE_SERVERIP is not set
-# CONFIG_PROT_TCP is not set
+CONFIG_PROT_TCP=y
+# CONFIG_PROT_TCP_SACK is not set
# CONFIG_IPV6 is not set
+CONFIG_BOOTDEV_ETH=y
+# CONFIG_NET_RANDOM_ETHADDR is not set
+CONFIG_WGET=y
+CONFIG_TFTP_BLOCKSIZE=1468
CONFIG_SYS_RX_ETH_BUFFER=4
#
@@ -854,7 +957,7 @@ CONFIG_SYS_RX_ETH_BUFFER=4
# Generic Driver Options
#
CONFIG_DM=y
-CONFIG_DM_WARN=y
+# CONFIG_DM_WARN is not set
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_STATS is not set
CONFIG_DM_DEVICE_REMOVE=y
@@ -872,11 +975,6 @@ CONFIG_DM_DEV_READ_INLINE=y
# CONFIG_OFNODE_MULTI_TREE is not set
# CONFIG_BOUNCE_BUFFER is not set
# CONFIG_ADC is not set
-# CONFIG_ADC_EXYNOS is not set
-# CONFIG_ADC_SANDBOX is not set
-# CONFIG_SARADC_MESON is not set
-# CONFIG_SARADC_ROCKCHIP is not set
-# CONFIG_ADC_IMX93 is not set
# CONFIG_SATA is not set
CONFIG_LIBATA=y
CONFIG_SCSI_AHCI=y
@@ -888,6 +986,7 @@ CONFIG_AHCI_PCI=y
# CONFIG_DWC_AHCI is not set
# CONFIG_DWC_AHSATA is not set
# CONFIG_MTK_AHCI is not set
+# CONFIG_AHCI_GENERIC is not set
# CONFIG_SUNXI_AHCI is not set
# CONFIG_AXI is not set
@@ -896,11 +995,12 @@ CONFIG_AHCI_PCI=y
#
CONFIG_BLK=y
CONFIG_BLOCK_CACHE=y
-# CONFIG_BLKMAP is not set
+CONFIG_BLKMAP=y
# CONFIG_EFI_MEDIA is not set
# CONFIG_IDE is not set
# CONFIG_LBA48 is not set
# CONFIG_SYS_64BIT_LBA is not set
+# CONFIG_RKMTD is not set
# CONFIG_BOOTCOUNT_LIMIT is not set
#
@@ -913,15 +1013,17 @@ CONFIG_BLOCK_CACHE=y
#
# CONFIG_CACHE is not set
# CONFIG_L2X0_CACHE is not set
-# CONFIG_V5L2_CACHE is not set
+# CONFIG_ANDES_L2_CACHE is not set
# CONFIG_NCORE_CACHE is not set
# CONFIG_SIFIVE_CCACHE is not set
+# CONFIG_SIFIVE_PL2 is not set
#
# Clock
#
# CONFIG_CLK is not set
# CONFIG_CLK_CCF is not set
+# CONFIG_COMMON_CLK_ADI_SHARED is not set
# CONFIG_CLK_RCAR is not set
# CONFIG_CLK_RCAR_CPG_LIB is not set
# CONFIG_CPU is not set
@@ -955,11 +1057,12 @@ CONFIG_DFU_TFTP=y
# CONFIG_DFU_TIMEOUT is not set
CONFIG_DFU_MTD=y
CONFIG_DFU_RAM=y
-# CONFIG_DFU_SF is not set
# CONFIG_DFU_VIRT is not set
+# CONFIG_DFU_SCSI is not set
CONFIG_SET_DFU_ALT_INFO=y
CONFIG_SYS_DFU_DATA_BUF_SIZE=0x800000
CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
+CONFIG_DFU_NAME_MAX_SIZE=32
#
# DMA Support
@@ -999,6 +1102,8 @@ CONFIG_ARM_PSCI_FW=y
CONFIG_GPIO=y
# CONFIG_AT91_GPIO is not set
# CONFIG_ASPEED_GPIO is not set
+# CONFIG_ASPEED_SGPIO is not set
+# CONFIG_ASPEED_G7_GPIO is not set
# CONFIG_DA8XX_GPIO is not set
# CONFIG_INTEL_BROADWELL_GPIO is not set
# CONFIG_IMX_RGPIO2P is not set
@@ -1047,6 +1152,8 @@ CONFIG_DM_KEYBOARD=y
# LED Support
#
# CONFIG_LED is not set
+# CONFIG_LED_BOOT is not set
+# CONFIG_LED_ACTIVITY is not set
# CONFIG_LED_STATUS is not set
#
@@ -1089,7 +1196,6 @@ CONFIG_QFW_MMIO=y
#
# CONFIG_MMC is not set
# CONFIG_MMC_BROKEN_CD is not set
-# CONFIG_DM_MMC is not set
# CONFIG_FSL_ESDHC is not set
# CONFIG_FSL_ESDHC_IMX is not set
@@ -1101,6 +1207,7 @@ CONFIG_MTD=y
CONFIG_DM_MTD=y
CONFIG_MTD_NOR_FLASH=y
# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_BLOCK is not set
CONFIG_SYS_MTDPARTS_RUNTIME=y
CONFIG_FLASH_CFI_DRIVER=y
CONFIG_SYS_FLASH_CFI_WIDTH_8BIT=y
@@ -1162,6 +1269,7 @@ CONFIG_NETDEVICES=y
# CONFIG_BCMGENET is not set
# CONFIG_BNXT_ETH is not set
# CONFIG_CALXEDA_XGMAC is not set
+# CONFIG_DWC_ETH_XGMAC is not set
# CONFIG_DRIVER_DM9000 is not set
# CONFIG_DWC_ETH_QOS is not set
CONFIG_E1000=y
@@ -1177,7 +1285,6 @@ CONFIG_E1000=y
# CONFIG_FTMAC100 is not set
# CONFIG_FTGMAC100 is not set
# CONFIG_MCFFEC is not set
-# CONFIG_FSLDMAFEC is not set
# CONFIG_KS8851_MLL is not set
# CONFIG_LITEETH is not set
# CONFIG_MACB is not set
@@ -1206,6 +1313,7 @@ CONFIG_E1000=y
# CONFIG_SYS_DPAA_QBMAN is not set
# CONFIG_TSEC_ENET is not set
# CONFIG_MEDIATEK_ETH is not set
+# CONFIG_HIFEMAC_ETH is not set
# CONFIG_HIGMACV300_ETH is not set
CONFIG_NVME=y
# CONFIG_NVME_APPLE is not set
@@ -1219,6 +1327,8 @@ CONFIG_PCI_ENHANCED_ALLOCATION=y
# CONFIG_PCI_ARID is not set
CONFIG_PCIE_ECAM_GENERIC=y
# CONFIG_PCIE_ECAM_SYNQUACER is not set
+# CONFIG_PCI_FTPCI100 is not set
+# CONFIG_PCIE_CDNS_TI is not set
# CONFIG_PCI_PHYTIUM is not set
# CONFIG_PCIE_FSL is not set
# CONFIG_PCI_MPC85XX is not set
@@ -1253,6 +1363,7 @@ CONFIG_PCIE_ECAM_GENERIC=y
# Pin controllers
#
# CONFIG_PINCTRL is not set
+# CONFIG_PINCTRL_TEGRA is not set
CONFIG_POWER=y
# CONFIG_POWER_LEGACY is not set
# CONFIG_ACPI_PMC is not set
@@ -1282,6 +1393,7 @@ CONFIG_POWER=y
#
# Remote Processor drivers
#
+CONFIG_REMOTEPROC_MAX_FW_SIZE=0x10000
#
# Reset Controller Support
@@ -1292,7 +1404,9 @@ CONFIG_DM_RNG=y
# CONFIG_RNG_NPCM is not set
# CONFIG_RNG_IPROC200 is not set
# CONFIG_RNG_SMCCC_TRNG is not set
+# CONFIG_RNG_ARM_RNDR is not set
CONFIG_TPM_RNG=y
+# CONFIG_RNG_EXYNOS is not set
#
# Real Time Clock
@@ -1305,6 +1419,7 @@ CONFIG_DM_RTC=y
# CONFIG_RTC_DS1338 is not set
# CONFIG_RTC_DS3231 is not set
# CONFIG_RTC_EMULATION is not set
+# CONFIG_RTC_GOLDFISH is not set
# CONFIG_RTC_ISL1208 is not set
# CONFIG_RTC_PCF8563 is not set
# CONFIG_RTC_PT7C4338 is not set
@@ -1321,9 +1436,9 @@ CONFIG_RTC_PL031=y
# CONFIG_RTC_STM32 is not set
# CONFIG_RTC_ABX80X is not set
CONFIG_SCSI=y
-CONFIG_DM_SCSI=y
CONFIG_SERIAL=y
CONFIG_BAUDRATE=115200
+# CONFIG_DEFAULT_ENV_IS_RW is not set
CONFIG_REQUIRE_SERIAL_CONSOLE=y
# CONFIG_SPECIFY_CONSOLE_INDEX is not set
CONFIG_SERIAL_PRESENT=y
@@ -1354,16 +1469,20 @@ CONFIG_DEBUG_UART_SHIFT=2
# CONFIG_SYS_NS16550 is not set
CONFIG_PL01X_SERIAL=y
# CONFIG_ROCKCHIP_SERIAL is not set
+# CONFIG_SEMIHOSTING_SERIAL is not set
# CONFIG_XILINX_UARTLITE is not set
# CONFIG_MSM_SERIAL is not set
# CONFIG_MSM_GENI_SERIAL is not set
# CONFIG_MXS_AUART_SERIAL is not set
# CONFIG_OMAP_SERIAL is not set
+# CONFIG_HTIF_CONSOLE is not set
# CONFIG_SIFIVE_SERIAL is not set
# CONFIG_ZYNQ_SERIAL is not set
# CONFIG_MTK_SERIAL is not set
# CONFIG_MT7620_SERIAL is not set
# CONFIG_NPCM_SERIAL is not set
+# CONFIG_SM is not set
+# CONFIG_MESON_SM is not set
# CONFIG_SMEM is not set
#
@@ -1376,6 +1495,8 @@ CONFIG_PL01X_SERIAL=y
# SOC (System On Chip) specific Drivers
#
# CONFIG_SOC_DEVICE is not set
+# CONFIG_SOC_QCOM is not set
+# CONFIG_SOC_SAMSUNG is not set
# CONFIG_SOC_TI is not set
# CONFIG_SPI is not set
@@ -1383,7 +1504,12 @@ CONFIG_PL01X_SERIAL=y
# SPMI support
#
# CONFIG_SPMI is not set
-# CONFIG_SYSINFO is not set
+CONFIG_SYSINFO=y
+# CONFIG_SYSINFO_EXTRA is not set
+# CONFIG_SYSINFO_GAZERBEAM is not set
+# CONFIG_SYSINFO_SANDBOX is not set
+CONFIG_SYSINFO_SMBIOS=y
+# CONFIG_SYSINFO_GPIO is not set
#
# System reset device drivers
@@ -1391,6 +1517,7 @@ CONFIG_PL01X_SERIAL=y
CONFIG_SYSRESET=y
CONFIG_SYSRESET_CMD_RESET=y
CONFIG_SYSRESET_CMD_POWEROFF=y
+# CONFIG_SYSRESET_CV1800B is not set
CONFIG_SYSRESET_PSCI=y
# CONFIG_SYSRESET_SYSCON is not set
# CONFIG_SYSRESET_WATCHDOG is not set
@@ -1415,6 +1542,7 @@ CONFIG_TPM_V1=y
# CONFIG_TPM_LIST_RESOURCES is not set
CONFIG_TPM_V2=y
CONFIG_TPM2_MMIO=y
+CONFIG_TPM2_EVENT_LOG_SIZE=65536
CONFIG_USB=y
CONFIG_DM_USB=y
# CONFIG_DM_USB_GADGET is not set
@@ -1426,6 +1554,7 @@ CONFIG_USB_HOST=y
CONFIG_USB_XHCI_HCD=y
# CONFIG_USB_XHCI_DWC3 is not set
# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set
+# CONFIG_USB_XHCI_GENERIC is not set
CONFIG_USB_XHCI_PCI=y
# CONFIG_USB_XHCI_FSL is not set
# CONFIG_USB_XHCI_BRCM is not set
@@ -1460,6 +1589,7 @@ CONFIG_USB_EHCI_PCI=y
#
# CONFIG_TWL4030_USB is not set
# CONFIG_ROCKCHIP_USB2_PHY is not set
+# CONFIG_TYPEC_TCPM is not set
#
# ULPI drivers
@@ -1510,6 +1640,8 @@ CONFIG_CONSOLE_NORMAL=y
# CONFIG_CONSOLE_TRUETYPE is not set
CONFIG_SYS_WHITE_ON_BLACK=y
# CONFIG_NO_FB_CLEAR is not set
+CONFIG_VIDEO_SYNC_MS=100
+CONFIG_VIDEO_SYNC_CYCLIC_MS=10
CONFIG_PANEL=y
# CONFIG_PANEL_HX8238D is not set
@@ -1527,9 +1659,12 @@ CONFIG_VIDEO_BOCHS_SIZE_Y=1024
# CONFIG_VIDEO_LCD_ENDEAVORU is not set
# CONFIG_VIDEO_LCD_HIMAX_HX8394 is not set
# CONFIG_VIDEO_LCD_ORISETECH_OTM8009A is not set
+# CONFIG_VIDEO_LCD_LG_LD070WX3 is not set
# CONFIG_VIDEO_LCD_RAYDIUM_RM68200 is not set
# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
# CONFIG_VIDEO_LCD_RENESAS_R69328 is not set
+# CONFIG_VIDEO_LCD_SAMSUNG_LTL106HL02 is not set
+# CONFIG_VIDEO_LCD_SHARP_LQ101R1SX01 is not set
# CONFIG_VIDEO_LCD_SSD2828 is not set
# CONFIG_VIDEO_LCD_TDO_TL070WSH30 is not set
# CONFIG_VIDEO_LCD_HITACHI_TX18D42VM is not set
@@ -1557,6 +1692,7 @@ CONFIG_CONSOLE_SCROLL_LINES=1
# CONFIG_OSD is not set
# CONFIG_VIDEO_REMOVE is not set
# CONFIG_SPLASH_SCREEN is not set
+# CONFIG_BMP is not set
CONFIG_VIDEO_LOGO_MAX_SIZE=0x100000
CONFIG_VIDEO_BMP_RLE8=y
# CONFIG_BMP_16BPP is not set
@@ -1588,7 +1724,6 @@ CONFIG_VIRTIO_RNG=y
# Watchdog Timer Support
#
# CONFIG_WATCHDOG is not set
-CONFIG_WATCHDOG_TIMEOUT_MSECS=60000
# CONFIG_IMX_WATCHDOG is not set
# CONFIG_ULP_WATCHDOG is not set
# CONFIG_WDT is not set
@@ -1608,7 +1743,6 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
# CONFIG_UBIFS_SILENCE_MSG is not set
# CONFIG_UBIFS_SILENCE_DEBUG_DUMP is not set
# CONFIG_FS_CRAMFS is not set
-# CONFIG_YAFFS2 is not set
# CONFIG_FS_SQUASHFS is not set
# CONFIG_FS_EROFS is not set
@@ -1623,7 +1757,9 @@ CONFIG_FS_FAT_MAX_CLUSTSIZE=65536
CONFIG_CHARSET=y
# CONFIG_DYNAMIC_CRC_TABLE is not set
CONFIG_LIB_UUID=y
-# CONFIG_SEMIHOSTING is not set
+# CONFIG_RANDOM_UUID is not set
+CONFIG_SEMIHOSTING=y
+CONFIG_SEMIHOSTING_FALLBACK=y
CONFIG_PRINTF=y
CONFIG_SPRINTF=y
CONFIG_STRTO=y
@@ -1640,6 +1776,22 @@ CONFIG_SUPPORT_ACPI=y
# CONFIG_CMD_DHRYSTONE is not set
#
+# Alternative crypto libraries
+#
+# CONFIG_LEGACY_HASHING_AND_CRYPTO is not set
+CONFIG_MBEDTLS_LIB=y
+CONFIG_MBEDTLS_LIB_CRYPTO=y
+CONFIG_SHA1_MBEDTLS=y
+CONFIG_SHA256_MBEDTLS=y
+CONFIG_SHA256_SMALLER=y
+CONFIG_SHA512_MBEDTLS=y
+CONFIG_SHA512_SMALLER=y
+CONFIG_SHA384_MBEDTLS=y
+CONFIG_MD5_MBEDTLS=y
+# CONFIG_HKDF_MBEDTLS is not set
+CONFIG_MBEDTLS_LIB_X509=y
+
+#
# Security support
#
# CONFIG_AES is not set
@@ -1650,6 +1802,7 @@ CONFIG_RSA_VERIFY=y
CONFIG_RSA_SOFTWARE_EXP=y
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
CONFIG_TPM=y
+CONFIG_TPM_PCR_ALLOCATE=y
#
# Android Verified Boot
@@ -1666,6 +1819,7 @@ CONFIG_SHA384=y
# CONFIG_SHA_HW_ACCEL is not set
CONFIG_MD5=y
CONFIG_CRC8=y
+CONFIG_CRC16=y
CONFIG_CRC32=y
#
@@ -1681,49 +1835,23 @@ CONFIG_ZLIB=y
# CONFIG_ZSTD is not set
CONFIG_VPL_LZMA=y
# CONFIG_SPL_GZIP is not set
+# CONFIG_TPL_GZIP is not set
# CONFIG_ERRNO_STR is not set
CONFIG_HEXDUMP=y
# CONFIG_GETOPT is not set
CONFIG_OF_LIBFDT=y
-CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0
CONFIG_SYS_FDT_PAD=0x3000
-# CONFIG_FDT_FIXUP_PARTITIONS is not set
#
# System tables
#
+# CONFIG_BLOBLIST_TABLES is not set
CONFIG_GENERATE_SMBIOS_TABLE=y
+CONFIG_GENERATE_SMBIOS_TABLE_VERBOSE=y
# CONFIG_LIB_RATIONAL is not set
+CONFIG_SMBIOS=y
CONFIG_SMBIOS_PARSER=y
-CONFIG_EFI_LOADER=y
-CONFIG_CMD_BOOTEFI_BOOTMGR=y
-CONFIG_EFI_VARIABLE_FILE_STORE=y
-# CONFIG_EFI_VARIABLE_NO_STORE is not set
-# CONFIG_EFI_VARIABLES_PRESEED is not set
-CONFIG_EFI_VAR_BUF_SIZE=65536
-CONFIG_EFI_GET_TIME=y
-CONFIG_EFI_SET_TIME=y
-# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
-# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
-# CONFIG_EFI_CAPSULE_ON_DISK is not set
-CONFIG_EFI_CAPSULE_MAX=15
-CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
-CONFIG_EFI_DEVICE_PATH_UTIL=y
-CONFIG_EFI_DT_FIXUP=y
-CONFIG_EFI_LOADER_HII=y
-CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
-CONFIG_EFI_UNICODE_CAPITALIZATION=y
-# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
-CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
-CONFIG_EFI_HAVE_RUNTIME_RESET=y
-CONFIG_EFI_RNG_PROTOCOL=y
-CONFIG_EFI_TCG2_PROTOCOL=y
-CONFIG_EFI_TCG2_PROTOCOL_EVENTLOG_SIZE=65536
-# CONFIG_EFI_TCG2_PROTOCOL_MEASURE_DTB is not set
-CONFIG_EFI_LOAD_FILE2_INITRD=y
-# CONFIG_EFI_SECURE_BOOT is not set
-CONFIG_EFI_ECPT=y
-CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
# CONFIG_OPTEE_LIB is not set
# CONFIG_OPTEE_IMAGE is not set
# CONFIG_BOOTM_OPTEE is not set
@@ -1731,26 +1859,23 @@ CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
CONFIG_LIB_DATE=y
CONFIG_LIB_ELF=y
CONFIG_LMB=y
-CONFIG_LMB_USE_MAX_REGIONS=y
-CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_LMB_ARCH_MEM_MAP is not set
# CONFIG_PHANDLE_CHECK_SEQ is not set
#
-# FWU Multi Bank Updates
-#
-# CONFIG_POST is not set
-
-#
-# Unit tests
+# Testing
#
# CONFIG_UNIT_TEST is not set
+# CONFIG_POST is not set
#
# Tools options
#
CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC16=y
CONFIG_TOOLS_CRC32=y
CONFIG_TOOLS_LIBCRYPTO=y
+CONFIG_TOOLS_KWBIMAGE=y
CONFIG_TOOLS_FIT=y
CONFIG_TOOLS_FIT_FULL_CHECK=y
CONFIG_TOOLS_FIT_PRINT=y
@@ -1764,6 +1889,6 @@ CONFIG_TOOLS_SHA1=y
CONFIG_TOOLS_SHA256=y
CONFIG_TOOLS_SHA384=y
CONFIG_TOOLS_SHA512=y
-# CONFIG_TOOLS_MKEFICAPSULE is not set
+CONFIG_TOOLS_MKEFICAPSULE=y
# CONFIG_FSPI_CONF_HEADER is not set
# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/config/u-boot/qemu_arm64_12mb/target.cfg b/config/u-boot/qemu_arm64_12mb/target.cfg
index f7d4d7d9..e19603c2 100644
--- a/config/u-boot/qemu_arm64_12mb/target.cfg
+++ b/config/u-boot/qemu_arm64_12mb/target.cfg
@@ -1,3 +1,5 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
tree="default"
xtree="default"
xarch="aarch64-elf arm-eabi"
diff --git a/config/u-boot/x86/nuke.list b/config/u-boot/x86/nuke.list
new file mode 100644
index 00000000..f3a3fcc3
--- /dev/null
+++ b/config/u-boot/x86/nuke.list
@@ -0,0 +1 @@
+test/lib/strlcat.c
diff --git a/config/u-boot/x86/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch b/config/u-boot/x86/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch
new file mode 100644
index 00000000..e3969d03
--- /dev/null
+++ b/config/u-boot/x86/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch
@@ -0,0 +1,116 @@
+From 13263cb35e8fc82f15aad2c1091f2b05342fbe0f Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Wed, 1 Nov 2023 12:04:42 -0600
+Subject: [PATCH 1/1] x86: serial: ns16550: Allow the UART to be silently
+ disabled
+
+U-Boot normally requires a UART. When booting from coreboot it is
+sometimes just not available, e.g. when no sysinfo or DBG2 information
+is provided.
+
+In this case we need to continue running, since the display can be used.
+Add a flag to disable serial for this case.
+
+This allows U-Boot to start up and operation from the display, instead
+of hanging on start-up.
+
+This could perhaps be hidden behind a Kconfig option to reduce code
+size.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ drivers/serial/ns16550.c | 17 +++++++++++++++--
+ drivers/serial/serial_coreboot.c | 1 +
+ include/ns16550.h | 1 +
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
+index 6fcb5b523a..891124fc62 100644
+--- a/drivers/serial/ns16550.c
++++ b/drivers/serial/ns16550.c
+@@ -384,6 +384,8 @@ static int ns16550_serial_putc(struct udevice *dev, const char ch)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
+ if (!(serial_in(&com_port->lsr) & UART_LSR_THRE))
+ return -EAGAIN;
+ serial_out(ch, &com_port->thr);
+@@ -404,6 +406,9 @@ static int ns16550_serial_pending(struct udevice *dev, bool input)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ if (input)
+ return (serial_in(&com_port->lsr) & UART_LSR_DR) ? 1 : 0;
+ else
+@@ -414,6 +419,9 @@ static int ns16550_serial_getc(struct udevice *dev)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ if (!(serial_in(&com_port->lsr) & UART_LSR_DR))
+ return -EAGAIN;
+
+@@ -428,7 +436,8 @@ static int ns16550_serial_setbrg(struct udevice *dev, int baudrate)
+
+ clock_divisor = ns16550_calc_divisor(com_port, plat->clock, baudrate);
+
+- ns16550_setbrg(com_port, clock_divisor);
++ if (!(plat->flags & NS16550_FLAG_DISABLE))
++ ns16550_setbrg(com_port, clock_divisor);
+
+ return 0;
+ }
+@@ -441,6 +450,9 @@ static int ns16550_serial_setconfig(struct udevice *dev, uint serial_config)
+ uint bits = SERIAL_GET_BITS(serial_config);
+ uint stop = SERIAL_GET_STOP(serial_config);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ /*
+ * only parity config is implemented, check if other serial settings
+ * are the default one.
+@@ -533,7 +545,8 @@ int ns16550_serial_probe(struct udevice *dev)
+ reset_deassert_bulk(&reset_bulk);
+
+ com_port->plat = dev_get_plat(dev);
+- ns16550_init(com_port, -1);
++ if (!(plat->flags & NS16550_FLAG_DISABLE))
++ ns16550_init(com_port, -1);
+
+ return 0;
+ }
+diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c
+index b1f69f6998..a885809abd 100644
+--- a/drivers/serial/serial_coreboot.c
++++ b/drivers/serial/serial_coreboot.c
+@@ -119,6 +119,7 @@ static int coreboot_of_to_plat(struct udevice *dev)
+ * there is no UART, which may panic. So stay silent and
+ * pray that the video console will work.
+ */
++ plat->flags |= NS16550_FLAG_DISABLE;
+ log_debug("Cannot detect UART\n");
+ }
+
+diff --git a/include/ns16550.h b/include/ns16550.h
+index 7f48130008..3c4f3e7539 100644
+--- a/include/ns16550.h
++++ b/include/ns16550.h
+@@ -52,6 +52,7 @@ enum ns16550_flags {
+ NS16550_FLAG_IO = 1 << 0, /* Use I/O access (else mem-mapped) */
+ NS16550_FLAG_ENDIAN = 1 << 1, /* Use out_le/be_32() */
+ NS16550_FLAG_BE = 1 << 2, /* Big-endian access (else little) */
++ NS16550_FLAG_DISABLE = BIT(3), /* No output or input */
+ };
+
+ /**
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
new file mode 100644
index 00000000..7fb75772
--- /dev/null
+++ b/config/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
@@ -0,0 +1,34 @@
+From a6b9e69a21970951252419b5b5fa9c04fabbf1a4 Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Tue, 12 Nov 2024 06:59:02 -0700
+Subject: [PATCH 1/2] x86: Avoid clearing the VESA display
+
+U-Boot clears the display when it starts up, so there is no need to ask
+the VESA driver to do this. Fix this and add a comment explaining the
+flags.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ arch/x86/lib/bios.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c
+index 03f7360032..374f4f20b8 100644
+--- a/arch/x86/lib/bios.c
++++ b/arch/x86/lib/bios.c
+@@ -228,7 +228,11 @@ static void vbe_set_graphics(int vesa_mode, struct vesa_state *mode_info)
+ {
+ unsigned char *framebuffer;
+
+- mode_info->video_mode = (1 << 14) | vesa_mode;
++ /*
++ * bit 14 is linear-framebuffer mode
++ * bit 15 means don't clear the display
++ */
++ mode_info->video_mode = (1 << 14) | (1 << 15) | vesa_mode;
+ vbe_get_mode_info(mode_info);
+
+ framebuffer = (unsigned char *)(ulong)mode_info->vesa.phys_base_ptr;
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch
new file mode 100644
index 00000000..bb33d6fd
--- /dev/null
+++ b/config/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch
@@ -0,0 +1,29 @@
+From d098961a91c8f410f50ae31e60300c0ef1f67075 Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Tue, 12 Nov 2024 06:59:06 -0700
+Subject: [PATCH 2/2] x86: Drop the message about features missing in 64-bit
+
+This functions normally and has done for a while, so drop this scary
+message.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ arch/x86/lib/spl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/lib/spl.c b/arch/x86/lib/spl.c
+index f761fbc8bc..656f59ede0 100644
+--- a/arch/x86/lib/spl.c
++++ b/arch/x86/lib/spl.c
+@@ -283,7 +283,7 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
+ {
+ int ret;
+
+- printf("Jumping to 64-bit U-Boot: Note many features are missing\n");
++ log_debug("Jumping to 64-bit U-Boot\n");
+ ret = cpu_jump_to_64bit_uboot(spl_image->entry_point);
+ debug("ret=%d\n", ret);
+ hang();
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch
new file mode 100644
index 00000000..ffc7b581
--- /dev/null
+++ b/config/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch
@@ -0,0 +1,302 @@
+From d9371422ac74ea73d1620f01300a7136a7649754 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 06:52:39 +0000
+Subject: [PATCH 1/1] Support auto-boot timeout delay bootflow menu
+
+The bootflow menu cannot currently auto-boot a selected entry,
+which means that the user must press enter to boot their system.
+This can be a problem on headless setups; for example, it is not
+currently feasible to set up a headless server with U-Boot, when
+using it to boot via UEFI on a coreboot setup.
+
+This patch adds the following build-time configuration option:
+
+CONFIG_CMD_BOOTFLOW_BOOTDELAY
+
+This creates a timeout delay in the given number of seconds.
+If an arrow key is press to navigate the menu, the timer is
+disabled and the user must then press enter to boot the selected
+option. When this happens, the timeout display is replaced by
+the old message indicating that the user should press enter.
+
+The default boot delay is 30 seconds, and the timeout is enabled
+by default. Setting it to zero will restore the old behaviour,
+whereby no timeout is provided and the user must press enter.
+
+If a negative integer is provided, the timer will default to
+zero. The timer value is further filtered by modulus of 100,
+so that the maximum number of seconds allowed is 99 seconds.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 117 +++++++++++++++++++++++++++++++++++--
+ cmd/Kconfig | 12 ++++
+ doc/usage/cmd/bootflow.rst | 11 ++++
+ include/bootflow.h | 10 +++-
+ 4 files changed, 143 insertions(+), 7 deletions(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 9d0dc352f9..172139b187 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -30,7 +30,7 @@ struct menu_priv {
+ int num_bootflows;
+ };
+
+-int bootflow_menu_new(struct expo **expp)
++int bootflow_menu_new(struct expo **expp, const char *prompt)
+ {
+ struct udevice *last_bootdev;
+ struct scene_obj_menu *menu;
+@@ -54,7 +54,7 @@ int bootflow_menu_new(struct expo **expp)
+ return log_msg_ret("scn", ret);
+
+ ret |= scene_txt_str(scn, "prompt", OBJ_PROMPT, STR_PROMPT,
+- "UP and DOWN to choose, ENTER to select", NULL);
++ prompt, NULL);
+
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+@@ -138,6 +138,29 @@ int bootflow_menu_new(struct expo **expp)
+ return 0;
+ }
+
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay)
++{
++ char *i;
++
++ if (prompt == NULL)
++ return 0;
++ if (strlen(prompt) < 2)
++ return 0;
++
++ i = prompt + strlen(prompt) - 2;
++
++ if (bootflow_delay >= 10) {
++ *(i) = 48 + (bootflow_delay / 10);
++ *(i + 1) = 48 + (bootflow_delay % 10);
++ } else {
++ *(i) = 48 + bootflow_delay;
++ *(i + 1) = ' ';
++ }
++
++ return expo_render(exp);
++}
++
+ int bootflow_menu_apply_theme(struct expo *exp, ofnode node)
+ {
+ struct menu_priv *priv = exp->priv;
+@@ -184,14 +207,62 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ struct expo *exp;
+ uint sel_id;
+ bool done;
+- int ret;
++ int i, ret;
++
++ /* Auto-boot countdown */
++ char bootflow_delay_secs, *prompt;
++ int bootflow_time, bootflow_delay;
++ bool skip_render_once = false;
++ bool bootflow_countdown = false;
++
++ /* TODO: perhaps set based on defconfig? */
++ /* WARNING: These two strings must be of the same length. */
++ char promptChoice[] = "UP and DOWN to choose, ENTER to select";
++ char promptTimeout[] = "UP and DOWN to choose. Auto-boot in ";
++/*
++ // Uncomment if the strings become configurable (defconfig):
++ // (to prevent buffer overflows)
++ char promptDefault[] = "UP and DOWN to choose, ENTER to select";
++ if (promptTimeout = NULL)
++ promptTimeout = promptDefault;
++ if (promptChoice = NULL)
++ promptChoice = promptDefault;
++ if (strlen(promptChoice) < 2)
++ promptChoice = promptDefault;
++ if (strlen(promptTimeout) < 2)
++ promptTimeout = promptDefault;
++ if (strlen(promptChoice) != strlen(promptTimeout))
++ promptChoice = promptTimeout;
++*/
++ prompt = promptChoice;
++
++ bootflow_delay_secs = 15; /* TODO: set based on defconfig. */
++
++#if defined(CONFIG_CMD_BOOTFLOW_BOOTDELAY)
++ /* If set to zero, the auto-boot timeout is disabled. */
++ bootflow_delay_secs = CONFIG_CMD_BOOTFLOW_BOOTDELAY;
++#else
++ bootflow_delay_secs = 30;
++#endif
++
++ if (bootflow_delay_secs < 0)
++ bootflow_delay_secs = 0; /* disable countdown if negative */
++ bootflow_delay_secs %= 100; /* No higher than 99 seconds */
++
++ if (bootflow_delay_secs > 0) {
++ bootflow_countdown = true; /* enable auto-boot countdown */
++ prompt = promptTimeout;
++ bootflow_time = 0; /* Time elapsed in milliseconds */
++ bootflow_delay =
++ (int)bootflow_delay_secs * 1000; /* milliseconds */
++ }
+
+ cli_ch_init(cch);
+
+ sel_bflow = NULL;
+ *bflowp = NULL;
+
+- ret = bootflow_menu_new(&exp);
++ ret = bootflow_menu_new(&exp, prompt);
+ if (ret)
+ return log_msg_ret("exp", ret);
+
+@@ -216,12 +287,20 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ if (text_mode)
+ expo_set_text_mode(exp, text_mode);
+
++ if (bootflow_countdown) {
++ ret = bootflow_menu_show_countdown(exp, prompt,
++ bootflow_delay_secs);
++ skip_render_once = true; /* Don't print menu twice on start */
++ }
+ done = false;
+ do {
+ struct expo_action act;
+ int ichar, key;
+
+- ret = expo_render(exp);
++ if (skip_render_once)
++ skip_render_once = false;
++ else
++ ret = expo_render(exp);
+ if (ret)
+ break;
+
+@@ -231,7 +310,23 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ schedule();
+ mdelay(2);
+ ichar = cli_ch_process(cch, -ETIMEDOUT);
++ if (bootflow_countdown) {
++ bootflow_delay -= 2;
++ bootflow_time += 2;
++ if (bootflow_delay <= 0)
++ ichar='\n';
++ if (bootflow_time < 1000)
++ continue;
++ bootflow_time = 0;
++ --bootflow_delay_secs;
++ ret = bootflow_menu_show_countdown(exp,
++ prompt, bootflow_delay_secs);
++ if (ret)
++ break;
++ }
+ }
++ if (ret)
++ break;
+ if (!ichar) {
+ ichar = getchar();
+ ichar = cli_ch_process(cch, ichar);
+@@ -265,6 +360,17 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ break;
+ }
+ }
++ if (bootflow_countdown) {
++ /* A key press interrupted the auto-boot timeout */
++ bootflow_countdown = false;
++ if (strlen(prompt) == strlen(promptChoice)) {
++ /* "Auto-boot in" becomes "Press ENTER" */
++ (void) memcpy(prompt, promptChoice,
++ strlen(promptChoice));
++ ret = expo_render(exp);
++ skip_render_once = true;
++ }
++ }
+ } while (!done);
+
+ if (ret)
+@@ -272,7 +378,6 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+
+ if (sel_id) {
+ struct bootflow *bflow;
+- int i;
+
+ for (ret = bootflow_first_glob(&bflow), i = 0; !ret && i < 36;
+ ret = bootflow_next_glob(&bflow), i++) {
+diff --git a/cmd/Kconfig b/cmd/Kconfig
+index 978f44eda4..0303869625 100644
+--- a/cmd/Kconfig
++++ b/cmd/Kconfig
+@@ -288,6 +288,7 @@ config CMD_BOOTDEV
+ config CMD_BOOTFLOW
+ bool "bootflow"
+ depends on BOOTSTD
++ select CMD_BOOTFLOW_BOOTDELAY
+ default y
+ help
+ Support scanning for bootflows available with the bootdevs. The
+@@ -303,6 +304,17 @@ config CMD_BOOTFLOW_FULL
+
+ This command is not necessary for bootstd to work.
+
++config CMD_BOOTFLOW_BOOTDELAY
++ int "bootflow - delay in seconds before booting the first menu option"
++ depends on CMD_BOOTFLOW
++ default 30
++ help
++ On the bootflow menu, wait for the defined number of seconds before
++ automatically booting. Unless interrupted, this will auto-boot the
++ first option in the generated list of boot options.
++
++ Set this to zero if you wish to disable the auto-boot timeout.
++
+ config CMD_BOOTMETH
+ bool "bootmeth"
+ depends on BOOTSTD
+diff --git a/doc/usage/cmd/bootflow.rst b/doc/usage/cmd/bootflow.rst
+index 5d41fe37a7..728f294274 100644
+--- a/doc/usage/cmd/bootflow.rst
++++ b/doc/usage/cmd/bootflow.rst
+@@ -32,6 +32,17 @@ Note that `CONFIG_BOOTSTD_FULL` (which enables `CONFIG_CMD_BOOTFLOW_FULL) must
+ be enabled to obtain full functionality with this command. Otherwise, it only
+ supports `bootflow scan` which scans and boots the first available bootflow.
+
++The `CONFIG_CMD_BOOTFLOW_BOOTDELAY` option can be set, defining (in seconds) the
++amount of time that U-Boot will wait; after this time passes, it will
++automatically boot the first item when generating a bootflow menu. If the value
++is set to zero, the timeout is disabled and the user must press enter; if it's
++negative, the timeout is disabled, and the maximum number of seconds is 99
++seconds. If a value higher than 100 is provided, the value is changed to a
++modulus of 100 (remainder of the value divided by 100).
++
++If the `CONFIG_BOOTFLOW_BOOTFLOW` option is undefined, the timeout will default
++to 30 seconds.
++
+ bootflow scan
+ ~~~~~~~~~~~~~
+
+diff --git a/include/bootflow.h b/include/bootflow.h
+index 4d2fc7b69b..9f4245caa7 100644
+--- a/include/bootflow.h
++++ b/include/bootflow.h
+@@ -452,7 +452,15 @@ int bootflow_iter_check_system(const struct bootflow_iter *iter);
+ * @expp: Returns the expo created
+ * Returns 0 on success, -ve on error
+ */
+-int bootflow_menu_new(struct expo **expp);
++int bootflow_menu_new(struct expo **expp, const char *prompt);
++
++/**
++ * bootflow_menu_show_countdown() - Show countdown timer for auto-boot
++ *
++ * Returns the value of expo_render()
++ */
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay);
+
+ /**
+ * bootflow_menu_apply_theme() - Apply a theme to a bootmenu
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch
new file mode 100644
index 00000000..754e2162
--- /dev/null
+++ b/config/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch
@@ -0,0 +1,213 @@
+From 4ff0f509aa28eb8e85f1c0c9929c63996c646bb8 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 18:20:19 +0000
+Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 2 +-
+ drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 84831915a2..8e26ec2aef 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt)
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+ ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE,
+- "U-Boot - Boot Menu", NULL);
++ "Libreboot 25.04 Corny Calamity (U-Boot menu): https://libreboot.org/", NULL);
+ ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT);
+
+ logo = video_get_u_boot_logo();
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644
+GIT binary patch
+literal 27350
+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
+
+literal 6932
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0006-i-made-it-purple.patch b/config/u-boot/x86/patches/0006-i-made-it-purple.patch
new file mode 100644
index 00000000..594a1b35
--- /dev/null
+++ b/config/u-boot/x86/patches/0006-i-made-it-purple.patch
@@ -0,0 +1,33 @@
+From 9c1ceb5a5b302275da146149001f4210a1d7fc86 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 20:13:42 +0000
+Subject: [PATCH 1/1] i made it purple
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/expo.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/boot/expo.c b/boot/expo.c
+index ed01483f1d..04726d1c9a 100644
+--- a/boot/expo.c
++++ b/boot/expo.c
+@@ -189,13 +189,10 @@ int expo_render(struct expo *exp)
+ struct udevice *dev = exp->display;
+ struct video_priv *vid_priv = dev_get_uclass_priv(dev);
+ struct scene *scn = NULL;
+- enum colour_idx back;
+- u32 colour;
+ int ret;
+
+- back = CONFIG_IS_ENABLED(SYS_WHITE_ON_BLACK) ? VID_BLACK : VID_WHITE;
+- colour = video_index_to_colour(vid_priv, back);
+- ret = video_fill(dev, colour);
++ /* sexy libreboot purple background */
++ ret = video_fill(dev, 0x280b22); /* #280b22 in HTML RGB notation */
+ if (ret)
+ return log_msg_ret("fill", ret);
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch b/config/u-boot/x86/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch
new file mode 100644
index 00000000..febc2372
--- /dev/null
+++ b/config/u-boot/x86/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch
@@ -0,0 +1,157 @@
+From d721edb391618fca096ec7f63a2fbc9df0af9231 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Tue, 17 Dec 2024 12:59:54 +0000
+Subject: [PATCH 1/1] change the logo back to the plain libreboot one
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ drivers/video/u_boot_logo.bmp | Bin 27350 -> 27350 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index bc9ae001badb25bc900058c167a47247ef91dc7c..c9262cd206cc3cf5297daa94b696fcf102fc22b5 100644
+GIT binary patch
+literal 27350
+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
+HHU0e$+Zn$=
+
+literal 27350
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
new file mode 100644
index 00000000..905b311c
--- /dev/null
+++ b/config/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
@@ -0,0 +1,61 @@
+From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 30 Oct 2024 06:07:16 +0100
+Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use
+ SWIG_AppendOutput
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Swig has changed language specific AppendOutput functions. The helper
+macro SWIG_AppendOutput remains unchanged. Use that instead
+of SWIG_Python_AppendOutput, which would require an extra parameter
+since swig 4.3.0.
+
+/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
+| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
+| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
+| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
+Link: https://github.com/dgibson/dtc/pull/154
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 56cc5d48f4..e4659489a9 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
+ fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
+ buff = PyByteArray_FromStringAndSize(
+ (const char *)($1 + 1), fdt32_to_cpu($1->len));
+- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
++ resultobj = SWIG_AppendOutput(resultobj, buff);
+ }
+ }
+
+@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
+
+ %typemap(argout) int *depth {
+ PyObject *val = Py_BuildValue("i", *arg$argnum);
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+
+ %apply int *depth { int *depth };
+@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
+ if (PyTuple_GET_SIZE(resultobj) == 0)
+ resultobj = val;
+ else
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+ }
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86/target.cfg b/config/u-boot/x86/target.cfg
new file mode 100644
index 00000000..bf19e4a5
--- /dev/null
+++ b/config/u-boot/x86/target.cfg
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+tree="x86"
+rev="f919c3a889f0ec7d63a48b5d0ed064386b0980bd" # v2024.10
diff --git a/config/u-boot/x86_64/nuke.list b/config/u-boot/x86_64/nuke.list
new file mode 100644
index 00000000..f3a3fcc3
--- /dev/null
+++ b/config/u-boot/x86_64/nuke.list
@@ -0,0 +1 @@
+test/lib/strlcat.c
diff --git a/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch b/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch
new file mode 100644
index 00000000..e3969d03
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch
@@ -0,0 +1,116 @@
+From 13263cb35e8fc82f15aad2c1091f2b05342fbe0f Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Wed, 1 Nov 2023 12:04:42 -0600
+Subject: [PATCH 1/1] x86: serial: ns16550: Allow the UART to be silently
+ disabled
+
+U-Boot normally requires a UART. When booting from coreboot it is
+sometimes just not available, e.g. when no sysinfo or DBG2 information
+is provided.
+
+In this case we need to continue running, since the display can be used.
+Add a flag to disable serial for this case.
+
+This allows U-Boot to start up and operation from the display, instead
+of hanging on start-up.
+
+This could perhaps be hidden behind a Kconfig option to reduce code
+size.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ drivers/serial/ns16550.c | 17 +++++++++++++++--
+ drivers/serial/serial_coreboot.c | 1 +
+ include/ns16550.h | 1 +
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/serial/ns16550.c b/drivers/serial/ns16550.c
+index 6fcb5b523a..891124fc62 100644
+--- a/drivers/serial/ns16550.c
++++ b/drivers/serial/ns16550.c
+@@ -384,6 +384,8 @@ static int ns16550_serial_putc(struct udevice *dev, const char ch)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
+ if (!(serial_in(&com_port->lsr) & UART_LSR_THRE))
+ return -EAGAIN;
+ serial_out(ch, &com_port->thr);
+@@ -404,6 +406,9 @@ static int ns16550_serial_pending(struct udevice *dev, bool input)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ if (input)
+ return (serial_in(&com_port->lsr) & UART_LSR_DR) ? 1 : 0;
+ else
+@@ -414,6 +419,9 @@ static int ns16550_serial_getc(struct udevice *dev)
+ {
+ struct ns16550 *const com_port = dev_get_priv(dev);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ if (!(serial_in(&com_port->lsr) & UART_LSR_DR))
+ return -EAGAIN;
+
+@@ -428,7 +436,8 @@ static int ns16550_serial_setbrg(struct udevice *dev, int baudrate)
+
+ clock_divisor = ns16550_calc_divisor(com_port, plat->clock, baudrate);
+
+- ns16550_setbrg(com_port, clock_divisor);
++ if (!(plat->flags & NS16550_FLAG_DISABLE))
++ ns16550_setbrg(com_port, clock_divisor);
+
+ return 0;
+ }
+@@ -441,6 +450,9 @@ static int ns16550_serial_setconfig(struct udevice *dev, uint serial_config)
+ uint bits = SERIAL_GET_BITS(serial_config);
+ uint stop = SERIAL_GET_STOP(serial_config);
+
++ if (com_port->plat->flags & NS16550_FLAG_DISABLE)
++ return 0;
++
+ /*
+ * only parity config is implemented, check if other serial settings
+ * are the default one.
+@@ -533,7 +545,8 @@ int ns16550_serial_probe(struct udevice *dev)
+ reset_deassert_bulk(&reset_bulk);
+
+ com_port->plat = dev_get_plat(dev);
+- ns16550_init(com_port, -1);
++ if (!(plat->flags & NS16550_FLAG_DISABLE))
++ ns16550_init(com_port, -1);
+
+ return 0;
+ }
+diff --git a/drivers/serial/serial_coreboot.c b/drivers/serial/serial_coreboot.c
+index b1f69f6998..a885809abd 100644
+--- a/drivers/serial/serial_coreboot.c
++++ b/drivers/serial/serial_coreboot.c
+@@ -119,6 +119,7 @@ static int coreboot_of_to_plat(struct udevice *dev)
+ * there is no UART, which may panic. So stay silent and
+ * pray that the video console will work.
+ */
++ plat->flags |= NS16550_FLAG_DISABLE;
+ log_debug("Cannot detect UART\n");
+ }
+
+diff --git a/include/ns16550.h b/include/ns16550.h
+index 7f48130008..3c4f3e7539 100644
+--- a/include/ns16550.h
++++ b/include/ns16550.h
+@@ -52,6 +52,7 @@ enum ns16550_flags {
+ NS16550_FLAG_IO = 1 << 0, /* Use I/O access (else mem-mapped) */
+ NS16550_FLAG_ENDIAN = 1 << 1, /* Use out_le/be_32() */
+ NS16550_FLAG_BE = 1 << 2, /* Big-endian access (else little) */
++ NS16550_FLAG_DISABLE = BIT(3), /* No output or input */
+ };
+
+ /**
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
new file mode 100644
index 00000000..7fb75772
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch
@@ -0,0 +1,34 @@
+From a6b9e69a21970951252419b5b5fa9c04fabbf1a4 Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Tue, 12 Nov 2024 06:59:02 -0700
+Subject: [PATCH 1/2] x86: Avoid clearing the VESA display
+
+U-Boot clears the display when it starts up, so there is no need to ask
+the VESA driver to do this. Fix this and add a comment explaining the
+flags.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ arch/x86/lib/bios.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/arch/x86/lib/bios.c b/arch/x86/lib/bios.c
+index 03f7360032..374f4f20b8 100644
+--- a/arch/x86/lib/bios.c
++++ b/arch/x86/lib/bios.c
+@@ -228,7 +228,11 @@ static void vbe_set_graphics(int vesa_mode, struct vesa_state *mode_info)
+ {
+ unsigned char *framebuffer;
+
+- mode_info->video_mode = (1 << 14) | vesa_mode;
++ /*
++ * bit 14 is linear-framebuffer mode
++ * bit 15 means don't clear the display
++ */
++ mode_info->video_mode = (1 << 14) | (1 << 15) | vesa_mode;
+ vbe_get_mode_info(mode_info);
+
+ framebuffer = (unsigned char *)(ulong)mode_info->vesa.phys_base_ptr;
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch b/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch
new file mode 100644
index 00000000..bb33d6fd
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch
@@ -0,0 +1,29 @@
+From d098961a91c8f410f50ae31e60300c0ef1f67075 Mon Sep 17 00:00:00 2001
+From: Simon Glass <sjg@chromium.org>
+Date: Tue, 12 Nov 2024 06:59:06 -0700
+Subject: [PATCH 2/2] x86: Drop the message about features missing in 64-bit
+
+This functions normally and has done for a while, so drop this scary
+message.
+
+Signed-off-by: Simon Glass <sjg@chromium.org>
+---
+ arch/x86/lib/spl.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/lib/spl.c b/arch/x86/lib/spl.c
+index f761fbc8bc..656f59ede0 100644
+--- a/arch/x86/lib/spl.c
++++ b/arch/x86/lib/spl.c
+@@ -283,7 +283,7 @@ void __noreturn jump_to_image_no_args(struct spl_image_info *spl_image)
+ {
+ int ret;
+
+- printf("Jumping to 64-bit U-Boot: Note many features are missing\n");
++ log_debug("Jumping to 64-bit U-Boot\n");
+ ret = cpu_jump_to_64bit_uboot(spl_image->entry_point);
+ debug("ret=%d\n", ret);
+ hang();
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch
new file mode 100644
index 00000000..ffc7b581
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch
@@ -0,0 +1,302 @@
+From d9371422ac74ea73d1620f01300a7136a7649754 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 06:52:39 +0000
+Subject: [PATCH 1/1] Support auto-boot timeout delay bootflow menu
+
+The bootflow menu cannot currently auto-boot a selected entry,
+which means that the user must press enter to boot their system.
+This can be a problem on headless setups; for example, it is not
+currently feasible to set up a headless server with U-Boot, when
+using it to boot via UEFI on a coreboot setup.
+
+This patch adds the following build-time configuration option:
+
+CONFIG_CMD_BOOTFLOW_BOOTDELAY
+
+This creates a timeout delay in the given number of seconds.
+If an arrow key is press to navigate the menu, the timer is
+disabled and the user must then press enter to boot the selected
+option. When this happens, the timeout display is replaced by
+the old message indicating that the user should press enter.
+
+The default boot delay is 30 seconds, and the timeout is enabled
+by default. Setting it to zero will restore the old behaviour,
+whereby no timeout is provided and the user must press enter.
+
+If a negative integer is provided, the timer will default to
+zero. The timer value is further filtered by modulus of 100,
+so that the maximum number of seconds allowed is 99 seconds.
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 117 +++++++++++++++++++++++++++++++++++--
+ cmd/Kconfig | 12 ++++
+ doc/usage/cmd/bootflow.rst | 11 ++++
+ include/bootflow.h | 10 +++-
+ 4 files changed, 143 insertions(+), 7 deletions(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 9d0dc352f9..172139b187 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -30,7 +30,7 @@ struct menu_priv {
+ int num_bootflows;
+ };
+
+-int bootflow_menu_new(struct expo **expp)
++int bootflow_menu_new(struct expo **expp, const char *prompt)
+ {
+ struct udevice *last_bootdev;
+ struct scene_obj_menu *menu;
+@@ -54,7 +54,7 @@ int bootflow_menu_new(struct expo **expp)
+ return log_msg_ret("scn", ret);
+
+ ret |= scene_txt_str(scn, "prompt", OBJ_PROMPT, STR_PROMPT,
+- "UP and DOWN to choose, ENTER to select", NULL);
++ prompt, NULL);
+
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+@@ -138,6 +138,29 @@ int bootflow_menu_new(struct expo **expp)
+ return 0;
+ }
+
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay)
++{
++ char *i;
++
++ if (prompt == NULL)
++ return 0;
++ if (strlen(prompt) < 2)
++ return 0;
++
++ i = prompt + strlen(prompt) - 2;
++
++ if (bootflow_delay >= 10) {
++ *(i) = 48 + (bootflow_delay / 10);
++ *(i + 1) = 48 + (bootflow_delay % 10);
++ } else {
++ *(i) = 48 + bootflow_delay;
++ *(i + 1) = ' ';
++ }
++
++ return expo_render(exp);
++}
++
+ int bootflow_menu_apply_theme(struct expo *exp, ofnode node)
+ {
+ struct menu_priv *priv = exp->priv;
+@@ -184,14 +207,62 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ struct expo *exp;
+ uint sel_id;
+ bool done;
+- int ret;
++ int i, ret;
++
++ /* Auto-boot countdown */
++ char bootflow_delay_secs, *prompt;
++ int bootflow_time, bootflow_delay;
++ bool skip_render_once = false;
++ bool bootflow_countdown = false;
++
++ /* TODO: perhaps set based on defconfig? */
++ /* WARNING: These two strings must be of the same length. */
++ char promptChoice[] = "UP and DOWN to choose, ENTER to select";
++ char promptTimeout[] = "UP and DOWN to choose. Auto-boot in ";
++/*
++ // Uncomment if the strings become configurable (defconfig):
++ // (to prevent buffer overflows)
++ char promptDefault[] = "UP and DOWN to choose, ENTER to select";
++ if (promptTimeout = NULL)
++ promptTimeout = promptDefault;
++ if (promptChoice = NULL)
++ promptChoice = promptDefault;
++ if (strlen(promptChoice) < 2)
++ promptChoice = promptDefault;
++ if (strlen(promptTimeout) < 2)
++ promptTimeout = promptDefault;
++ if (strlen(promptChoice) != strlen(promptTimeout))
++ promptChoice = promptTimeout;
++*/
++ prompt = promptChoice;
++
++ bootflow_delay_secs = 15; /* TODO: set based on defconfig. */
++
++#if defined(CONFIG_CMD_BOOTFLOW_BOOTDELAY)
++ /* If set to zero, the auto-boot timeout is disabled. */
++ bootflow_delay_secs = CONFIG_CMD_BOOTFLOW_BOOTDELAY;
++#else
++ bootflow_delay_secs = 30;
++#endif
++
++ if (bootflow_delay_secs < 0)
++ bootflow_delay_secs = 0; /* disable countdown if negative */
++ bootflow_delay_secs %= 100; /* No higher than 99 seconds */
++
++ if (bootflow_delay_secs > 0) {
++ bootflow_countdown = true; /* enable auto-boot countdown */
++ prompt = promptTimeout;
++ bootflow_time = 0; /* Time elapsed in milliseconds */
++ bootflow_delay =
++ (int)bootflow_delay_secs * 1000; /* milliseconds */
++ }
+
+ cli_ch_init(cch);
+
+ sel_bflow = NULL;
+ *bflowp = NULL;
+
+- ret = bootflow_menu_new(&exp);
++ ret = bootflow_menu_new(&exp, prompt);
+ if (ret)
+ return log_msg_ret("exp", ret);
+
+@@ -216,12 +287,20 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ if (text_mode)
+ expo_set_text_mode(exp, text_mode);
+
++ if (bootflow_countdown) {
++ ret = bootflow_menu_show_countdown(exp, prompt,
++ bootflow_delay_secs);
++ skip_render_once = true; /* Don't print menu twice on start */
++ }
+ done = false;
+ do {
+ struct expo_action act;
+ int ichar, key;
+
+- ret = expo_render(exp);
++ if (skip_render_once)
++ skip_render_once = false;
++ else
++ ret = expo_render(exp);
+ if (ret)
+ break;
+
+@@ -231,7 +310,23 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ schedule();
+ mdelay(2);
+ ichar = cli_ch_process(cch, -ETIMEDOUT);
++ if (bootflow_countdown) {
++ bootflow_delay -= 2;
++ bootflow_time += 2;
++ if (bootflow_delay <= 0)
++ ichar='\n';
++ if (bootflow_time < 1000)
++ continue;
++ bootflow_time = 0;
++ --bootflow_delay_secs;
++ ret = bootflow_menu_show_countdown(exp,
++ prompt, bootflow_delay_secs);
++ if (ret)
++ break;
++ }
+ }
++ if (ret)
++ break;
+ if (!ichar) {
+ ichar = getchar();
+ ichar = cli_ch_process(cch, ichar);
+@@ -265,6 +360,17 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+ break;
+ }
+ }
++ if (bootflow_countdown) {
++ /* A key press interrupted the auto-boot timeout */
++ bootflow_countdown = false;
++ if (strlen(prompt) == strlen(promptChoice)) {
++ /* "Auto-boot in" becomes "Press ENTER" */
++ (void) memcpy(prompt, promptChoice,
++ strlen(promptChoice));
++ ret = expo_render(exp);
++ skip_render_once = true;
++ }
++ }
+ } while (!done);
+
+ if (ret)
+@@ -272,7 +378,6 @@ int bootflow_menu_run(struct bootstd_priv *std, bool text_mode,
+
+ if (sel_id) {
+ struct bootflow *bflow;
+- int i;
+
+ for (ret = bootflow_first_glob(&bflow), i = 0; !ret && i < 36;
+ ret = bootflow_next_glob(&bflow), i++) {
+diff --git a/cmd/Kconfig b/cmd/Kconfig
+index 978f44eda4..0303869625 100644
+--- a/cmd/Kconfig
++++ b/cmd/Kconfig
+@@ -288,6 +288,7 @@ config CMD_BOOTDEV
+ config CMD_BOOTFLOW
+ bool "bootflow"
+ depends on BOOTSTD
++ select CMD_BOOTFLOW_BOOTDELAY
+ default y
+ help
+ Support scanning for bootflows available with the bootdevs. The
+@@ -303,6 +304,17 @@ config CMD_BOOTFLOW_FULL
+
+ This command is not necessary for bootstd to work.
+
++config CMD_BOOTFLOW_BOOTDELAY
++ int "bootflow - delay in seconds before booting the first menu option"
++ depends on CMD_BOOTFLOW
++ default 30
++ help
++ On the bootflow menu, wait for the defined number of seconds before
++ automatically booting. Unless interrupted, this will auto-boot the
++ first option in the generated list of boot options.
++
++ Set this to zero if you wish to disable the auto-boot timeout.
++
+ config CMD_BOOTMETH
+ bool "bootmeth"
+ depends on BOOTSTD
+diff --git a/doc/usage/cmd/bootflow.rst b/doc/usage/cmd/bootflow.rst
+index 5d41fe37a7..728f294274 100644
+--- a/doc/usage/cmd/bootflow.rst
++++ b/doc/usage/cmd/bootflow.rst
+@@ -32,6 +32,17 @@ Note that `CONFIG_BOOTSTD_FULL` (which enables `CONFIG_CMD_BOOTFLOW_FULL) must
+ be enabled to obtain full functionality with this command. Otherwise, it only
+ supports `bootflow scan` which scans and boots the first available bootflow.
+
++The `CONFIG_CMD_BOOTFLOW_BOOTDELAY` option can be set, defining (in seconds) the
++amount of time that U-Boot will wait; after this time passes, it will
++automatically boot the first item when generating a bootflow menu. If the value
++is set to zero, the timeout is disabled and the user must press enter; if it's
++negative, the timeout is disabled, and the maximum number of seconds is 99
++seconds. If a value higher than 100 is provided, the value is changed to a
++modulus of 100 (remainder of the value divided by 100).
++
++If the `CONFIG_BOOTFLOW_BOOTFLOW` option is undefined, the timeout will default
++to 30 seconds.
++
+ bootflow scan
+ ~~~~~~~~~~~~~
+
+diff --git a/include/bootflow.h b/include/bootflow.h
+index 4d2fc7b69b..9f4245caa7 100644
+--- a/include/bootflow.h
++++ b/include/bootflow.h
+@@ -452,7 +452,15 @@ int bootflow_iter_check_system(const struct bootflow_iter *iter);
+ * @expp: Returns the expo created
+ * Returns 0 on success, -ve on error
+ */
+-int bootflow_menu_new(struct expo **expp);
++int bootflow_menu_new(struct expo **expp, const char *prompt);
++
++/**
++ * bootflow_menu_show_countdown() - Show countdown timer for auto-boot
++ *
++ * Returns the value of expo_render()
++ */
++int bootflow_menu_show_countdown(struct expo *exp, char *prompt,
++ char bootflow_delay);
+
+ /**
+ * bootflow_menu_apply_theme() - Apply a theme to a bootmenu
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch
new file mode 100644
index 00000000..754e2162
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch
@@ -0,0 +1,213 @@
+From 4ff0f509aa28eb8e85f1c0c9929c63996c646bb8 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 18:20:19 +0000
+Subject: [PATCH 1/1] Libreboot branding/version on the bootflow menu
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/bootflow_menu.c | 2 +-
+ drivers/video/u_boot_logo.bmp | Bin 6932 -> 27350 bytes
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/boot/bootflow_menu.c b/boot/bootflow_menu.c
+index 84831915a2..8e26ec2aef 100644
+--- a/boot/bootflow_menu.c
++++ b/boot/bootflow_menu.c
+@@ -59,7 +59,7 @@ int bootflow_menu_new(struct expo **expp, const char *prompt)
+ ret = scene_menu(scn, "main", OBJ_MENU, &menu);
+ ret |= scene_obj_set_pos(scn, OBJ_MENU, MARGIN_LEFT, 100);
+ ret |= scene_txt_str(scn, "title", OBJ_MENU_TITLE, STR_MENU_TITLE,
+- "U-Boot - Boot Menu", NULL);
++ "Libreboot 25.04 Corny Calamity (U-Boot menu): https://libreboot.org/", NULL);
+ ret |= scene_menu_set_title(scn, OBJ_MENU, OBJ_PROMPT);
+
+ logo = video_get_u_boot_logo();
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index 47f1e9b99789584d2f6dd71e954b51927b35d783..bc9ae001badb25bc900058c167a47247ef91dc7c 100644
+GIT binary patch
+literal 27350
+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
+
+literal 6932
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch b/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch
new file mode 100644
index 00000000..594a1b35
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0006-i-made-it-purple.patch
@@ -0,0 +1,33 @@
+From 9c1ceb5a5b302275da146149001f4210a1d7fc86 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Wed, 4 Dec 2024 20:13:42 +0000
+Subject: [PATCH 1/1] i made it purple
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ boot/expo.c | 7 ++-----
+ 1 file changed, 2 insertions(+), 5 deletions(-)
+
+diff --git a/boot/expo.c b/boot/expo.c
+index ed01483f1d..04726d1c9a 100644
+--- a/boot/expo.c
++++ b/boot/expo.c
+@@ -189,13 +189,10 @@ int expo_render(struct expo *exp)
+ struct udevice *dev = exp->display;
+ struct video_priv *vid_priv = dev_get_uclass_priv(dev);
+ struct scene *scn = NULL;
+- enum colour_idx back;
+- u32 colour;
+ int ret;
+
+- back = CONFIG_IS_ENABLED(SYS_WHITE_ON_BLACK) ? VID_BLACK : VID_WHITE;
+- colour = video_index_to_colour(vid_priv, back);
+- ret = video_fill(dev, colour);
++ /* sexy libreboot purple background */
++ ret = video_fill(dev, 0x280b22); /* #280b22 in HTML RGB notation */
+ if (ret)
+ return log_msg_ret("fill", ret);
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch b/config/u-boot/x86_64/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch
new file mode 100644
index 00000000..febc2372
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0007-change-the-logo-back-to-the-plain-libreboot-one.patch
@@ -0,0 +1,157 @@
+From d721edb391618fca096ec7f63a2fbc9df0af9231 Mon Sep 17 00:00:00 2001
+From: Leah Rowe <info@minifree.org>
+Date: Tue, 17 Dec 2024 12:59:54 +0000
+Subject: [PATCH 1/1] change the logo back to the plain libreboot one
+
+Signed-off-by: Leah Rowe <info@minifree.org>
+---
+ drivers/video/u_boot_logo.bmp | Bin 27350 -> 27350 bytes
+ 1 file changed, 0 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/video/u_boot_logo.bmp b/drivers/video/u_boot_logo.bmp
+index bc9ae001badb25bc900058c167a47247ef91dc7c..c9262cd206cc3cf5297daa94b696fcf102fc22b5 100644
+GIT binary patch
+literal 27350
+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
+HHU0e$+Zn$=
+
+literal 27350
+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
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
new file mode 100644
index 00000000..905b311c
--- /dev/null
+++ b/config/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch
@@ -0,0 +1,61 @@
+From 3c61a3257ad5799202cac64020d3b4af21b72de3 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Wed, 30 Oct 2024 06:07:16 +0100
+Subject: [PATCH 1/1] scripts/dtc/pylibfdt/libfdt.i_shipped: Use
+ SWIG_AppendOutput
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Swig has changed language specific AppendOutput functions. The helper
+macro SWIG_AppendOutput remains unchanged. Use that instead
+of SWIG_Python_AppendOutput, which would require an extra parameter
+since swig 4.3.0.
+
+/home/flk/poky/build-test/tmp/work/qemux86_64-poky-linux/u-boot/2024.10/git/arch/x86/cpu/u-boot-64.lds
+| scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
+| scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
+| 5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+Reported-by: Rudi Heitbaum <rudi@heitbaum.com>
+Link: https://github.com/dgibson/dtc/pull/154
+---
+ scripts/dtc/pylibfdt/libfdt.i_shipped | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/dtc/pylibfdt/libfdt.i_shipped b/scripts/dtc/pylibfdt/libfdt.i_shipped
+index 56cc5d48f4..e4659489a9 100644
+--- a/scripts/dtc/pylibfdt/libfdt.i_shipped
++++ b/scripts/dtc/pylibfdt/libfdt.i_shipped
+@@ -1037,7 +1037,7 @@ typedef uint32_t fdt32_t;
+ fdt_string(fdt1, fdt32_to_cpu($1->nameoff)));
+ buff = PyByteArray_FromStringAndSize(
+ (const char *)($1 + 1), fdt32_to_cpu($1->len));
+- resultobj = SWIG_Python_AppendOutput(resultobj, buff);
++ resultobj = SWIG_AppendOutput(resultobj, buff);
+ }
+ }
+
+@@ -1076,7 +1076,7 @@ typedef uint32_t fdt32_t;
+
+ %typemap(argout) int *depth {
+ PyObject *val = Py_BuildValue("i", *arg$argnum);
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+
+ %apply int *depth { int *depth };
+@@ -1092,7 +1092,7 @@ typedef uint32_t fdt32_t;
+ if (PyTuple_GET_SIZE(resultobj) == 0)
+ resultobj = val;
+ else
+- resultobj = SWIG_Python_AppendOutput(resultobj, val);
++ resultobj = SWIG_AppendOutput(resultobj, val);
+ }
+ }
+
+--
+2.39.5
+
diff --git a/config/u-boot/x86_64/target.cfg b/config/u-boot/x86_64/target.cfg
new file mode 100644
index 00000000..a1e15d12
--- /dev/null
+++ b/config/u-boot/x86_64/target.cfg
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+tree="x86_64"
+rev="f919c3a889f0ec7d63a48b5d0ed064386b0980bd" # v2024.10