diff options
| author | Leah Rowe <leah@libreboot.org> | 2026-09-18 21:04:00 +0100 |
|---|---|---|
| committer | Leah Rowe <leah@libreboot.org> | 2026-09-20 13:53:33 +0100 |
| commit | 076c87ccf68f7fe5a3998e8cd8edd2033a2f2ef0 (patch) | |
| tree | 9aaf04cfa16565227f733b917af3e3c485505544 /config/module/u-boot | |
| parent | 387e6dd771588b7f8426c8d0934e610626730d51 (diff) | |
xbmk: make all projects multi-tree
we currently distinguish, by virtue of logic, multi-
and single-tree projects. this introduces a lot of
complexity, so the following patch has removed this
distinction. all single-tree projects are now multi
tree, but with only one tree.
other design changes:
config/git removed. rev/tree now handled with mkhelper
and target configs. this allows per-tree remote handling,
so we could (for example) add the mrchromebox coreboot
fork easily, for specific chromebook models.
config/project is now config/module/project. this
cleans up the main config/ directory.
cfgname variable: .config no longer hardcoded when
doing configs in projects. it is configurable with
this variable. if unset, the previous .cfg is used
noconfig variable: set this in target/mkhelper
configs, and config/module/project/tree/config/ is
unused; instead, make is called without config copying.
a "noconfig" placeholder is used. this enables cleaner
usage of previously single-tree projects in the new
multi-tree-only structure.
cfgvars: variables reinitialised in project config are
cleaned more reliably. in particular, several variables
e.g. autogenargs were not being reset between projects,
although the autogenargs variable is currently unused.
general cleanup has been conducted across the build
system, as part of this redesign. several parts of the
build system more over-engineered as a result of the
previous design, and the new design enabled a severe
reduction in sloccount (75 lines reduced in lbmk).
yes, this change *adds features* but there are fewer
lines of code than before. this is the best kind of
change. way better than the 3-line-diff. yes.
rev= and tree= are set more centrally in configs. the
mkhelper config can be used to set url/url_bkup, but
individual trees can override them.
configs have been cleaned up, with several variables
now much more heavily centralised. config/git/ was
used before to first download the bare repository, and
then the real clone was made with patches. this allows
git repositories to be cached for future re-builds.
with config/git/ gone, the download logic for projects
is more centrally implemented. a separate call to ./mk -f
is no longer performed, and in fact ./mk -f never needs
to be used anymore as a result. ./mk -f now is basically
the same thing as -b, just without any action performed.
this change will allow rapid expansion of the libreboot
project. i want to add hundreds of chromebooks to the
project, using mrchromebox, but the previous design did
not permit this. this change means that i can easily have
unlimited upstreams per project. coreboot will, in some
follow-up changes, have the following upstreams:
coreboot/default: coreboot.org
coreboot/fam15h: 15h.org fork
coreboot/chromebook: mrchromebox fork
this can now be done freely without massive changes to
the build system. under the previous design, i worked on
a now-abandoned patch to do N remotes per project, reading
repo links from a file. this meant that i'd have coreboot.org
first (main and backup), then mrchromebox. this meant that
lbmk would failover through to mrchromebox, wasting time
for the user.
this new design is much cleaner, and will enable the
project to be maintained much more easily.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'config/module/u-boot')
40 files changed, 15972 insertions, 0 deletions
diff --git a/config/module/u-boot/amd64coreboot/config/default b/config/module/u-boot/amd64coreboot/config/default new file mode 100644 index 00000000..7c2a45f0 --- /dev/null +++ b/config/module/u-boot/amd64coreboot/config/default @@ -0,0 +1,2005 @@ +# +# Automatically generated file; DO NOT EDIT. +# U-Boot 2024.10 Configuration +# + +# +# Compiler: gcc (Debian 14.2.0-19) 14.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=140200 +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/module/u-boot/amd64coreboot/target.cfg b/config/module/u-boot/amd64coreboot/target.cfg new file mode 100644 index 00000000..898650ed --- /dev/null +++ b/config/module/u-boot/amd64coreboot/target.cfg @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +tree="x86_64" diff --git a/config/module/u-boot/default/nuke.list b/config/module/u-boot/default/nuke.list new file mode 100644 index 00000000..f3a3fcc3 --- /dev/null +++ b/config/module/u-boot/default/nuke.list @@ -0,0 +1 @@ +test/lib/strlcat.c diff --git a/config/module/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch b/config/module/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch new file mode 100644 index 00000000..8227b076 --- /dev/null +++ b/config/module/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch @@ -0,0 +1,100 @@ +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 + devicetree + +Update hardcoded RK3399 clock rate definitions to match those in its +devicetree (rk3399.dtsi), based on clock-controller assigned-clocks. +Add and initialize NPLL since it's on that list, though nothing seems to +use it in the driver so far. + +Also update VOP ACLK to 400MHz as it divides from CPLL (now 800MHz). +All this stops the displayed vendor bitmap from getting disfigured +when chainloading U-Boot from coreboot+depthcharge (as RW_LEGACY). + +Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> +Link: https://github.com/alpernebbi/u-boot/commit/7e73b7a7550cfdd22a1413c263026e41e56e7617 +--- + .../include/asm/arch-rockchip/cru_rk3399.h | 19 ++++++++++--------- + drivers/clk/rockchip/clk_rk3399.c | 10 ++++++---- + 2 files changed, 16 insertions(+), 13 deletions(-) + +diff --git a/arch/arm/include/asm/arch-rockchip/cru_rk3399.h b/arch/arm/include/asm/arch-rockchip/cru_rk3399.h +index d941a129f3e5..54035c0df1f3 100644 +--- a/arch/arm/include/asm/arch-rockchip/cru_rk3399.h ++++ b/arch/arm/include/asm/arch-rockchip/cru_rk3399.h +@@ -69,7 +69,8 @@ check_member(rockchip_cru, sdio1_con[1], 0x594); + #define LPLL_HZ (600*MHz) + #define BPLL_HZ (600*MHz) + #define GPLL_HZ (594*MHz) +-#define CPLL_HZ (384*MHz) ++#define CPLL_HZ (800*MHz) ++#define NPLL_HZ (1000*MHz) + #define PPLL_HZ (676*MHz) + + #define PMU_PCLK_HZ (48*MHz) +@@ -82,16 +83,16 @@ check_member(rockchip_cru, sdio1_con[1], 0x594); + #define ATCLK_CORE_B_HZ (300*MHz) + #define PCLK_DBG_B_HZ (100*MHz) + +-#define PERIHP_ACLK_HZ (148500*KHz) +-#define PERIHP_HCLK_HZ (148500*KHz) +-#define PERIHP_PCLK_HZ (37125*KHz) ++#define PERIHP_ACLK_HZ (150*MHz) ++#define PERIHP_HCLK_HZ (75*MHz) ++#define PERIHP_PCLK_HZ (37500*KHz) + +-#define PERILP0_ACLK_HZ (99000*KHz) +-#define PERILP0_HCLK_HZ (99000*KHz) +-#define PERILP0_PCLK_HZ (49500*KHz) ++#define PERILP0_ACLK_HZ (100*MHz) ++#define PERILP0_HCLK_HZ (100*MHz) ++#define PERILP0_PCLK_HZ (50*MHz) + +-#define PERILP1_HCLK_HZ (99000*KHz) +-#define PERILP1_PCLK_HZ (49500*KHz) ++#define PERILP1_HCLK_HZ (100*MHz) ++#define PERILP1_PCLK_HZ (50*MHz) + + #define PWM_CLOCK_HZ PMU_PCLK_HZ + +diff --git a/drivers/clk/rockchip/clk_rk3399.c b/drivers/clk/rockchip/clk_rk3399.c +index 6e87db18be07..1b8ffe9e794e 100644 +--- a/drivers/clk/rockchip/clk_rk3399.c ++++ b/drivers/clk/rockchip/clk_rk3399.c +@@ -53,10 +53,11 @@ struct pll_div { + .fbdiv = (u32)((u64)hz * _refdiv * _postdiv1 * _postdiv2 / OSC_HZ),\ + .postdiv1 = _postdiv1, .postdiv2 = _postdiv2}; + +-static const struct pll_div gpll_init_cfg = PLL_DIVISORS(GPLL_HZ, 2, 2, 1); +-static const struct pll_div cpll_init_cfg = PLL_DIVISORS(CPLL_HZ, 1, 2, 2); ++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_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); +@@ -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}; +- int aclk_vop = 198 * MHz; ++ int aclk_vop = 400 * MHz; + void *aclkreg_addr, *dclkreg_addr; + u32 div; + +@@ -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); ++ rkclk_set_pll(&cru->npll_con[0], &npll_init_cfg); + + /* configure perihp aclk, hclk, pclk */ + aclk_div = GPLL_HZ / PERIHP_ACLK_HZ - 1; +-- +2.49.0 + diff --git a/config/module/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch b/config/module/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch new file mode 100644 index 00000000..e2de311c --- /dev/null +++ b/config/module/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch @@ -0,0 +1,246 @@ +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/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. + +Add a simple cursor display by writing a SPACE glyph in the background +colour to the next character position on the screen. Any typed character +will naturally overwrite it, so we need to only explicitly clear it if +the next character will appear somewhere else (newline, backspace). + +Signed-off-by: Andre Przywara <andre.przywara@arm.com> +Reviewed-by: Simon Glass <sjg@chromium.org> +Tested-by: Simon Glass <sjg@chromium.org> +Link: https://lore.kernel.org/r/20220110005638.21599-2-andre.przywara@arm.com +[Alper: Rebase for console_set_font(), reword for CONFIG_VIDEO] +Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> +--- + drivers/video/console_core.c | 1 + + drivers/video/vidconsole-uclass.c | 42 +++++++++++++++++++++++++++++++ + include/video_console.h | 1 + + 3 files changed, 44 insertions(+) + +diff --git a/drivers/video/console_core.c b/drivers/video/console_core.c +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 + debug("height: %d\n", fontdata->height); + + priv->fontdata = fontdata; ++ vc_priv->cursor_visible = true; + vc_priv->x_charsize = fontdata->width; + 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 ebe96bf0c2f3..8613c464040f 100644 +--- a/drivers/video/vidconsole-uclass.c ++++ b/drivers/video/vidconsole-uclass.c +@@ -57,6 +57,26 @@ int vidconsole_entry_start(struct udevice *dev) + return ops->entry_start(dev); + } + ++static void draw_cursor(struct udevice *dev, bool state) ++{ ++ struct vidconsole_priv *priv = dev_get_uclass_priv(dev); ++ struct video_priv *vid_priv = dev_get_uclass_priv(dev->parent); ++ u32 tmp; ++ ++ if (!priv->cursor_visible) ++ return; ++ ++ if (state) { ++ tmp = vid_priv->colour_bg; ++ vid_priv->colour_bg = vid_priv->colour_fg; ++ } ++ ++ vidconsole_putc_xy(dev, priv->xcur_frac, priv->ycur, ' '); ++ ++ if (state) ++ vid_priv->colour_bg = tmp; ++} ++ + /* Move backwards one space */ + 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; + ++ draw_cursor(dev, false); ++ + if (ops->backspace) { + ret = ops->backspace(dev); + if (ret != -ENOSYS) +@@ -90,6 +112,8 @@ static void vidconsole_newline(struct udevice *dev) + const int rows = CONFIG_VAL(CONSOLE_SCROLL_LINES); + int i, ret; + ++ draw_cursor(dev, false); ++ + priv->xcur_frac = priv->xstart_frac; + priv->ycur += priv->y_charsize; + +@@ -286,6 +310,14 @@ static void vidconsole_escape_char(struct udevice *dev, char ch) + + break; + } ++ case 'l': ++ draw_cursor(dev, false); ++ priv->cursor_visible = 0; ++ break; ++ case 'h': ++ priv->cursor_visible = 1; ++ draw_cursor(dev, true); ++ break; + case 'J': { + int mode; + +@@ -460,6 +492,11 @@ int vidconsole_put_char(struct udevice *dev, char ch) + struct vidconsole_priv *priv = dev_get_uclass_priv(dev); + int cp, ret; + ++ /* ++ * We don't need to clear the cursor since we are going to overwrite ++ * that character anyway. ++ */ ++ + if (priv->escape) { + vidconsole_escape_char(dev, ch); + return 0; +@@ -474,6 +511,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) + /* beep */ + break; + case '\r': ++ draw_cursor(dev, false); + priv->xcur_frac = priv->xstart_frac; + break; + case '\n': +@@ -481,6 +519,7 @@ int vidconsole_put_char(struct udevice *dev, char ch) + vidconsole_entry_start(dev); + break; + case '\t': /* Tab (8 chars alignment) */ ++ draw_cursor(dev, false); + priv->xcur_frac = ((priv->xcur_frac / priv->tab_width_frac) + + 1) * priv->tab_width_frac; + +@@ -505,6 +544,8 @@ int vidconsole_put_char(struct udevice *dev, char ch) + break; + } + ++ draw_cursor(dev, true); ++ + return 0; + } + +@@ -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); ++ priv->cursor_visible = false; + + return 0; + } +diff --git a/include/video_console.h b/include/video_console.h +index 723d2315606d..17a9aa3f9295 100644 +--- a/include/video_console.h ++++ b/include/video_console.h +@@ -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.49.0 + + +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/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. + +Add a test displaying some international characters, to reveal missing +glyphs, especially in our builtin fonts. +This would be needed to be manually checked on the screen for +correctness. + +Signed-off-by: Andre Przywara <andre.przywara@arm.com> +Link: https://lore.kernel.org/r/20220110005638.21599-7-andre.przywara@arm.com +--- + lib/efi_selftest/efi_selftest_textoutput.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/lib/efi_selftest/efi_selftest_textoutput.c b/lib/efi_selftest/efi_selftest_textoutput.c +index a3023c82567c..2f8d8d323c2b 100644 +--- a/lib/efi_selftest/efi_selftest_textoutput.c ++++ b/lib/efi_selftest/efi_selftest_textoutput.c +@@ -154,6 +154,11 @@ static int execute(void) + efi_st_printf("Unicode not handled properly\n"); + return EFI_ST_FAILURE; + } ++ ret = con_out->output_string(con_out, L"Österreich Edelweiß Smørrebrød Smörgås Niño René >Ἑλλάς<\n"); ++ if (ret != EFI_ST_SUCCESS) { ++ efi_st_error("OutputString failed for international chars\n"); ++ return EFI_ST_FAILURE; ++ } + efi_st_printf("\n"); + ret = con_out->output_string(con_out, text); + if (ret != EFI_ST_SUCCESS) { +-- +2.49.0 + + +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/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 +drawing characters. + +Add a simple test to display the most basic box characters, which would +need to be checked manually on the screen for correctness. +To facilitate this, add a three second delay after the output at this +point. + +Signed-off-by: Andre Przywara <andre.przywara@arm.com> +Link: https://lore.kernel.org/r/20220110005638.21599-8-andre.przywara@arm.com +--- + lib/efi_selftest/efi_selftest_textoutput.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +diff --git a/lib/efi_selftest/efi_selftest_textoutput.c b/lib/efi_selftest/efi_selftest_textoutput.c +index 2f8d8d323c2b..02209a5bf224 100644 +--- a/lib/efi_selftest/efi_selftest_textoutput.c ++++ b/lib/efi_selftest/efi_selftest_textoutput.c +@@ -159,6 +159,17 @@ static int execute(void) + efi_st_error("OutputString failed for international chars\n"); + return EFI_ST_FAILURE; + } ++ ret = con_out->output_string(con_out, L"┌─┬─┐\n"); ++ ret |= con_out->output_string(con_out, L"│ │ │\n"); ++ ret |= con_out->output_string(con_out, L"├─┼─┤\n"); ++ ret |= con_out->output_string(con_out, L"│ │ │\n"); ++ ret |= con_out->output_string(con_out, L"└─┴─┘\n"); ++ if (ret != EFI_ST_SUCCESS) { ++ efi_st_error("OutputString failed for box drawing chars\n"); ++ return EFI_ST_FAILURE; ++ } ++ con_out->output_string(con_out, L"waiting for admiration...\n"); ++ EFI_CALL(systab.boottime->stall(3000000)); + efi_st_printf("\n"); + ret = con_out->output_string(con_out, text); + if (ret != EFI_ST_SUCCESS) { +-- +2.49.0 + diff --git a/config/module/u-boot/default/patches/0003-Add-video-damage-tracking.patch b/config/module/u-boot/default/patches/0003-Add-video-damage-tracking.patch new file mode 100644 index 00000000..18c93ab8 --- /dev/null +++ b/config/module/u-boot/default/patches/0003-Add-video-damage-tracking.patch @@ -0,0 +1,2399 @@ +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 + function + +While checking frame buffer contents, the video tests also check if the +copy frame buffer contents match the main frame buffer. To test if only +the modified regions are updated after a sync, we will need to create +situations where the two are mismatched. Split this check into another +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 e347c1403fda..01fa9e1b2415 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -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. + * +- * If the copy framebuffer is enabled, this compares it to the main framebuffer +- * too. +- * + * @uts: Test state + * @dev: Video device + * Return: compressed size of the frame buffer, or -ve on error +@@ -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); +- struct video_priv *uc_priv = dev_get_uclass_priv(dev); + uint destlen; + void *dest; + int ret; +@@ -81,16 +77,34 @@ static int compress_frame_buffer(struct unit_test_state *uts, + if (ret) + return ret; + +- /* Check here that the copy frame buffer is working correctly */ +- if (IS_ENABLED(CONFIG_VIDEO_COPY)) { +- ut_assertf(!memcmp(uc_priv->fb, uc_priv->copy_fb, +- uc_priv->fb_size), +- "Copy framebuffer does not match fb"); +- } +- + return destlen; + } + ++/** ++ * check_copy_frame_buffer() - Compare main frame buffer to copy ++ * ++ * If the copy frame buffer is enabled, this compares it to the main ++ * frame buffer. Normally they should have the same contents after a ++ * sync. ++ * ++ * @uts: Test state ++ * @dev: Video device ++ * Return: 0, or -ve on error ++ */ ++static int check_copy_frame_buffer(struct unit_test_state *uts, ++ struct udevice *dev) ++{ ++ struct video_priv *priv = dev_get_uclass_priv(dev); ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ return 0; ++ ++ ut_assertf(!memcmp(priv->fb, priv->copy_fb, priv->fb_size), ++ "Copy framebuffer does not match fb"); ++ ++ return 0; ++} ++ + /* + * Call this function at any point to halt and show the current display. Be + * sure to run the test with the -l flag. +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); + ut_asserteq(79, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); + ut_asserteq(89, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); + ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test clear escape sequence: [2J */ + vidconsole_put_string(con, "A\tB\tC"ANSI_ESC"[2J"); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test set-cursor: [%d;%df */ + vidconsole_put_string(con, "abc"ANSI_ESC"[2;2fab"ANSI_ESC"[4;4fcd"); + ut_asserteq(143, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test colors (30-37 fg color, 40-47 bg color) */ + vidconsole_put_string(con, ANSI_ESC"[30;41mfoo"); /* black on red */ + vidconsole_put_string(con, ANSI_ESC"[33;44mbar"); /* yellow on blue */ + ut_asserteq(272, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display wrap */ + for (i = 0; i < 120; i++) + vidconsole_put_char(con, 'A' + i % 50); + ut_asserteq(wrap_size, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display scrolling */ + for (i = 0; i < SCROLL_LINES; i++) { +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* If we scroll enough, the screen becomes blank again */ + for (i = 0; i < SCROLL_LINES; i++) + vidconsole_put_char(con, '\n'); + ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +@@ -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)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; + } +-- +2.49.0 + + +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 + contents + +The video tests have a helper function to generate a pseudo-digest of +frame buffer contents, but it only does so for the main one. There is +another check that the copy frame buffer is the same as that. But +neither is enough to test if only the modified regions are copied to the +copy frame buffer, since we will want the two to be different in very +specific ways. + +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 01fa9e1b2415..edb1b4ede8c9 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -56,22 +56,28 @@ DM_TEST(dm_test_video_base, UTF_SCAN_PDATA | UTF_SCAN_FDT); + * + * @uts: Test state + * @dev: Video device ++ * @use_copy: Use copy frame buffer if available + * Return: compressed size of the frame buffer, or -ve on error + */ + static int compress_frame_buffer(struct unit_test_state *uts, +- struct udevice *dev) ++ struct udevice *dev, ++ bool use_copy) + { + struct video_priv *priv = dev_get_uclass_priv(dev); + uint destlen; + void *dest; + int ret; + ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ use_copy = false; ++ + destlen = priv->fb_size; + dest = malloc(priv->fb_size); + if (!dest) + return -ENOMEM; + ret = BZ2_bzBuffToBuffCompress(dest, &destlen, +- priv->fb, priv->fb_size, ++ use_copy ? priv->copy_fb : priv->fb, ++ priv->fb_size, + 3, 0, 0); + free(dest); + if (ret) +@@ -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)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); +- ut_asserteq(79, compress_frame_buffer(uts, dev)); ++ ut_asserteq(79, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_asserteq(273, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(273, compress_frame_buffer(uts, dev)); ++ ut_asserteq(273, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); + vidconsole_putc_xy(con, 0, 0, 'a'); +- ut_asserteq(89, compress_frame_buffer(uts, dev)); ++ ut_asserteq(89, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_putc_xy(con, 0, 0, ' '); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_asserteq(363, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + vidconsole_set_row(con, 0, WHITE); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + for (i = 0; i < 20; i++) + vidconsole_putc_xy(con, VID_TO_POS(i * 8), 0, ' ' + i); +- ut_asserteq(363, compress_frame_buffer(uts, dev)); ++ ut_asserteq(363, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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); +- ut_asserteq(466, compress_frame_buffer(uts, dev)); ++ ut_asserteq(466, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test clear escape sequence: [2J */ + vidconsole_put_string(con, "A\tB\tC"ANSI_ESC"[2J"); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test set-cursor: [%d;%df */ + vidconsole_put_string(con, "abc"ANSI_ESC"[2;2fab"ANSI_ESC"[4;4fcd"); +- ut_asserteq(143, compress_frame_buffer(uts, dev)); ++ ut_asserteq(143, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* test colors (30-37 fg color, 40-47 bg color) */ + vidconsole_put_string(con, ANSI_ESC"[30;41mfoo"); /* black on red */ + vidconsole_put_string(con, ANSI_ESC"[33;44mbar"); /* yellow on blue */ +- ut_asserteq(272, compress_frame_buffer(uts, dev)); ++ ut_asserteq(272, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display wrap */ + for (i = 0; i < 120; i++) + vidconsole_put_char(con, 'A' + i % 50); +- ut_asserteq(wrap_size, compress_frame_buffer(uts, dev)); ++ ut_asserteq(wrap_size, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* Check display scrolling */ +@@ -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'); + } +- ut_asserteq(scroll_size, compress_frame_buffer(uts, dev)); ++ ut_asserteq(scroll_size, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + /* If we scroll enough, the screen becomes blank again */ + for (i = 0; i < SCROLL_LINES; i++) + vidconsole_put_char(con, '\n'); +- ut_asserteq(46, compress_frame_buffer(uts, dev)); ++ ut_asserteq(46, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1368, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1247, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(3700, compress_frame_buffer(uts, dev)); ++ ut_asserteq(3700, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(3656, compress_frame_buffer(uts, dev)); ++ ut_asserteq(3656, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(6827, compress_frame_buffer(uts, dev)); ++ ut_asserteq(6827, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_asserteq(2024, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(1368, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1368, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(2024, compress_frame_buffer(uts, dev)); ++ ut_asserteq(2024, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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)); +- ut_asserteq(1247, compress_frame_buffer(uts, dev)); ++ ut_asserteq(1247, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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); +- ut_asserteq(12174, compress_frame_buffer(uts, dev)); ++ ut_asserteq(12174, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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); +- ut_asserteq(34287, compress_frame_buffer(uts, dev)); ++ ut_asserteq(34287, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +@@ -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); +- ut_asserteq(29471, compress_frame_buffer(uts, dev)); ++ ut_asserteq(29471, compress_frame_buffer(uts, dev, false)); + ut_assertok(check_copy_frame_buffer(uts, dev)); + + return 0; +-- +2.49.0 + + +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 + buffer + +With VIDEO_COPY enabled, only the modified parts of the frame buffer are +intended to be copied to the hardware. Add a test that checks this, by +overwriting contents we prepared without telling the video uclass and +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 edb1b4ede8c9..80e65d66dbaf 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -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, UTF_SCAN_PDATA | UTF_SCAN_FDT); ++ ++/* Test partial rendering onto hardware frame buffer */ ++static int dm_test_video_copy(struct unit_test_state *uts) ++{ ++ struct sandbox_sdl_plat *plat; ++ struct video_uc_plat *uc_plat; ++ struct udevice *dev, *con; ++ struct video_priv *priv; ++ const char *test_string = "\n\tCriticism may not be agreeable, but it is necessary.\t"; ++ ulong addr; ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_COPY)) ++ return -EAGAIN; ++ ++ ut_assertok(uclass_find_first_device(UCLASS_VIDEO, &dev)); ++ ut_assertnonnull(dev); ++ uc_plat = dev_get_uclass_plat(dev); ++ uc_plat->hide_logo = true; ++ plat = dev_get_plat(dev); ++ plat->font_size = 32; ++ ut_assert(!device_active(dev)); ++ ut_assertok(uclass_first_device_err(UCLASS_VIDEO, &dev)); ++ ut_assertnonnull(dev); ++ priv = dev_get_uclass_priv(dev); ++ ++ ut_assertok(read_file(uts, "tools/logos/denx.bmp", &addr)); ++ ut_assertok(video_bmp_display(dev, addr, 0, 0, false)); ++ ++ ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); ++ vidconsole_put_string(con, "\n\n\n\n\n"); ++ vidconsole_put_string(con, test_string); ++ vidconsole_put_string(con, test_string); ++ ++ ut_asserteq(6678, compress_frame_buffer(uts, dev, false)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); ++ ++ /* ++ * Secretly clear the hardware frame buffer, but in a different ++ * color (black) to see which parts will be overwritten. ++ */ ++ memset(priv->copy_fb, 0, priv->fb_size); ++ ++ /* ++ * We should have the full content on the main buffer, but only ++ * the new content should have been copied to the copy buffer. ++ */ ++ vidconsole_put_string(con, test_string); ++ vidconsole_put_string(con, test_string); ++ ut_asserteq(7589, compress_frame_buffer(uts, dev, false)); ++ ut_asserteq(5278, compress_frame_buffer(uts, dev, true)); ++ ++ return 0; ++} ++DM_TEST(dm_test_video_copy, UTF_SCAN_PDATA | UTF_SCAN_FDT); +-- +2.49.0 + + +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 + +We are going to introduce image damage tracking to fasten up screen +refresh on large displays. This patch adds damage tracking for up to +one rectangle of the screen which is typically enough to hold blt or +text print updates. Callers into this API and a reduced dcache flush +code path will follow in later patches. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +Reported-by: Da Xue <da@libre.computer> +[Alper: Use xstart/yend, document new fields, return void from + video_damage(), declare priv, drop headers, use IS_ENABLED()] +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 | 35 +++++++++++++++++++++++++++++++ + include/video.h | 40 ++++++++++++++++++++++++++++++++++-- + 3 files changed, 86 insertions(+), 2 deletions(-) + +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 3c3cebaacd02..5d67067891be 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -98,6 +98,19 @@ config VIDEO_COPY + To use this, your video driver must set @copy_base in + struct video_uc_plat. + ++config VIDEO_DAMAGE ++ bool "Enable damage tracking of frame buffer regions" ++ help ++ On some machines (most ARM), the display frame buffer resides in ++ RAM. To make the display controller pick up screen updates, we ++ have to flush frame buffer contents from CPU caches into RAM which ++ can be a slow operation. ++ ++ This feature adds damage tracking to collect information about regions ++ that received updates. When we want to sync, we then only flush ++ regions of the frame buffer that were modified before, speeding up ++ screen refreshes significantly. ++ + config BACKLIGHT_PWM + 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 ff4f21995859..da035e5c92b7 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -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 (x > priv->xsize) ++ return; ++ ++ if (y > priv->ysize) ++ return; ++ ++ if (xend > priv->xsize) ++ xend = priv->xsize; ++ ++ if (yend > priv->ysize) ++ yend = priv->ysize; ++ ++ /* Span a rectangle across all old and new damage */ ++ priv->damage.xstart = min(x, priv->damage.xstart); ++ priv->damage.ystart = min(y, priv->damage.ystart); ++ 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) + { +@@ -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; ++ priv->damage.xend = 0; ++ priv->damage.yend = 0; ++ } ++ + return 0; + } + +diff --git a/include/video.h b/include/video.h +index a1f7fd7e839c..7eed112e00c4 100644 +--- a/include/video.h ++++ b/include/video.h +@@ -85,6 +85,11 @@ enum video_format { + * @fb_size: Frame buffer size + * @copy_fb: Copy of the frame buffer to keep up to date; see struct + * video_uc_plat ++ * @damage: A bounding box of framebuffer regions updated since last sync ++ * @damage.xstart: X start position in pixels from the left ++ * @damage.ystart: Y start position in pixels from the top ++ * @damage.xend: X end position in pixels from the left ++ * @damage.xend: Y end position in pixels from the top + * @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 +@@ -113,6 +118,12 @@ struct video_priv { + void *fb; + int fb_size; + void *copy_fb; ++ struct { ++ int xstart; ++ int ystart; ++ int xend; ++ int yend; ++ } damage; + int line_length; + u32 colour_fg; + u32 colour_bg; +@@ -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 +- * function syncs these up so that the current contents of the U-Boot frame +- * buffer are displayed to the user. ++ * function syncs the damaged parts of them up so that the current contents ++ * of the U-Boot frame buffer are displayed to the user. It clears the damage ++ * buffer. + */ + int video_sync(struct udevice *vid, bool force); + +@@ -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. ++ * ++ * @vid: Device to sync ++ * @x: Upper left X coordinate of the damaged rectangle ++ * @y: Upper left Y coordinate of the damaged rectangle ++ * @width: Width of the damaged rectangle ++ * @height: Height of the damaged rectangle ++ * ++ * Some frame buffers are cached or have a secondary frame buffer. This ++ * function notifies the video subsystem about rectangles that were updated ++ * within the frame buffer. They may only get written to the screen on the ++ * 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.49.0 + + +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 + +Let's report the video damage when we fill parts of the screen. This +way we can later lazily flush only relevant regions to hardware. + +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 da035e5c92b7..1c07613539f2 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -214,6 +214,8 @@ int video_fill_part(struct udevice *dev, int xstart, int ystart, int xend, + if (ret) + return ret; + ++ video_damage(dev, xstart, ystart, xend - xstart, yend - ystart); ++ + return 0; + } + +@@ -262,6 +264,8 @@ int video_fill(struct udevice *dev, u32 colour) + if (ret) + return ret; + ++ video_damage(dev, 0, 0, priv->xsize, priv->ysize); ++ + return video_sync(dev, false); + } + +-- +2.49.0 + + +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 + drivers + +Now that we have a damage tracking API, let's populate damage done by +vidconsole drivers. We try to declare as little memory as damaged as +possible. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +Reported-by: Da Xue <da@libre.computer> +[Alper: Rebase for met->baseline, fontdata->height/width, make rotated + console_putc_xy() damages pass tests, edit patch message] +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-7-alpernebiyasak@gmail.com/ +--- + drivers/video/console_normal.c | 18 +++++++++++ + drivers/video/console_rotate.c | 54 ++++++++++++++++++++++++++++++++ + drivers/video/console_truetype.c | 21 +++++++++++++ + 3 files changed, 93 insertions(+) + +diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c +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) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ 0, ++ fontdata->height * row, ++ vid_priv->xsize, ++ fontdata->height); ++ + return 0; + } + +@@ -60,6 +66,12 @@ static int console_move_rows(struct udevice *dev, uint rowdst, + if (ret) + return ret; + ++ video_damage(dev->parent, ++ 0, ++ fontdata->height * rowdst, ++ vid_priv->xsize, ++ fontdata->height * count); ++ + return 0; + } + +@@ -91,6 +103,12 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, int cp) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ x, ++ y, ++ fontdata->width, ++ fontdata->height); ++ + ret = vidconsole_sync_copy(dev, start, line); + if (ret) + return ret; +diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c +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) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ vid_priv->xsize - ((row + 1) * fontdata->height), ++ 0, ++ fontdata->height, ++ vid_priv->ysize); ++ + return 0; + } + +@@ -64,6 +70,12 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, + dst += vid_priv->line_length; + } + ++ video_damage(dev->parent, ++ vid_priv->xsize - ((rowdst + count) * fontdata->height), ++ 0, ++ count * fontdata->height, ++ vid_priv->ysize); ++ + return 0; + } + +@@ -97,6 +109,12 @@ static int console_putc_xy_1(struct udevice *dev, uint x_frac, uint y, int cp) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ vid_priv->xsize - y - fontdata->height, ++ linenum - 1, ++ fontdata->height, ++ fontdata->width); ++ + return VID_TO_POS(fontdata->width); + } + +@@ -121,6 +139,12 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ 0, ++ vid_priv->ysize - (row + 1) * fontdata->height, ++ vid_priv->xsize, ++ fontdata->height); ++ + return 0; + } + +@@ -142,6 +166,12 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, + vidconsole_memmove(dev, dst, src, + fontdata->height * vid_priv->line_length * count); + ++ video_damage(dev->parent, ++ 0, ++ vid_priv->ysize - (rowdst + count) * fontdata->height, ++ vid_priv->xsize, ++ count * fontdata->height); ++ + return 0; + } + +@@ -175,6 +205,12 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, int cp) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ x - fontdata->width + 1, ++ linenum - fontdata->height + 1, ++ fontdata->width, ++ fontdata->height); ++ + return VID_TO_POS(fontdata->width); + } + +@@ -199,6 +235,12 @@ static int console_set_row_3(struct udevice *dev, uint row, int clr) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ row * fontdata->height, ++ 0, ++ fontdata->height, ++ vid_priv->ysize); ++ + return 0; + } + +@@ -225,6 +267,12 @@ static int console_move_rows_3(struct udevice *dev, uint rowdst, uint rowsrc, + dst += vid_priv->line_length; + } + ++ video_damage(dev->parent, ++ rowdst * fontdata->height, ++ 0, ++ count * fontdata->height, ++ vid_priv->ysize); ++ + return 0; + } + +@@ -257,6 +305,12 @@ static int console_putc_xy_3(struct udevice *dev, uint x_frac, uint y, int cp) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ y, ++ linenum - fontdata->width + 1, ++ fontdata->height, ++ fontdata->width); ++ + return VID_TO_POS(fontdata->width); + } + +diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c +index 17a29817664f..073ddcfb6950 100644 +--- a/drivers/video/console_truetype.c ++++ b/drivers/video/console_truetype.c +@@ -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); ++ struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev); + struct console_tt_priv *priv = dev_get_priv(dev); + struct console_tt_metrics *met = priv->cur_met; + void *end, *line; +@@ -233,6 +234,12 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) + if (ret) + return ret; + ++ video_damage(dev->parent, ++ 0, ++ vc_priv->y_charsize * row, ++ vid_priv->xsize, ++ vc_priv->y_charsize); ++ + return 0; + } + +@@ -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); ++ struct vidconsole_priv *vc_priv = dev_get_uclass_priv(dev); + struct console_tt_priv *priv = dev_get_priv(dev); + struct console_tt_metrics *met = priv->cur_met; + void *dst; +@@ -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; + ++ video_damage(dev->parent, ++ 0, ++ vc_priv->y_charsize * rowdst, ++ vid_priv->xsize, ++ vc_priv->y_charsize * count); ++ + return 0; + } + +@@ -418,6 +432,13 @@ static int console_truetype_putc_xy(struct udevice *dev, uint x, uint y, + + line += vid_priv->line_length; + } ++ ++ video_damage(dev->parent, ++ VID_TO_PIXEL(x) + xoff, ++ y + met->baseline + yoff, ++ width, ++ height); ++ + ret = vidconsole_sync_copy(dev, start, line); + if (ret) + return ret; +-- +2.49.0 + + +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 + +With VIDEO_DAMAGE, the video uclass tracks updated regions of the frame +buffer in order to avoid unnecessary work during a video sync. Enable +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 + + test/dm/video.c | 56 +++++++++++++++++++++++++++++++++++++++ + 2 files changed, 57 insertions(+) + +diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig +index 861a1f4cd90e..8bf36ff325d8 100644 +--- a/configs/sandbox_defconfig ++++ b/configs/sandbox_defconfig +@@ -328,6 +328,7 @@ CONFIG_USB_ETH_CDC=y + CONFIG_VIDEO=y + CONFIG_VIDEO_FONT_SUN12X22=y + CONFIG_VIDEO_COPY=y ++CONFIG_VIDEO_DAMAGE=y + CONFIG_CONSOLE_ROTATION=y + CONFIG_CONSOLE_TRUETYPE=y + CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y +diff --git a/test/dm/video.c b/test/dm/video.c +index 80e65d66dbaf..e76fa986d359 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -710,3 +710,59 @@ static int dm_test_video_copy(struct unit_test_state *uts) + return 0; + } + 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) ++{ ++ struct sandbox_sdl_plat *plat; ++ struct udevice *dev, *con; ++ struct video_priv *priv; ++ const char *test_string_1 = "Criticism may not be agreeable, "; ++ const char *test_string_2 = "but it is necessary."; ++ const char *test_string_3 = "It fulfils the same function as pain in the human body."; ++ ++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) ++ return -EAGAIN; ++ ++ ut_assertok(uclass_find_device(UCLASS_VIDEO, 0, &dev)); ++ ut_assert(!device_active(dev)); ++ plat = dev_get_plat(dev); ++ plat->font_size = 32; ++ ++ ut_assertok(video_get_nologo(uts, &dev)); ++ ut_assertok(uclass_get_device(UCLASS_VIDEO_CONSOLE, 0, &con)); ++ priv = dev_get_uclass_priv(dev); ++ ++ vidconsole_position_cursor(con, 14, 10); ++ vidconsole_put_string(con, test_string_2); ++ ut_asserteq(449, priv->damage.xstart); ++ ut_asserteq(325, priv->damage.ystart); ++ ut_asserteq(661, priv->damage.xend); ++ ut_asserteq(350, priv->damage.yend); ++ ++ vidconsole_position_cursor(con, 7, 5); ++ vidconsole_put_string(con, test_string_1); ++ ut_asserteq(225, priv->damage.xstart); ++ ut_asserteq(164, priv->damage.ystart); ++ ut_asserteq(661, priv->damage.xend); ++ ut_asserteq(350, priv->damage.yend); ++ ++ vidconsole_position_cursor(con, 21, 15); ++ vidconsole_put_string(con, test_string_3); ++ ut_asserteq(225, priv->damage.xstart); ++ ut_asserteq(164, priv->damage.ystart); ++ ut_asserteq(1280, priv->damage.xend); ++ ut_asserteq(510, priv->damage.yend); ++ ++ video_sync(dev, false); ++ ut_asserteq(priv->xsize, priv->damage.xstart); ++ ut_asserteq(priv->ysize, priv->damage.ystart); ++ ut_asserteq(0, priv->damage.xend); ++ ut_asserteq(0, priv->damage.yend); ++ ++ ut_asserteq(7339, compress_frame_buffer(uts, dev, false)); ++ ut_assertok(check_copy_frame_buffer(uts, dev)); ++ ++ return 0; ++} ++DM_TEST(dm_test_video_damage, UTF_SCAN_PDATA | UTF_SCAN_FDT); +-- +2.49.0 + + +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 + +Let's report the video damage when we draw a bitmap on the screen. This +way we can later lazily flush only relevant regions to hardware. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +Reported-by: Da Xue <da@libre.computer> +Reviewed-by: Simon Glass <sjg@chromium.org> +Link: https://lore.kernel.org/u-boot/20230821135111.3558478-9-alpernebiyasak@gmail.com/ +--- + drivers/video/video_bmp.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/drivers/video/video_bmp.c b/drivers/video/video_bmp.c +index ad512d99a1b9..78de95607924 100644 +--- a/drivers/video/video_bmp.c ++++ b/drivers/video/video_bmp.c +@@ -459,6 +459,8 @@ int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, + break; + }; + ++ video_damage(dev, x, y, width, height); ++ + /* Find the position of the top left of the image in the framebuffer */ + fb = (uchar *)(priv->fb + y * priv->line_length + x * bpix / 8); + ret = video_sync_copy(dev, start, fb); +-- +2.49.0 + + +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 + +Now that we have a damage tracking API, let's populate damage done by +UEFI payloads when they BLT data onto the screen. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +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 4593975be5af..3abb47d610e6 100644 +--- a/lib/efi_loader/efi_gop.c ++++ b/lib/efi_loader/efi_gop.c +@@ -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 ++ * @vdev: backing video device + * @bpix: bits per pixel + * @fb: frame buffer + */ +@@ -34,6 +35,7 @@ struct efi_gop_obj { + struct efi_gop ops; + struct efi_gop_mode_info info; + struct efi_gop_mode mode; ++ struct udevice *vdev; + /* Fields we only have access to during init */ + u32 bpix; + void *fb; +@@ -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); ++ bool blt_to_video = (operation != EFI_BLT_VIDEO_TO_BLT_BUFFER); + + if (delta) { + /* Check for 4 byte alignment */ +@@ -245,6 +248,9 @@ static __always_inline efi_status_t gop_blt_int(struct efi_gop *this, + dlineoff += dwidth; + } + ++ if (blt_to_video) ++ video_damage(gopobj->vdev, dx, dy, width, height); ++ + return EFI_SUCCESS; + } + +@@ -551,6 +557,7 @@ efi_status_t efi_gop_register(void) + gopobj->info.pixels_per_scanline = col; + gopobj->bpix = bpix; + gopobj->fb = map_sysmem(fb_base, fb_size); ++ gopobj->vdev = vdev; + + return EFI_SUCCESS; + } +-- +2.49.0 + + +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 + +Now that we have a damage area tells us which parts of the frame buffer +actually need updating, let's only dcache flush those on video_sync() +calls. With this optimization in place, frame buffer updates - especially +on large screen such as 4k displays - speed up significantly. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +Reported-by: Da Xue <da@libre.computer> +[Alper: Use damage.xstart/yend, IS_ENABLED()] +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 | 43 +++++++++++++++++++++++++++++++----- + 1 file changed, 38 insertions(+), 5 deletions(-) + +diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c +index 1c07613539f2..2dffcc229f6f 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -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, 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(fb, ALIGN(fb + priv->fb_size, ++ CONFIG_SYS_CACHELINE_SIZE)); ++ ++ return; ++ } ++ ++ if (priv->damage.xend && priv->damage.yend) { ++ int lstart = priv->damage.xstart * VNBYTES(priv->bpix); ++ int lend = priv->damage.xend * VNBYTES(priv->bpix); ++ int y; ++ ++ for (y = priv->damage.ystart; y < priv->damage.yend; y++) { ++ ulong start = fb + (y * priv->line_length) + lstart; ++ ulong end = start + lend - lstart; ++ ++ start = ALIGN_DOWN(start, CONFIG_SYS_CACHELINE_SIZE); ++ end = ALIGN(end, CONFIG_SYS_CACHELINE_SIZE); ++ ++ flush_dcache_range(start, end); ++ } ++ } ++} ++#endif ++ + /* Flush video activity to the caches */ + 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) +- if (priv->flush_dcache) { +- flush_dcache_range((ulong)priv->fb, +- ALIGN((ulong)priv->fb + priv->fb_size, +- CONFIG_SYS_CACHELINE_SIZE)); +- } ++ video_flush_dcache(vid, false); ++ ++ if (IS_ENABLED(CONFIG_VIDEO_COPY)) ++ video_flush_dcache(vid, true); + #elif defined(CONFIG_VIDEO_SANDBOX_SDL) + sandbox_sdl_sync(priv->fb); + #endif +-- +2.49.0 + + +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 + +CONFIG_VIDEO_COPY implemented a range-based copying mechanism: If we +print a single character, it will always copy the full range of bytes +from the top left corner of the character to the lower right onto the +uncached frame buffer. This includes pretty much the full line contents +of the printed character. + +Since we now have proper damage tracking, let's make use of that to reduce +the amount of data we need to copy. With this patch applied, we will only +copy the tiny rectangle surrounding characters when we print them, +speeding up the video console. + +After this, changes to the main frame buffer are not immediately copied +to the copy frame buffer, but postponed until the next video device +sync. So issue an explicit sync before inspecting the copy frame buffer +contents for the video tests. + +Signed-off-by: Alexander Graf <agraf@csgraf.de> +[Alper: Rebase for fontdata->height/w, fill_part(), fix memmove(dev), + drop from defconfig, use damage.xstart/yend, use IS_ENABLED(), + call video_sync() before copy_fb check, update video_copy test] +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-12-alpernebiyasak@gmail.com/ +--- + configs/sandbox_defconfig | 1 - + drivers/video/Kconfig | 5 ++ + drivers/video/console_normal.c | 13 +---- + drivers/video/console_rotate.c | 44 +++----------- + 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(+), 251 deletions(-) + +diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig +index 8bf36ff325d8..861a1f4cd90e 100644 +--- a/configs/sandbox_defconfig ++++ b/configs/sandbox_defconfig +@@ -328,7 +328,6 @@ CONFIG_USB_ETH_CDC=y + CONFIG_VIDEO=y + CONFIG_VIDEO_FONT_SUN12X22=y + CONFIG_VIDEO_COPY=y +-CONFIG_VIDEO_DAMAGE=y + CONFIG_CONSOLE_ROTATION=y + CONFIG_CONSOLE_TRUETYPE=y + CONFIG_CONSOLE_TRUETYPE_CANTORAONE=y +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 5d67067891be..964174b01acc 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -89,11 +89,14 @@ config VIDEO_PCI_DEFAULT_FB_SIZE + + config VIDEO_COPY + bool "Enable copying the frame buffer to a hardware copy" ++ select VIDEO_DAMAGE + help + On some machines (e.g. x86), reading from the frame buffer is very + slow because it is uncached. To improve performance, this feature + allows the frame buffer to be kept in cached memory (allocated by + U-Boot) and then copied to the hardware frame-buffer as needed. ++ It uses the VIDEO_DAMAGE feature to keep track of regions to copy ++ and will only copy actually touched regions. + + To use this, your video driver must set @copy_base in + struct video_uc_plat. +@@ -111,6 +114,8 @@ config VIDEO_DAMAGE + regions of the frame buffer that were modified before, speeding up + screen refreshes significantly. + ++ It is also used by VIDEO_COPY to identify which regions changed. ++ + config BACKLIGHT_PWM + 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 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) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); + end = dst; + +- ret = vidconsole_sync_copy(dev, line, end); +- if (ret) +- return ret; +- + video_damage(dev->parent, + 0, + fontdata->height * row, +@@ -57,14 +53,11 @@ static int console_move_rows(struct udevice *dev, uint rowdst, + void *dst; + void *src; + int size; +- int ret; + + dst = vid_priv->fb + rowdst * fontdata->height * vid_priv->line_length; + src = vid_priv->fb + rowsrc * fontdata->height * vid_priv->line_length; + size = fontdata->height * vid_priv->line_length * count; +- ret = vidconsole_memmove(dev, dst, src, size); +- if (ret) +- return ret; ++ memmove(dst, src, size); + + video_damage(dev->parent, + 0, +@@ -109,10 +102,6 @@ static int console_putc_xy(struct udevice *dev, uint x_frac, uint y, int cp) + fontdata->width, + fontdata->height); + +- ret = vidconsole_sync_copy(dev, start, line); +- if (ret) +- return ret; +- + return VID_TO_POS(fontdata->width); + } + +diff --git a/drivers/video/console_rotate.c b/drivers/video/console_rotate.c +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) + int pbytes = VNBYTES(vid_priv->bpix); + void *start, *dst, *line; + int i, j; +- int ret; + + start = vid_priv->fb + vid_priv->line_length - + (row + 1) * fontdata->height * pbytes; +@@ -32,9 +31,6 @@ static int console_set_row_1(struct udevice *dev, uint row, int clr) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); + line += vid_priv->line_length; + } +- ret = vidconsole_sync_copy(dev, start, line); +- if (ret) +- return ret; + + video_damage(dev->parent, + vid_priv->xsize - ((row + 1) * fontdata->height), +@@ -54,7 +50,7 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, + int pbytes = VNBYTES(vid_priv->bpix); + void *dst; + void *src; +- int j, ret; ++ int j; + + dst = vid_priv->fb + vid_priv->line_length - + (rowdst + count) * fontdata->height * pbytes; +@@ -62,10 +58,7 @@ static int console_move_rows_1(struct udevice *dev, uint rowdst, uint rowsrc, + (rowsrc + count) * fontdata->height * pbytes; + + for (j = 0; j < vid_priv->ysize; j++) { +- ret = vidconsole_memmove(dev, dst, src, +- fontdata->height * pbytes * count); +- if (ret) +- return ret; ++ memmove(dst, src, fontdata->height * pbytes * count); + src += vid_priv->line_length; + dst += vid_priv->line_length; + } +@@ -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 */ +- ret = vidconsole_sync_copy(dev, start - vid_priv->line_length, line); +- if (ret) +- return ret; +- + video_damage(dev->parent, + vid_priv->xsize - y - fontdata->height, + linenum - 1, +@@ -125,7 +114,7 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) + struct video_fontdata *fontdata = priv->fontdata; + void *start, *line, *dst, *end; + int pixels = fontdata->height * vid_priv->xsize; +- int i, ret; ++ int i; + int pbytes = VNBYTES(vid_priv->bpix); + + start = vid_priv->fb + vid_priv->ysize * vid_priv->line_length - +@@ -135,9 +124,6 @@ static int console_set_row_2(struct udevice *dev, uint row, int clr) + for (i = 0; i < pixels; i++) + fill_pixel_and_goto_next(&dst, clr, pbytes, pbytes); + end = dst; +- ret = vidconsole_sync_copy(dev, start, end); +- if (ret) +- return ret; + + video_damage(dev->parent, + 0, +@@ -163,8 +149,7 @@ static int console_move_rows_2(struct udevice *dev, uint rowdst, uint rowsrc, + vid_priv->line_length; + src = end - (rowsrc + count) * fontdata->height * + vid_priv->line_length; +- vidconsole_memmove(dev, dst, src, +- fontdata->height * vid_priv->line_length * count); ++ memmove(dst, src, fontdata->height * vid_priv->line_length * count); + + video_damage(dev->parent, + 0, +@@ -200,11 +185,6 @@ static int console_putc_xy_2(struct udevice *dev, uint x_frac, uint y, int cp) + if (ret) + return ret; + +- /* Add 4 bytes to allow for the first pixel writen */ +- ret = vidconsole_sync_copy(dev, start + 4, line); +- if (ret) +- return ret; +- + video_damage(dev->parent, + x - fontdata->width + 1, + linenum - fontdata->height + 1, +@@ -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; +- int i, j, ret; ++ int i, j; + + start = vid_priv->fb + row * fontdata->height * pbytes; + line = start; +@@ -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; + } +- ret = vidconsole_sync_copy(dev, start, line); +- if (ret) +- return ret; + + video_damage(dev->parent, + row * fontdata->height, +@@ -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; +- int j, ret; ++ int j; + + dst = vid_priv->fb + rowdst * fontdata->height * pbytes; + src = vid_priv->fb + rowsrc * fontdata->height * pbytes; + + for (j = 0; j < vid_priv->ysize; j++) { +- ret = vidconsole_memmove(dev, dst, src, +- fontdata->height * pbytes * count); +- if (ret) +- return ret; ++ memmove(dst, src, fontdata->height * pbytes * count); + src += vid_priv->line_length; + dst += vid_priv->line_length; + } +@@ -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); +- if (ret) +- return ret; +- /* Add a line to allow for the first pixels writen */ +- ret = vidconsole_sync_copy(dev, start + vid_priv->line_length, line); + if (ret) + return ret; + +diff --git a/drivers/video/console_truetype.c b/drivers/video/console_truetype.c +index 073ddcfb6950..56c3af3d5aad 100644 +--- a/drivers/video/console_truetype.c ++++ b/drivers/video/console_truetype.c +@@ -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; +- int ret; + + line = vid_priv->fb + row * met->font_size * vid_priv->line_length; + end = line + met->font_size * vid_priv->line_length; +@@ -230,9 +229,6 @@ static int console_truetype_set_row(struct udevice *dev, uint row, int clr) + default: + return -ENOSYS; + } +- ret = vidconsole_sync_copy(dev, line, end); +- if (ret) +- return ret; + + video_damage(dev->parent, + 0, +@@ -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; +- int i, diff, ret; ++ int i, diff; + + dst = vid_priv->fb + rowdst * met->font_size * vid_priv->line_length; + src = vid_priv->fb + rowsrc * met->font_size * vid_priv->line_length; +- ret = vidconsole_memmove(dev, dst, src, met->font_size * +- vid_priv->line_length * count); +- if (ret) +- return ret; ++ memmove(dst, src, met->font_size * vid_priv->line_length * count); + + /* Scroll up our position history */ + diff = (rowsrc - rowdst) * met->font_size; +@@ -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; +- int row, ret; ++ int row; + + /* First get some basic metrics about this character */ + 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); + +- ret = vidconsole_sync_copy(dev, start, line); +- if (ret) +- return ret; + 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 8613c464040f..ce6c8bb70cb7 100644 +--- a/drivers/video/vidconsole-uclass.c ++++ b/drivers/video/vidconsole-uclass.c +@@ -803,22 +803,6 @@ UCLASS_DRIVER(vidconsole) = { + .per_device_auto = sizeof(struct vidconsole_priv), + }; + +-#ifdef CONFIG_VIDEO_COPY +-int vidconsole_sync_copy(struct udevice *dev, void *from, void *to) +-{ +- struct udevice *vid = dev_get_parent(dev); +- +- return video_sync_copy(vid, from, to); +-} +- +-int vidconsole_memmove(struct udevice *dev, void *dst, const void *src, +- int size) +-{ +- memmove(dst, src, size); +- return vidconsole_sync_copy(dev, dst, dst + size); +-} +-#endif +- + int vidconsole_clear_and_reset(struct udevice *dev) + { + int ret; +diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c +index 2dffcc229f6f..eeee5d960838 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -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; +- int row, i, ret; ++ int row, i; + + start = priv->fb + ystart * priv->line_length; + start += xstart * VNBYTES(priv->bpix); +@@ -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); + +@@ -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); +- int ret; + + switch (priv->bpix) { + case VIDEO_BPP16: +@@ -260,9 +256,6 @@ int video_fill(struct udevice *dev, u32 colour) + memset(priv->fb, colour, priv->fb_size); + break; + } +- ret = video_sync_copy(dev, priv->fb, priv->fb + priv->fb_size); +- if (ret) +- return ret; + + video_damage(dev, 0, 0, priv->xsize, priv->ysize); + +@@ -433,6 +426,27 @@ static void video_flush_dcache(struct udevice *vid, bool use_copy) + } + #endif + ++static void video_flush_copy(struct udevice *vid) ++{ ++ struct video_priv *priv = dev_get_uclass_priv(vid); ++ ++ if (!priv->copy_fb) ++ return; ++ ++ if (priv->damage.xend && priv->damage.yend) { ++ int lstart = priv->damage.xstart * VNBYTES(priv->bpix); ++ int lend = priv->damage.xend * VNBYTES(priv->bpix); ++ int y; ++ ++ for (y = priv->damage.ystart; y < priv->damage.yend; y++) { ++ ulong offset = (y * priv->line_length) + lstart; ++ ulong len = lend - lstart; ++ ++ memcpy(priv->copy_fb + offset, priv->fb + offset, len); ++ } ++ } ++} ++ + /* Flush video activity to the caches */ + 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; + ++ if (IS_ENABLED(CONFIG_VIDEO_COPY)) ++ video_flush_copy(vid); ++ + if (ops && ops->video_sync) { + ret = ops->video_sync(vid); + if (ret) +@@ -523,69 +540,6 @@ int video_get_ysize(struct udevice *dev) + return priv->ysize; + } + +-#ifdef CONFIG_VIDEO_COPY +-int video_sync_copy(struct udevice *dev, void *from, void *to) +-{ +- struct video_priv *priv = dev_get_uclass_priv(dev); +- +- if (priv->copy_fb) { +- long offset, size; +- +- /* Find the offset of the first byte to copy */ +- if ((ulong)to > (ulong)from) { +- size = to - from; +- offset = from - priv->fb; +- } else { +- size = from - to; +- offset = to - priv->fb; +- } +- +- /* +- * Allow a bit of leeway for valid requests somewhere near the +- * frame buffer +- */ +- if (offset < -priv->fb_size || offset > 2 * priv->fb_size) { +-#ifdef DEBUG +- char str[120]; +- +- snprintf(str, sizeof(str), +- "[** FAULT sync_copy fb=%p, from=%p, to=%p, offset=%lx]", +- priv->fb, from, to, offset); +- console_puts_select_stderr(true, str); +-#endif +- return -EFAULT; +- } +- +- /* +- * Silently crop the memcpy. This allows callers to avoid doing +- * this themselves. It is common for the end pointer to go a +- * few lines after the end of the frame buffer, since most of +- * the update algorithms terminate a line after their last write +- */ +- if (offset + size > priv->fb_size) { +- size = priv->fb_size - offset; +- } else if (offset < 0) { +- size += offset; +- offset = 0; +- } +- +- memcpy(priv->copy_fb + offset, priv->fb + offset, size); +- } +- +- return 0; +-} +- +-int video_sync_copy_all(struct udevice *dev) +-{ +- struct video_priv *priv = dev_get_uclass_priv(dev); +- +- video_sync_copy(dev, priv->fb, priv->fb + priv->fb_size); +- +- return 0; +-} +- +-#endif +- + #define SPLASH_DECL(_name) \ + 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 78de95607924..1f267d45812c 100644 +--- a/drivers/video/video_bmp.c ++++ b/drivers/video/video_bmp.c +@@ -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; +- int ret; + + if (!bmp || !(bmp->header.signature[0] == 'B' && + bmp->header.signature[1] == 'M')) { +@@ -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); + +- /* Find the position of the top left of the image in the framebuffer */ +- fb = (uchar *)(priv->fb + y * priv->line_length + x * bpix / 8); +- ret = video_sync_copy(dev, start, fb); +- if (ret) +- return log_ret(ret); +- + return video_sync(dev, false); + } +diff --git a/include/video.h b/include/video.h +index 7eed112e00c4..2fe2f73a865b 100644 +--- a/include/video.h ++++ b/include/video.h +@@ -355,43 +355,6 @@ void video_set_default_colors(struct udevice *dev, bool invert); + */ + int video_default_font_height(struct udevice *dev); + +-#ifdef CONFIG_VIDEO_COPY +-/** +- * vidconsole_sync_copy() - Sync back to the copy framebuffer +- * +- * This ensures that the copy framebuffer has the same data as the framebuffer +- * for a particular region. It should be called after the framebuffer is updated +- * +- * @from and @to can be in either order. The region between them is synced. +- * +- * @dev: Vidconsole device being updated +- * @from: Start/end address within the framebuffer (->fb) +- * @to: Other address within the frame buffer +- * Return: 0 if OK, -EFAULT if the start address is before the start of the +- * frame buffer start +- */ +-int video_sync_copy(struct udevice *dev, void *from, void *to); +- +-/** +- * video_sync_copy_all() - Sync the entire framebuffer to the copy +- * +- * @dev: Vidconsole device being updated +- * Return: 0 (always) +- */ +-int video_sync_copy_all(struct udevice *dev); +-#else +-static inline int video_sync_copy(struct udevice *dev, void *from, void *to) +-{ +- return 0; +-} +- +-static inline int video_sync_copy_all(struct udevice *dev) +-{ +- return 0; +-} +- +-#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 17a9aa3f9295..b228c725fd80 100644 +--- a/include/video_console.h ++++ b/include/video_console.h +@@ -538,56 +538,4 @@ void vidconsole_list_fonts(struct udevice *dev); + */ + int vidconsole_get_font_size(struct udevice *dev, const char **name, uint *sizep); + +-#ifdef CONFIG_VIDEO_COPY +-/** +- * vidconsole_sync_copy() - Sync back to the copy framebuffer +- * +- * This ensures that the copy framebuffer has the same data as the framebuffer +- * for a particular region. It should be called after the framebuffer is updated +- * +- * @from and @to can be in either order. The region between them is synced. +- * +- * @dev: Vidconsole device being updated +- * @from: Start/end address within the framebuffer (->fb) +- * @to: Other address within the frame buffer +- * Return: 0 if OK, -EFAULT if the start address is before the start of the +- * frame buffer start +- */ +-int vidconsole_sync_copy(struct udevice *dev, void *from, void *to); +- +-/** +- * vidconsole_memmove() - Perform a memmove() within the frame buffer +- * +- * This handles a memmove(), e.g. for scrolling. It also updates the copy +- * framebuffer. +- * +- * @dev: Vidconsole device being updated +- * @dst: Destination address within the framebuffer (->fb) +- * @src: Source address within the framebuffer (->fb) +- * @size: Number of bytes to transfer +- * Return: 0 if OK, -EFAULT if the start address is before the start of the +- * frame buffer start +- */ +-int vidconsole_memmove(struct udevice *dev, void *dst, const void *src, +- int size); +-#else +- +-#include <string.h> +- +-static inline int vidconsole_sync_copy(struct udevice *dev, void *from, +- void *to) +-{ +- return 0; +-} +- +-static inline int vidconsole_memmove(struct udevice *dev, void *dst, +- const void *src, int size) +-{ +- memmove(dst, src, size); +- +- return 0; +-} +- +-#endif +- + #endif +diff --git a/test/dm/video.c b/test/dm/video.c +index e76fa986d359..021f4b3fa733 100644 +--- a/test/dm/video.c ++++ b/test/dm/video.c +@@ -105,6 +105,7 @@ static int check_copy_frame_buffer(struct unit_test_state *uts, + if (!IS_ENABLED(CONFIG_VIDEO_COPY)) + return 0; + ++ video_sync(dev, false); + ut_assertf(!memcmp(priv->fb, priv->copy_fb, priv->fb_size), + "Copy framebuffer does not match fb"); + +@@ -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)); +- ut_asserteq(5278, compress_frame_buffer(uts, dev, true)); ++ ut_asserteq(4127, compress_frame_buffer(uts, dev, true)); + + return 0; + } +-- +2.49.0 + + +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 + +The dcache flushing code path was conditional on ARM && !DCACHE config +options. However, dcaches exist on other platforms as well and may need +clearing if their driver requires it. + +Simplify the compile logic and always enable the dcache flush logic in +the video core. That way, drivers can always rely on it to call the arch +specific callbacks. + +This will increase code size for non-ARM platforms with CONFIG_VIDEO=y +slightly. + +Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de> +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 | 12 +++++------- + 1 file changed, 5 insertions(+), 7 deletions(-) + +diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c +index eeee5d960838..6c5a86d85dbc 100644 +--- a/drivers/video/video-uclass.c ++++ b/drivers/video/video-uclass.c +@@ -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; ++ + if (!priv->flush_dcache) + return; + +@@ -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 +- * architectures do not actually implement it. Is there a way to find +- * out whether it exists? For now, ARM is safe. +- */ +-#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF) + 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) + sandbox_sdl_sync(priv->fb); + #endif + priv->last_sync = get_timer(0); +-- +2.49.0 + + +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 + +Some drivers call video_set_flush_dcache() to indicate that they want to +have the dcache flushed for the frame buffer. These drivers benefit from +our new video damage control, because we can reduce the amount of memory +that gets flushed significantly. + +This patch enables video damage control for all device drivers that call +video_set_flush_dcache() to make sure they benefit from it. + +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 + + drivers/video/Kconfig | 8 ++++++++ + drivers/video/exynos/Kconfig | 1 + + drivers/video/imx/Kconfig | 1 + + drivers/video/meson/Kconfig | 1 + + drivers/video/rockchip/Kconfig | 1 + + drivers/video/stm32/Kconfig | 1 + + drivers/video/tegra20/Kconfig | 1 + + drivers/video/tidss/Kconfig | 1 + + 9 files changed, 16 insertions(+) + +diff --git a/arch/arm/mach-sunxi/Kconfig b/arch/arm/mach-sunxi/Kconfig +index ba1b15414379..bb1ea961704e 100644 +--- a/arch/arm/mach-sunxi/Kconfig ++++ b/arch/arm/mach-sunxi/Kconfig +@@ -882,6 +882,7 @@ config VIDEO_SUNXI + depends on !SUNXI_GEN_NCAT2 + select VIDEO + select DISPLAY ++ imply VIDEO_DAMAGE + imply VIDEO_DT_SIMPLEFB + default y + ---help--- +diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig +index 964174b01acc..6e1577ae6871 100644 +--- a/drivers/video/Kconfig ++++ b/drivers/video/Kconfig +@@ -534,6 +534,7 @@ config VIDEO_LCD_ANX9804 + + config ATMEL_LCD + bool "Atmel LCD panel support" ++ imply VIDEO_DAMAGE + depends on ARCH_AT91 + + config ATMEL_LCD_BGR555 +@@ -543,6 +544,7 @@ config ATMEL_LCD_BGR555 + + config VIDEO_BCM2835 + bool "Display support for BCM2835" ++ imply VIDEO_DAMAGE + help + The graphics processor already sets up the display so this driver + simply checks the resolution and then sets up the frame buffer with +@@ -715,6 +717,7 @@ source "drivers/video/meson/Kconfig" + + config VIDEO_MVEBU + bool "Armada XP LCD controller" ++ imply VIDEO_DAMAGE + ---help--- + Support for the LCD controller integrated in the Marvell + Armada XP SoC. +@@ -749,6 +752,7 @@ config NXP_TDA19988 + + config ATMEL_HLCD + bool "Enable ATMEL video support using HLCDC" ++ imply VIDEO_DAMAGE + help + HLCDC supports video output to an attached LCD panel. + +@@ -825,6 +829,7 @@ source "drivers/video/tidss/Kconfig" + + config VIDEO_TEGRA124 + bool "Enable video support on Tegra124" ++ imply VIDEO_DAMAGE + help + Tegra124 supports many video output options including eDP and + HDMI. At present only eDP is supported by U-Boot. This option +@@ -839,6 +844,7 @@ source "drivers/video/imx/Kconfig" + + config VIDEO_MXS + bool "Enable video support on i.MX28/i.MX6UL/i.MX7 SoCs" ++ imply VIDEO_DAMAGE + help + Enable framebuffer driver for i.MX28/i.MX6UL/i.MX7 processors + +@@ -901,6 +907,7 @@ config VIDEO_DW_MIPI_DSI + + config VIDEO_SIMPLE + bool "Simple display driver for preconfigured display" ++ imply VIDEO_DAMAGE + help + Enables a simple generic display driver which utilizes the + simple-framebuffer devicetree bindings. +@@ -919,6 +926,7 @@ config VIDEO_DT_SIMPLEFB + + config VIDEO_MCDE_SIMPLE + bool "Simple driver for ST-Ericsson MCDE with preconfigured display" ++ imply VIDEO_DAMAGE + help + Enables a simple display driver for ST-Ericsson MCDE + (Multichannel Display Engine), which reads the configuration from +diff --git a/drivers/video/exynos/Kconfig b/drivers/video/exynos/Kconfig +index 599d19d5ecc2..a2cf752aac03 100644 +--- a/drivers/video/exynos/Kconfig ++++ b/drivers/video/exynos/Kconfig +@@ -12,6 +12,7 @@ config EXYNOS_DP + + config EXYNOS_FB + bool "Exynos FIMD support" ++ imply VIDEO_DAMAGE + + config EXYNOS_MIPI_DSIM + bool "Exynos MIPI DSI support" +diff --git a/drivers/video/imx/Kconfig b/drivers/video/imx/Kconfig +index 34e8b640595b..5db3e5c0499e 100644 +--- a/drivers/video/imx/Kconfig ++++ b/drivers/video/imx/Kconfig +@@ -2,6 +2,7 @@ + config VIDEO_IPUV3 + bool "i.MX IPUv3 Core video support" + depends on VIDEO && (MX5 || MX6) ++ imply VIDEO_DAMAGE + help + This enables framebuffer driver for i.MX processors working + on the IPUv3(Image Processing Unit) internal graphic processor. +diff --git a/drivers/video/meson/Kconfig b/drivers/video/meson/Kconfig +index 3c2d72d019b8..fcf486ca0a3a 100644 +--- a/drivers/video/meson/Kconfig ++++ b/drivers/video/meson/Kconfig +@@ -8,5 +8,6 @@ config VIDEO_MESON + bool "Enable Amlogic Meson video support" + depends on VIDEO + select DISPLAY ++ imply VIDEO_DAMAGE + help + Enable Amlogic Meson Video Processing Unit video support. +diff --git a/drivers/video/rockchip/Kconfig b/drivers/video/rockchip/Kconfig +index 01804dcb1cc8..0f4550a29e38 100644 +--- a/drivers/video/rockchip/Kconfig ++++ b/drivers/video/rockchip/Kconfig +@@ -11,6 +11,7 @@ + menuconfig VIDEO_ROCKCHIP + bool "Enable Rockchip Video Support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + Rockchip SoCs provide video output capabilities for High-Definition + Multimedia Interface (HDMI), Low-voltage Differential Signalling +diff --git a/drivers/video/stm32/Kconfig b/drivers/video/stm32/Kconfig +index 48066063e4c5..c354c402c288 100644 +--- a/drivers/video/stm32/Kconfig ++++ b/drivers/video/stm32/Kconfig +@@ -8,6 +8,7 @@ + menuconfig VIDEO_STM32 + bool "Enable STM32 video support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + STM32 supports many video output options including RGB and + DSI. This option enables these supports which can be used on +diff --git a/drivers/video/tegra20/Kconfig b/drivers/video/tegra20/Kconfig +index f5c4843e1191..2232b0b3ff53 100644 +--- a/drivers/video/tegra20/Kconfig ++++ b/drivers/video/tegra20/Kconfig +@@ -1,6 +1,7 @@ + config VIDEO_TEGRA20 + bool "Enable Display Controller support on Tegra20 and Tegra 30" + depends on OF_CONTROL ++ imply VIDEO_DAMAGE + help + T20/T30 support video output to an attached LCD panel as well as + other options such as HDMI. Only the LCD is supported in U-Boot. +diff --git a/drivers/video/tidss/Kconfig b/drivers/video/tidss/Kconfig +index 95086f3a5d66..3291b3ceb8d5 100644 +--- a/drivers/video/tidss/Kconfig ++++ b/drivers/video/tidss/Kconfig +@@ -11,6 +11,7 @@ + menuconfig VIDEO_TIDSS + bool "Enable TIDSS video support" + depends on VIDEO ++ imply VIDEO_DAMAGE + help + TIDSS supports video output options LVDS and + DPI . This option enables these supports which can be used on +-- +2.49.0 + diff --git a/config/module/u-boot/default/patches/0004-HACK-Makefile-Ignore-missing-input-files-for-binman.patch b/config/module/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/module/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/module/u-boot/default/patches/0005-HACK-rk3399-gru-Remove-assigned-clock-dt-properties-.patch b/config/module/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/module/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/module/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/module/u-boot/default/patches/0006-Support-auto-boot-timeout-delay-bootflow-menu.patch new file mode 100644 index 00000000..ffc7b581 --- /dev/null +++ b/config/module/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/module/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/module/u-boot/default/patches/0007-Libreboot-branding-version-on-the-bootflow-menu.patch new file mode 100644 index 00000000..ec033187 --- /dev/null +++ b/config/module/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 26.01 Magnanimous Max (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 +zcmeI4X;4&Wy2qdHrW-_vf~Q+fvxtHMDuIZCglHm=fVhAxir~hgf>ENNF(W3?XpH+1 +zw}==uio$3#35sl^*F+S*+^So3t7fU1n$PoLKHXb0U#6y<|MQ++Xy|4+$n8^eeap7r +zKIil~zy3eV`@HYzCVj>4wvlMbK18wTU9&xO<R`XMCDHE#l?Umt2@lCAljLtD*%VHp +z6Rczowo=GcnJlK66y`gf!Y4%Gm<1$-#E>MXP)LkS)`eD*V$#TxIG3XQWs30+r8r5Z +zg_C89GDgvK|5-F+Vl2(^jiNcmI9lKvNArz|lx9q(#l}>MiIQplOqmi=acxsJNpBR8 +z<X4UUXCy_xPtyE6k`k*(TD*tCvSf-V1Ybb{P1_z#p*8PP#ICs%z9)&o_b#NcU!~F9 +zY?-2qWtzJ|rngqhl(bH!v=W)7m&+7cHI3pn;dxsmNlS~#ytb62oLv;MC6~fJ&7jcF +zb4V)NMw$5BIp$DW6Jn*M0dbUWe1}#CCQwPxOv;}l)3&fs+A?J})deThhx26Gjn9x{ +z%%EIjHsu?0XuYw3Hk(${W@8Ce8`o2P;Bu;)P>4qXWv!7Z1ANPhWGVq`L7_~g`7&)^ +zDN{wBOjUT)Etjc22YMKf<8gtc2t16fc>GAx#5R(GZ{zWRBx^fKZ{nDQ8zjx>AZczF +z^y(%l?YAW5og*pZ5k4pSB|nf<hvO<9lC<+4Nh_a_RDeh6FWB~!qz`+s{~1a3y%c(I +z8HFA$AnTE0vL0PW))N&ZpRT5<M?N9BVF!hrsiTnd`zYk%XEgQdX$omPL?M@tllkI# +zlFocjQ@=Y)mgXih-@HMV)@HKYxkFNG2bu5vMCKnKlDVyiq(ivg2|Ui?noW4zK>rS& +zANJDm@Y!_2vWQMw7traDG&&!;fEwgfYK(Y`j>TH(TwEwM&9Ty%`7)i0ilT2L<Ebe! +zk(v`^x(8c)zgVUR2@%x(Ryf^XBvVgPDD|YtbZgcux*k27ZpK8@owz9aDL#@8Oj=5Z +zgEHx;^d5Z$-#P?)ocuthqj)}>DN|FrOgEOu)cT%GPm-<FyHHkQ=il^y%j@=9f!7NB +zJ1AhbSWH^|9KK5W)N7N_Y_{R?lNKd3>uE-1<%~!Z`1E><#SB|(se#Y5b!$~s)#m9e +zp|95XEEb{(%vV*ll?nA4)6ZhjGoV7anXRlP>oSW8fTl{DgpufLPC-sF6Dq3&A^^2# +zV)!5vIsmn1VvEI>U}c)H8BsC;3Th6}3_>)M4bWF}fE*}5<W#d2QLIHik!mVARm0ZW +z1cZe-Q)9J4vw$-gFbeA@np6<63lFTWo`EGE&E;uUjIb_KUH##Qk($iYB1E<VZ~Jzn +zK`mMsxn+7a@II<B=`;zbC*3ySeYA6nMuV7W2IK9lMLFoFK@(#TVZ2?nwf+tZYpJTn +zit-kLx4VWdY@6R{DBB=HcJA6$yL<P(Spe+UG*Z@JkP~=&_SH`W-Nc!*VrE7A3r=ki +z64lh!*6ypXuisx+_vvR!`(zQrYN9kGng!$TtKYx>)6eX9-1&GW6M8+Qk)kK=177|9 +zPaSkN5kHQ86@X@51sKEVjww6%px!_{P%c7kIJW8<pU}W|7=tep?Qy3bi+G?8^6JO1 +z+Qn%0rdC9v9d3-vc%OfM;8z^V>Yb1%AU1a1eB97LQ>h^W#I11!-+_i`NT?bRg=Nx$ +z1<56AOCy+2)p-yg2;IRA>K(Xr;8IhX+7mMkk#YWll9JN(8`iOgY5*~&MaO(Rh>!6O +zT)NcMba@d@Y*HB}2r$E2Yk{|^tZXUf5o*SETplet<`Wl2A>XB@%a<=-**k^_3IHj* +zbp57H8_O$JAe7Yr@;SIotaB3D@WA)&x8LrC52~)daAIA=hO&+2Pkvc}z8Vu-EPjH~ +z6m8FfcDyFwUAc0l!H0A@b!Qf{2r@*hsCe?US3Mvu&c#)<qM+h@@I6-V%GIll7v8{K +ze3c18AtXcair!}{RV&EqK*U81XjhN%px)JMXp8Y}1oc+t_Y&QC_J9>sKia_u2jGG4 +zs^Gi!4JR5jb!Im6hfjb0{6&uHQ{ciVrxC@D%);_rwc$a+3rjEw;HE0snDsi{oxT?g +zsMb-;$ftFm3+pz)`PldD>amH@ex0V&u7c8R^5=ULoHE3JLn~`G8)(W4v~=Xep%3-6 +zmv7+A0^TK&mu>1P)>ZKM|Ar-#kZxR>-eMR&uL%p^247z=>C|Q`qBr{E^|!8_u<`u4 +zGhZ#9G|30HR?Mxi4lf}-y%6yJWVK!lC)P2al34~CR}eDZ$x|neeR=rc+}X2Z0|NsB +zj1Dn}yd%X1rdGD_4|szo8xFIb=wm0|0Ow=A#*639d@b<4IGC6aKW9$L!W6XF0Fi!h +zT~|Z9zJhxPG2aWML6tFr3@FsQ>_~ieyDI8kJTLH$9#-%K90Q`+8SS?$IL!^<gN0iK +zAYw#a7K8(GQQ#(Y1s~KqbNa-wBM!WI3Y+c!d4Y<I;@Wz>-p?H5YA>S6%-62k1>y5U +zI^UTyr%oL^^5qu?-%W^*U)Wzh8)9sL!yE1K<L8tL0<IK%zftRgM0=Y&st4nqgnC~d +zV!SzS=u%SVB_&N$L^K!-gnvr2%LoDc`r6y?_hhQHu#RSO;&T%k*Di|CJ${t&65Xqp +zlA4r+dU={Lcp6uHPkvspA~RT-!r3Ag0=BoexAk<WOftwY4Ic2m;miWO!v_y0zUf}R +z)YJvQTf1R{C`h0D^7GT)XU`w3%$%$+nk^CpY`fpq)7|-<8Vh48O*E6$8#ruSYgF(! +z@rlgh5*W4@HoW!VgL;q;c+Z|cgvZ?mqP^v`we@s$bs>f&yV*zjY{o5i(q9-%=fD%8 +z3-vtVVY0?}WiYNyy$8&P_Crpv%^TagJ32b=-NdVra@mh#Jo0zreD=KT%q(sIAs^2r +zF&o-cUjD?Uo*j=7e_WXk84cZnuO)l*d=`X9gIhd=u08Q3#=q@0bm4of9#7Wnc+Vd^ +zU@k}N>$`tD=QrIQot^jYwcJt>B1kW8@DRF;cl^lVLkANR<LA8XM!XcEUWu4XmUHO- +z%)ZxOJy7=D=h$HDwzS;3o;7*_iPEmPjA+UWMLm&OkeA&%Us6)Cn2B#H+lbKkg(LU5 +zhz+NDNGxr_`R=ydym_m6`RMs{q`NSPkDU)S%TXRS65m8k;HIUfCM74cdLndz_mm^o +z#k$DL?QPxN-JP9`*L?l@>e2I=NS8K{&z4!B-WTsCycz$tJL|G>1>Pnlbe{_OY>{gd +z5PXVp@3yquymkHYV-@!0Y0O?%K&9e4&ZC;h%WlMj?<wjbHh9>8dTd>AwHgfRD{o`k +zfuf+DeXqN#^X@%?mo-&QhDMF1a{*M;J9YGkZP;+9UYrQsQVw0t%bfV&d(4MnmfPf@ +zDH$1=nVH!c*%=wx+1bmo-WU1Wp4Ue6jHQAlP6Zngx+jrYjvi7fK6iL2DXB2-+EUKT +z8!I^R!S|HVXtfsz3a9J;s^)>bC`Pltu@N$!Bk_5zS>Sx7N@h_;H5QNMd(j6zlvjE; +zn4=!t93sQSx+RTFXvgDvnJYfGp_`I~yllf0&ezM<WjZvjqwMvcSSeOJb#u_6!%H!y +zB}g<E&Y%7I^r>UE#OEQiFrLWE8*Q=i?AcF_ynK7~Iix>{hdve(bmafeug{<R`XuAA +zdY*~`;Mp>Zg2(DTcql@a1q>P&KzJcfZYRC-)v04&a%N#Xccbn+N8-a0pFOiU)Kd)X +zL4+}GwyhHQOj^9yvwHA7c0Q3=5W2`L9J;KVy}`ihBVm}205dDiCm?Wkoa<aor0G;q +z6d*RZUd9S3Mm2<n3*QTay7i=C&>XwDB2=1A=i_4x2nY-ejE#+pQ}~4Mab`hmC>7rT +zx)*&@RL+DP1jBU9CKUZnN(U{Y&T}R{sHY4Y0|(uedX;nWVYmkE_T#iOpc%raIn;x7 +z*|@IOZEtTKXZ;3oDjS@NhOdL~iO@wo+COv=BJJ%x<C6hBP`PZzlA1ypfzbUAQSrIr +ziJ5rUI3++Alp$WQ#eJ44c+Xu6Qt<Wkc$;sssFZ@A-hu16;Jpxd%=aqB+#wViZkHLW +z0u%(k0ioO1!v$%FcjBWTwAsw}pA4;o)x&h7!~1-EYaHt$KD_$vXu`O_>+JM$eAtCV +z75}4yj(zWb4^MUPVj;+Wh*zJXV34D#!Xlr*>*~@BA6K=RHUXg?7OA>By6)a>Q85c2 +zC!G-_HWy?*VO-3_mubYl_|R}cAz+`PUPmY7(-I#5#qu{>mqS;~#NXGBeu{vKaXGW_ +zD$sQ;@d5C*g4e}se9ZS)OMJ*NnGc2YA+a!C^JC^4!&jtUaVR4PiZwLk<-2!bTr~W$ +z`W0Vf45#xYLr;&g1bOe~P0&4Bjb*AaobXk@6?Xu!1c}g9mLS20;^tLfWDMsc$`NaP +zSc1F(^&YL(9N!e79^_N-inXPmo(!D$T6lf=(WBq4UR^Bd$8P~ag`tVQ=TQynJ!b0` +z7l&xd|B#`VDY3zHz+0m&K4j>0+<R$;dTiV^Yl_0Ore6@_iO_|5MMb&V;`1YYGph&r +zii?Yjii!#`xl{RV4HfP`{9E9F%}(_I7|Jtvm236GUvAV#5WVk$2L-K6IO-FP(;JAU +zDzU-NXKVR9gCD2sjrO#dCfP&Rj%Sl_v}YQh<FRhNoHI*Np%V|i57@?<h!i-WNPI4M +z4nXfCf<Pp`0enSyxnWie#%R9wJ4)kY!C}sdA!OA+HplD2JdAf<{@FWGh=a#Xrx3yH +z%@sieuqodSmva+VG`(YDWjT5%J`vRUIL-@0p8fvAWNV&NE4RG@Zxq#xCubEnM-8`V +zVq-4uoDCCY<FFfEm9+*HpPSY{R~Lq{8+ggSlSA|SvkXSf<^1BUC3A6Uy<`n@8^49C +ztXwCcjf3$<bV`Z8Kf_HwSh&J4lX6RWEWcPA5yg-PnUr7Yh7JT2PN$VR6$*af0+`Fv +zsr*^MkaDQp37Qax4;FqPZp5oR)%d&(fD+2mRjcxB0V`=|5m0<$xLQ$>eZ2Epz<L&+ +zix^COx!J#w@A+Ua>>;uiVczD2E064wL}5kVr~*bt$M<UTi@Y+*js#Ewo}O1WMslzh +zj^STgg%;&$mk;t4iYc!b#2LXQ5f~VNxs2DQg@t_it2n`E5|HJCdVZ@oLyti3|Kmdd +zRj7<@A({l_u}!Q>!p<n?y)e}n+8{)^g@_G{vf83O3uElCuZqLeTGY=`8sJNV+F5$G +zSsj01P}8M>9(-6#7}`g@xK~dmP3s5kinMjte1NeKzgjMxQT*j1Jr97^&`ZoMwOraO +zi!hoS)%qDwvxQ$j#@F4~3cOa}|AzvoVXtkk*iq;69{!wJ&F<R#tn|p@wIz|hf1v>K +zp*LtDMV3|6?Oc+Vhpz*BYJdNo@)t|~JD$(w=_n7|11mSzRp4i9k=XxU#m?H@=x;(l +zdGGF>+`ovvR8dt{iT?NK&#eU@`hVc<<x2mr+}|qtoMB0-EzHlrXTxAckz4!q%lq{! +zs%m%OnE5y+x^hPi&aW?4`jy<@&;1?S_kc|_{@Gf<=9;1cJV)aZMp?9!R!|;AQaSCR +zYT8b_DIU)?*iuLN*q`p<{XD%6!#nrjo!jw_3cMqeKB65|Cf-kM0~~|q)V6L*(mb(A +z7m$v>Z}#VxFaLKY7E{j>{j=fa%YS_L^5s9TW3Bv8L{Dm*@Bio;(ZauBdxLXZ^i})< +z?=aEBUgx&*Z-_d+!UXY;JIiXz#C7<$o%$_Xi2kRAC~z(Q%FKV^NB*UXZrI2B>BjFd +h=Y>|w|C6Zk68;X)R-AjChtJK+<qqA3JjSNqzW{|XuQ>n! + +literal 6932 +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 + +-- +2.39.5 + diff --git a/config/module/u-boot/default/patches/0008-u-boot-fix-build-error-on-newer-hostcc.patch b/config/module/u-boot/default/patches/0008-u-boot-fix-build-error-on-newer-hostcc.patch new file mode 100644 index 00000000..8ddf398c --- /dev/null +++ b/config/module/u-boot/default/patches/0008-u-boot-fix-build-error-on-newer-hostcc.patch @@ -0,0 +1,50 @@ +From d28edbe090d1d239530618a9142c5fee2705855f Mon Sep 17 00:00:00 2001 +From: Leah Rowe <leah@libreboot.org> +Date: Wed, 1 Apr 2026 07:39:07 +0100 +Subject: [PATCH 1/1] u-boot: fix build error on newer hostcc + +because... they changed a flag. + +because they're gnu. this fixes building +u-boot x86 on arch linux. + +Signed-off-by: Leah Rowe <leah@libreboot.org> +--- + arch/sandbox/config.mk | 4 ++-- + arch/x86/config.mk | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk +index dd9b7473fa9..d64dde93575 100644 +--- a/arch/sandbox/config.mk ++++ b/arch/sandbox/config.mk +@@ -50,10 +50,10 @@ cmd_u-boot-spl = (cd $(obj) && \ + + ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64)) + EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds + OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \ +diff --git a/arch/x86/config.mk b/arch/x86/config.mk +index 6d4839dfb38..878fd126243 100644 +--- a/arch/x86/config.mk ++++ b/arch/x86/config.mk +@@ -127,7 +127,7 @@ endif + endif + + ifdef CONFIG_X86_64 +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + endif +-- +2.47.3 + diff --git a/config/module/u-boot/default/target.cfg b/config/module/u-boot/default/target.cfg new file mode 100644 index 00000000..3fcb54b7 --- /dev/null +++ b/config/module/u-boot/default/target.cfg @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +rev="34820924edbc4ec7803eb89d9852f4b870fa760a" # v2025.04 + +tree="default" + +xgcctree="default" +fetch_depend="coreboot/default" diff --git a/config/module/u-boot/gru_bob/config/default b/config/module/u-boot/gru_bob/config/default new file mode 100644 index 00000000..f6894b52 --- /dev/null +++ b/config/module/u-boot/gru_bob/config/default @@ -0,0 +1,2593 @@ +# +# Automatically generated file; DO NOT EDIT. +# U-Boot 2025.04 Configuration +# + +# +# 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 +CONFIG_ARM=y +# 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 is not set +# CONFIG_XTENSA is not set +CONFIG_SYS_ARCH="arm" +CONFIG_SYS_CPU="armv8" +CONFIG_SYS_SOC="rk3399" +CONFIG_SYS_VENDOR="google" +CONFIG_SYS_BOARD="gru" +CONFIG_SYS_CONFIG_NAME="gru" + +# +# Skipping low level initialization functions +# +CONFIG_SKIP_LOWLEVEL_INIT=y +# CONFIG_SPL_SKIP_LOWLEVEL_INIT is not set +# 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 +# CONFIG_SPL_SYS_DCACHE_OFF is not set + +# +# ARM architecture +# +CONFIG_ARM64=y +CONFIG_ARM64_CRC32=y +CONFIG_COUNTER_FREQUENCY=24000000 +CONFIG_POSITION_INDEPENDENT=y +# 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 +# CONFIG_SYS_ARM_CACHE_CP15 is not set +# CONFIG_SYS_ARM_MMU is not set +# CONFIG_SYS_ARM_MPU is not set +CONFIG_SYS_ARM_ARCH=8 +CONFIG_SYS_ARM_CACHE_WRITEBACK=y +# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set +# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set +# CONFIG_ARCH_CPU_INIT is not set +CONFIG_SYS_ARCH_TIMER=y +CONFIG_ARM_SMCCC=y +# CONFIG_SYS_L2_PL310 is not set +# CONFIG_SPL_SYS_L2_PL310 is not set +# CONFIG_SYS_L2CACHE_OFF is not set +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 +# CONFIG_ARCH_HISTB is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ORION5X 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_BCMNS3 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IPQ40XX is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_K3 is not set +# 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 +# CONFIG_ARCH_IMX8ULP is not set +# CONFIG_ARCH_IMX9 is not set +# CONFIG_ARCH_IMXRT is not set +# CONFIG_ARCH_MX23 is not set +# CONFIG_ARCH_MX28 is not set +# CONFIG_ARCH_MX31 is not set +# CONFIG_ARCH_MX7ULP is not set +# CONFIG_ARCH_MX7 is not set +# CONFIG_ARCH_MX6 is not set +# CONFIG_ARCH_MX5 is not set +# CONFIG_ARCH_NEXELL is not set +# CONFIG_ARCH_NPCM is not set +# CONFIG_ARCH_APPLE is not set +# CONFIG_ARCH_OWL is not set +# CONFIG_ARCH_QEMU 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 +# CONFIG_ARCH_ZYNQMP_R5 is not set +# CONFIG_ARCH_ZYNQMP is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_VEXPRESS64 is not set +# CONFIG_TARGET_CORSTONE1000 is not set +# CONFIG_TARGET_TOTAL_COMPUTE is not set +# CONFIG_TARGET_LS2080A_EMU is not set +# CONFIG_TARGET_LS1088AQDS is not set +# CONFIG_TARGET_LS2080AQDS is not set +# CONFIG_TARGET_LS2080ARDB is not set +# CONFIG_TARGET_LS2081ARDB is not set +# CONFIG_TARGET_LX2160ARDB is not set +# CONFIG_TARGET_LX2160AQDS is not set +# CONFIG_TARGET_LX2162AQDS is not set +# CONFIG_TARGET_HIKEY is not set +# CONFIG_TARGET_HIKEY960 is not set +# CONFIG_TARGET_POPLAR is not set +# CONFIG_TARGET_LS1012AQDS is not set +# CONFIG_TARGET_LS1012ARDB is not set +# CONFIG_TARGET_LS1012A2G5RDB is not set +# CONFIG_TARGET_LS1012AFRWY is not set +# CONFIG_TARGET_LS1012AFRDM is not set +# CONFIG_TARGET_LS1028AQDS is not set +# CONFIG_TARGET_LS1028ARDB is not set +# CONFIG_TARGET_LS1088ARDB is not set +# CONFIG_TARGET_LS1021AQDS is not set +# CONFIG_TARGET_LS1021ATWR is not set +# CONFIG_TARGET_PG_WCOM_SELI8 is not set +# CONFIG_TARGET_PG_WCOM_EXPU1 is not set +# CONFIG_TARGET_LS1021ATSN is not set +# CONFIG_TARGET_LS1021AIOT is not set +# CONFIG_TARGET_LS1043AQDS is not set +# CONFIG_TARGET_LS1043ARDB is not set +# 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 +# CONFIG_ARCH_SYNQUACER is not set +# CONFIG_ARCH_STM32 is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_STM32MP is not set +CONFIG_ARCH_ROCKCHIP=y +# CONFIG_ARCH_OCTEONTX is not set +# CONFIG_ARCH_OCTEONTX2 is not set +# CONFIG_TARGET_THUNDERX_88XX is not set +# 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_TEXT_BASE=0x18000000 +CONFIG_SYS_MALLOC_LEN=0x2000000 +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=0x1f000 +CONFIG_DM_GPIO=y +CONFIG_SPL_DM_SPI=y +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 +# CONFIG_ROCKCHIP_PX30 is not set +# CONFIG_ROCKCHIP_RK3036 is not set +# CONFIG_ROCKCHIP_RK3066 is not set +# CONFIG_ROCKCHIP_RK3128 is not set +# CONFIG_ROCKCHIP_RK3188 is not set +# CONFIG_ROCKCHIP_RK322X is not set +# CONFIG_ROCKCHIP_RK3288 is not set +# CONFIG_ROCKCHIP_RK3308 is not set +# CONFIG_ROCKCHIP_RK3328 is not set +# CONFIG_ROCKCHIP_RK3368 is not set +CONFIG_ROCKCHIP_RK3399=y +# CONFIG_ROCKCHIP_RK3568 is not set +# CONFIG_ROCKCHIP_RK3588 is not set +# CONFIG_ROCKCHIP_RV1108 is not set +# 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=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_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 +# CONFIG_TARGET_PINEBOOK_PRO_RK3399 is not set +# 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_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_DEBUG_UART_BASE=0xff1a0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_DEBUG_UART_BOARD_INIT=y +CONFIG_IDENT_STRING="" +CONFIG_SYS_CLK_FREQ=0 +# CONFIG_CHIP_DIP_SCAN is not set +# 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_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=y +# CONFIG_ARMV8_SWITCH_TO_EL1 is not set + +# +# ARMv8 secure monitor firmware +# +# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set +# CONFIG_SPL_ARMV8_SEC_FIRMWARE_SUPPORT is not set +# CONFIG_SPL_RECOVER_DATA_SECTION is not set +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_SYS_MEM_TOP_HIDE=0x0 + +# +# ARM debug +# +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 + +# +# Functionality shared between NXP SoCs +# +# CONFIG_NXP_ESBC is not set +CONFIG_SYS_LITTLE_ENDIAN=y + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=140200 +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_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 +# 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=y +CONFIG_FDT_64BIT=y +CONFIG_HAS_ROM=y +CONFIG_SPL_IMAGE="spl/u-boot-spl.bin" +CONFIG_REMAKE_ELF=y +# CONFIG_HAS_BOARD_SIZE_LIMIT is not set +# CONFIG_SYS_CUSTOM_LDSCRIPT is not set +CONFIG_PLATFORM_ELFENTRY="_start" +CONFIG_STACK_SIZE=0x1000000 +# 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 + +# +# Boot options +# + +# +# 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_TIMESTAMP is not set +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=y +# CONFIG_TPL_FIT is not set +# CONFIG_SPL_FIT_PRINT 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_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_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 is not set +# 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_AUTOBOOT_MENU_SHOW 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 is not set +# 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="rockchip/rk3399-gru-bob.dtb" +# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set +# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set + +# +# Configuration editor +# +# CONFIG_CEDIT is not set + +# +# Console +# +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 +# CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set +# CONFIG_SYS_CONSOLE_INFO_QUIET is not set +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 is not set +# CONFIG_LOGF_FUNC is not set +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 + +# +# Init options +# +# CONFIG_BOARD_TYPES is not set +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO=y +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=y +# CONFIG_CLOCKS is not set +# CONFIG_HWCONFIG 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 +# CONFIG_RESET_PHY_R is not set + +# +# 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 + +# +# Update support +# +# CONFIG_UPDATE_TFTP is not set +# CONFIG_ANDROID_AB is not set + +# +# Blob list +# +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_SPL_BLOBLIST_FIXED=y +# CONFIG_SPL_BLOBLIST_ALLOC 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=0x40000 +CONFIG_SPL_PAD_TO=0x7f8000 +# CONFIG_SPL_NO_BSS_LIMIT is not set +CONFIG_SPL_BSS_LIMIT=y +# 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_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=y +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_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_SPL_FIT_IMAGE_TINY is not set +# CONFIG_SPL_CACHE is not set +# CONFIG_SPL_CPU 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 +# 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_RELOC_LOADER is not set +# CONFIG_SPL_UBI is not set +CONFIG_SPL_DM_SPI_FLASH=y +# 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_DEVICE 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=y +# CONFIG_SPL_SPI_FLASH_MTD is not set +CONFIG_SPL_SPI_LOAD=y +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 +CONFIG_SPL_ATF=y +# CONFIG_SPL_ATF_LOAD_IMAGE_V2 is not set +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +# CONFIG_SPL_OPTEE_IMAGE is not set +CONFIG_SPL_TARGET="" +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_IMAGE_SIGN_INFO=y +CONFIG_SPL_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_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 +# +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_CMD_BOOTSTD=y +CONFIG_BOOTM_EFI=y +CONFIG_BOOTM_ELF=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_BOOTI=y +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_UPL is not set +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=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_XIMG=y +CONFIG_SYS_XIMG_LEN=0x800000 +# CONFIG_CMD_SPL is not set + +# +# 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=y +# 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_BLOBLIST=y +CONFIG_CMD_CRC32=y +# CONFIG_CRC32_VERIFY is not set +# CONFIG_CMD_EEPROM is not set +CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=0 +# 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=y +CONFIG_CMD_UNLZ4=y +CONFIG_CMD_UNZIP=y +# CONFIG_CMD_ZIP is not set + +# +# Device access commands +# +# CONFIG_CMD_ADC 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 is not set +CONFIG_CMD_DM=y +# 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_CMD_GPT_RENAME is not set +# CONFIG_CMD_IDE is not set +# CONFIG_CMD_IO is not set +# CONFIG_CMD_IOTRACE is not set +CONFIG_CMD_I2C=y +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_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_MTD is not set +# CONFIG_CMD_ONENAND is not set +CONFIG_CMD_PART=y +# CONFIG_CMD_PCI is not set +CONFIG_CMD_PINMUX=y +CONFIG_CMD_POWEROFF=y +# CONFIG_CMD_READ is not set +# CONFIG_CMD_SATA is not set +# CONFIG_CMD_SDRAM is not set +CONFIG_CMD_SF=y +CONFIG_CMD_SF_TEST=y +CONFIG_CMD_SPI=y +CONFIG_DEFAULT_SPI_BUS=0 +CONFIG_DEFAULT_SPI_MODE=0x0 +CONFIG_CMD_USB=y +# 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 +CONFIG_CMD_NET=y +CONFIG_CMD_BOOTP=y +# CONFIG_BOOTP_MAY_FAIL is not set +CONFIG_BOOTP_BOOTPATH=y +# CONFIG_BOOTP_VENDOREX is not set +# CONFIG_BOOTP_BOOTFILESIZE is not set +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=0x16 +# CONFIG_BOOTP_PXE_DHCP_OPTION is not set +CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" +# 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_CDP is not set +# CONFIG_CMD_SNTP is not set +# CONFIG_CMD_LINK_LOCAL is not set +# CONFIG_CMD_ETHSW is not set +# 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 +# +# 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=y +CONFIG_CMD_EFICONFIG=y +# CONFIG_CMD_EXCEPTION is not set +# CONFIG_CMD_INI is not set +# CONFIG_CMD_DATE is not set +CONFIG_CMD_TIME=y +# CONFIG_CMD_GETTIME is not set +# CONFIG_CMD_PAUSE is not set +# CONFIG_CMD_RNG is not set +# CONFIG_CMD_KASLRSEED is not set +CONFIG_CMD_SLEEP=y +# CONFIG_CMD_TIMER is not set +# 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 is not set + +# +# TI specific command line interface +# + +# +# Power commands +# +CONFIG_CMD_PMIC=y +CONFIG_CMD_REGULATOR=y + +# +# Security commands +# +# CONFIG_CMD_AES is not set +# CONFIG_CMD_BLOB is not set +# CONFIG_CMD_HASH is not set +# CONFIG_CMD_HVC is not set +# CONFIG_CMD_SMC is not set + +# +# Firmware commands +# +CONFIG_CMD_CROS_EC=y + +# +# Filesystem commands +# +# CONFIG_CMD_BTRFS is not set +# CONFIG_CMD_EROFS is not set +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +# CONFIG_CMD_EXT4_WRITE is not set +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_CYCLIC=y +# CONFIG_CMD_DIAG is not set +# CONFIG_CMD_EVENT is not set +CONFIG_CMD_LOG=y +# CONFIG_CMD_UBI is not set + +# +# Partition Types +# +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 +# 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=y +CONFIG_PARTITION_UUIDS=y +CONFIG_SPL_PARTITION_UUIDS=y +CONFIG_PARTITION_TYPE_GUID=y +# CONFIG_SPL_PARTITION_TYPE_GUID is not set +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_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="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="rockchip/rk3399-gru-bob" +CONFIG_OF_TAG_MIGRATE=y +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 +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_ENV_IS_IN_SPI_FLASH 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 is not set +# 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_BOOTP_SEND_HOSTNAME 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_PORT is not set +CONFIG_TFTP_WINDOWSIZE=1 +# CONFIG_TFTP_TSIZE is not set +# 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 is not set +# 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 + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_DM=y +CONFIG_SPL_DM=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_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 +CONFIG_SARADC_ROCKCHIP=y +# CONFIG_ADC_IMX93 is not set +# CONFIG_SATA is not set +# CONFIG_SCSI_AHCI is not set + +# +# SATA/SCSI device support +# +# CONFIG_AXI is not set + +# +# Bus devices +# +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_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 + +# +# Button Support +# +# CONFIG_BUTTON is not set + +# +# Cache Controller drivers +# +# CONFIG_CACHE is not set +# CONFIG_L2X0_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 +# CONFIG_CLK_TI_GATE is not set +# CONFIG_CLK_K3 is not set +# CONFIG_SPL_CLK_K3 is not set +# CONFIG_CPU is not set + +# +# Hardware crypto devices +# +# CONFIG_DM_HASH is not set +# CONFIG_FSL_CAAM is not set +CONFIG_CAAM_64BIT=y +# CONFIG_SYS_FSL_SEC_BE is not set +# CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG 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=y +# CONFIG_SPL_FIRMWARE is not set +CONFIG_ARM_PSCI_FW=y +# CONFIG_ZYNQMP_FIRMWARE is not set +# CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set +# CONFIG_SCMI_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_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 +# 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_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 +# 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_MAX7320_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_NPCM_SGPIO is not set +# CONFIG_CMD_PCA953X is not set +# CONFIG_PCF8575_GPIO is not set +CONFIG_ROCKCHIP_GPIO=y +# 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_DM_PCA953X 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 +# CONFIG_ADP5585_GPIO is not set + +# +# Hardware Spinlock Support +# +# CONFIG_DM_HWSPINLOCK is not set +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 +# CONFIG_DM_I2C_GPIO is not set +# CONFIG_SYS_I2C_IPROC is not set +# CONFIG_SYS_I2C_FSL is not set +# CONFIG_SYS_I2C_CADENCE is not set +# CONFIG_SYS_I2C_DW is not set +# CONFIG_SYS_I2C_INTEL 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_NEXELL is not set +# CONFIG_SYS_I2C_NPCM is not set +# 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 +# CONFIG_SYS_I2C_IHS is not set +CONFIG_I2C_MUX=y +# CONFIG_SPL_I2C_MUX is not set +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_PCA954x is not set +# 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 +# CONFIG_I8042_KEYB is not set +# 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_BOOT is not set +# CONFIG_LED_ACTIVITY 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=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 +# CONFIG_ATSHA204A is not set +# 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 +# CONFIG_IRQ is not set +# CONFIG_NPCM_HOST is not set +# CONFIG_NUVOTON_NCT6102D is not set +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 +# CONFIG_I2C_EEPROM is not set +# CONFIG_SPL_I2C_EEPROM is not set +# CONFIG_GDSYS_RXAUI_CTRL is not set +# CONFIG_GDSYS_IOEP is not set +# CONFIG_MPC83XX_SERDES is not set +# CONFIG_FS_LOADER is not set +# CONFIG_SPL_FS_LOADER is not set +# CONFIG_GDSYS_SOC is not set +# CONFIG_IHS_FPGA is not set +# 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 +# +CONFIG_MMC=y +CONFIG_MMC_WRITE=y +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 +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=y +CONFIG_MMC_SUPPORTS_TUNING=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS400_ES_SUPPORT=y +CONFIG_MMC_HS400_SUPPORT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_VERBOSE=y +# CONFIG_MMC_TRACE is not set +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_CORTINA is not set +# CONFIG_MMC_DW_K3 is not set +CONFIG_MMC_DW_ROCKCHIP=y +# CONFIG_MMC_DW_SNPS is not set +# CONFIG_MMC_MXC is not set +# CONFIG_MMC_PCI is not set +# 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=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 +# CONFIG_MMC_SDHCI_MSM is not set +# 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 +# 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_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_DM_SPI_FLASH=y +CONFIG_SPI_FLASH=y +# 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 +# +# 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=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 +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_FMAN_ENET 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 is not set +# 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_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=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 + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# CONFIG_X86_PCH7 is not set +# CONFIG_X86_PCH9 is not set + +# +# PHY Subsystem +# +CONFIG_PHY=y +# CONFIG_SPL_PHY is not set +# CONFIG_NOP_PHY is not set +# CONFIG_MIPI_DPHY_HELPERS is not set +# CONFIG_BCM_SR_PCIE_PHY is not set +# CONFIG_OMAP_USB2_PHY is not set + +# +# 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 +# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set +# CONFIG_PHY_ROCKCHIP_USBDP is not set +CONFIG_PHY_ROCKCHIP_TYPEC=y +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_MSM8916_USB_PHY is not set +# CONFIG_MVEBU_COMPHY_SUPPORT is not set + +# +# Pin controllers +# +CONFIG_PINCTRL=y +CONFIG_PINCTRL_FULL=y +CONFIG_PINCTRL_GENERIC=y +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 +# 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_PINCTRL_STMFX is not set +# CONFIG_SPL_PINCTRL_STMFX is not set +# 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 +# +# CONFIG_POWER_DOMAIN is not set +CONFIG_DM_PMIC=y +CONFIG_SPL_DM_PMIC=y +CONFIG_PMIC_CHILDREN=y +CONFIG_SPL_PMIC_CHILDREN=y +# CONFIG_PMIC_AB8500 is not set +# CONFIG_PMIC_ACT8846 is not set +# CONFIG_PMIC_AXP is not set +# CONFIG_SPL_PMIC_AXP is not set +# CONFIG_DM_PMIC_DA9063 is not set +# CONFIG_SPL_DM_PMIC_DA9063 is not set +# CONFIG_PMIC_AS3722 is not set +# CONFIG_DM_PMIC_BD71837 is not set +# CONFIG_SPL_DM_PMIC_BD71837 is not set +# CONFIG_DM_PMIC_FAN53555 is not set +# CONFIG_DM_PMIC_MP5416 is not set +# CONFIG_SPL_DM_PMIC_MP5416 is not set +# CONFIG_DM_PMIC_PCA9450 is not set +# 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 +# CONFIG_PMIC_MAX8997 is not set +# CONFIG_PMIC_QCOM is not set +CONFIG_PMIC_RK8XX=y +# CONFIG_SPL_PMIC_RK8XX is not set +# CONFIG_PMIC_S2MPS11 is not set +# CONFIG_DM_PMIC_SANDBOX is not set +# CONFIG_PMIC_S5M8767 is not set +# CONFIG_PMIC_RN5T567 is not set +# CONFIG_SPL_PMIC_RN5T567 is not set +# CONFIG_PMIC_TPS65090 is not set +# CONFIG_PMIC_PALMAS is not set +# 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 +# CONFIG_SPL_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS65910 is not set +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=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 +# CONFIG_POWER_MT6323 is not set +CONFIG_DM_PWM=y +# CONFIG_PWM_ASPEED is not set +# CONFIG_PWM_CADENCE_TTC is not set +CONFIG_PWM_CROS_EC=y +# CONFIG_PWM_EXYNOS is not set +# CONFIG_PWM_IMX is not set +# CONFIG_PWM_MESON is not set +# CONFIG_PWM_MTK is not set +CONFIG_PWM_ROCKCHIP=y +# CONFIG_PWM_SANDBOX is not set +# CONFIG_PWM_SIFIVE is not set +# CONFIG_PWM_TEGRA is not set +# CONFIG_PWM_SUNXI is not set +# 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 +# CONFIG_IMXRT_SDRAM is not set +# CONFIG_CADENCE_DDR_CTRL is not set +CONFIG_RAM_ROCKCHIP=y +CONFIG_ROCKCHIP_SDRAM_COMMON=y +CONFIG_RAM_ROCKCHIP_DEBUG=y +# CONFIG_RAM_ROCKCHIP_DDR4 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR2 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR3 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR4 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_AST2500 is not set +# CONFIG_RESET_AST2600 is not set +CONFIG_RESET_ROCKCHIP=y +# CONFIG_RESET_HISILICON is not set +# CONFIG_RESET_SYSCON is not set +# 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 +# CONFIG_RTC_DS1374 is not set +# CONFIG_RTC_DS3231 is not set +# CONFIG_RTC_PCF8563 is not set +# CONFIG_RTC_PT7C4338 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_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 +# CONFIG_DEBUG_UART_NS16550_CHECK_ENABLED is not set +# CONFIG_ALTERA_JTAG_UART is not set +# CONFIG_ALTERA_UART is not set +# CONFIG_ARC_SERIAL is not set +# CONFIG_ARM_DCC is not set +# CONFIG_ATMEL_USART is not set +# CONFIG_BCM6345_SERIAL is not set +# CONFIG_COREBOOT_SERIAL is not set +# 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 is not set +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_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 + +# +# Sound support +# +# CONFIG_SOUND 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=y +CONFIG_DM_SPI=y +CONFIG_SPI_MEM=y +# CONFIG_SPI_DIRMAP is not set +# CONFIG_ALTERA_SPI is not set +# CONFIG_APPLE_SPI is not set +# CONFIG_ATCSPI200_SPI is not set +# CONFIG_CORTINA_SFLASH is not set +# CONFIG_CADENCE_QSPI is not set +# CONFIG_CV1800B_SPIF is not set +# CONFIG_DESIGNWARE_SPI is not set +# CONFIG_FSL_QSPI is not set +# CONFIG_GXP_SPI is not set +# CONFIG_IPROC_QSPI is not set +# CONFIG_MICROCHIP_COREQSPI 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_SPI_MXIC is not set +# CONFIG_NPCM_FIU_SPI is not set +# CONFIG_NPCM_PSPI is not set +# CONFIG_NXP_FSPI is not set +# CONFIG_OMAP3_SPI is not set +# CONFIG_PL022_SPI is not set +# CONFIG_ROCKCHIP_SFC is not set +CONFIG_ROCKCHIP_SPI=y +# CONFIG_SPI_ASPEED_SMC is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SOFT_SPI is not set +# CONFIG_SPI_SN_F_OSPI is not set +# CONFIG_SPI_SUNXI 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_SPI_STACKED_PARALLEL is not set + +# +# SPMI support +# +# CONFIG_SPMI is not set +# CONFIG_SYSINFO is not set + +# +# System reset device drivers +# +CONFIG_SYSRESET=y +CONFIG_SPL_SYSRESET=y +CONFIG_TPL_SYSRESET=y +CONFIG_SYSRESET_CMD_RESET=y +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 +# CONFIG_SYSRESET_SYSCON is not set +# CONFIG_SYSRESET_WATCHDOG is not set +# CONFIG_SYSRESET_RESETCTL is not set +# CONFIG_SYSRESET_MPC83XX is not set +# CONFIG_TEE is not set +# CONFIG_DM_THERMAL is not set + +# +# Timer Support +# +# CONFIG_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_GENERIC is not set +# 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 is not set +# CONFIG_USB_EHCI_ZYNQ is not set +CONFIG_USB_EHCI_GENERIC=y +# CONFIG_USB_EHCI_FSL is not set +CONFIG_USB_OHCI_NEW=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_GENERIC=y +# CONFIG_USB_OHCI_DA8XX is not set +# CONFIG_SYS_OHCI_SWAP_REG_ACCESS 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=y + +# +# Platform Glue Driver Support +# +# CONFIG_USB_DWC3_OMAP 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 +# +# CONFIG_USB_DWC3_PHY_OMAP is not set +# CONFIG_USB_DWC3_PHY_SAMSUNG 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 +# CONFIG_TYPEC_TCPM 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=y +# CONFIG_USB_ETHER_LAN75XX is not set +# CONFIG_USB_ETHER_LAN78XX is not set +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +# CONFIG_USB_GADGET is not set +# CONFIG_SPL_USB_GADGET is not set + +# +# UFS Host Controller Support +# +# 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=0x0 +# CONFIG_VIDEO_COPY is not set +CONFIG_VIDEO_DAMAGE=y +CONFIG_BACKLIGHT_PWM=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 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 + +# +# TrueType Fonts +# +# CONFIG_VIDCONSOLE_AS_LCD is not set +# CONFIG_VIDEO_BOCHS is not set +# 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_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 +# CONFIG_VIDEO_MESON is not set +# CONFIG_VIDEO_MVEBU is not set +CONFIG_I2C_EDID=y +CONFIG_DISPLAY=y +# CONFIG_NXP_TDA19988 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_LOGICORE_DP_TX is not set +CONFIG_VIDEO_ROCKCHIP=y +CONFIG_VIDEO_ROCKCHIP_MAX_XRES=1280 +CONFIG_VIDEO_ROCKCHIP_MAX_YRES=800 +CONFIG_DISPLAY_ROCKCHIP_EDP=y +# CONFIG_DISPLAY_ROCKCHIP_LVDS is not set +# CONFIG_DISPLAY_ROCKCHIP_HDMI is not set +# CONFIG_DISPLAY_ROCKCHIP_MIPI is not set +# CONFIG_DISPLAY_ROCKCHIP_DW_MIPI 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=1 +# 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 + +# +# 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 is not set +# CONFIG_SPL_FS_CBFS is not set +CONFIG_FS_EXT4=y +# CONFIG_EXT4_WRITE is not set +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_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 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=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 +# + +# +# 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=y +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=y +# CONFIG_TPL_CRC8 is not set +CONFIG_CRC16=y +# CONFIG_SPL_CRC16 is not set +CONFIG_CRC32=y + +# +# Compression Support +# +CONFIG_LZ4=y +CONFIG_LZMA=y +# CONFIG_LZO is not set +CONFIG_GZIP=y +# 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_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=0x0 +CONFIG_SYS_FDT_PAD=0x3000 +CONFIG_SPL_OF_LIBFDT=y +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_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_ARCH_MEM_MAP is not set +# 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_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 +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/module/u-boot/gru_bob/target.cfg b/config/module/u-boot/gru_bob/target.cfg new file mode 100644 index 00000000..50080091 --- /dev/null +++ b/config/module/u-boot/gru_bob/target.cfg @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +tree="default" +xarch="aarch64-elf arm-eabi" diff --git a/config/module/u-boot/gru_kevin/config/default b/config/module/u-boot/gru_kevin/config/default new file mode 100644 index 00000000..582c51f9 --- /dev/null +++ b/config/module/u-boot/gru_kevin/config/default @@ -0,0 +1,2593 @@ +# +# Automatically generated file; DO NOT EDIT. +# U-Boot 2025.04 Configuration +# + +# +# 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 +CONFIG_ARM=y +# 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 is not set +# CONFIG_XTENSA is not set +CONFIG_SYS_ARCH="arm" +CONFIG_SYS_CPU="armv8" +CONFIG_SYS_SOC="rk3399" +CONFIG_SYS_VENDOR="google" +CONFIG_SYS_BOARD="gru" +CONFIG_SYS_CONFIG_NAME="gru" + +# +# Skipping low level initialization functions +# +CONFIG_SKIP_LOWLEVEL_INIT=y +# CONFIG_SPL_SKIP_LOWLEVEL_INIT is not set +# 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 +# CONFIG_SPL_SYS_DCACHE_OFF is not set + +# +# ARM architecture +# +CONFIG_ARM64=y +CONFIG_ARM64_CRC32=y +CONFIG_COUNTER_FREQUENCY=24000000 +CONFIG_POSITION_INDEPENDENT=y +# 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 +# CONFIG_SYS_ARM_CACHE_CP15 is not set +# CONFIG_SYS_ARM_MMU is not set +# CONFIG_SYS_ARM_MPU is not set +CONFIG_SYS_ARM_ARCH=8 +CONFIG_SYS_ARM_CACHE_WRITEBACK=y +# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set +# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set +# CONFIG_ARCH_CPU_INIT is not set +CONFIG_SYS_ARCH_TIMER=y +CONFIG_ARM_SMCCC=y +# CONFIG_SYS_L2_PL310 is not set +# CONFIG_SPL_SYS_L2_PL310 is not set +# CONFIG_SYS_L2CACHE_OFF is not set +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 +# CONFIG_ARCH_HISTB is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ORION5X 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_BCMNS3 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IPQ40XX is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_K3 is not set +# 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 +# CONFIG_ARCH_IMX8ULP is not set +# CONFIG_ARCH_IMX9 is not set +# CONFIG_ARCH_IMXRT is not set +# CONFIG_ARCH_MX23 is not set +# CONFIG_ARCH_MX28 is not set +# CONFIG_ARCH_MX31 is not set +# CONFIG_ARCH_MX7ULP is not set +# CONFIG_ARCH_MX7 is not set +# CONFIG_ARCH_MX6 is not set +# CONFIG_ARCH_MX5 is not set +# CONFIG_ARCH_NEXELL is not set +# CONFIG_ARCH_NPCM is not set +# CONFIG_ARCH_APPLE is not set +# CONFIG_ARCH_OWL is not set +# CONFIG_ARCH_QEMU 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 +# CONFIG_ARCH_ZYNQMP_R5 is not set +# CONFIG_ARCH_ZYNQMP is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_VEXPRESS64 is not set +# CONFIG_TARGET_CORSTONE1000 is not set +# CONFIG_TARGET_TOTAL_COMPUTE is not set +# CONFIG_TARGET_LS2080A_EMU is not set +# CONFIG_TARGET_LS1088AQDS is not set +# CONFIG_TARGET_LS2080AQDS is not set +# CONFIG_TARGET_LS2080ARDB is not set +# CONFIG_TARGET_LS2081ARDB is not set +# CONFIG_TARGET_LX2160ARDB is not set +# CONFIG_TARGET_LX2160AQDS is not set +# CONFIG_TARGET_LX2162AQDS is not set +# CONFIG_TARGET_HIKEY is not set +# CONFIG_TARGET_HIKEY960 is not set +# CONFIG_TARGET_POPLAR is not set +# CONFIG_TARGET_LS1012AQDS is not set +# CONFIG_TARGET_LS1012ARDB is not set +# CONFIG_TARGET_LS1012A2G5RDB is not set +# CONFIG_TARGET_LS1012AFRWY is not set +# CONFIG_TARGET_LS1012AFRDM is not set +# CONFIG_TARGET_LS1028AQDS is not set +# CONFIG_TARGET_LS1028ARDB is not set +# CONFIG_TARGET_LS1088ARDB is not set +# CONFIG_TARGET_LS1021AQDS is not set +# CONFIG_TARGET_LS1021ATWR is not set +# CONFIG_TARGET_PG_WCOM_SELI8 is not set +# CONFIG_TARGET_PG_WCOM_EXPU1 is not set +# CONFIG_TARGET_LS1021ATSN is not set +# CONFIG_TARGET_LS1021AIOT is not set +# CONFIG_TARGET_LS1043AQDS is not set +# CONFIG_TARGET_LS1043ARDB is not set +# 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 +# CONFIG_ARCH_SYNQUACER is not set +# CONFIG_ARCH_STM32 is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_STM32MP is not set +CONFIG_ARCH_ROCKCHIP=y +# CONFIG_ARCH_OCTEONTX is not set +# CONFIG_ARCH_OCTEONTX2 is not set +# CONFIG_TARGET_THUNDERX_88XX is not set +# 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_TEXT_BASE=0x18000000 +CONFIG_SYS_MALLOC_LEN=0x2000000 +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=0x1f000 +CONFIG_DM_GPIO=y +CONFIG_SPL_DM_SPI=y +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 +# CONFIG_ROCKCHIP_PX30 is not set +# CONFIG_ROCKCHIP_RK3036 is not set +# CONFIG_ROCKCHIP_RK3066 is not set +# CONFIG_ROCKCHIP_RK3128 is not set +# CONFIG_ROCKCHIP_RK3188 is not set +# CONFIG_ROCKCHIP_RK322X is not set +# CONFIG_ROCKCHIP_RK3288 is not set +# CONFIG_ROCKCHIP_RK3308 is not set +# CONFIG_ROCKCHIP_RK3328 is not set +# CONFIG_ROCKCHIP_RK3368 is not set +CONFIG_ROCKCHIP_RK3399=y +# CONFIG_ROCKCHIP_RK3568 is not set +# CONFIG_ROCKCHIP_RK3588 is not set +# CONFIG_ROCKCHIP_RV1108 is not set +# 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=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_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 +# CONFIG_TARGET_PINEBOOK_PRO_RK3399 is not set +# 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_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_DEBUG_UART_BASE=0xff1a0000 +CONFIG_DEBUG_UART_CLOCK=24000000 +CONFIG_DEBUG_UART_BOARD_INIT=y +CONFIG_IDENT_STRING="" +CONFIG_SYS_CLK_FREQ=0 +# CONFIG_CHIP_DIP_SCAN is not set +# 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_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=y +# CONFIG_ARMV8_SWITCH_TO_EL1 is not set + +# +# ARMv8 secure monitor firmware +# +# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set +# CONFIG_SPL_ARMV8_SEC_FIRMWARE_SUPPORT is not set +# CONFIG_SPL_RECOVER_DATA_SECTION is not set +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_SYS_MEM_TOP_HIDE=0x0 + +# +# ARM debug +# +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 + +# +# Functionality shared between NXP SoCs +# +# CONFIG_NXP_ESBC is not set +CONFIG_SYS_LITTLE_ENDIAN=y + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=140200 +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_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 +# 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=y +CONFIG_FDT_64BIT=y +CONFIG_HAS_ROM=y +CONFIG_SPL_IMAGE="spl/u-boot-spl.bin" +CONFIG_REMAKE_ELF=y +# CONFIG_HAS_BOARD_SIZE_LIMIT is not set +# CONFIG_SYS_CUSTOM_LDSCRIPT is not set +CONFIG_PLATFORM_ELFENTRY="_start" +CONFIG_STACK_SIZE=0x1000000 +# 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 + +# +# Boot options +# + +# +# 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_TIMESTAMP is not set +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=y +# CONFIG_TPL_FIT is not set +# CONFIG_SPL_FIT_PRINT 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_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_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 is not set +# 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_AUTOBOOT_MENU_SHOW 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 is not set +# 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="rockchip/rk3399-gru-kevin.dtb" +# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set +# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set + +# +# Configuration editor +# +# CONFIG_CEDIT is not set + +# +# Console +# +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 +# CONFIG_SYS_CONSOLE_ENV_OVERWRITE is not set +# CONFIG_SYS_CONSOLE_INFO_QUIET is not set +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 is not set +# CONFIG_LOGF_FUNC is not set +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 + +# +# Init options +# +# CONFIG_BOARD_TYPES is not set +# CONFIG_DISPLAY_CPUINFO is not set +CONFIG_DISPLAY_BOARDINFO=y +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=y +# CONFIG_CLOCKS is not set +# CONFIG_HWCONFIG 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 +# CONFIG_RESET_PHY_R is not set + +# +# 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 + +# +# Update support +# +# CONFIG_UPDATE_TFTP is not set +# CONFIG_ANDROID_AB is not set + +# +# Blob list +# +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_SPL_BLOBLIST_FIXED=y +# CONFIG_SPL_BLOBLIST_ALLOC 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=0x40000 +CONFIG_SPL_PAD_TO=0x7f8000 +# CONFIG_SPL_NO_BSS_LIMIT is not set +CONFIG_SPL_BSS_LIMIT=y +# 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_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=y +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_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_SPL_FIT_IMAGE_TINY is not set +# CONFIG_SPL_CACHE is not set +# CONFIG_SPL_CPU 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 +# 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_RELOC_LOADER is not set +# CONFIG_SPL_UBI is not set +CONFIG_SPL_DM_SPI_FLASH=y +# 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_DEVICE 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=y +# CONFIG_SPL_SPI_FLASH_MTD is not set +CONFIG_SPL_SPI_LOAD=y +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 +CONFIG_SPL_ATF=y +# CONFIG_SPL_ATF_LOAD_IMAGE_V2 is not set +CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y +# CONFIG_SPL_OPTEE_IMAGE is not set +CONFIG_SPL_TARGET="" +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_IMAGE_SIGN_INFO=y +CONFIG_SPL_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_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 +# +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_CMD_BOOTSTD=y +CONFIG_BOOTM_EFI=y +CONFIG_BOOTM_ELF=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_BOOTI=y +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_UPL is not set +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=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_XIMG=y +CONFIG_SYS_XIMG_LEN=0x800000 +# CONFIG_CMD_SPL is not set + +# +# 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=y +# 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_BLOBLIST=y +CONFIG_CMD_CRC32=y +# CONFIG_CRC32_VERIFY is not set +# CONFIG_CMD_EEPROM is not set +CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=0 +# 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=y +CONFIG_CMD_UNLZ4=y +CONFIG_CMD_UNZIP=y +# CONFIG_CMD_ZIP is not set + +# +# Device access commands +# +# CONFIG_CMD_ADC 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 is not set +CONFIG_CMD_DM=y +# 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_CMD_GPT_RENAME is not set +# CONFIG_CMD_IDE is not set +# CONFIG_CMD_IO is not set +# CONFIG_CMD_IOTRACE is not set +CONFIG_CMD_I2C=y +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_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_MTD is not set +# CONFIG_CMD_ONENAND is not set +CONFIG_CMD_PART=y +# CONFIG_CMD_PCI is not set +CONFIG_CMD_PINMUX=y +CONFIG_CMD_POWEROFF=y +# CONFIG_CMD_READ is not set +# CONFIG_CMD_SATA is not set +# CONFIG_CMD_SDRAM is not set +CONFIG_CMD_SF=y +CONFIG_CMD_SF_TEST=y +CONFIG_CMD_SPI=y +CONFIG_DEFAULT_SPI_BUS=0 +CONFIG_DEFAULT_SPI_MODE=0x0 +CONFIG_CMD_USB=y +# 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 +CONFIG_CMD_NET=y +CONFIG_CMD_BOOTP=y +# CONFIG_BOOTP_MAY_FAIL is not set +CONFIG_BOOTP_BOOTPATH=y +# CONFIG_BOOTP_VENDOREX is not set +# CONFIG_BOOTP_BOOTFILESIZE is not set +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=0x16 +# CONFIG_BOOTP_PXE_DHCP_OPTION is not set +CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" +# 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_CDP is not set +# CONFIG_CMD_SNTP is not set +# CONFIG_CMD_LINK_LOCAL is not set +# CONFIG_CMD_ETHSW is not set +# 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 +# +# 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=y +CONFIG_CMD_EFICONFIG=y +# CONFIG_CMD_EXCEPTION is not set +# CONFIG_CMD_INI is not set +# CONFIG_CMD_DATE is not set +CONFIG_CMD_TIME=y +# CONFIG_CMD_GETTIME is not set +# CONFIG_CMD_PAUSE is not set +# CONFIG_CMD_RNG is not set +# CONFIG_CMD_KASLRSEED is not set +CONFIG_CMD_SLEEP=y +# CONFIG_CMD_TIMER is not set +# 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 is not set + +# +# TI specific command line interface +# + +# +# Power commands +# +CONFIG_CMD_PMIC=y +CONFIG_CMD_REGULATOR=y + +# +# Security commands +# +# CONFIG_CMD_AES is not set +# CONFIG_CMD_BLOB is not set +# CONFIG_CMD_HASH is not set +# CONFIG_CMD_HVC is not set +# CONFIG_CMD_SMC is not set + +# +# Firmware commands +# +CONFIG_CMD_CROS_EC=y + +# +# Filesystem commands +# +# CONFIG_CMD_BTRFS is not set +# CONFIG_CMD_EROFS is not set +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +# CONFIG_CMD_EXT4_WRITE is not set +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_CYCLIC=y +# CONFIG_CMD_DIAG is not set +# CONFIG_CMD_EVENT is not set +CONFIG_CMD_LOG=y +# CONFIG_CMD_UBI is not set + +# +# Partition Types +# +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 +# 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=y +CONFIG_PARTITION_UUIDS=y +CONFIG_SPL_PARTITION_UUIDS=y +CONFIG_PARTITION_TYPE_GUID=y +# CONFIG_SPL_PARTITION_TYPE_GUID is not set +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_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="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="rockchip/rk3399-gru-kevin" +CONFIG_OF_TAG_MIGRATE=y +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 +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_ENV_IS_IN_SPI_FLASH 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 is not set +# 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_BOOTP_SEND_HOSTNAME 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_PORT is not set +CONFIG_TFTP_WINDOWSIZE=1 +# CONFIG_TFTP_TSIZE is not set +# 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 is not set +# 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 + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_DM=y +CONFIG_SPL_DM=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_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 +CONFIG_SARADC_ROCKCHIP=y +# CONFIG_ADC_IMX93 is not set +# CONFIG_SATA is not set +# CONFIG_SCSI_AHCI is not set + +# +# SATA/SCSI device support +# +# CONFIG_AXI is not set + +# +# Bus devices +# +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_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 + +# +# Button Support +# +# CONFIG_BUTTON is not set + +# +# Cache Controller drivers +# +# CONFIG_CACHE is not set +# CONFIG_L2X0_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 +# CONFIG_CLK_TI_GATE is not set +# CONFIG_CLK_K3 is not set +# CONFIG_SPL_CLK_K3 is not set +# CONFIG_CPU is not set + +# +# Hardware crypto devices +# +# CONFIG_DM_HASH is not set +# CONFIG_FSL_CAAM is not set +CONFIG_CAAM_64BIT=y +# CONFIG_SYS_FSL_SEC_BE is not set +# CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG 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=y +# CONFIG_SPL_FIRMWARE is not set +CONFIG_ARM_PSCI_FW=y +# CONFIG_ZYNQMP_FIRMWARE is not set +# CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set +# CONFIG_SCMI_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_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 +# 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_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 +# 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_MAX7320_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_NPCM_SGPIO is not set +# CONFIG_CMD_PCA953X is not set +# CONFIG_PCF8575_GPIO is not set +CONFIG_ROCKCHIP_GPIO=y +# 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_DM_PCA953X 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 +# CONFIG_ADP5585_GPIO is not set + +# +# Hardware Spinlock Support +# +# CONFIG_DM_HWSPINLOCK is not set +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 +# CONFIG_DM_I2C_GPIO is not set +# CONFIG_SYS_I2C_IPROC is not set +# CONFIG_SYS_I2C_FSL is not set +# CONFIG_SYS_I2C_CADENCE is not set +# CONFIG_SYS_I2C_DW is not set +# CONFIG_SYS_I2C_INTEL 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_NEXELL is not set +# CONFIG_SYS_I2C_NPCM is not set +# 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 +# CONFIG_SYS_I2C_IHS is not set +CONFIG_I2C_MUX=y +# CONFIG_SPL_I2C_MUX is not set +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_PCA954x is not set +# 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 +# CONFIG_I8042_KEYB is not set +# 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_BOOT is not set +# CONFIG_LED_ACTIVITY 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=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 +# CONFIG_ATSHA204A is not set +# 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 +# CONFIG_IRQ is not set +# CONFIG_NPCM_HOST is not set +# CONFIG_NUVOTON_NCT6102D is not set +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 +# CONFIG_I2C_EEPROM is not set +# CONFIG_SPL_I2C_EEPROM is not set +# CONFIG_GDSYS_RXAUI_CTRL is not set +# CONFIG_GDSYS_IOEP is not set +# CONFIG_MPC83XX_SERDES is not set +# CONFIG_FS_LOADER is not set +# CONFIG_SPL_FS_LOADER is not set +# CONFIG_GDSYS_SOC is not set +# CONFIG_IHS_FPGA is not set +# 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 +# +CONFIG_MMC=y +CONFIG_MMC_WRITE=y +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 +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=y +CONFIG_MMC_SUPPORTS_TUNING=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS400_ES_SUPPORT=y +CONFIG_MMC_HS400_SUPPORT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_VERBOSE=y +# CONFIG_MMC_TRACE is not set +CONFIG_MMC_DW=y +# CONFIG_MMC_DW_CORTINA is not set +# CONFIG_MMC_DW_K3 is not set +CONFIG_MMC_DW_ROCKCHIP=y +# CONFIG_MMC_DW_SNPS is not set +# CONFIG_MMC_MXC is not set +# CONFIG_MMC_PCI is not set +# 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=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 +# CONFIG_MMC_SDHCI_MSM is not set +# 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 +# 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_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_DM_SPI_FLASH=y +CONFIG_SPI_FLASH=y +# 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 +# +# 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=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 +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_FMAN_ENET 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 is not set +# 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_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=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 + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# CONFIG_X86_PCH7 is not set +# CONFIG_X86_PCH9 is not set + +# +# PHY Subsystem +# +CONFIG_PHY=y +# CONFIG_SPL_PHY is not set +# CONFIG_NOP_PHY is not set +# CONFIG_MIPI_DPHY_HELPERS is not set +# CONFIG_BCM_SR_PCIE_PHY is not set +# CONFIG_OMAP_USB2_PHY is not set + +# +# 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 +# CONFIG_PHY_ROCKCHIP_SNPS_PCIE3 is not set +# CONFIG_PHY_ROCKCHIP_USBDP is not set +CONFIG_PHY_ROCKCHIP_TYPEC=y +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_CADENCE_TORRENT is not set +# CONFIG_MSM8916_USB_PHY is not set +# CONFIG_MVEBU_COMPHY_SUPPORT is not set + +# +# Pin controllers +# +CONFIG_PINCTRL=y +CONFIG_PINCTRL_FULL=y +CONFIG_PINCTRL_GENERIC=y +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 +# 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_PINCTRL_STMFX is not set +# CONFIG_SPL_PINCTRL_STMFX is not set +# 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 +# +# CONFIG_POWER_DOMAIN is not set +CONFIG_DM_PMIC=y +CONFIG_SPL_DM_PMIC=y +CONFIG_PMIC_CHILDREN=y +CONFIG_SPL_PMIC_CHILDREN=y +# CONFIG_PMIC_AB8500 is not set +# CONFIG_PMIC_ACT8846 is not set +# CONFIG_PMIC_AXP is not set +# CONFIG_SPL_PMIC_AXP is not set +# CONFIG_DM_PMIC_DA9063 is not set +# CONFIG_SPL_DM_PMIC_DA9063 is not set +# CONFIG_PMIC_AS3722 is not set +# CONFIG_DM_PMIC_BD71837 is not set +# CONFIG_SPL_DM_PMIC_BD71837 is not set +# CONFIG_DM_PMIC_FAN53555 is not set +# CONFIG_DM_PMIC_MP5416 is not set +# CONFIG_SPL_DM_PMIC_MP5416 is not set +# CONFIG_DM_PMIC_PCA9450 is not set +# 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 +# CONFIG_PMIC_MAX8997 is not set +# CONFIG_PMIC_QCOM is not set +CONFIG_PMIC_RK8XX=y +# CONFIG_SPL_PMIC_RK8XX is not set +# CONFIG_PMIC_S2MPS11 is not set +# CONFIG_DM_PMIC_SANDBOX is not set +# CONFIG_PMIC_S5M8767 is not set +# CONFIG_PMIC_RN5T567 is not set +# CONFIG_SPL_PMIC_RN5T567 is not set +# CONFIG_PMIC_TPS65090 is not set +# CONFIG_PMIC_PALMAS is not set +# 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 +# CONFIG_SPL_POWER_TPS62362 is not set +# CONFIG_SPL_POWER_TPS65910 is not set +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=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 +# CONFIG_POWER_MT6323 is not set +CONFIG_DM_PWM=y +# CONFIG_PWM_ASPEED is not set +# CONFIG_PWM_CADENCE_TTC is not set +CONFIG_PWM_CROS_EC=y +# CONFIG_PWM_EXYNOS is not set +# CONFIG_PWM_IMX is not set +# CONFIG_PWM_MESON is not set +# CONFIG_PWM_MTK is not set +CONFIG_PWM_ROCKCHIP=y +# CONFIG_PWM_SANDBOX is not set +# CONFIG_PWM_SIFIVE is not set +# CONFIG_PWM_TEGRA is not set +# CONFIG_PWM_SUNXI is not set +# 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 +# CONFIG_IMXRT_SDRAM is not set +# CONFIG_CADENCE_DDR_CTRL is not set +CONFIG_RAM_ROCKCHIP=y +CONFIG_ROCKCHIP_SDRAM_COMMON=y +CONFIG_RAM_ROCKCHIP_DEBUG=y +# CONFIG_RAM_ROCKCHIP_DDR4 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR2 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR3 is not set +# CONFIG_RAM_ROCKCHIP_LPDDR4 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_AST2500 is not set +# CONFIG_RESET_AST2600 is not set +CONFIG_RESET_ROCKCHIP=y +# CONFIG_RESET_HISILICON is not set +# CONFIG_RESET_SYSCON is not set +# 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 +# CONFIG_RTC_DS1374 is not set +# CONFIG_RTC_DS3231 is not set +# CONFIG_RTC_PCF8563 is not set +# CONFIG_RTC_PT7C4338 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_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 +# CONFIG_DEBUG_UART_NS16550_CHECK_ENABLED is not set +# CONFIG_ALTERA_JTAG_UART is not set +# CONFIG_ALTERA_UART is not set +# CONFIG_ARC_SERIAL is not set +# CONFIG_ARM_DCC is not set +# CONFIG_ATMEL_USART is not set +# CONFIG_BCM6345_SERIAL is not set +# CONFIG_COREBOOT_SERIAL is not set +# 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 is not set +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_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 + +# +# Sound support +# +# CONFIG_SOUND 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=y +CONFIG_DM_SPI=y +CONFIG_SPI_MEM=y +# CONFIG_SPI_DIRMAP is not set +# CONFIG_ALTERA_SPI is not set +# CONFIG_APPLE_SPI is not set +# CONFIG_ATCSPI200_SPI is not set +# CONFIG_CORTINA_SFLASH is not set +# CONFIG_CADENCE_QSPI is not set +# CONFIG_CV1800B_SPIF is not set +# CONFIG_DESIGNWARE_SPI is not set +# CONFIG_FSL_QSPI is not set +# CONFIG_GXP_SPI is not set +# CONFIG_IPROC_QSPI is not set +# CONFIG_MICROCHIP_COREQSPI 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_SPI_MXIC is not set +# CONFIG_NPCM_FIU_SPI is not set +# CONFIG_NPCM_PSPI is not set +# CONFIG_NXP_FSPI is not set +# CONFIG_OMAP3_SPI is not set +# CONFIG_PL022_SPI is not set +# CONFIG_ROCKCHIP_SFC is not set +CONFIG_ROCKCHIP_SPI=y +# CONFIG_SPI_ASPEED_SMC is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SOFT_SPI is not set +# CONFIG_SPI_SN_F_OSPI is not set +# CONFIG_SPI_SUNXI 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_SPI_STACKED_PARALLEL is not set + +# +# SPMI support +# +# CONFIG_SPMI is not set +# CONFIG_SYSINFO is not set + +# +# System reset device drivers +# +CONFIG_SYSRESET=y +CONFIG_SPL_SYSRESET=y +CONFIG_TPL_SYSRESET=y +CONFIG_SYSRESET_CMD_RESET=y +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 +# CONFIG_SYSRESET_SYSCON is not set +# CONFIG_SYSRESET_WATCHDOG is not set +# CONFIG_SYSRESET_RESETCTL is not set +# CONFIG_SYSRESET_MPC83XX is not set +# CONFIG_TEE is not set +# CONFIG_DM_THERMAL is not set + +# +# Timer Support +# +# CONFIG_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_GENERIC is not set +# 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 is not set +# CONFIG_USB_EHCI_ZYNQ is not set +CONFIG_USB_EHCI_GENERIC=y +# CONFIG_USB_EHCI_FSL is not set +CONFIG_USB_OHCI_NEW=y +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_GENERIC=y +# CONFIG_USB_OHCI_DA8XX is not set +# CONFIG_SYS_OHCI_SWAP_REG_ACCESS 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=y + +# +# Platform Glue Driver Support +# +# CONFIG_USB_DWC3_OMAP 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 +# +# CONFIG_USB_DWC3_PHY_OMAP is not set +# CONFIG_USB_DWC3_PHY_SAMSUNG 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 +# CONFIG_TYPEC_TCPM 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=y +# CONFIG_USB_ETHER_LAN75XX is not set +# CONFIG_USB_ETHER_LAN78XX is not set +CONFIG_USB_ETHER_MCS7830=y +CONFIG_USB_ETHER_RTL8152=y +CONFIG_USB_ETHER_SMSC95XX=y +# CONFIG_USB_GADGET is not set +# CONFIG_SPL_USB_GADGET is not set + +# +# UFS Host Controller Support +# +# CONFIG_TI_J721E_UFS is not set + +# +# Graphics support +# +CONFIG_VIDEO=y +# CONFIG_VIDEO_FONT_4X6 is not set +# CONFIG_VIDEO_FONT_8X16 is not set +# CONFIG_VIDEO_FONT_SUN12X22 is not set +CONFIG_VIDEO_FONT_16X32=y +CONFIG_VIDEO_LOGO=y +CONFIG_BACKLIGHT=y +CONFIG_VIDEO_PCI_DEFAULT_FB_SIZE=0x0 +# CONFIG_VIDEO_COPY is not set +CONFIG_VIDEO_DAMAGE=y +CONFIG_BACKLIGHT_PWM=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 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 + +# +# TrueType Fonts +# +# CONFIG_VIDCONSOLE_AS_LCD is not set +# CONFIG_VIDEO_BOCHS is not set +# 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_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 +# CONFIG_VIDEO_MESON is not set +# CONFIG_VIDEO_MVEBU is not set +CONFIG_I2C_EDID=y +CONFIG_DISPLAY=y +# CONFIG_NXP_TDA19988 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_LOGICORE_DP_TX is not set +CONFIG_VIDEO_ROCKCHIP=y +CONFIG_VIDEO_ROCKCHIP_MAX_XRES=2400 +CONFIG_VIDEO_ROCKCHIP_MAX_YRES=1600 +CONFIG_DISPLAY_ROCKCHIP_EDP=y +# CONFIG_DISPLAY_ROCKCHIP_LVDS is not set +# CONFIG_DISPLAY_ROCKCHIP_HDMI is not set +# CONFIG_DISPLAY_ROCKCHIP_MIPI is not set +# CONFIG_DISPLAY_ROCKCHIP_DW_MIPI 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=1 +# 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 + +# +# 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 is not set +# CONFIG_SPL_FS_CBFS is not set +CONFIG_FS_EXT4=y +# CONFIG_EXT4_WRITE is not set +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_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 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=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 +# + +# +# 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=y +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=y +# CONFIG_TPL_CRC8 is not set +CONFIG_CRC16=y +# CONFIG_SPL_CRC16 is not set +CONFIG_CRC32=y + +# +# Compression Support +# +CONFIG_LZ4=y +CONFIG_LZMA=y +# CONFIG_LZO is not set +CONFIG_GZIP=y +# 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_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=0x0 +CONFIG_SYS_FDT_PAD=0x3000 +CONFIG_SPL_OF_LIBFDT=y +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_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_ARCH_MEM_MAP is not set +# 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_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 +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/module/u-boot/gru_kevin/target.cfg b/config/module/u-boot/gru_kevin/target.cfg new file mode 100644 index 00000000..50080091 --- /dev/null +++ b/config/module/u-boot/gru_kevin/target.cfg @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +tree="default" +xarch="aarch64-elf arm-eabi" diff --git a/config/module/u-boot/i386coreboot/config/default b/config/module/u-boot/i386coreboot/config/default new file mode 100644 index 00000000..32e41bba --- /dev/null +++ b/config/module/u-boot/i386coreboot/config/default @@ -0,0 +1,1792 @@ +# +# Automatically generated file; DO NOT EDIT. +# U-Boot 2024.10 Configuration +# + +# +# Compiler: gcc (Debian 14.2.0-19) 14.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=140200 +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/module/u-boot/i386coreboot/target.cfg b/config/module/u-boot/i386coreboot/target.cfg new file mode 100644 index 00000000..40b0013e --- /dev/null +++ b/config/module/u-boot/i386coreboot/target.cfg @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +tree="x86" diff --git a/config/module/u-boot/qemu_arm64_12mb/config/default b/config/module/u-boot/qemu_arm64_12mb/config/default new file mode 100644 index 00000000..2cd0b94c --- /dev/null +++ b/config/module/u-boot/qemu_arm64_12mb/config/default @@ -0,0 +1,1894 @@ +# +# Automatically generated file; DO NOT EDIT. +# U-Boot 2025.04 Configuration +# + +# +# 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 +CONFIG_ARM=y +# 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 is not set +# CONFIG_XTENSA is not set +CONFIG_SYS_ARCH="arm" +CONFIG_SYS_CPU="armv8" +CONFIG_SYS_VENDOR="emulation" +CONFIG_SYS_BOARD="qemu-arm" +CONFIG_SYS_CONFIG_NAME="qemu-arm" + +# +# Skipping low level initialization functions +# +# CONFIG_SKIP_LOWLEVEL_INIT is not set +# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set +# CONFIG_SYS_ICACHE_OFF is not set +# CONFIG_SYS_DCACHE_OFF is not set + +# +# ARM architecture +# +CONFIG_ARM64=y +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 +# CONFIG_SYS_ARM_CACHE_CP15 is not set +# CONFIG_SYS_ARM_MMU is not set +# CONFIG_SYS_ARM_MPU is not set +CONFIG_SYS_ARM_ARCH=8 +CONFIG_SYS_ARM_CACHE_WRITEBACK=y +# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set +# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set +# CONFIG_ARCH_CPU_INIT is not set +CONFIG_SYS_ARCH_TIMER=y +CONFIG_ARM_SMCCC=y +# CONFIG_SYS_L2_PL310 is not set +# CONFIG_SPL_SYS_L2_PL310 is not set +# CONFIG_SYS_L2CACHE_OFF is not set +# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set +# CONFIG_USE_ARCH_MEMCPY is not set +# CONFIG_USE_ARCH_MEMSET is not set +CONFIG_ARM64_SUPPORT_AARCH32=y +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_HISTB is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ORION5X 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_BCMNS3 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_S5PC1XX is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_IPQ40XX is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_K3 is not set +# 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 +# CONFIG_ARCH_IMX8ULP is not set +# CONFIG_ARCH_IMX9 is not set +# CONFIG_ARCH_IMXRT is not set +# CONFIG_ARCH_MX23 is not set +# CONFIG_ARCH_MX28 is not set +# CONFIG_ARCH_MX31 is not set +# CONFIG_ARCH_MX7ULP is not set +# CONFIG_ARCH_MX7 is not set +# CONFIG_ARCH_MX6 is not set +# CONFIG_ARCH_MX5 is not set +# CONFIG_ARCH_NEXELL is not set +# CONFIG_ARCH_NPCM is not set +# CONFIG_ARCH_APPLE is not set +# CONFIG_ARCH_OWL is not set +CONFIG_ARCH_QEMU=y +# 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 +# CONFIG_ARCH_ZYNQMP_R5 is not set +# CONFIG_ARCH_ZYNQMP is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_VEXPRESS64 is not set +# CONFIG_TARGET_CORSTONE1000 is not set +# CONFIG_TARGET_TOTAL_COMPUTE is not set +# CONFIG_TARGET_LS2080A_EMU is not set +# CONFIG_TARGET_LS1088AQDS is not set +# CONFIG_TARGET_LS2080AQDS is not set +# CONFIG_TARGET_LS2080ARDB is not set +# CONFIG_TARGET_LS2081ARDB is not set +# CONFIG_TARGET_LX2160ARDB is not set +# CONFIG_TARGET_LX2160AQDS is not set +# CONFIG_TARGET_LX2162AQDS is not set +# CONFIG_TARGET_HIKEY is not set +# CONFIG_TARGET_HIKEY960 is not set +# CONFIG_TARGET_POPLAR is not set +# CONFIG_TARGET_LS1012AQDS is not set +# CONFIG_TARGET_LS1012ARDB is not set +# CONFIG_TARGET_LS1012A2G5RDB is not set +# CONFIG_TARGET_LS1012AFRWY is not set +# CONFIG_TARGET_LS1012AFRDM is not set +# CONFIG_TARGET_LS1028AQDS is not set +# CONFIG_TARGET_LS1028ARDB is not set +# CONFIG_TARGET_LS1088ARDB is not set +# CONFIG_TARGET_LS1021AQDS is not set +# CONFIG_TARGET_LS1021ATWR is not set +# CONFIG_TARGET_PG_WCOM_SELI8 is not set +# CONFIG_TARGET_PG_WCOM_EXPU1 is not set +# CONFIG_TARGET_LS1021ATSN is not set +# CONFIG_TARGET_LS1021AIOT is not set +# CONFIG_TARGET_LS1043AQDS is not set +# CONFIG_TARGET_LS1043ARDB is not set +# 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 +# CONFIG_ARCH_SYNQUACER is not set +# CONFIG_ARCH_STM32 is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_STM32MP is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_OCTEONTX is not set +# CONFIG_ARCH_OCTEONTX2 is not set +# CONFIG_TARGET_THUNDERX_88XX is not set +# 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_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 +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 +# CONFIG_DM_RESET is not set +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_DEBUG_UART_BASE=0x9000000 +CONFIG_DEBUG_UART_CLOCK=0 +# CONFIG_DEBUG_UART_BOARD_INIT is not set +CONFIG_IDENT_STRING="" +CONFIG_SYS_CLK_FREQ=0 +# CONFIG_CHIP_DIP_SCAN is not set +# CONFIG_CMO_BY_VA_ONLY is not set +# CONFIG_ARMV8_MULTIENTRY is not set +# CONFIG_ARMV8_SET_SMPEN is not set +# CONFIG_ARMV8_SWITCH_TO_EL1 is not set + +# +# ARMv8 secure monitor firmware +# +# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set +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_SYS_MEM_TOP_HIDE=0x0 +CONFIG_MTDPARTS_NOR0="64m(u-boot)" +CONFIG_MTDPARTS_NOR1="64m(u-boot-env)" + +# +# ARM debug +# +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 +CONFIG_DEBUG_UART=y +CONFIG_AHCI=y +# CONFIG_OF_BOARD_FIXUP is not set + +# +# Functionality shared between NXP SoCs +# +# CONFIG_NXP_ESBC is not set +CONFIG_SYS_LITTLE_ENDIAN=y + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=140200 +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_ARCH_SUPPORTS_LTO=y +# CONFIG_LTO is not set +CONFIG_CC_HAS_ASM_INLINE=y +# CONFIG_XEN is not set +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=y +CONFIG_FDT_64BIT=y +# 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_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 + +# +# Boot options +# + +# +# 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_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=y +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_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 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 is not set +# 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="" +# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set +# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set + +# +# Configuration editor +# +# CONFIG_CEDIT is not set + +# +# Console +# +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 +# 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 is not set +CONFIG_SYS_STDIO_DEREGISTER=y +# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set +CONFIG_SYS_DEVICE_NULLDEV=y + +# +# Logging +# +# CONFIG_LOG is not set + +# +# Init options +# +# CONFIG_BOARD_TYPES is not set +# CONFIG_DISPLAY_CPUINFO is not set +# CONFIG_DISPLAY_BOARDINFO is not set +# CONFIG_DISPLAY_BOARDINFO_LATE is not set + +# +# 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 is not set +# CONFIG_BOARD_POSTCLK_INIT is not set +CONFIG_BOARD_LATE_INIT=y +# CONFIG_CLOCKS 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_HASH_CRC8 is not set +# CONFIG_STACKPROTECTOR is not set +# CONFIG_BOARD_RNG_SEED is not set + +# +# Update support +# +CONFIG_UPDATE_COMMON=y +CONFIG_UPDATE_TFTP_CNT_MAX=0 +CONFIG_UPDATE_TFTP_MSEC_MAX=100 +CONFIG_UPDATE_LOAD_ADDR=0x100000 +# CONFIG_UPDATE_FIT is not set +# CONFIG_ANDROID_AB is not set + +# +# Blob list +# +CONFIG_BLOBLIST=y +# CONFIG_BLOBLIST_FIXED is not set +CONFIG_BLOBLIST_ALLOC=y +CONFIG_BLOBLIST_SIZE=0x400 +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_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 +# +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=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 +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_UPL is not set +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=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_SYS_XIMG_LEN=0x800000 + +# +# 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=y +# 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_BLOBLIST=y +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=y +CONFIG_CMD_UNLZ4=y +CONFIG_CMD_UNZIP=y +# CONFIG_CMD_ZIP is not set + +# +# Device access commands +# +# CONFIG_CMD_ARMFLASH is not set +# CONFIG_CMD_BCB is not set +# CONFIG_CMD_BIND is not set +# CONFIG_CMD_DEMO is not set +CONFIG_CMD_DFU=y +CONFIG_CMD_DM=y +CONFIG_CMD_FLASH=y +# CONFIG_CMD_FUSE is not set +# CONFIG_CMD_GPIO is not set +# CONFIG_CMD_GPT is not set +# CONFIG_CMD_IDE is not set +# CONFIG_CMD_IO is not set +# 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_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_PART=y +CONFIG_CMD_PCI=y +# CONFIG_CMD_PCI_MPS is not set +CONFIG_CMD_POWEROFF=y +# CONFIG_CMD_READ is not set +# CONFIG_CMD_SATA is not set +CONFIG_CMD_SCSI=y +# CONFIG_CMD_SDRAM is not set +CONFIG_CMD_USB=y +# CONFIG_CMD_RKMTD is not set +CONFIG_CMD_VIRTIO=y +# 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=y +# CONFIG_CMD_SETEXPR_FMT is not set +# CONFIG_CMD_XXD is not set +CONFIG_CMD_NET=y +CONFIG_CMD_BOOTP=y +# CONFIG_BOOTP_MAY_FAIL is not set +CONFIG_BOOTP_BOOTPATH=y +# CONFIG_BOOTP_VENDOREX is not set +# CONFIG_BOOTP_BOOTFILESIZE is not set +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=0x16 +# CONFIG_BOOTP_PXE_DHCP_OPTION is not set +CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" +# 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_CDP is not set +# CONFIG_CMD_SNTP is not set +# CONFIG_CMD_LINK_LOCAL is not set +# CONFIG_CMD_ETHSW is not set +# 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 +# +# 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_BLKMAP=y +# CONFIG_CMD_CACHE is not set +# CONFIG_CMD_CONITRACE is not set +CONFIG_CMD_CLS=y +CONFIG_CMD_EFIDEBUG=y +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 is not set +# CONFIG_CMD_GETTIME is not set +# CONFIG_CMD_PAUSE is not set +# CONFIG_CMD_RNG is not set +# CONFIG_CMD_KASLRSEED is not set +CONFIG_CMD_SLEEP=y +# CONFIG_CMD_TIMER is not set +# CONFIG_CMD_SYSBOOT is not set +CONFIG_CMD_QFW=y +# 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 is not set + +# +# 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 +# CONFIG_CMD_HVC is not set +# CONFIG_CMD_SMC is not set +CONFIG_CMD_TPM_V1=y +CONFIG_CMD_TPM_V2=y +CONFIG_CMD_TPM=y +# CONFIG_CMD_TPM_TEST is not set + +# +# Firmware commands +# + +# +# Filesystem commands +# +# CONFIG_CMD_BTRFS is not set +# CONFIG_CMD_EROFS is not set +CONFIG_CMD_EXT2=y +CONFIG_CMD_EXT4=y +# CONFIG_CMD_EXT4_WRITE is not set +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=y +# CONFIG_CMD_MTDPARTS_SPREAD is not set +# CONFIG_CMD_MTDPARTS_SHOW_NET_SIZES 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 +# CONFIG_CMD_UBI is not set + +# +# Partition Types +# +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 +CONFIG_EFI_PARTITION=y +CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=128 +CONFIG_EFI_PARTITION_ENTRIES_OFF=0 +CONFIG_PARTITION_UUIDS=y +# CONFIG_PARTITION_TYPE_GUID is not set +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=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 + +# +# 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 +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_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 is not set +# 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 is not set +# 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_BOOTP_SEND_HOSTNAME 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_PORT is not set +CONFIG_TFTP_WINDOWSIZE=1 +# CONFIG_TFTP_TSIZE is not set +# 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 is not set +# CONFIG_USE_SERVERIP 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 + +# +# 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 is not set +# 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_BOUNCE_BUFFER is not set +# CONFIG_ADC is not set +# CONFIG_SATA is not set +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_AHCI_GENERIC is not set +# CONFIG_SUNXI_AHCI is not set +# CONFIG_AXI is not set + +# +# Bus devices +# +CONFIG_BLK=y +CONFIG_BLOCK_CACHE=y +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 + +# +# Button Support +# +# CONFIG_BUTTON is not set + +# +# Cache Controller drivers +# +# CONFIG_CACHE is not set +# CONFIG_L2X0_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_CAAM_64BIT=y +# CONFIG_SYS_FSL_SEC_BE is not set +# CONFIG_SYS_FSL_SEC_LE is not set +# CONFIG_FSL_DCP_RNG 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 +# +CONFIG_DFU=y +CONFIG_DFU_OVER_TFTP=y +CONFIG_DFU_WRITE_ALT=y +CONFIG_DFU_TFTP=y +# CONFIG_DFU_TIMEOUT is not set +CONFIG_DFU_MTD=y +CONFIG_DFU_RAM=y +# 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 +# +# 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=y +CONFIG_ARM_PSCI_FW=y +# CONFIG_ZYNQMP_FIRMWARE is not set +# CONFIG_ARM_SMCCC_FEATURES is not set +# CONFIG_ARM_FFA_TRANSPORT is not set +# CONFIG_SCMI_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_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 +# CONFIG_IPROC_GPIO is not set +# CONFIG_KIRKWOOD_GPIO is not set +# CONFIG_LPC32XX_GPIO is not set +# CONFIG_MCP230XX_GPIO is not set +# CONFIG_MXC_GPIO is not set +# CONFIG_MXS_GPIO is not set +# CONFIG_CMD_PCA953X is not set +# CONFIG_TCA642X is not set +# CONFIG_VYBRID_GPIO is not set +# CONFIG_PCA953X 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_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 is not set +# 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_BOOT is not set +# CONFIG_LED_ACTIVITY 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_CROS_EC is not set +# CONFIG_DS4510 is not set +# CONFIG_FSL_SEC_MON is not set +# CONFIG_IRQ is not set +# CONFIG_NUVOTON_NCT6102D 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_QFW=y +CONFIG_QFW_MMIO=y +# CONFIG_FS_LOADER is not set + +# +# MMC Host controller Support +# +# CONFIG_MMC is not set +# CONFIG_MMC_BROKEN_CD is not set +# CONFIG_FSL_ESDHC is not set +# CONFIG_FSL_ESDHC_IMX is not set + +# +# MTD Support +# +CONFIG_MTD_PARTITIONS=y +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 +# CONFIG_SYS_FLASH_CFI_WIDTH_16BIT is not set +# CONFIG_SYS_FLASH_CFI_WIDTH_32BIT is not set +# CONFIG_SYS_FLASH_CFI_WIDTH_64BIT is not set +CONFIG_SYS_FLASH_CFI_WIDTH=0x1 +CONFIG_FLASH_SHOW_PROGRESS=0 +CONFIG_CFI_FLASH=y +CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS=y +# CONFIG_SYS_CFI_FLASH_STATUS_POLL is not set +CONFIG_SYS_FLASH_USE_BUFFER_WRITE=y +# CONFIG_SYS_FLASH_EMPTY_INFO is not set +# CONFIG_FLASH_SPANSION_S29WS_N is not set +CONFIG_FLASH_CFI_MTD=y +# CONFIG_SYS_FLASH_PROTECTION is not set +CONFIG_SYS_FLASH_CFI=y +# CONFIG_SYS_FLASH_QUIET_TEST is not set +# CONFIG_SYS_FLASH_CHECKSUM is not set +# CONFIG_FLASH_VERIFY is not set +# CONFIG_ALTERA_QSPI is not set +CONFIG_SYS_MAX_FLASH_SECT=256 +# CONFIG_SAMSUNG_ONENAND is not set +CONFIG_USE_SYS_MAX_FLASH_BANKS=y +CONFIG_SYS_MAX_FLASH_BANKS=2 +CONFIG_SYS_MAX_FLASH_BANKS_DETECT=y +# 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 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_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 is not set +# CONFIG_ETH_DESIGNWARE_MESON8B is not set +# CONFIG_ETHOC is not set +# CONFIG_FMAN_ENET 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 is not set +# 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 is not set +# 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_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 +CONFIG_NVME_PCI=y +# CONFIG_DM_PCI_COMPAT is not set +CONFIG_PCI_PNP=y +# CONFIG_PCI_REGION_MULTI_ENTRY is not set +# CONFIG_PCI_CONFIG_HOST_BRIDGE is not set +# CONFIG_PCI_SRIOV is not set +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 +# 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_X86_PCH7 is not set +# CONFIG_X86_PCH9 is not set + +# +# 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=y +# CONFIG_RNG_MSM is not set +# 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 +# +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=y +# CONFIG_RTC_MV is not set +# CONFIG_RTC_S35392A is not set +# CONFIG_RTC_MC146818 is not set +# CONFIG_RTC_M41T62 is not set +# CONFIG_RTC_STM32 is not set +# CONFIG_RTC_ABX80X 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_DEBUG_UART_PL010 is not set +CONFIG_DEBUG_UART_PL011=y +CONFIG_DEBUG_UART_SHIFT=2 +# CONFIG_DEBUG_UART_ANNOUNCE is not set +# CONFIG_DEBUG_UART_SKIP_INIT is not set +# CONFIG_ALTERA_JTAG_UART is not set +# CONFIG_ALTERA_UART is not set +# CONFIG_ARC_SERIAL is not set +# CONFIG_ARM_DCC is not set +# CONFIG_ATMEL_USART is not set +# CONFIG_BCM6345_SERIAL is not set +# CONFIG_COREBOOT_SERIAL is not set +# 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 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 + +# +# Sound support +# +# CONFIG_SOUND is not set +# CONFIG_SOUND_MAX98357A 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 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 +# +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 +# CONFIG_SYSRESET_RESETCTL is not set +# CONFIG_SYSRESET_MPC83XX is not set +# CONFIG_TEE is not set +# CONFIG_DM_THERMAL is not set + +# +# Timer Support +# +# CONFIG_TIMER is not set + +# +# TPM support +# +CONFIG_TPM_V1=y +# CONFIG_TPM_ATMEL_TWI is not set +# CONFIG_TPM_AUTH_SESSIONS is not set +# CONFIG_TPM_FLUSH_RESOURCES is not set +# CONFIG_TPM_LOAD_KEY_BY_SHA1 is not set +# 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 + +# +# 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_GENERIC 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 +# CONFIG_TYPEC_TCPM 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 is not set +# 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=0x800000 +# CONFIG_VIDEO_COPY is not set +# CONFIG_VIDEO_DAMAGE is not set +# 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 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 + +# +# TrueType Fonts +# +# CONFIG_VIDCONSOLE_AS_LCD is not set +CONFIG_VIDEO_BOCHS=y +CONFIG_VIDEO_BOCHS_SIZE_X=1280 +CONFIG_VIDEO_BOCHS_SIZE_Y=1024 +# 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_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 +# 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_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_TEGRA20 is not set +# CONFIG_TEGRA_BACKLIGHT_PWM is not set +# CONFIG_VIDEO_MXS is not set +CONFIG_CONSOLE_SCROLL_LINES=1 +# 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=y +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_RNG=y + +# +# 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 is not set +CONFIG_FS_EXT4=y +# CONFIG_EXT4_WRITE is not set +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_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 is not set +# 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_LIB_UUID=y +# CONFIG_RANDOM_UUID is not set +CONFIG_SEMIHOSTING=y +CONFIG_SEMIHOSTING_FALLBACK=y +CONFIG_PRINTF=y +CONFIG_SPRINTF=y +CONFIG_STRTO=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 is not set +# CONFIG_BITREVERSE is not set +# CONFIG_TRACE is not set +# CONFIG_CIRCBUF is not set +# 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 +# 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=y +CONFIG_TPM_PCR_ALLOCATE=y + +# +# Android Verified Boot +# + +# +# Hashing Support +# +# CONFIG_BLAKE2 is not set +CONFIG_SHA1=y +CONFIG_SHA256=y +CONFIG_SHA512=y +CONFIG_SHA384=y +# CONFIG_SHA_HW_ACCEL is not set +CONFIG_MD5=y +CONFIG_CRC8=y +CONFIG_CRC16=y +CONFIG_CRC32=y + +# +# Compression Support +# +CONFIG_LZ4=y +CONFIG_LZMA=y +# CONFIG_LZO is not set +CONFIG_GZIP=y +# CONFIG_ZLIB_UNCOMPRESS is not set +# CONFIG_BZIP2 is not set +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=0x0 +CONFIG_SYS_FDT_PAD=0x3000 + +# +# 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_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_ARCH_MEM_MAP is not set +# 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_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 +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/module/u-boot/qemu_arm64_12mb/target.cfg b/config/module/u-boot/qemu_arm64_12mb/target.cfg new file mode 100644 index 00000000..50080091 --- /dev/null +++ b/config/module/u-boot/qemu_arm64_12mb/target.cfg @@ -0,0 +1,4 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +tree="default" +xarch="aarch64-elf arm-eabi" diff --git a/config/module/u-boot/x86/nuke.list b/config/module/u-boot/x86/nuke.list new file mode 100644 index 00000000..f3a3fcc3 --- /dev/null +++ b/config/module/u-boot/x86/nuke.list @@ -0,0 +1 @@ +test/lib/strlcat.c diff --git a/config/module/u-boot/x86/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch b/config/module/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/module/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/module/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/module/u-boot/x86/patches/0002-x86-Avoid-clearing-the-VESA-display.patch new file mode 100644 index 00000000..7fb75772 --- /dev/null +++ b/config/module/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/module/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch b/config/module/u-boot/x86/patches/0003-x86-Avoid-clearing-the-VESA-display.patch new file mode 100644 index 00000000..bb33d6fd --- /dev/null +++ b/config/module/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/module/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/module/u-boot/x86/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch new file mode 100644 index 00000000..ffc7b581 --- /dev/null +++ b/config/module/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/module/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/module/u-boot/x86/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch new file mode 100644 index 00000000..ec033187 --- /dev/null +++ b/config/module/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 26.01 Magnanimous Max (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 +zcmeI4X;4&Wy2qdHrW-_vf~Q+fvxtHMDuIZCglHm=fVhAxir~hgf>ENNF(W3?XpH+1 +zw}==uio$3#35sl^*F+S*+^So3t7fU1n$PoLKHXb0U#6y<|MQ++Xy|4+$n8^eeap7r +zKIil~zy3eV`@HYzCVj>4wvlMbK18wTU9&xO<R`XMCDHE#l?Umt2@lCAljLtD*%VHp +z6Rczowo=GcnJlK66y`gf!Y4%Gm<1$-#E>MXP)LkS)`eD*V$#TxIG3XQWs30+r8r5Z +zg_C89GDgvK|5-F+Vl2(^jiNcmI9lKvNArz|lx9q(#l}>MiIQplOqmi=acxsJNpBR8 +z<X4UUXCy_xPtyE6k`k*(TD*tCvSf-V1Ybb{P1_z#p*8PP#ICs%z9)&o_b#NcU!~F9 +zY?-2qWtzJ|rngqhl(bH!v=W)7m&+7cHI3pn;dxsmNlS~#ytb62oLv;MC6~fJ&7jcF +zb4V)NMw$5BIp$DW6Jn*M0dbUWe1}#CCQwPxOv;}l)3&fs+A?J})deThhx26Gjn9x{ +z%%EIjHsu?0XuYw3Hk(${W@8Ce8`o2P;Bu;)P>4qXWv!7Z1ANPhWGVq`L7_~g`7&)^ +zDN{wBOjUT)Etjc22YMKf<8gtc2t16fc>GAx#5R(GZ{zWRBx^fKZ{nDQ8zjx>AZczF +z^y(%l?YAW5og*pZ5k4pSB|nf<hvO<9lC<+4Nh_a_RDeh6FWB~!qz`+s{~1a3y%c(I +z8HFA$AnTE0vL0PW))N&ZpRT5<M?N9BVF!hrsiTnd`zYk%XEgQdX$omPL?M@tllkI# +zlFocjQ@=Y)mgXih-@HMV)@HKYxkFNG2bu5vMCKnKlDVyiq(ivg2|Ui?noW4zK>rS& +zANJDm@Y!_2vWQMw7traDG&&!;fEwgfYK(Y`j>TH(TwEwM&9Ty%`7)i0ilT2L<Ebe! +zk(v`^x(8c)zgVUR2@%x(Ryf^XBvVgPDD|YtbZgcux*k27ZpK8@owz9aDL#@8Oj=5Z +zgEHx;^d5Z$-#P?)ocuthqj)}>DN|FrOgEOu)cT%GPm-<FyHHkQ=il^y%j@=9f!7NB +zJ1AhbSWH^|9KK5W)N7N_Y_{R?lNKd3>uE-1<%~!Z`1E><#SB|(se#Y5b!$~s)#m9e +zp|95XEEb{(%vV*ll?nA4)6ZhjGoV7anXRlP>oSW8fTl{DgpufLPC-sF6Dq3&A^^2# +zV)!5vIsmn1VvEI>U}c)H8BsC;3Th6}3_>)M4bWF}fE*}5<W#d2QLIHik!mVARm0ZW +z1cZe-Q)9J4vw$-gFbeA@np6<63lFTWo`EGE&E;uUjIb_KUH##Qk($iYB1E<VZ~Jzn +zK`mMsxn+7a@II<B=`;zbC*3ySeYA6nMuV7W2IK9lMLFoFK@(#TVZ2?nwf+tZYpJTn +zit-kLx4VWdY@6R{DBB=HcJA6$yL<P(Spe+UG*Z@JkP~=&_SH`W-Nc!*VrE7A3r=ki +z64lh!*6ypXuisx+_vvR!`(zQrYN9kGng!$TtKYx>)6eX9-1&GW6M8+Qk)kK=177|9 +zPaSkN5kHQ86@X@51sKEVjww6%px!_{P%c7kIJW8<pU}W|7=tep?Qy3bi+G?8^6JO1 +z+Qn%0rdC9v9d3-vc%OfM;8z^V>Yb1%AU1a1eB97LQ>h^W#I11!-+_i`NT?bRg=Nx$ +z1<56AOCy+2)p-yg2;IRA>K(Xr;8IhX+7mMkk#YWll9JN(8`iOgY5*~&MaO(Rh>!6O +zT)NcMba@d@Y*HB}2r$E2Yk{|^tZXUf5o*SETplet<`Wl2A>XB@%a<=-**k^_3IHj* +zbp57H8_O$JAe7Yr@;SIotaB3D@WA)&x8LrC52~)daAIA=hO&+2Pkvc}z8Vu-EPjH~ +z6m8FfcDyFwUAc0l!H0A@b!Qf{2r@*hsCe?US3Mvu&c#)<qM+h@@I6-V%GIll7v8{K +ze3c18AtXcair!}{RV&EqK*U81XjhN%px)JMXp8Y}1oc+t_Y&QC_J9>sKia_u2jGG4 +zs^Gi!4JR5jb!Im6hfjb0{6&uHQ{ciVrxC@D%);_rwc$a+3rjEw;HE0snDsi{oxT?g +zsMb-;$ftFm3+pz)`PldD>amH@ex0V&u7c8R^5=ULoHE3JLn~`G8)(W4v~=Xep%3-6 +zmv7+A0^TK&mu>1P)>ZKM|Ar-#kZxR>-eMR&uL%p^247z=>C|Q`qBr{E^|!8_u<`u4 +zGhZ#9G|30HR?Mxi4lf}-y%6yJWVK!lC)P2al34~CR}eDZ$x|neeR=rc+}X2Z0|NsB +zj1Dn}yd%X1rdGD_4|szo8xFIb=wm0|0Ow=A#*639d@b<4IGC6aKW9$L!W6XF0Fi!h +zT~|Z9zJhxPG2aWML6tFr3@FsQ>_~ieyDI8kJTLH$9#-%K90Q`+8SS?$IL!^<gN0iK +zAYw#a7K8(GQQ#(Y1s~KqbNa-wBM!WI3Y+c!d4Y<I;@Wz>-p?H5YA>S6%-62k1>y5U +zI^UTyr%oL^^5qu?-%W^*U)Wzh8)9sL!yE1K<L8tL0<IK%zftRgM0=Y&st4nqgnC~d +zV!SzS=u%SVB_&N$L^K!-gnvr2%LoDc`r6y?_hhQHu#RSO;&T%k*Di|CJ${t&65Xqp +zlA4r+dU={Lcp6uHPkvspA~RT-!r3Ag0=BoexAk<WOftwY4Ic2m;miWO!v_y0zUf}R +z)YJvQTf1R{C`h0D^7GT)XU`w3%$%$+nk^CpY`fpq)7|-<8Vh48O*E6$8#ruSYgF(! +z@rlgh5*W4@HoW!VgL;q;c+Z|cgvZ?mqP^v`we@s$bs>f&yV*zjY{o5i(q9-%=fD%8 +z3-vtVVY0?}WiYNyy$8&P_Crpv%^TagJ32b=-NdVra@mh#Jo0zreD=KT%q(sIAs^2r +zF&o-cUjD?Uo*j=7e_WXk84cZnuO)l*d=`X9gIhd=u08Q3#=q@0bm4of9#7Wnc+Vd^ +zU@k}N>$`tD=QrIQot^jYwcJt>B1kW8@DRF;cl^lVLkANR<LA8XM!XcEUWu4XmUHO- +z%)ZxOJy7=D=h$HDwzS;3o;7*_iPEmPjA+UWMLm&OkeA&%Us6)Cn2B#H+lbKkg(LU5 +zhz+NDNGxr_`R=ydym_m6`RMs{q`NSPkDU)S%TXRS65m8k;HIUfCM74cdLndz_mm^o +z#k$DL?QPxN-JP9`*L?l@>e2I=NS8K{&z4!B-WTsCycz$tJL|G>1>Pnlbe{_OY>{gd +z5PXVp@3yquymkHYV-@!0Y0O?%K&9e4&ZC;h%WlMj?<wjbHh9>8dTd>AwHgfRD{o`k +zfuf+DeXqN#^X@%?mo-&QhDMF1a{*M;J9YGkZP;+9UYrQsQVw0t%bfV&d(4MnmfPf@ +zDH$1=nVH!c*%=wx+1bmo-WU1Wp4Ue6jHQAlP6Zngx+jrYjvi7fK6iL2DXB2-+EUKT +z8!I^R!S|HVXtfsz3a9J;s^)>bC`Pltu@N$!Bk_5zS>Sx7N@h_;H5QNMd(j6zlvjE; +zn4=!t93sQSx+RTFXvgDvnJYfGp_`I~yllf0&ezM<WjZvjqwMvcSSeOJb#u_6!%H!y +zB}g<E&Y%7I^r>UE#OEQiFrLWE8*Q=i?AcF_ynK7~Iix>{hdve(bmafeug{<R`XuAA +zdY*~`;Mp>Zg2(DTcql@a1q>P&KzJcfZYRC-)v04&a%N#Xccbn+N8-a0pFOiU)Kd)X +zL4+}GwyhHQOj^9yvwHA7c0Q3=5W2`L9J;KVy}`ihBVm}205dDiCm?Wkoa<aor0G;q +z6d*RZUd9S3Mm2<n3*QTay7i=C&>XwDB2=1A=i_4x2nY-ejE#+pQ}~4Mab`hmC>7rT +zx)*&@RL+DP1jBU9CKUZnN(U{Y&T}R{sHY4Y0|(uedX;nWVYmkE_T#iOpc%raIn;x7 +z*|@IOZEtTKXZ;3oDjS@NhOdL~iO@wo+COv=BJJ%x<C6hBP`PZzlA1ypfzbUAQSrIr +ziJ5rUI3++Alp$WQ#eJ44c+Xu6Qt<Wkc$;sssFZ@A-hu16;Jpxd%=aqB+#wViZkHLW +z0u%(k0ioO1!v$%FcjBWTwAsw}pA4;o)x&h7!~1-EYaHt$KD_$vXu`O_>+JM$eAtCV +z75}4yj(zWb4^MUPVj;+Wh*zJXV34D#!Xlr*>*~@BA6K=RHUXg?7OA>By6)a>Q85c2 +zC!G-_HWy?*VO-3_mubYl_|R}cAz+`PUPmY7(-I#5#qu{>mqS;~#NXGBeu{vKaXGW_ +zD$sQ;@d5C*g4e}se9ZS)OMJ*NnGc2YA+a!C^JC^4!&jtUaVR4PiZwLk<-2!bTr~W$ +z`W0Vf45#xYLr;&g1bOe~P0&4Bjb*AaobXk@6?Xu!1c}g9mLS20;^tLfWDMsc$`NaP +zSc1F(^&YL(9N!e79^_N-inXPmo(!D$T6lf=(WBq4UR^Bd$8P~ag`tVQ=TQynJ!b0` +z7l&xd|B#`VDY3zHz+0m&K4j>0+<R$;dTiV^Yl_0Ore6@_iO_|5MMb&V;`1YYGph&r +zii?Yjii!#`xl{RV4HfP`{9E9F%}(_I7|Jtvm236GUvAV#5WVk$2L-K6IO-FP(;JAU +zDzU-NXKVR9gCD2sjrO#dCfP&Rj%Sl_v}YQh<FRhNoHI*Np%V|i57@?<h!i-WNPI4M +z4nXfCf<Pp`0enSyxnWie#%R9wJ4)kY!C}sdA!OA+HplD2JdAf<{@FWGh=a#Xrx3yH +z%@sieuqodSmva+VG`(YDWjT5%J`vRUIL-@0p8fvAWNV&NE4RG@Zxq#xCubEnM-8`V +zVq-4uoDCCY<FFfEm9+*HpPSY{R~Lq{8+ggSlSA|SvkXSf<^1BUC3A6Uy<`n@8^49C +ztXwCcjf3$<bV`Z8Kf_HwSh&J4lX6RWEWcPA5yg-PnUr7Yh7JT2PN$VR6$*af0+`Fv +zsr*^MkaDQp37Qax4;FqPZp5oR)%d&(fD+2mRjcxB0V`=|5m0<$xLQ$>eZ2Epz<L&+ +zix^COx!J#w@A+Ua>>;uiVczD2E064wL}5kVr~*bt$M<UTi@Y+*js#Ewo}O1WMslzh +zj^STgg%;&$mk;t4iYc!b#2LXQ5f~VNxs2DQg@t_it2n`E5|HJCdVZ@oLyti3|Kmdd +zRj7<@A({l_u}!Q>!p<n?y)e}n+8{)^g@_G{vf83O3uElCuZqLeTGY=`8sJNV+F5$G +zSsj01P}8M>9(-6#7}`g@xK~dmP3s5kinMjte1NeKzgjMxQT*j1Jr97^&`ZoMwOraO +zi!hoS)%qDwvxQ$j#@F4~3cOa}|AzvoVXtkk*iq;69{!wJ&F<R#tn|p@wIz|hf1v>K +zp*LtDMV3|6?Oc+Vhpz*BYJdNo@)t|~JD$(w=_n7|11mSzRp4i9k=XxU#m?H@=x;(l +zdGGF>+`ovvR8dt{iT?NK&#eU@`hVc<<x2mr+}|qtoMB0-EzHlrXTxAckz4!q%lq{! +zs%m%OnE5y+x^hPi&aW?4`jy<@&;1?S_kc|_{@Gf<=9;1cJV)aZMp?9!R!|;AQaSCR +zYT8b_DIU)?*iuLN*q`p<{XD%6!#nrjo!jw_3cMqeKB65|Cf-kM0~~|q)V6L*(mb(A +z7m$v>Z}#VxFaLKY7E{j>{j=fa%YS_L^5s9TW3Bv8L{Dm*@Bio;(ZauBdxLXZ^i})< +z?=aEBUgx&*Z-_d+!UXY;JIiXz#C7<$o%$_Xi2kRAC~z(Q%FKV^NB*UXZrI2B>BjFd +h=Y>|w|C6Zk68;X)R-AjChtJK+<qqA3JjSNqzW{|XuQ>n! + +literal 6932 +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 + +-- +2.39.5 + diff --git a/config/module/u-boot/x86/patches/0006-i-made-it-purple.patch b/config/module/u-boot/x86/patches/0006-i-made-it-purple.patch new file mode 100644 index 00000000..594a1b35 --- /dev/null +++ b/config/module/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/module/u-boot/x86/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/module/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/module/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/module/u-boot/x86/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch b/config/module/u-boot/x86/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch new file mode 100644 index 00000000..ac34a03d --- /dev/null +++ b/config/module/u-boot/x86/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch @@ -0,0 +1,50 @@ +From 236cb1c25735491dcac87acdf5beb3859463b9d4 Mon Sep 17 00:00:00 2001 +From: Leah Rowe <leah@libreboot.org> +Date: Wed, 1 Apr 2026 07:39:07 +0100 +Subject: [PATCH 1/1] u-boot: fix build error on newer hostcc + +because... they changed a flag. + +because they're gnu. this fixes building +u-boot x86 on arch linux. + +Signed-off-by: Leah Rowe <leah@libreboot.org> +--- + arch/sandbox/config.mk | 4 ++-- + arch/x86/config.mk | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk +index 405843800e9..2ee59817252 100644 +--- a/arch/sandbox/config.mk ++++ b/arch/sandbox/config.mk +@@ -46,10 +46,10 @@ cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \ + + ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64)) + EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds + OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \ +diff --git a/arch/x86/config.mk b/arch/x86/config.mk +index 2e3a7119e79..329632164f7 100644 +--- a/arch/x86/config.mk ++++ b/arch/x86/config.mk +@@ -127,7 +127,7 @@ endif + endif + + ifdef CONFIG_X86_64 +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + endif +-- +2.47.3 + diff --git a/config/module/u-boot/x86/target.cfg b/config/module/u-boot/x86/target.cfg new file mode 100644 index 00000000..dec79f53 --- /dev/null +++ b/config/module/u-boot/x86/target.cfg @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +rev="f919c3a889f0ec7d63a48b5d0ed064386b0980bd" # v2024.10 + +tree="x86" diff --git a/config/module/u-boot/x86_64/nuke.list b/config/module/u-boot/x86_64/nuke.list new file mode 100644 index 00000000..f3a3fcc3 --- /dev/null +++ b/config/module/u-boot/x86_64/nuke.list @@ -0,0 +1 @@ +test/lib/strlcat.c diff --git a/config/module/u-boot/x86_64/patches/0001-x86-serial-ns16550-Allow-the-UART-to-be-silently-dis.patch b/config/module/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/module/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/module/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch b/config/module/u-boot/x86_64/patches/0002-x86-Avoid-clearing-the-VESA-display.patch new file mode 100644 index 00000000..7fb75772 --- /dev/null +++ b/config/module/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/module/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch b/config/module/u-boot/x86_64/patches/0003-x86-Avoid-clearing-the-VESA-display.patch new file mode 100644 index 00000000..bb33d6fd --- /dev/null +++ b/config/module/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/module/u-boot/x86_64/patches/0004-Support-auto-boot-timeout-delay-bootflow-menu.patch b/config/module/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/module/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/module/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch b/config/module/u-boot/x86_64/patches/0005-Libreboot-branding-version-on-the-bootflow-menu.patch new file mode 100644 index 00000000..ec033187 --- /dev/null +++ b/config/module/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 26.01 Magnanimous Max (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/module/u-boot/x86_64/patches/0006-i-made-it-purple.patch b/config/module/u-boot/x86_64/patches/0006-i-made-it-purple.patch new file mode 100644 index 00000000..594a1b35 --- /dev/null +++ b/config/module/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/module/u-boot/x86_64/patches/0008-scripts-dtc-pylibfdt-libfdt.i_shipped-Use-SWIG_Appen.patch b/config/module/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/module/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/module/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch b/config/module/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch new file mode 100644 index 00000000..50b9ca0b --- /dev/null +++ b/config/module/u-boot/x86_64/patches/0009-u-boot-fix-build-error-on-newer-hostcc.patch @@ -0,0 +1,50 @@ +From 9408a39adcc458b6af7e11f9a4780296e2aa480a Mon Sep 17 00:00:00 2001 +From: Leah Rowe <leah@libreboot.org> +Date: Wed, 1 Apr 2026 07:39:07 +0100 +Subject: [PATCH 1/1] u-boot: fix build error on newer hostcc + +because... they changed a flag. + +because they're gnu. this fixes building +u-boot x86 on arch linux. + +Signed-off-by: Leah Rowe <leah@libreboot.org> +--- + arch/sandbox/config.mk | 4 ++-- + arch/x86/config.mk | 4 ++-- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/arch/sandbox/config.mk b/arch/sandbox/config.mk +index 405843800e9..2ee59817252 100644 +--- a/arch/sandbox/config.mk ++++ b/arch/sandbox/config.mk +@@ -46,10 +46,10 @@ cmd_u-boot-spl = (cd $(obj) && $(CC) -o $(SPL_BIN) -Wl,-T u-boot-spl.lds \ + + ifeq ($(HOST_ARCH),$(HOST_ARCH_X86_64)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_x86_64_efi.lds +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_X86)) + EFI_LDS := ${SRCDIR}/../../../arch/x86/lib/elf_ia32_efi.lds +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + else ifeq ($(HOST_ARCH),$(HOST_ARCH_AARCH64)) + EFI_LDS := ${SRCDIR}/../../../arch/arm/lib/elf_aarch64_efi.lds + OBJCOPYFLAGS += -j .text -j .secure_text -j .secure_data -j .rodata -j .data \ +diff --git a/arch/x86/config.mk b/arch/x86/config.mk +index 2e3a7119e79..329632164f7 100644 +--- a/arch/x86/config.mk ++++ b/arch/x86/config.mk +@@ -127,7 +127,7 @@ endif + endif + + ifdef CONFIG_X86_64 +-EFI_TARGET := --target=efi-app-x86_64 ++EFI_TARGET := --output-target=efi-app-x86_64 + else +-EFI_TARGET := --target=efi-app-ia32 ++EFI_TARGET := --output-target=efi-app-ia32 + endif +-- +2.47.3 + diff --git a/config/module/u-boot/x86_64/target.cfg b/config/module/u-boot/x86_64/target.cfg new file mode 100644 index 00000000..b9732813 --- /dev/null +++ b/config/module/u-boot/x86_64/target.cfg @@ -0,0 +1,5 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +rev="f919c3a889f0ec7d63a48b5d0ed064386b0980bd" # v2024.10 + +tree="x86_64" |
