[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2] Add support for google gru_bob and gru_kevin
From: |
Leah Rowe |
Subject: |
[PATCH v2] Add support for google gru_bob and gru_kevin |
Date: |
Tue, 16 Jan 2024 09:47:13 +0000 |
From: Leah Rowe <leah@libreboot.org>
These are chromebooks using Rockchip RK3399 SoCs.
I've largely re-used GNU Boot's current U-Boot logic,
which only handles a single tree. I'm inheriting all
of this from Caneboot which, although it can support
multiple u-boot trees, only uses one anyway. This patch
bootstraps the necessary cross compilers from coreboot
crossgcc, so that U-Boot can be compiled.
U-Boot configs are provided per board. Thanks go to
Alper Nebi Yasak who initially did this work in the
Libreboot project.
GNU Kevin.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Signed-off-by: Leah Rowe <info@minifree.org>
---
.gitignore | 2 +
resources/coreboot/cros/blobs.list | 11 +
resources/coreboot/cros/board.cfg | 4 +
...or-coreboot-images-built-without-a-p.patch | 39 +
...sable-coreboot-related-BL31-features.patch | 28 +
...-mirrorservice.org-for-gcc-downloads.patch | 36 +
resources/coreboot/gru_bob/board.cfg | 3 +
.../gru_bob/config/libgfxinit_corebootfb | 950 +++++++
resources/coreboot/gru_kevin/board.cfg | 3 +
.../gru_kevin/config/libgfxinit_corebootfb | 947 +++++++
resources/coreboot/qemu_arm64_12mb/board.cfg | 3 +
.../config/libgfxinit_corebootfb | 397 +++
resources/packages/roms_helper/boot | 91 +-
.../packages/u-boot-libre/deblob-download | 23 +-
.../packages/u-boot-libre/deblob-release | 2 +-
resources/u-boot/default/blobs.list | 3 +
...399-Set-hardcoded-clock-rates-same-a.patch | 100 +
...-improve-UEFI-experience-on-DM_VIDEO.patch | 513 ++++
.../0003-Add-video-damage-tracking.patch | 2411 +++++++++++++++++
...on-t-error-on-reentrant-regulator-ac.patch | 42 +
...hip-Remove-binman-image-descriptions.patch | 307 +++
...Bochs-console-buffering-USB-keyboard.patch | 348 +++
resources/u-boot/gru_bob/config/default | 2342 ++++++++++++++++
resources/u-boot/gru_kevin/config/default | 2342 ++++++++++++++++
.../u-boot/qemu_arm64_12mb/config/default | 1769 ++++++++++++
25 files changed, 12699 insertions(+), 17 deletions(-)
create mode 100644 resources/coreboot/cros/blobs.list
create mode 100644 resources/coreboot/cros/board.cfg
create mode 100644
resources/coreboot/cros/patches/0019-Remove-warning-for-coreboot-images-built-without-a-p.patch
create mode 100644
resources/coreboot/cros/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch
create mode 100644
resources/coreboot/cros/patches/0032-use-mirrorservice.org-for-gcc-downloads.patch
create mode 100644 resources/coreboot/gru_bob/board.cfg
create mode 100644 resources/coreboot/gru_bob/config/libgfxinit_corebootfb
create mode 100644 resources/coreboot/gru_kevin/board.cfg
create mode 100644 resources/coreboot/gru_kevin/config/libgfxinit_corebootfb
create mode 100644 resources/coreboot/qemu_arm64_12mb/board.cfg
create mode 100644
resources/coreboot/qemu_arm64_12mb/config/libgfxinit_corebootfb
create mode 100644
resources/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
create mode 100644
resources/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
create mode 100644
resources/u-boot/default/patches/0003-Add-video-damage-tracking.patch
create mode 100644
resources/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
create mode 100644
resources/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
create mode 100644
resources/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
create mode 100644 resources/u-boot/gru_bob/config/default
create mode 100644 resources/u-boot/gru_kevin/config/default
create mode 100644 resources/u-boot/qemu_arm64_12mb/config/default
diff --git a/.gitignore b/.gitignore
index 8994d23..793671e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,6 +32,8 @@
/tmp/
/TODO
/TODO/
+/u-boot
+/u-boot/
/version
/versiondate
/util/dell-flash-unlock/dell_flash_unlock
diff --git a/resources/coreboot/cros/blobs.list
b/resources/coreboot/cros/blobs.list
new file mode 100644
index 0000000..f9a204a
--- /dev/null
+++ b/resources/coreboot/cros/blobs.list
@@ -0,0 +1,11 @@
+Documentation
+3rdparty/arm-trusted-firmware/plat/mediatek/mt8173/drivers/spm/spm_hotplug.c
+3rdparty/arm-trusted-firmware/plat/mediatek/mt8173/drivers/spm/spm_mcdi.c
+3rdparty/arm-trusted-firmware/plat/mediatek/mt8173/drivers/spm/spm_suspend.c
+3rdparty/arm-trusted-firmware/plat/rockchip/rk3368/drivers/ddr/rk3368_ddr_reg_resume_V1.05.bin
+3rdparty/chromeec/test/legacy_nvmem_dump.h
+3rdparty/vboot/tests/futility/data/bios_link_mp.bin
+3rdparty/vboot/tests/futility/data/bios_peppy_mp.bin
+3rdparty/chromeec/third_party/bmi260/accelgyro_bmi260_config_tbin.h
+3rdparty/vboot/tests/futility/data/bios_peppy_dev.bin
+3rdparty/stm/Test/FrmPkg/Core/Init/Dmar.h
diff --git a/resources/coreboot/cros/board.cfg
b/resources/coreboot/cros/board.cfg
new file mode 100644
index 0000000..be5de83
--- /dev/null
+++ b/resources/coreboot/cros/board.cfg
@@ -0,0 +1,4 @@
+cbtree="cros"
+romtype="normal"
+cbrevision="d862695f5f432b5c78dada5f16c293a4c3f9fce6"
+arch="AArch64"
diff --git
a/resources/coreboot/cros/patches/0019-Remove-warning-for-coreboot-images-built-without-a-p.patch
b/resources/coreboot/cros/patches/0019-Remove-warning-for-coreboot-images-built-without-a-p.patch
new file mode 100644
index 0000000..3f21ad0
--- /dev/null
+++
b/resources/coreboot/cros/patches/0019-Remove-warning-for-coreboot-images-built-without-a-p.patch
@@ -0,0 +1,39 @@
+From 7d5452bc3358cf82eea48fde312494bcb4ca8101 Mon Sep 17 00:00:00 2001
+From: Nicholas Chin <nic.c3.14@gmail.com>
+Date: Fri, 12 May 2023 19:55:15 -0600
+Subject: [PATCH 19/22] Remove warning for coreboot images built without a
+ payload
+
+I added this in upstream to prevent people from accidentally flashing
+roms without a payload resulting in a no boot situation, but in
+libreboot lbmk handles the payload and thus this warning always comes
+up. This has caused confusion and concern so just patch it out.
+---
+ payloads/Makefile.inc | 13 +------------
+ 1 file changed, 1 insertion(+), 12 deletions(-)
+
+diff --git a/payloads/Makefile.inc b/payloads/Makefile.inc
+index e735443a76..4f1692a873 100644
+--- a/payloads/Makefile.inc
++++ b/payloads/Makefile.inc
+@@ -49,16 +49,5 @@ distclean-payloads:
+ print-repo-info-payloads:
+ -$(foreach payload, $(PAYLOADS_LIST), $(MAKE) -C $(payload)
print-repo-info 2>/dev/null; )
+
+-ifeq ($(CONFIG_PAYLOAD_NONE),y)
+-files_added:: warn_no_payload
+-endif
+-
+-warn_no_payload:
+- printf "\n\t** WARNING **\n"
+- printf "coreboot has been built without a payload. Writing\n"
+- printf "a coreboot image without a payload to your board's\n"
+- printf "flash chip will result in a non-booting system. You\n"
+- printf "can use cbfstool to add a payload to the image.\n\n"
+-
+ .PHONY: force-payload coreinfo nvramcui
+-.PHONY: clean-payloads distclean-payloads print-repo-info-payloads
warn_no_payload
++.PHONY: clean-payloads distclean-payloads print-repo-info-payloads
+--
+2.39.2
+
diff --git
a/resources/coreboot/cros/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch
b/resources/coreboot/cros/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch
new file mode 100644
index 0000000..d179a05
--- /dev/null
+++
b/resources/coreboot/cros/patches/0023-HACK-Disable-coreboot-related-BL31-features.patch
@@ -0,0 +1,28 @@
+From 9f52555eac217623ad2edc72492f9ded6a5b538d Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Thu, 22 Jun 2023 16:44:27 +0300
+Subject: [PATCH] HACK: Disable coreboot related BL31 features
+
+I don't know why, but removing this BL31 make argument lets gru-kevin
+power off properly when shut down from Linux. Needs investigation.
+---
+ src/arch/arm64/Makefile.inc | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/arch/arm64/Makefile.inc b/src/arch/arm64/Makefile.inc
+index 6b49743633c3..e1982d92cc5c 100644
+--- a/src/arch/arm64/Makefile.inc
++++ b/src/arch/arm64/Makefile.inc
+@@ -158,9 +158,6 @@ BL31_MAKEARGS += LOG_LEVEL=40
+ # Always enable crash reporting, even on a release build
+ BL31_MAKEARGS += CRASH_REPORTING=1
+
+-# Enable coreboot-specific features like CBMEM console support
+-BL31_MAKEARGS += COREBOOT=1
+-
+ # Avoid build/release|build/debug distinction by overriding BUILD_PLAT
directly
+ BL31_MAKEARGS += BUILD_PLAT="$(BL31_BUILD)"
+
+--
+2.40.1
+
diff --git
a/resources/coreboot/cros/patches/0032-use-mirrorservice.org-for-gcc-downloads.patch
b/resources/coreboot/cros/patches/0032-use-mirrorservice.org-for-gcc-downloads.patch
new file mode 100644
index 0000000..8294740
--- /dev/null
+++
b/resources/coreboot/cros/patches/0032-use-mirrorservice.org-for-gcc-downloads.patch
@@ -0,0 +1,36 @@
+From 89c47fad6e97fc6a7113ebbdedfcc42ae2b6fc7f Mon Sep 17 00:00:00 2001
+From: Leah Rowe <leah@libreboot.org>
+Date: Sun, 5 Nov 2023 22:57:08 +0000
+Subject: [PATCH 1/1] use mirrorservice.org for gcc downloads
+
+the gnu.org 302 redirect often fails
+
+Signed-off-by: Leah Rowe <leah@libreboot.org>
+---
+ util/crossgcc/buildgcc | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/util/crossgcc/buildgcc b/util/crossgcc/buildgcc
+index 87f80ba7f6..b3aad5df7d 100755
+--- a/util/crossgcc/buildgcc
++++ b/util/crossgcc/buildgcc
+@@ -67,11 +67,11 @@ NASM_ARCHIVE="nasm-${NASM_VERSION}.tar.bz2"
+ # to the jenkins build as well, or the builder won't download it.
+
+ # GCC toolchain archive locations
+-GMP_BASE_URL="https://ftpmirror.gnu.org/gmp"
+-MPFR_BASE_URL="https://ftpmirror.gnu.org/mpfr"
+-MPC_BASE_URL="https://ftpmirror.gnu.org/mpc"
+-GCC_BASE_URL="https://ftpmirror.gnu.org/gcc/gcc-${GCC_VERSION}"
+-BINUTILS_BASE_URL="https://ftpmirror.gnu.org/binutils"
++GMP_BASE_URL="https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gmp"
++MPFR_BASE_URL="https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/mpfr"
++MPC_BASE_URL="https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/mpc"
++GCC_BASE_URL="https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/gcc/gcc-${GCC_VERSION}"
++BINUTILS_BASE_URL="https://www.mirrorservice.org/sites/ftp.gnu.org/gnu/binutils"
+ IASL_BASE_URL="https://github.com/acpica/acpica/archive/refs/tags"
+ # CLANG toolchain archive locations
+
LLVM_BASE_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${CLANG_VERSION}"
+--
+2.39.2
+
diff --git a/resources/coreboot/gru_bob/board.cfg
b/resources/coreboot/gru_bob/board.cfg
new file mode 100644
index 0000000..11b6d99
--- /dev/null
+++ b/resources/coreboot/gru_bob/board.cfg
@@ -0,0 +1,3 @@
+cbtree="cros"
+arch="AArch64"
+payload_uboot="y"
diff --git a/resources/coreboot/gru_bob/config/libgfxinit_corebootfb
b/resources/coreboot/gru_bob/config/libgfxinit_corebootfb
new file mode 100644
index 0000000..9502be1
--- /dev/null
+++ b/resources/coreboot/gru_bob/config/libgfxinit_corebootfb
@@ -0,0 +1,950 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# coreboot configuration
+#
+
+#
+# General setup
+#
+CONFIG_COREBOOT_BUILD=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_ALLOW_EXPERIMENTAL_CLANG is not set
+# CONFIG_ANY_TOOLCHAIN is not set
+# CONFIG_CCACHE is not set
+# CONFIG_IWYU is not set
+# CONFIG_FMD_GENPARSER is not set
+# CONFIG_UTIL_GENPARSER is not set
+CONFIG_OPTION_BACKEND_NONE=y
+CONFIG_COMPRESS_RAMSTAGE_LZMA=y
+# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set
+CONFIG_COMPRESS_PRERAM_STAGES=y
+CONFIG_COMPRESS_BOOTBLOCK=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+# CONFIG_COLLECT_TIMESTAMPS is not set
+# CONFIG_USE_BLOBS is not set
+# CONFIG_COVERAGE is not set
+# CONFIG_UBSAN is not set
+# CONFIG_ASAN is not set
+CONFIG_NO_STAGE_CACHE=y
+# CONFIG_CBMEM_STAGE_CACHE is not set
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_BOOTSPLASH_IMAGE is not set
+# CONFIG_FW_CONFIG is not set
+
+#
+# Software Bill Of Materials (SBOM)
+#
+# CONFIG_SBOM is not set
+# end of Software Bill Of Materials (SBOM)
+# end of General setup
+
+#
+# Mainboard
+#
+
+#
+# Important: Run 'make distclean' before switching boards
+#
+# CONFIG_VENDOR_51NB is not set
+# CONFIG_VENDOR_ACER is not set
+# CONFIG_VENDOR_ADLINK is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_APPLE is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BOSTENTECH is not set
+# CONFIG_VENDOR_BYTEDANCE is not set
+# CONFIG_VENDOR_CAVIUM is not set
+# CONFIG_VENDOR_CLEVO is not set
+# CONFIG_VENDOR_COMPULAB is not set
+# CONFIG_VENDOR_DELL is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_EXAMPLE is not set
+# CONFIG_VENDOR_FACEBOOK is not set
+# CONFIG_VENDOR_FOXCONN is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_INVENTEC is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIBRETREND is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_OCP is not set
+# CONFIG_VENDOR_OPENCELLULAR is not set
+# CONFIG_VENDOR_PACKARDBELL is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_PINE64 is not set
+# CONFIG_VENDOR_PORTWELL is not set
+# CONFIG_VENDOR_PRODRIVE is not set
+# CONFIG_VENDOR_PROTECTLI is not set
+# CONFIG_VENDOR_PURISM is not set
+# CONFIG_VENDOR_RAZER is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SAPPHIRE is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SIFIVE is not set
+# CONFIG_VENDOR_STARLABS is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_SYSTEM76 is not set
+# CONFIG_VENDOR_TI is not set
+# CONFIG_VENDOR_UP is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_PART_NUMBER="Bob"
+CONFIG_MAINBOARD_DIR="google/gru"
+CONFIG_DIMM_MAX=4
+CONFIG_DIMM_SPD_SIZE=256
+CONFIG_FMDFILE=""
+# CONFIG_NO_POST is not set
+CONFIG_MAINBOARD_VENDOR="Google"
+CONFIG_CBFS_SIZE=0x00800000
+CONFIG_CONSOLE_SERIAL=y
+CONFIG_MAX_CPUS=1
+CONFIG_POST_DEVICE=y
+CONFIG_UART_FOR_CONSOLE=0
+CONFIG_DEVICETREE="devicetree.cb"
+# CONFIG_VBOOT is not set
+# CONFIG_CHROMEOS is not set
+CONFIG_OVERRIDE_DEVICETREE=""
+CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=1
+CONFIG_CONSOLE_SERIAL_UART_ADDRESS=0xFF1A0000
+# CONFIG_CONSOLE_POST is not set
+CONFIG_MEMLAYOUT_LD_FILE="src/soc/rockchip/rk3399/memlayout.ld"
+CONFIG_MAX_ACPI_TABLE_SIZE_KB=144
+CONFIG_SPI_FLASH_WINBOND=y
+
+#
+# Asurada
+#
+# CONFIG_BOARD_GOOGLE_ASURADA is not set
+# CONFIG_BOARD_GOOGLE_HAYATO is not set
+# CONFIG_BOARD_GOOGLE_SPHERION is not set
+
+#
+# Auron
+#
+# CONFIG_BOARD_GOOGLE_AURON_PAINE is not set
+# CONFIG_BOARD_GOOGLE_AURON_YUNA is not set
+# CONFIG_BOARD_GOOGLE_BUDDY is not set
+# CONFIG_BOARD_GOOGLE_GANDOF is not set
+# CONFIG_BOARD_GOOGLE_LULU is not set
+# CONFIG_BOARD_GOOGLE_SAMUS is not set
+
+#
+# Beltino
+#
+# CONFIG_BOARD_GOOGLE_MCCLOUD is not set
+# CONFIG_BOARD_GOOGLE_MONROE is not set
+# CONFIG_BOARD_GOOGLE_PANTHER is not set
+# CONFIG_BOARD_GOOGLE_TRICKY is not set
+# CONFIG_BOARD_GOOGLE_ZAKO is not set
+
+#
+# Brya
+#
+# CONFIG_BOARD_GOOGLE_AGAH is not set
+# CONFIG_BOARD_GOOGLE_ANAHERA is not set
+# CONFIG_BOARD_GOOGLE_ANAHERA4ES is not set
+# CONFIG_BOARD_GOOGLE_AURASH is not set
+# CONFIG_BOARD_GOOGLE_BANSHEE is not set
+# CONFIG_BOARD_GOOGLE_BRASK is not set
+# CONFIG_BOARD_GOOGLE_BRYA0 is not set
+# CONFIG_BOARD_GOOGLE_CRAASK is not set
+# CONFIG_BOARD_GOOGLE_CRAASKOV is not set
+# CONFIG_BOARD_GOOGLE_CONSTITUTION is not set
+# CONFIG_BOARD_GOOGLE_CROTA is not set
+# CONFIG_BOARD_GOOGLE_FELWINTER is not set
+# CONFIG_BOARD_GOOGLE_GAELIN is not set
+# CONFIG_BOARD_GOOGLE_GIMBLE is not set
+# CONFIG_BOARD_GOOGLE_GIMBLE4ES is not set
+# CONFIG_BOARD_GOOGLE_GLADIOS is not set
+# CONFIG_BOARD_GOOGLE_GOTHRAX is not set
+# CONFIG_BOARD_GOOGLE_HADES is not set
+# CONFIG_BOARD_GOOGLE_KANO is not set
+# CONFIG_BOARD_GOOGLE_KINOX is not set
+# CONFIG_BOARD_GOOGLE_KULDAX is not set
+# CONFIG_BOARD_GOOGLE_JOXER is not set
+# CONFIG_BOARD_GOOGLE_LISBON is not set
+# CONFIG_BOARD_GOOGLE_MARASOV is not set
+# CONFIG_BOARD_GOOGLE_MITHRAX is not set
+# CONFIG_BOARD_GOOGLE_MOLI is not set
+# CONFIG_BOARD_GOOGLE_NIVVIKS is not set
+# CONFIG_BOARD_GOOGLE_NEREID is not set
+# CONFIG_BOARD_GOOGLE_OMNIGUL is not set
+# CONFIG_BOARD_GOOGLE_OSIRIS is not set
+# CONFIG_BOARD_GOOGLE_PIRRHA is not set
+# CONFIG_BOARD_GOOGLE_PRIMUS is not set
+# CONFIG_BOARD_GOOGLE_PRIMUS4ES is not set
+# CONFIG_BOARD_GOOGLE_PUJJO is not set
+# CONFIG_BOARD_GOOGLE_QUANDISO is not set
+# CONFIG_BOARD_GOOGLE_REDRIX is not set
+# CONFIG_BOARD_GOOGLE_REDRIX4ES is not set
+# CONFIG_BOARD_GOOGLE_SKOLAS is not set
+# CONFIG_BOARD_GOOGLE_SKOLAS4ES is not set
+# CONFIG_BOARD_GOOGLE_TAEKO is not set
+# CONFIG_BOARD_GOOGLE_TAEKO4ES is not set
+# CONFIG_BOARD_GOOGLE_TANIKS is not set
+# CONFIG_BOARD_GOOGLE_ULDREN is not set
+# CONFIG_BOARD_GOOGLE_VELL is not set
+# CONFIG_BOARD_GOOGLE_VOLMAR is not set
+# CONFIG_BOARD_GOOGLE_XIVU is not set
+# CONFIG_BOARD_GOOGLE_YAVIKS is not set
+# CONFIG_BOARD_GOOGLE_YAVILLA is not set
+# CONFIG_BOARD_GOOGLE_ZYDRON is not set
+# CONFIG_BOARD_GOOGLE_NOKRIS is not set
+# CONFIG_BOARD_GOOGLE_DOCHI is not set
+
+#
+# Butterfly
+#
+# CONFIG_BOARD_GOOGLE_BUTTERFLY is not set
+
+#
+# Cherry
+#
+# CONFIG_BOARD_GOOGLE_CHERRY is not set
+# CONFIG_BOARD_GOOGLE_DOJO is not set
+# CONFIG_BOARD_GOOGLE_TOMATO is not set
+
+#
+# Kingler
+#
+# CONFIG_BOARD_GOOGLE_KINGLER is not set
+# CONFIG_BOARD_GOOGLE_STEELIX is not set
+# CONFIG_BOARD_GOOGLE_VOLTORB is not set
+# CONFIG_BOARD_GOOGLE_PONYTA is not set
+
+#
+# Krabby
+#
+# CONFIG_BOARD_GOOGLE_KRABBY is not set
+# CONFIG_BOARD_GOOGLE_TENTACRUEL is not set
+# CONFIG_BOARD_GOOGLE_MAGIKARP is not set
+
+#
+# Staryu
+#
+# CONFIG_BOARD_GOOGLE_STARMIE is not set
+
+#
+# Cyan
+#
+# CONFIG_BOARD_GOOGLE_BANON is not set
+# CONFIG_BOARD_GOOGLE_CELES is not set
+# CONFIG_BOARD_GOOGLE_CYAN is not set
+# CONFIG_BOARD_GOOGLE_EDGAR is not set
+# CONFIG_BOARD_GOOGLE_KEFKA is not set
+# CONFIG_BOARD_GOOGLE_REKS is not set
+# CONFIG_BOARD_GOOGLE_RELM is not set
+# CONFIG_BOARD_GOOGLE_SETZER is not set
+# CONFIG_BOARD_GOOGLE_TERRA is not set
+# CONFIG_BOARD_GOOGLE_ULTIMA is not set
+# CONFIG_BOARD_GOOGLE_WIZPIG is not set
+
+#
+# Daisy
+#
+# CONFIG_BOARD_GOOGLE_DAISY is not set
+
+#
+# Dedede
+#
+# CONFIG_BOARD_GOOGLE_BOTEN is not set
+# CONFIG_BOARD_GOOGLE_DIBBI is not set
+# CONFIG_BOARD_GOOGLE_DEDEDE is not set
+# CONFIG_BOARD_GOOGLE_DRAWCIA is not set
+# CONFIG_BOARD_GOOGLE_HABOKI is not set
+# CONFIG_BOARD_GOOGLE_MADOO is not set
+# CONFIG_BOARD_GOOGLE_WADDLEDOO is not set
+# CONFIG_BOARD_GOOGLE_WADDLEDEE is not set
+# CONFIG_BOARD_GOOGLE_LALALA is not set
+# CONFIG_BOARD_GOOGLE_MAGOLOR is not set
+# CONFIG_BOARD_GOOGLE_METAKNIGHT is not set
+# CONFIG_BOARD_GOOGLE_LANTIS is not set
+# CONFIG_BOARD_GOOGLE_GALTIC is not set
+# CONFIG_BOARD_GOOGLE_SASUKE is not set
+# CONFIG_BOARD_GOOGLE_STORO is not set
+# CONFIG_BOARD_GOOGLE_SASUKETTE is not set
+# CONFIG_BOARD_GOOGLE_KRACKO is not set
+# CONFIG_BOARD_GOOGLE_BLIPPER is not set
+# CONFIG_BOARD_GOOGLE_CRET is not set
+# CONFIG_BOARD_GOOGLE_PIRIKA is not set
+# CONFIG_BOARD_GOOGLE_CAPPY2 is not set
+# CONFIG_BOARD_GOOGLE_BUGZZY is not set
+# CONFIG_BOARD_GOOGLE_CORORI is not set
+# CONFIG_BOARD_GOOGLE_DRIBLEE is not set
+# CONFIG_BOARD_GOOGLE_GOOEY is not set
+# CONFIG_BOARD_GOOGLE_BEADRIX is not set
+# CONFIG_BOARD_GOOGLE_SHOTZO is not set
+# CONFIG_BOARD_GOOGLE_TARANZA is not set
+# CONFIG_BOARD_GOOGLE_BOXY is not set
+# CONFIG_BOARD_GOOGLE_DEXI is not set
+
+#
+# Drallion
+#
+# CONFIG_BOARD_GOOGLE_DRALLION is not set
+
+#
+# Eve
+#
+# CONFIG_BOARD_GOOGLE_EVE is not set
+
+#
+# Fizz
+#
+# CONFIG_BOARD_GOOGLE_FIZZ is not set
+# CONFIG_BOARD_GOOGLE_KARMA is not set
+# CONFIG_BOARD_GOOGLE_ENDEAVOUR is not set
+
+#
+# Foster
+#
+# CONFIG_BOARD_GOOGLE_FOSTER is not set
+
+#
+# Gale
+#
+# CONFIG_BOARD_GOOGLE_GALE is not set
+
+#
+# Geralt
+#
+# CONFIG_BOARD_GOOGLE_GERALT is not set
+
+#
+# Glados
+#
+# CONFIG_BOARD_GOOGLE_ASUKA is not set
+# CONFIG_BOARD_GOOGLE_CAROLINE is not set
+# CONFIG_BOARD_GOOGLE_CAVE is not set
+# CONFIG_BOARD_GOOGLE_CHELL is not set
+# CONFIG_BOARD_GOOGLE_GLADOS is not set
+# CONFIG_BOARD_GOOGLE_LARS is not set
+# CONFIG_BOARD_GOOGLE_SENTRY is not set
+
+#
+# Gru
+#
+# CONFIG_BOARD_GOOGLE_KEVIN is not set
+# CONFIG_BOARD_GOOGLE_GRU is not set
+CONFIG_BOARD_GOOGLE_BOB=y
+# CONFIG_BOARD_GOOGLE_SCARLET is not set
+# CONFIG_BOARD_GOOGLE_NEFARIO is not set
+# CONFIG_BOARD_GOOGLE_RAINIER is not set
+
+#
+# Guybrush
+#
+# CONFIG_BOARD_GOOGLE_GUYBRUSH is not set
+# CONFIG_BOARD_GOOGLE_NIPPERKIN is not set
+# CONFIG_BOARD_GOOGLE_DEWATT is not set
+
+#
+# Hatch
+#
+# CONFIG_BOARD_GOOGLE_AKEMI is not set
+# CONFIG_BOARD_GOOGLE_DRATINI is not set
+# CONFIG_BOARD_GOOGLE_HATCH is not set
+# CONFIG_BOARD_GOOGLE_HELIOS is not set
+# CONFIG_BOARD_GOOGLE_HELIOS_DISKSWAP is not set
+# CONFIG_BOARD_GOOGLE_JINLON is not set
+# CONFIG_BOARD_GOOGLE_KINDRED is not set
+# CONFIG_BOARD_GOOGLE_KOHAKU is not set
+# CONFIG_BOARD_GOOGLE_MUSHU is not set
+# CONFIG_BOARD_GOOGLE_NIGHTFURY is not set
+# CONFIG_BOARD_GOOGLE_PALKIA is not set
+
+#
+# Herobrine
+#
+
+#
+# (Herobrine requires 'Allow QC blobs repository')
+#
+
+#
+# Jecht
+#
+# CONFIG_BOARD_GOOGLE_GUADO is not set
+# CONFIG_BOARD_GOOGLE_JECHT is not set
+# CONFIG_BOARD_GOOGLE_RIKKU is not set
+# CONFIG_BOARD_GOOGLE_TIDUS is not set
+
+#
+# Kahlee
+#
+# CONFIG_BOARD_GOOGLE_ALEENA is not set
+# CONFIG_BOARD_GOOGLE_CAREENA is not set
+# CONFIG_BOARD_GOOGLE_GRUNT is not set
+# CONFIG_BOARD_GOOGLE_LIARA is not set
+# CONFIG_BOARD_GOOGLE_NUWANI is not set
+# CONFIG_BOARD_GOOGLE_TREEYA is not set
+
+#
+# Kukui
+#
+# CONFIG_BOARD_GOOGLE_KUKUI is not set
+# CONFIG_BOARD_GOOGLE_KRANE is not set
+# CONFIG_BOARD_GOOGLE_KODAMA is not set
+# CONFIG_BOARD_GOOGLE_KAKADU is not set
+# CONFIG_BOARD_GOOGLE_FLAPJACK is not set
+# CONFIG_BOARD_GOOGLE_KATSU is not set
+
+#
+# Jacuzzi
+#
+# CONFIG_BOARD_GOOGLE_JACUZZI is not set
+# CONFIG_BOARD_GOOGLE_JUNIPER is not set
+# CONFIG_BOARD_GOOGLE_KAPPA is not set
+# CONFIG_BOARD_GOOGLE_DAMU is not set
+# CONFIG_BOARD_GOOGLE_CERISE is not set
+# CONFIG_BOARD_GOOGLE_STERN is not set
+# CONFIG_BOARD_GOOGLE_WILLOW is not set
+# CONFIG_BOARD_GOOGLE_ESCHE is not set
+# CONFIG_BOARD_GOOGLE_BURNET is not set
+# CONFIG_BOARD_GOOGLE_FENNEL is not set
+# CONFIG_BOARD_GOOGLE_COZMO is not set
+# CONFIG_BOARD_GOOGLE_MAKOMO is not set
+# CONFIG_BOARD_GOOGLE_MUNNA is not set
+# CONFIG_BOARD_GOOGLE_PICO is not set
+
+#
+# Link
+#
+# CONFIG_BOARD_GOOGLE_LINK is not set
+
+#
+# Mistral
+#
+# CONFIG_BOARD_GOOGLE_MISTRAL is not set
+
+#
+# Myst
+#
+# CONFIG_BOARD_GOOGLE_MYST is not set
+
+#
+# Nyan
+#
+# CONFIG_BOARD_GOOGLE_NYAN is not set
+
+#
+# Nyan Big
+#
+# CONFIG_BOARD_GOOGLE_NYAN_BIG is not set
+
+#
+# Nyan Blaze
+#
+# CONFIG_BOARD_GOOGLE_NYAN_BLAZE is not set
+
+#
+# Oak
+#
+# CONFIG_BOARD_GOOGLE_OAK is not set
+# CONFIG_BOARD_GOOGLE_ELM is not set
+# CONFIG_BOARD_GOOGLE_HANA is not set
+
+#
+# Octopus
+#
+# CONFIG_BOARD_GOOGLE_AMPTON is not set
+# CONFIG_BOARD_GOOGLE_BLOOG is not set
+# CONFIG_BOARD_GOOGLE_BOBBA is not set
+# CONFIG_BOARD_GOOGLE_CASTA is not set
+# CONFIG_BOARD_GOOGLE_DOOD is not set
+# CONFIG_BOARD_GOOGLE_FLEEX is not set
+# CONFIG_BOARD_GOOGLE_FOOB is not set
+# CONFIG_BOARD_GOOGLE_GARG is not set
+# CONFIG_BOARD_GOOGLE_LICK is not set
+# CONFIG_BOARD_GOOGLE_MEEP is not set
+# CONFIG_BOARD_GOOGLE_OCTOPUS is not set
+# CONFIG_BOARD_GOOGLE_PHASER is not set
+# CONFIG_BOARD_GOOGLE_YORP is not set
+
+#
+# Parrot
+#
+# CONFIG_BOARD_GOOGLE_PARROT is not set
+
+#
+# Peach Pit
+#
+# CONFIG_BOARD_GOOGLE_PEACH_PIT is not set
+
+#
+# Poppy
+#
+# CONFIG_BOARD_GOOGLE_ATLAS is not set
+# CONFIG_BOARD_GOOGLE_POPPY is not set
+# CONFIG_BOARD_GOOGLE_NAMI is not set
+# CONFIG_BOARD_GOOGLE_NAUTILUS is not set
+# CONFIG_BOARD_GOOGLE_NOCTURNE is not set
+# CONFIG_BOARD_GOOGLE_RAMMUS is not set
+# CONFIG_BOARD_GOOGLE_SORAKA is not set
+
+#
+# Puff
+#
+# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set
+# CONFIG_BOARD_GOOGLE_DOOLY is not set
+# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set
+# CONFIG_BOARD_GOOGLE_DUFFY is not set
+# CONFIG_BOARD_GOOGLE_FAFFY is not set
+# CONFIG_BOARD_GOOGLE_GENESIS is not set
+# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set
+# CONFIG_BOARD_GOOGLE_KAISA is not set
+# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set
+# CONFIG_BOARD_GOOGLE_NOIBAT is not set
+# CONFIG_BOARD_GOOGLE_PUFF is not set
+# CONFIG_BOARD_GOOGLE_SCOUT is not set
+# CONFIG_BOARD_GOOGLE_WYVERN is not set
+
+#
+# Rambi
+#
+# CONFIG_BOARD_GOOGLE_BANJO is not set
+# CONFIG_BOARD_GOOGLE_CANDY is not set
+# CONFIG_BOARD_GOOGLE_CLAPPER is not set
+# CONFIG_BOARD_GOOGLE_ENGUARDE is not set
+# CONFIG_BOARD_GOOGLE_EXPRESSO is not set
+# CONFIG_BOARD_GOOGLE_GLIMMER is not set
+# CONFIG_BOARD_GOOGLE_GNAWTY is not set
+# CONFIG_BOARD_GOOGLE_HELI is not set
+# CONFIG_BOARD_GOOGLE_KIP is not set
+# CONFIG_BOARD_GOOGLE_NINJA is not set
+# CONFIG_BOARD_GOOGLE_ORCO is not set
+# CONFIG_BOARD_GOOGLE_QUAWKS is not set
+# CONFIG_BOARD_GOOGLE_SQUAWKS is not set
+# CONFIG_BOARD_GOOGLE_RAMBI is not set
+# CONFIG_BOARD_GOOGLE_SUMO is not set
+# CONFIG_BOARD_GOOGLE_SWANKY is not set
+# CONFIG_BOARD_GOOGLE_WINKY is not set
+
+#
+# Reef
+#
+# CONFIG_BOARD_GOOGLE_REEF is not set
+# CONFIG_BOARD_GOOGLE_PYRO is not set
+# CONFIG_BOARD_GOOGLE_SAND is not set
+# CONFIG_BOARD_GOOGLE_SNAPPY is not set
+# CONFIG_BOARD_GOOGLE_CORAL is not set
+
+#
+# Rex
+#
+# CONFIG_BOARD_GOOGLE_REX0 is not set
+# CONFIG_BOARD_GOOGLE_SCREEBO is not set
+# CONFIG_BOARD_GOOGLE_SCREEBO4ES is not set
+# CONFIG_BOARD_GOOGLE_KARIS is not set
+# CONFIG_BOARD_GOOGLE_KARIS4ES is not set
+# CONFIG_BOARD_GOOGLE_REX_EC_ISH is not set
+# CONFIG_BOARD_GOOGLE_OVIS is not set
+# CONFIG_BOARD_GOOGLE_OVIS4ES is not set
+# CONFIG_BOARD_GOOGLE_REX4ES is not set
+# CONFIG_BOARD_GOOGLE_REX4ES_EC_ISH is not set
+
+#
+# Sarien
+#
+# CONFIG_BOARD_GOOGLE_ARCADA is not set
+# CONFIG_BOARD_GOOGLE_SARIEN is not set
+
+#
+# Skyrim
+#
+# CONFIG_BOARD_GOOGLE_SKYRIM is not set
+# CONFIG_BOARD_GOOGLE_WINTERHOLD is not set
+# CONFIG_BOARD_GOOGLE_FROSTFLOW is not set
+# CONFIG_BOARD_GOOGLE_CRYSTALDRIFT is not set
+# CONFIG_BOARD_GOOGLE_MARKARTH is not set
+
+#
+# Slippy
+#
+# CONFIG_BOARD_GOOGLE_FALCO is not set
+# CONFIG_BOARD_GOOGLE_LEON is not set
+# CONFIG_BOARD_GOOGLE_PEPPY is not set
+# CONFIG_BOARD_GOOGLE_WOLF is not set
+
+#
+# Smaug
+#
+# CONFIG_BOARD_GOOGLE_SMAUG is not set
+
+#
+# Storm
+#
+# CONFIG_BOARD_GOOGLE_STORM is not set
+
+#
+# Stout
+#
+# CONFIG_BOARD_GOOGLE_STOUT is not set
+
+#
+# Trogdor
+#
+
+#
+# (Trogdor requires 'Allow QC blobs repository')
+#
+
+#
+# Veyron
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_JAQ is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_JERRY is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_MIGHTY is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_MINNIE is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_SPEEDY is not set
+
+#
+# Veyron Mickey
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_MICKEY is not set
+
+#
+# Veyron Rialto
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_RIALTO is not set
+
+#
+# Volteer
+#
+# CONFIG_BOARD_GOOGLE_CHRONICLER is not set
+# CONFIG_BOARD_GOOGLE_COLLIS is not set
+# CONFIG_BOARD_GOOGLE_COPANO is not set
+# CONFIG_BOARD_GOOGLE_DELBIN is not set
+# CONFIG_BOARD_GOOGLE_DROBIT is not set
+# CONFIG_BOARD_GOOGLE_ELDRID is not set
+# CONFIG_BOARD_GOOGLE_ELEMI is not set
+# CONFIG_BOARD_GOOGLE_HALVOR is not set
+# CONFIG_BOARD_GOOGLE_LINDAR is not set
+# CONFIG_BOARD_GOOGLE_MALEFOR is not set
+# CONFIG_BOARD_GOOGLE_TERRADOR is not set
+# CONFIG_BOARD_GOOGLE_TODOR is not set
+# CONFIG_BOARD_GOOGLE_TRONDO is not set
+# CONFIG_BOARD_GOOGLE_VOEMA is not set
+# CONFIG_BOARD_GOOGLE_VOLET is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER2 is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER2_TI50 is not set
+# CONFIG_BOARD_GOOGLE_VOXEL is not set
+
+#
+# Zork
+#
+# CONFIG_BOARD_GOOGLE_DALBOZ is not set
+# CONFIG_BOARD_GOOGLE_VILBOZ is not set
+# CONFIG_BOARD_GOOGLE_EZKINIL is not set
+# CONFIG_BOARD_GOOGLE_MORPHIUS is not set
+# CONFIG_BOARD_GOOGLE_TREMBYLE is not set
+# CONFIG_BOARD_GOOGLE_BERKNIP is not set
+# CONFIG_BOARD_GOOGLE_WOOMAX is not set
+# CONFIG_BOARD_GOOGLE_DIRINBOZ is not set
+# CONFIG_BOARD_GOOGLE_SHUBOZ is not set
+# CONFIG_BOARD_GOOGLE_GUMBOZ is not set
+CONFIG_DRIVER_TPM_SPI_BUS=0x0
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS=0x5
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
+CONFIG_DRIVER_TPM_I2C_BUS=0x0
+CONFIG_DRIVER_TPM_I2C_ADDR=0x20
+CONFIG_VBT_DATA_SIZE_KB=8
+CONFIG_PMIC_BUS=-1
+CONFIG_BOARD_GOOGLE_GRU_COMMON=y
+CONFIG_GRU_HAS_TPM2=y
+CONFIG_GRU_HAS_CENTERLOG_PWM=y
+CONFIG_GRU_HAS_WLAN_RESET=y
+CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME=""
+CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US=0
+CONFIG_PS2K_EISAID="PNP0303"
+CONFIG_PS2M_EISAID="PNP0F13"
+CONFIG_TTYS0_BAUD=115200
+CONFIG_D3COLD_SUPPORT=y
+CONFIG_PC_CMOS_BASE_PORT_BANK1=0x72
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_EC_GPE_SCI=0x50
+CONFIG_DRIVER_TPM_SPI_CHIP=0
+# CONFIG_TPM_MEASURED_BOOT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=8192
+CONFIG_ROM_SIZE=0x00800000
+# end of Mainboard
+
+#
+# Chipset
+#
+
+#
+# SoC
+#
+CONFIG_CHIPSET_DEVICETREE=""
+CONFIG_ARM64_BL31_EXTERNAL_FILE=""
+CONFIG_ARCH_ARMV8_EXTENSION=0
+CONFIG_STACK_SIZE=0x0
+CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254
+CONFIG_INTEL_GMA_BCLV_WIDTH=16
+CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256
+CONFIG_INTEL_GMA_BCLM_WIDTH=16
+CONFIG_GENERIC_UDELAY=y
+CONFIG_SOC_ROCKCHIP_RK3399=y
+CONFIG_RK3399_SPREAD_SPECTRUM_DDR=y
+CONFIG_CBFS_CACHE_ALIGN=8
+
+#
+# CPU
+#
+
+#
+# Northbridge
+#
+
+#
+# Southbridge
+#
+CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000
+CONFIG_RCBA_LENGTH=0x4000
+
+#
+# Super I/O
+#
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_SUPPORTS_DPTF_TEVT=y
+CONFIG_EC_GOOGLE_CHROMEEC=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_CHIP=0x0
+CONFIG_EC_GOOGLE_CHROMEEC_RTC=y
+CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_NONE=y
+# CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL is not set
+# CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN is not set
+CONFIG_MAINBOARD_HAS_CHROMEOS=y
+
+#
+# ChromeOS
+#
+# end of ChromeOS
+
+CONFIG_ARCH_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARM64=y
+CONFIG_ARCH_VERSTAGE_ARM64=y
+CONFIG_ARCH_ROMSTAGE_ARM64=y
+CONFIG_ARCH_RAMSTAGE_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARMV8_64=y
+CONFIG_ARCH_VERSTAGE_ARMV8_64=y
+CONFIG_ARCH_ROMSTAGE_ARMV8_64=y
+CONFIG_ARCH_RAMSTAGE_ARMV8_64=y
+CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE=y
+# end of Chipset
+
+#
+# Devices
+#
+CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
+CONFIG_NO_EARLY_GFX_INIT=y
+
+#
+# Display
+#
+CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
+CONFIG_LINEAR_FRAMEBUFFER=y
+# CONFIG_BOOTSPLASH is not set
+# end of Display
+
+CONFIG_FIRMWARE_CONNECTION_MANAGER=y
+# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set
+# CONFIG_SOFTWARE_I2C is not set
+CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
+CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=y
+# end of Devices
+
+#
+# Generic Drivers
+#
+CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000
+# CONFIG_ELOG is not set
+CONFIG_COMMON_CBFS_SPI_WRAPPER=y
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_NO_FAST_READ is not set
+CONFIG_TPM_INIT_RAMSTAGE=y
+CONFIG_DRIVERS_UART=y
+CONFIG_UART_OVERRIDE_REFCLK=y
+CONFIG_DRIVERS_UART_8250MEM=y
+CONFIG_DRIVERS_UART_8250MEM_32=y
+# CONFIG_VPD is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set
+# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set
+CONFIG_PC_CMOS_BASE_PORT_BANK0=0x70
+CONFIG_SPI_TPM=y
+# end of Generic Drivers
+
+#
+# Security
+#
+
+#
+# CBFS verification
+#
+# CONFIG_CBFS_VERIFICATION is not set
+# end of CBFS verification
+
+#
+# Verified Boot (vboot)
+#
+# end of Verified Boot (vboot)
+
+CONFIG_TPM_GOOGLE=y
+CONFIG_TPM_GOOGLE_CR50=y
+CONFIG_TPM_GOOGLE_IMMEDIATELY_COMMIT_FW_SECDATA=y
+CONFIG_GOOGLE_TPM_IRQ_TIMEOUT_MS=10
+CONFIG_CR50_RESET_CLEAR_EC_AP_IDLE_FLAG=y
+
+#
+# Trusted Platform Module
+#
+# CONFIG_NO_TPM is not set
+CONFIG_TPM2=y
+CONFIG_TPM=y
+CONFIG_MAINBOARD_HAS_TPM2=y
+# CONFIG_DEBUG_TPM is not set
+CONFIG_PCR_BOOT_MODE=1
+CONFIG_PCR_HWID=1
+CONFIG_PCR_SRTM=2
+CONFIG_PCR_RUNTIME_DATA=3
+# end of Trusted Platform Module
+
+CONFIG_TPM_SETUP_HIBERNATE_ON_ERR=y
+
+#
+# Memory initialization
+#
+# end of Memory initialization
+
+CONFIG_BOOTMEDIA_LOCK_NONE=y
+# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set
+# CONFIG_BOOTMEDIA_LOCK_CHIP is not set
+# end of Security
+
+CONFIG_ACPI_HAVE_PCAT_8259=y
+CONFIG_ACPI_CUSTOM_MADT=y
+CONFIG_BOOT_DEVICE_SPI_FLASH=y
+CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y
+CONFIG_RTC=y
+
+#
+# Console
+#
+CONFIG_BOOTBLOCK_CONSOLE=y
+
+#
+# memory mapped, 8250-compatible
+#
+CONFIG_TTYS0_BASE=0x3f8
+# CONFIG_CONSOLE_SERIAL_921600 is not set
+# CONFIG_CONSOLE_SERIAL_460800 is not set
+# CONFIG_CONSOLE_SERIAL_230400 is not set
+CONFIG_CONSOLE_SERIAL_115200=y
+# CONFIG_CONSOLE_SERIAL_57600 is not set
+# CONFIG_CONSOLE_SERIAL_38400 is not set
+# CONFIG_CONSOLE_SERIAL_19200 is not set
+# CONFIG_CONSOLE_SERIAL_9600 is not set
+CONFIG_TTYS0_LCS=3
+CONFIG_CONSOLE_CBMEM=y
+# CONFIG_CONSOLE_SPI_FLASH is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7
+CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y
+CONFIG_CONSOLE_USE_ANSI_ESCAPES=y
+CONFIG_POST_DEVICE_NONE=y
+CONFIG_HWBASE_DEBUG_CB=y
+# end of Console
+
+CONFIG_HAVE_MONOTONIC_TIMER=y
+
+#
+# System tables
+#
+# end of System tables
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# end of Payload
+
+#
+# Debugging
+#
+
+#
+# CPU Debug Settings
+#
+
+#
+# BLOB Debug Settings
+#
+
+#
+# General Debug Settings
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_FATAL_ASSERTS is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_CONSOLE_INIT is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_DEBUG_BOOT_STATE is not set
+# CONFIG_DEBUG_ADA_CODE is not set
+# end of Debugging
+
+CONFIG_DECOMPRESS_OFAST=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_NO_XIP_EARLY_STAGES=y
+CONFIG_GENERIC_GPIO_LIB=y
+CONFIG_HAVE_BOOTBLOCK=y
+CONFIG_HAVE_ROMSTAGE=y
+CONFIG_HAVE_RAMSTAGE=y
diff --git a/resources/coreboot/gru_kevin/board.cfg
b/resources/coreboot/gru_kevin/board.cfg
new file mode 100644
index 0000000..11b6d99
--- /dev/null
+++ b/resources/coreboot/gru_kevin/board.cfg
@@ -0,0 +1,3 @@
+cbtree="cros"
+arch="AArch64"
+payload_uboot="y"
diff --git a/resources/coreboot/gru_kevin/config/libgfxinit_corebootfb
b/resources/coreboot/gru_kevin/config/libgfxinit_corebootfb
new file mode 100644
index 0000000..cf36cf3
--- /dev/null
+++ b/resources/coreboot/gru_kevin/config/libgfxinit_corebootfb
@@ -0,0 +1,947 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# coreboot configuration
+#
+
+#
+# General setup
+#
+CONFIG_COREBOOT_BUILD=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_ALLOW_EXPERIMENTAL_CLANG is not set
+# CONFIG_ANY_TOOLCHAIN is not set
+# CONFIG_CCACHE is not set
+# CONFIG_IWYU is not set
+# CONFIG_FMD_GENPARSER is not set
+# CONFIG_UTIL_GENPARSER is not set
+CONFIG_OPTION_BACKEND_NONE=y
+CONFIG_COMPRESS_RAMSTAGE_LZMA=y
+# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set
+CONFIG_COMPRESS_PRERAM_STAGES=y
+CONFIG_COMPRESS_BOOTBLOCK=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+# CONFIG_COLLECT_TIMESTAMPS is not set
+# CONFIG_USE_BLOBS is not set
+# CONFIG_COVERAGE is not set
+# CONFIG_UBSAN is not set
+# CONFIG_ASAN is not set
+CONFIG_NO_STAGE_CACHE=y
+# CONFIG_CBMEM_STAGE_CACHE is not set
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_BOOTSPLASH_IMAGE is not set
+# CONFIG_FW_CONFIG is not set
+
+#
+# Software Bill Of Materials (SBOM)
+#
+# CONFIG_SBOM is not set
+# end of Software Bill Of Materials (SBOM)
+# end of General setup
+
+#
+# Mainboard
+#
+
+#
+# Important: Run 'make distclean' before switching boards
+#
+# CONFIG_VENDOR_51NB is not set
+# CONFIG_VENDOR_ACER is not set
+# CONFIG_VENDOR_ADLINK is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_APPLE is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BOSTENTECH is not set
+# CONFIG_VENDOR_BYTEDANCE is not set
+# CONFIG_VENDOR_CAVIUM is not set
+# CONFIG_VENDOR_CLEVO is not set
+# CONFIG_VENDOR_COMPULAB is not set
+# CONFIG_VENDOR_DELL is not set
+# CONFIG_VENDOR_EMULATION is not set
+# CONFIG_VENDOR_EXAMPLE is not set
+# CONFIG_VENDOR_FACEBOOK is not set
+# CONFIG_VENDOR_FOXCONN is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+CONFIG_VENDOR_GOOGLE=y
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_INVENTEC is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIBRETREND is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_OCP is not set
+# CONFIG_VENDOR_OPENCELLULAR is not set
+# CONFIG_VENDOR_PACKARDBELL is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_PINE64 is not set
+# CONFIG_VENDOR_PORTWELL is not set
+# CONFIG_VENDOR_PRODRIVE is not set
+# CONFIG_VENDOR_PROTECTLI is not set
+# CONFIG_VENDOR_PURISM is not set
+# CONFIG_VENDOR_RAZER is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SAPPHIRE is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SIFIVE is not set
+# CONFIG_VENDOR_STARLABS is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_SYSTEM76 is not set
+# CONFIG_VENDOR_TI is not set
+# CONFIG_VENDOR_UP is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_PART_NUMBER="Kevin"
+CONFIG_MAINBOARD_DIR="google/gru"
+CONFIG_DIMM_MAX=4
+CONFIG_DIMM_SPD_SIZE=256
+CONFIG_FMDFILE=""
+# CONFIG_NO_POST is not set
+CONFIG_MAINBOARD_VENDOR="Google"
+CONFIG_CBFS_SIZE=0x00800000
+CONFIG_CONSOLE_SERIAL=y
+CONFIG_MAX_CPUS=1
+CONFIG_POST_DEVICE=y
+CONFIG_UART_FOR_CONSOLE=0
+CONFIG_DEVICETREE="devicetree.cb"
+# CONFIG_VBOOT is not set
+# CONFIG_CHROMEOS is not set
+CONFIG_OVERRIDE_DEVICETREE=""
+CONFIG_BOOT_DEVICE_SPI_FLASH_BUS=1
+CONFIG_CONSOLE_SERIAL_UART_ADDRESS=0xFF1A0000
+# CONFIG_CONSOLE_POST is not set
+CONFIG_MEMLAYOUT_LD_FILE="src/soc/rockchip/rk3399/memlayout.ld"
+CONFIG_MAX_ACPI_TABLE_SIZE_KB=144
+CONFIG_SPI_FLASH_WINBOND=y
+
+#
+# Asurada
+#
+# CONFIG_BOARD_GOOGLE_ASURADA is not set
+# CONFIG_BOARD_GOOGLE_HAYATO is not set
+# CONFIG_BOARD_GOOGLE_SPHERION is not set
+
+#
+# Auron
+#
+# CONFIG_BOARD_GOOGLE_AURON_PAINE is not set
+# CONFIG_BOARD_GOOGLE_AURON_YUNA is not set
+# CONFIG_BOARD_GOOGLE_BUDDY is not set
+# CONFIG_BOARD_GOOGLE_GANDOF is not set
+# CONFIG_BOARD_GOOGLE_LULU is not set
+# CONFIG_BOARD_GOOGLE_SAMUS is not set
+
+#
+# Beltino
+#
+# CONFIG_BOARD_GOOGLE_MCCLOUD is not set
+# CONFIG_BOARD_GOOGLE_MONROE is not set
+# CONFIG_BOARD_GOOGLE_PANTHER is not set
+# CONFIG_BOARD_GOOGLE_TRICKY is not set
+# CONFIG_BOARD_GOOGLE_ZAKO is not set
+
+#
+# Brya
+#
+# CONFIG_BOARD_GOOGLE_AGAH is not set
+# CONFIG_BOARD_GOOGLE_ANAHERA is not set
+# CONFIG_BOARD_GOOGLE_ANAHERA4ES is not set
+# CONFIG_BOARD_GOOGLE_AURASH is not set
+# CONFIG_BOARD_GOOGLE_BANSHEE is not set
+# CONFIG_BOARD_GOOGLE_BRASK is not set
+# CONFIG_BOARD_GOOGLE_BRYA0 is not set
+# CONFIG_BOARD_GOOGLE_CRAASK is not set
+# CONFIG_BOARD_GOOGLE_CRAASKOV is not set
+# CONFIG_BOARD_GOOGLE_CONSTITUTION is not set
+# CONFIG_BOARD_GOOGLE_CROTA is not set
+# CONFIG_BOARD_GOOGLE_FELWINTER is not set
+# CONFIG_BOARD_GOOGLE_GAELIN is not set
+# CONFIG_BOARD_GOOGLE_GIMBLE is not set
+# CONFIG_BOARD_GOOGLE_GIMBLE4ES is not set
+# CONFIG_BOARD_GOOGLE_GLADIOS is not set
+# CONFIG_BOARD_GOOGLE_GOTHRAX is not set
+# CONFIG_BOARD_GOOGLE_HADES is not set
+# CONFIG_BOARD_GOOGLE_KANO is not set
+# CONFIG_BOARD_GOOGLE_KINOX is not set
+# CONFIG_BOARD_GOOGLE_KULDAX is not set
+# CONFIG_BOARD_GOOGLE_JOXER is not set
+# CONFIG_BOARD_GOOGLE_LISBON is not set
+# CONFIG_BOARD_GOOGLE_MARASOV is not set
+# CONFIG_BOARD_GOOGLE_MITHRAX is not set
+# CONFIG_BOARD_GOOGLE_MOLI is not set
+# CONFIG_BOARD_GOOGLE_NIVVIKS is not set
+# CONFIG_BOARD_GOOGLE_NEREID is not set
+# CONFIG_BOARD_GOOGLE_OMNIGUL is not set
+# CONFIG_BOARD_GOOGLE_OSIRIS is not set
+# CONFIG_BOARD_GOOGLE_PIRRHA is not set
+# CONFIG_BOARD_GOOGLE_PRIMUS is not set
+# CONFIG_BOARD_GOOGLE_PRIMUS4ES is not set
+# CONFIG_BOARD_GOOGLE_PUJJO is not set
+# CONFIG_BOARD_GOOGLE_QUANDISO is not set
+# CONFIG_BOARD_GOOGLE_REDRIX is not set
+# CONFIG_BOARD_GOOGLE_REDRIX4ES is not set
+# CONFIG_BOARD_GOOGLE_SKOLAS is not set
+# CONFIG_BOARD_GOOGLE_SKOLAS4ES is not set
+# CONFIG_BOARD_GOOGLE_TAEKO is not set
+# CONFIG_BOARD_GOOGLE_TAEKO4ES is not set
+# CONFIG_BOARD_GOOGLE_TANIKS is not set
+# CONFIG_BOARD_GOOGLE_ULDREN is not set
+# CONFIG_BOARD_GOOGLE_VELL is not set
+# CONFIG_BOARD_GOOGLE_VOLMAR is not set
+# CONFIG_BOARD_GOOGLE_XIVU is not set
+# CONFIG_BOARD_GOOGLE_YAVIKS is not set
+# CONFIG_BOARD_GOOGLE_YAVILLA is not set
+# CONFIG_BOARD_GOOGLE_ZYDRON is not set
+# CONFIG_BOARD_GOOGLE_NOKRIS is not set
+# CONFIG_BOARD_GOOGLE_DOCHI is not set
+
+#
+# Butterfly
+#
+# CONFIG_BOARD_GOOGLE_BUTTERFLY is not set
+
+#
+# Cherry
+#
+# CONFIG_BOARD_GOOGLE_CHERRY is not set
+# CONFIG_BOARD_GOOGLE_DOJO is not set
+# CONFIG_BOARD_GOOGLE_TOMATO is not set
+
+#
+# Kingler
+#
+# CONFIG_BOARD_GOOGLE_KINGLER is not set
+# CONFIG_BOARD_GOOGLE_STEELIX is not set
+# CONFIG_BOARD_GOOGLE_VOLTORB is not set
+# CONFIG_BOARD_GOOGLE_PONYTA is not set
+
+#
+# Krabby
+#
+# CONFIG_BOARD_GOOGLE_KRABBY is not set
+# CONFIG_BOARD_GOOGLE_TENTACRUEL is not set
+# CONFIG_BOARD_GOOGLE_MAGIKARP is not set
+
+#
+# Staryu
+#
+# CONFIG_BOARD_GOOGLE_STARMIE is not set
+
+#
+# Cyan
+#
+# CONFIG_BOARD_GOOGLE_BANON is not set
+# CONFIG_BOARD_GOOGLE_CELES is not set
+# CONFIG_BOARD_GOOGLE_CYAN is not set
+# CONFIG_BOARD_GOOGLE_EDGAR is not set
+# CONFIG_BOARD_GOOGLE_KEFKA is not set
+# CONFIG_BOARD_GOOGLE_REKS is not set
+# CONFIG_BOARD_GOOGLE_RELM is not set
+# CONFIG_BOARD_GOOGLE_SETZER is not set
+# CONFIG_BOARD_GOOGLE_TERRA is not set
+# CONFIG_BOARD_GOOGLE_ULTIMA is not set
+# CONFIG_BOARD_GOOGLE_WIZPIG is not set
+
+#
+# Daisy
+#
+# CONFIG_BOARD_GOOGLE_DAISY is not set
+
+#
+# Dedede
+#
+# CONFIG_BOARD_GOOGLE_BOTEN is not set
+# CONFIG_BOARD_GOOGLE_DIBBI is not set
+# CONFIG_BOARD_GOOGLE_DEDEDE is not set
+# CONFIG_BOARD_GOOGLE_DRAWCIA is not set
+# CONFIG_BOARD_GOOGLE_HABOKI is not set
+# CONFIG_BOARD_GOOGLE_MADOO is not set
+# CONFIG_BOARD_GOOGLE_WADDLEDOO is not set
+# CONFIG_BOARD_GOOGLE_WADDLEDEE is not set
+# CONFIG_BOARD_GOOGLE_LALALA is not set
+# CONFIG_BOARD_GOOGLE_MAGOLOR is not set
+# CONFIG_BOARD_GOOGLE_METAKNIGHT is not set
+# CONFIG_BOARD_GOOGLE_LANTIS is not set
+# CONFIG_BOARD_GOOGLE_GALTIC is not set
+# CONFIG_BOARD_GOOGLE_SASUKE is not set
+# CONFIG_BOARD_GOOGLE_STORO is not set
+# CONFIG_BOARD_GOOGLE_SASUKETTE is not set
+# CONFIG_BOARD_GOOGLE_KRACKO is not set
+# CONFIG_BOARD_GOOGLE_BLIPPER is not set
+# CONFIG_BOARD_GOOGLE_CRET is not set
+# CONFIG_BOARD_GOOGLE_PIRIKA is not set
+# CONFIG_BOARD_GOOGLE_CAPPY2 is not set
+# CONFIG_BOARD_GOOGLE_BUGZZY is not set
+# CONFIG_BOARD_GOOGLE_CORORI is not set
+# CONFIG_BOARD_GOOGLE_DRIBLEE is not set
+# CONFIG_BOARD_GOOGLE_GOOEY is not set
+# CONFIG_BOARD_GOOGLE_BEADRIX is not set
+# CONFIG_BOARD_GOOGLE_SHOTZO is not set
+# CONFIG_BOARD_GOOGLE_TARANZA is not set
+# CONFIG_BOARD_GOOGLE_BOXY is not set
+# CONFIG_BOARD_GOOGLE_DEXI is not set
+
+#
+# Drallion
+#
+# CONFIG_BOARD_GOOGLE_DRALLION is not set
+
+#
+# Eve
+#
+# CONFIG_BOARD_GOOGLE_EVE is not set
+
+#
+# Fizz
+#
+# CONFIG_BOARD_GOOGLE_FIZZ is not set
+# CONFIG_BOARD_GOOGLE_KARMA is not set
+# CONFIG_BOARD_GOOGLE_ENDEAVOUR is not set
+
+#
+# Foster
+#
+# CONFIG_BOARD_GOOGLE_FOSTER is not set
+
+#
+# Gale
+#
+# CONFIG_BOARD_GOOGLE_GALE is not set
+
+#
+# Geralt
+#
+# CONFIG_BOARD_GOOGLE_GERALT is not set
+
+#
+# Glados
+#
+# CONFIG_BOARD_GOOGLE_ASUKA is not set
+# CONFIG_BOARD_GOOGLE_CAROLINE is not set
+# CONFIG_BOARD_GOOGLE_CAVE is not set
+# CONFIG_BOARD_GOOGLE_CHELL is not set
+# CONFIG_BOARD_GOOGLE_GLADOS is not set
+# CONFIG_BOARD_GOOGLE_LARS is not set
+# CONFIG_BOARD_GOOGLE_SENTRY is not set
+
+#
+# Gru
+#
+CONFIG_BOARD_GOOGLE_KEVIN=y
+# CONFIG_BOARD_GOOGLE_GRU is not set
+# CONFIG_BOARD_GOOGLE_BOB is not set
+# CONFIG_BOARD_GOOGLE_SCARLET is not set
+# CONFIG_BOARD_GOOGLE_NEFARIO is not set
+# CONFIG_BOARD_GOOGLE_RAINIER is not set
+
+#
+# Guybrush
+#
+# CONFIG_BOARD_GOOGLE_GUYBRUSH is not set
+# CONFIG_BOARD_GOOGLE_NIPPERKIN is not set
+# CONFIG_BOARD_GOOGLE_DEWATT is not set
+
+#
+# Hatch
+#
+# CONFIG_BOARD_GOOGLE_AKEMI is not set
+# CONFIG_BOARD_GOOGLE_DRATINI is not set
+# CONFIG_BOARD_GOOGLE_HATCH is not set
+# CONFIG_BOARD_GOOGLE_HELIOS is not set
+# CONFIG_BOARD_GOOGLE_HELIOS_DISKSWAP is not set
+# CONFIG_BOARD_GOOGLE_JINLON is not set
+# CONFIG_BOARD_GOOGLE_KINDRED is not set
+# CONFIG_BOARD_GOOGLE_KOHAKU is not set
+# CONFIG_BOARD_GOOGLE_MUSHU is not set
+# CONFIG_BOARD_GOOGLE_NIGHTFURY is not set
+# CONFIG_BOARD_GOOGLE_PALKIA is not set
+
+#
+# Herobrine
+#
+
+#
+# (Herobrine requires 'Allow QC blobs repository')
+#
+
+#
+# Jecht
+#
+# CONFIG_BOARD_GOOGLE_GUADO is not set
+# CONFIG_BOARD_GOOGLE_JECHT is not set
+# CONFIG_BOARD_GOOGLE_RIKKU is not set
+# CONFIG_BOARD_GOOGLE_TIDUS is not set
+
+#
+# Kahlee
+#
+# CONFIG_BOARD_GOOGLE_ALEENA is not set
+# CONFIG_BOARD_GOOGLE_CAREENA is not set
+# CONFIG_BOARD_GOOGLE_GRUNT is not set
+# CONFIG_BOARD_GOOGLE_LIARA is not set
+# CONFIG_BOARD_GOOGLE_NUWANI is not set
+# CONFIG_BOARD_GOOGLE_TREEYA is not set
+
+#
+# Kukui
+#
+# CONFIG_BOARD_GOOGLE_KUKUI is not set
+# CONFIG_BOARD_GOOGLE_KRANE is not set
+# CONFIG_BOARD_GOOGLE_KODAMA is not set
+# CONFIG_BOARD_GOOGLE_KAKADU is not set
+# CONFIG_BOARD_GOOGLE_FLAPJACK is not set
+# CONFIG_BOARD_GOOGLE_KATSU is not set
+
+#
+# Jacuzzi
+#
+# CONFIG_BOARD_GOOGLE_JACUZZI is not set
+# CONFIG_BOARD_GOOGLE_JUNIPER is not set
+# CONFIG_BOARD_GOOGLE_KAPPA is not set
+# CONFIG_BOARD_GOOGLE_DAMU is not set
+# CONFIG_BOARD_GOOGLE_CERISE is not set
+# CONFIG_BOARD_GOOGLE_STERN is not set
+# CONFIG_BOARD_GOOGLE_WILLOW is not set
+# CONFIG_BOARD_GOOGLE_ESCHE is not set
+# CONFIG_BOARD_GOOGLE_BURNET is not set
+# CONFIG_BOARD_GOOGLE_FENNEL is not set
+# CONFIG_BOARD_GOOGLE_COZMO is not set
+# CONFIG_BOARD_GOOGLE_MAKOMO is not set
+# CONFIG_BOARD_GOOGLE_MUNNA is not set
+# CONFIG_BOARD_GOOGLE_PICO is not set
+
+#
+# Link
+#
+# CONFIG_BOARD_GOOGLE_LINK is not set
+
+#
+# Mistral
+#
+# CONFIG_BOARD_GOOGLE_MISTRAL is not set
+
+#
+# Myst
+#
+# CONFIG_BOARD_GOOGLE_MYST is not set
+
+#
+# Nyan
+#
+# CONFIG_BOARD_GOOGLE_NYAN is not set
+
+#
+# Nyan Big
+#
+# CONFIG_BOARD_GOOGLE_NYAN_BIG is not set
+
+#
+# Nyan Blaze
+#
+# CONFIG_BOARD_GOOGLE_NYAN_BLAZE is not set
+
+#
+# Oak
+#
+# CONFIG_BOARD_GOOGLE_OAK is not set
+# CONFIG_BOARD_GOOGLE_ELM is not set
+# CONFIG_BOARD_GOOGLE_HANA is not set
+
+#
+# Octopus
+#
+# CONFIG_BOARD_GOOGLE_AMPTON is not set
+# CONFIG_BOARD_GOOGLE_BLOOG is not set
+# CONFIG_BOARD_GOOGLE_BOBBA is not set
+# CONFIG_BOARD_GOOGLE_CASTA is not set
+# CONFIG_BOARD_GOOGLE_DOOD is not set
+# CONFIG_BOARD_GOOGLE_FLEEX is not set
+# CONFIG_BOARD_GOOGLE_FOOB is not set
+# CONFIG_BOARD_GOOGLE_GARG is not set
+# CONFIG_BOARD_GOOGLE_LICK is not set
+# CONFIG_BOARD_GOOGLE_MEEP is not set
+# CONFIG_BOARD_GOOGLE_OCTOPUS is not set
+# CONFIG_BOARD_GOOGLE_PHASER is not set
+# CONFIG_BOARD_GOOGLE_YORP is not set
+
+#
+# Parrot
+#
+# CONFIG_BOARD_GOOGLE_PARROT is not set
+
+#
+# Peach Pit
+#
+# CONFIG_BOARD_GOOGLE_PEACH_PIT is not set
+
+#
+# Poppy
+#
+# CONFIG_BOARD_GOOGLE_ATLAS is not set
+# CONFIG_BOARD_GOOGLE_POPPY is not set
+# CONFIG_BOARD_GOOGLE_NAMI is not set
+# CONFIG_BOARD_GOOGLE_NAUTILUS is not set
+# CONFIG_BOARD_GOOGLE_NOCTURNE is not set
+# CONFIG_BOARD_GOOGLE_RAMMUS is not set
+# CONFIG_BOARD_GOOGLE_SORAKA is not set
+
+#
+# Puff
+#
+# CONFIG_BOARD_GOOGLE_AMBASSADOR is not set
+# CONFIG_BOARD_GOOGLE_DOOLY is not set
+# CONFIG_BOARD_GOOGLE_DUFFY_LEGACY is not set
+# CONFIG_BOARD_GOOGLE_DUFFY is not set
+# CONFIG_BOARD_GOOGLE_FAFFY is not set
+# CONFIG_BOARD_GOOGLE_GENESIS is not set
+# CONFIG_BOARD_GOOGLE_KAISA_LEGACY is not set
+# CONFIG_BOARD_GOOGLE_KAISA is not set
+# CONFIG_BOARD_GOOGLE_MOONBUGGY is not set
+# CONFIG_BOARD_GOOGLE_NOIBAT is not set
+# CONFIG_BOARD_GOOGLE_PUFF is not set
+# CONFIG_BOARD_GOOGLE_SCOUT is not set
+# CONFIG_BOARD_GOOGLE_WYVERN is not set
+
+#
+# Rambi
+#
+# CONFIG_BOARD_GOOGLE_BANJO is not set
+# CONFIG_BOARD_GOOGLE_CANDY is not set
+# CONFIG_BOARD_GOOGLE_CLAPPER is not set
+# CONFIG_BOARD_GOOGLE_ENGUARDE is not set
+# CONFIG_BOARD_GOOGLE_EXPRESSO is not set
+# CONFIG_BOARD_GOOGLE_GLIMMER is not set
+# CONFIG_BOARD_GOOGLE_GNAWTY is not set
+# CONFIG_BOARD_GOOGLE_HELI is not set
+# CONFIG_BOARD_GOOGLE_KIP is not set
+# CONFIG_BOARD_GOOGLE_NINJA is not set
+# CONFIG_BOARD_GOOGLE_ORCO is not set
+# CONFIG_BOARD_GOOGLE_QUAWKS is not set
+# CONFIG_BOARD_GOOGLE_SQUAWKS is not set
+# CONFIG_BOARD_GOOGLE_RAMBI is not set
+# CONFIG_BOARD_GOOGLE_SUMO is not set
+# CONFIG_BOARD_GOOGLE_SWANKY is not set
+# CONFIG_BOARD_GOOGLE_WINKY is not set
+
+#
+# Reef
+#
+# CONFIG_BOARD_GOOGLE_REEF is not set
+# CONFIG_BOARD_GOOGLE_PYRO is not set
+# CONFIG_BOARD_GOOGLE_SAND is not set
+# CONFIG_BOARD_GOOGLE_SNAPPY is not set
+# CONFIG_BOARD_GOOGLE_CORAL is not set
+
+#
+# Rex
+#
+# CONFIG_BOARD_GOOGLE_REX0 is not set
+# CONFIG_BOARD_GOOGLE_SCREEBO is not set
+# CONFIG_BOARD_GOOGLE_SCREEBO4ES is not set
+# CONFIG_BOARD_GOOGLE_KARIS is not set
+# CONFIG_BOARD_GOOGLE_KARIS4ES is not set
+# CONFIG_BOARD_GOOGLE_REX_EC_ISH is not set
+# CONFIG_BOARD_GOOGLE_OVIS is not set
+# CONFIG_BOARD_GOOGLE_OVIS4ES is not set
+# CONFIG_BOARD_GOOGLE_REX4ES is not set
+# CONFIG_BOARD_GOOGLE_REX4ES_EC_ISH is not set
+
+#
+# Sarien
+#
+# CONFIG_BOARD_GOOGLE_ARCADA is not set
+# CONFIG_BOARD_GOOGLE_SARIEN is not set
+
+#
+# Skyrim
+#
+# CONFIG_BOARD_GOOGLE_SKYRIM is not set
+# CONFIG_BOARD_GOOGLE_WINTERHOLD is not set
+# CONFIG_BOARD_GOOGLE_FROSTFLOW is not set
+# CONFIG_BOARD_GOOGLE_CRYSTALDRIFT is not set
+# CONFIG_BOARD_GOOGLE_MARKARTH is not set
+
+#
+# Slippy
+#
+# CONFIG_BOARD_GOOGLE_FALCO is not set
+# CONFIG_BOARD_GOOGLE_LEON is not set
+# CONFIG_BOARD_GOOGLE_PEPPY is not set
+# CONFIG_BOARD_GOOGLE_WOLF is not set
+
+#
+# Smaug
+#
+# CONFIG_BOARD_GOOGLE_SMAUG is not set
+
+#
+# Storm
+#
+# CONFIG_BOARD_GOOGLE_STORM is not set
+
+#
+# Stout
+#
+# CONFIG_BOARD_GOOGLE_STOUT is not set
+
+#
+# Trogdor
+#
+
+#
+# (Trogdor requires 'Allow QC blobs repository')
+#
+
+#
+# Veyron
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_JAQ is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_JERRY is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_MIGHTY is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_MINNIE is not set
+# CONFIG_BOARD_GOOGLE_VEYRON_SPEEDY is not set
+
+#
+# Veyron Mickey
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_MICKEY is not set
+
+#
+# Veyron Rialto
+#
+# CONFIG_BOARD_GOOGLE_VEYRON_RIALTO is not set
+
+#
+# Volteer
+#
+# CONFIG_BOARD_GOOGLE_CHRONICLER is not set
+# CONFIG_BOARD_GOOGLE_COLLIS is not set
+# CONFIG_BOARD_GOOGLE_COPANO is not set
+# CONFIG_BOARD_GOOGLE_DELBIN is not set
+# CONFIG_BOARD_GOOGLE_DROBIT is not set
+# CONFIG_BOARD_GOOGLE_ELDRID is not set
+# CONFIG_BOARD_GOOGLE_ELEMI is not set
+# CONFIG_BOARD_GOOGLE_HALVOR is not set
+# CONFIG_BOARD_GOOGLE_LINDAR is not set
+# CONFIG_BOARD_GOOGLE_MALEFOR is not set
+# CONFIG_BOARD_GOOGLE_TERRADOR is not set
+# CONFIG_BOARD_GOOGLE_TODOR is not set
+# CONFIG_BOARD_GOOGLE_TRONDO is not set
+# CONFIG_BOARD_GOOGLE_VOEMA is not set
+# CONFIG_BOARD_GOOGLE_VOLET is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER2 is not set
+# CONFIG_BOARD_GOOGLE_VOLTEER2_TI50 is not set
+# CONFIG_BOARD_GOOGLE_VOXEL is not set
+
+#
+# Zork
+#
+# CONFIG_BOARD_GOOGLE_DALBOZ is not set
+# CONFIG_BOARD_GOOGLE_VILBOZ is not set
+# CONFIG_BOARD_GOOGLE_EZKINIL is not set
+# CONFIG_BOARD_GOOGLE_MORPHIUS is not set
+# CONFIG_BOARD_GOOGLE_TREMBYLE is not set
+# CONFIG_BOARD_GOOGLE_BERKNIP is not set
+# CONFIG_BOARD_GOOGLE_WOOMAX is not set
+# CONFIG_BOARD_GOOGLE_DIRINBOZ is not set
+# CONFIG_BOARD_GOOGLE_SHUBOZ is not set
+# CONFIG_BOARD_GOOGLE_GUMBOZ is not set
+CONFIG_DRIVER_TPM_SPI_BUS=0x0
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_BUS=0x5
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
+CONFIG_DRIVER_TPM_I2C_BUS=0x0
+CONFIG_DRIVER_TPM_I2C_ADDR=0x20
+CONFIG_VBT_DATA_SIZE_KB=8
+CONFIG_PMIC_BUS=-1
+CONFIG_BOARD_GOOGLE_GRU_COMMON=y
+# CONFIG_GRU_HAS_TPM2 is not set
+CONFIG_GRU_HAS_CENTERLOG_PWM=y
+CONFIG_GRU_HAS_WLAN_RESET=y
+CONFIG_EC_GOOGLE_CHROMEEC_BOARDNAME=""
+CONFIG_SPI_FLASH_DONT_INCLUDE_ALL_DRIVERS=y
+CONFIG_SPI_FLASH_GIGADEVICE=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_WAKEUP_DELAY_US=0
+CONFIG_PS2K_EISAID="PNP0303"
+CONFIG_PS2M_EISAID="PNP0F13"
+CONFIG_TTYS0_BAUD=115200
+CONFIG_D3COLD_SUPPORT=y
+CONFIG_PC_CMOS_BASE_PORT_BANK1=0x72
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_EC_GPE_SCI=0x50
+# CONFIG_TPM_MEASURED_BOOT is not set
+CONFIG_BOARD_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_8192=y
+# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=8192
+CONFIG_ROM_SIZE=0x00800000
+# end of Mainboard
+
+#
+# Chipset
+#
+
+#
+# SoC
+#
+CONFIG_CHIPSET_DEVICETREE=""
+CONFIG_ARM64_BL31_EXTERNAL_FILE=""
+CONFIG_ARCH_ARMV8_EXTENSION=0
+CONFIG_STACK_SIZE=0x0
+CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254
+CONFIG_INTEL_GMA_BCLV_WIDTH=16
+CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256
+CONFIG_INTEL_GMA_BCLM_WIDTH=16
+CONFIG_GENERIC_UDELAY=y
+CONFIG_SOC_ROCKCHIP_RK3399=y
+# CONFIG_RK3399_SPREAD_SPECTRUM_DDR is not set
+CONFIG_CBFS_CACHE_ALIGN=8
+
+#
+# CPU
+#
+
+#
+# Northbridge
+#
+
+#
+# Southbridge
+#
+CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000
+CONFIG_RCBA_LENGTH=0x4000
+
+#
+# Super I/O
+#
+
+#
+# Embedded Controllers
+#
+CONFIG_EC_SUPPORTS_DPTF_TEVT=y
+CONFIG_EC_GOOGLE_CHROMEEC=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI=y
+CONFIG_EC_GOOGLE_CHROMEEC_SPI_CHIP=0x0
+CONFIG_EC_GOOGLE_CHROMEEC_RTC=y
+CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_NONE=y
+# CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL is not set
+# CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_BUILTIN is not set
+CONFIG_MAINBOARD_HAS_CHROMEOS=y
+
+#
+# ChromeOS
+#
+# end of ChromeOS
+
+CONFIG_ARCH_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARM64=y
+CONFIG_ARCH_VERSTAGE_ARM64=y
+CONFIG_ARCH_ROMSTAGE_ARM64=y
+CONFIG_ARCH_RAMSTAGE_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARMV8_64=y
+CONFIG_ARCH_VERSTAGE_ARMV8_64=y
+CONFIG_ARCH_ROMSTAGE_ARMV8_64=y
+CONFIG_ARCH_RAMSTAGE_ARMV8_64=y
+CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE=y
+# end of Chipset
+
+#
+# Devices
+#
+CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
+CONFIG_NO_EARLY_GFX_INIT=y
+
+#
+# Display
+#
+CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
+CONFIG_LINEAR_FRAMEBUFFER=y
+# CONFIG_BOOTSPLASH is not set
+# end of Display
+
+CONFIG_FIRMWARE_CONNECTION_MANAGER=y
+# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set
+# CONFIG_SOFTWARE_I2C is not set
+CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
+CONFIG_RESOURCE_ALLOCATION_TOP_DOWN=y
+# end of Devices
+
+#
+# Generic Drivers
+#
+CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000
+# CONFIG_ELOG is not set
+CONFIG_COMMON_CBFS_SPI_WRAPPER=y
+CONFIG_SPI_FLASH=y
+# CONFIG_SPI_FLASH_NO_FAST_READ is not set
+CONFIG_TPM_INIT_RAMSTAGE=y
+CONFIG_DRIVERS_UART=y
+CONFIG_UART_OVERRIDE_REFCLK=y
+CONFIG_DRIVERS_UART_8250MEM=y
+CONFIG_DRIVERS_UART_8250MEM_32=y
+# CONFIG_VPD is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set
+CONFIG_I2C_TPM=y
+CONFIG_DRIVER_TIS_DEFAULT=y
+# CONFIG_DRIVER_I2C_TPM_ACPI is not set
+# CONFIG_DRIVER_TPM_DISPLAY_TIS_BYTES is not set
+# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set
+CONFIG_PC_CMOS_BASE_PORT_BANK0=0x70
+# end of Generic Drivers
+
+#
+# Security
+#
+
+#
+# CBFS verification
+#
+# CONFIG_CBFS_VERIFICATION is not set
+# end of CBFS verification
+
+#
+# Verified Boot (vboot)
+#
+# end of Verified Boot (vboot)
+
+#
+# Trusted Platform Module
+#
+# CONFIG_NO_TPM is not set
+CONFIG_TPM1=y
+CONFIG_TPM=y
+CONFIG_MAINBOARD_HAS_TPM1=y
+# CONFIG_TPM_DEACTIVATE is not set
+# CONFIG_DEBUG_TPM is not set
+CONFIG_PCR_BOOT_MODE=1
+CONFIG_PCR_HWID=1
+CONFIG_PCR_SRTM=2
+CONFIG_PCR_RUNTIME_DATA=3
+# end of Trusted Platform Module
+
+CONFIG_TPM_SETUP_HIBERNATE_ON_ERR=y
+
+#
+# Memory initialization
+#
+# end of Memory initialization
+
+CONFIG_BOOTMEDIA_LOCK_NONE=y
+# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set
+# CONFIG_BOOTMEDIA_LOCK_CHIP is not set
+# end of Security
+
+CONFIG_ACPI_HAVE_PCAT_8259=y
+CONFIG_ACPI_CUSTOM_MADT=y
+CONFIG_BOOT_DEVICE_SPI_FLASH=y
+CONFIG_BOOT_DEVICE_SUPPORTS_WRITES=y
+CONFIG_RTC=y
+
+#
+# Console
+#
+CONFIG_BOOTBLOCK_CONSOLE=y
+
+#
+# memory mapped, 8250-compatible
+#
+CONFIG_TTYS0_BASE=0x3f8
+# CONFIG_CONSOLE_SERIAL_921600 is not set
+# CONFIG_CONSOLE_SERIAL_460800 is not set
+# CONFIG_CONSOLE_SERIAL_230400 is not set
+CONFIG_CONSOLE_SERIAL_115200=y
+# CONFIG_CONSOLE_SERIAL_57600 is not set
+# CONFIG_CONSOLE_SERIAL_38400 is not set
+# CONFIG_CONSOLE_SERIAL_19200 is not set
+# CONFIG_CONSOLE_SERIAL_9600 is not set
+CONFIG_TTYS0_LCS=3
+CONFIG_CONSOLE_CBMEM=y
+# CONFIG_CONSOLE_SPI_FLASH is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7
+CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y
+CONFIG_CONSOLE_USE_ANSI_ESCAPES=y
+CONFIG_POST_DEVICE_NONE=y
+CONFIG_HWBASE_DEBUG_CB=y
+# end of Console
+
+CONFIG_HAVE_MONOTONIC_TIMER=y
+
+#
+# System tables
+#
+# end of System tables
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# end of Payload
+
+#
+# Debugging
+#
+
+#
+# CPU Debug Settings
+#
+
+#
+# BLOB Debug Settings
+#
+
+#
+# General Debug Settings
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_FATAL_ASSERTS is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_CONSOLE_INIT is not set
+# CONFIG_DEBUG_SPI_FLASH is not set
+# CONFIG_DEBUG_BOOT_STATE is not set
+# CONFIG_DEBUG_ADA_CODE is not set
+# end of Debugging
+
+CONFIG_DECOMPRESS_OFAST=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_NO_XIP_EARLY_STAGES=y
+CONFIG_GENERIC_GPIO_LIB=y
+CONFIG_HAVE_BOOTBLOCK=y
+CONFIG_HAVE_ROMSTAGE=y
+CONFIG_HAVE_RAMSTAGE=y
diff --git a/resources/coreboot/qemu_arm64_12mb/board.cfg
b/resources/coreboot/qemu_arm64_12mb/board.cfg
new file mode 100644
index 0000000..11b6d99
--- /dev/null
+++ b/resources/coreboot/qemu_arm64_12mb/board.cfg
@@ -0,0 +1,3 @@
+cbtree="cros"
+arch="AArch64"
+payload_uboot="y"
diff --git a/resources/coreboot/qemu_arm64_12mb/config/libgfxinit_corebootfb
b/resources/coreboot/qemu_arm64_12mb/config/libgfxinit_corebootfb
new file mode 100644
index 0000000..da4b379
--- /dev/null
+++ b/resources/coreboot/qemu_arm64_12mb/config/libgfxinit_corebootfb
@@ -0,0 +1,397 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# coreboot configuration
+#
+
+#
+# General setup
+#
+CONFIG_COREBOOT_BUILD=y
+CONFIG_LOCALVERSION=""
+CONFIG_CBFS_PREFIX="fallback"
+CONFIG_COMPILER_GCC=y
+# CONFIG_ALLOW_EXPERIMENTAL_CLANG is not set
+# CONFIG_ANY_TOOLCHAIN is not set
+# CONFIG_CCACHE is not set
+# CONFIG_IWYU is not set
+# CONFIG_FMD_GENPARSER is not set
+# CONFIG_UTIL_GENPARSER is not set
+CONFIG_OPTION_BACKEND_NONE=y
+CONFIG_COMPRESS_RAMSTAGE_LZMA=y
+# CONFIG_COMPRESS_RAMSTAGE_LZ4 is not set
+CONFIG_COMPRESS_PRERAM_STAGES=y
+CONFIG_INCLUDE_CONFIG_FILE=y
+# CONFIG_COLLECT_TIMESTAMPS is not set
+# CONFIG_USE_BLOBS is not set
+# CONFIG_COVERAGE is not set
+# CONFIG_UBSAN is not set
+# CONFIG_ASAN is not set
+CONFIG_NO_STAGE_CACHE=y
+# CONFIG_CBMEM_STAGE_CACHE is not set
+# CONFIG_UPDATE_IMAGE is not set
+# CONFIG_BOOTSPLASH_IMAGE is not set
+# CONFIG_FW_CONFIG is not set
+
+#
+# Software Bill Of Materials (SBOM)
+#
+# CONFIG_SBOM is not set
+# end of Software Bill Of Materials (SBOM)
+# end of General setup
+
+#
+# Mainboard
+#
+
+#
+# Important: Run 'make distclean' before switching boards
+#
+# CONFIG_VENDOR_51NB is not set
+# CONFIG_VENDOR_ACER is not set
+# CONFIG_VENDOR_ADLINK is not set
+# CONFIG_VENDOR_AMD is not set
+# CONFIG_VENDOR_AOPEN is not set
+# CONFIG_VENDOR_APPLE is not set
+# CONFIG_VENDOR_ASROCK is not set
+# CONFIG_VENDOR_ASUS is not set
+# CONFIG_VENDOR_BIOSTAR is not set
+# CONFIG_VENDOR_BOSTENTECH is not set
+# CONFIG_VENDOR_BYTEDANCE is not set
+# CONFIG_VENDOR_CAVIUM is not set
+# CONFIG_VENDOR_CLEVO is not set
+# CONFIG_VENDOR_COMPULAB is not set
+# CONFIG_VENDOR_DELL is not set
+CONFIG_VENDOR_EMULATION=y
+# CONFIG_VENDOR_EXAMPLE is not set
+# CONFIG_VENDOR_FACEBOOK is not set
+# CONFIG_VENDOR_FOXCONN is not set
+# CONFIG_VENDOR_GETAC is not set
+# CONFIG_VENDOR_GIGABYTE is not set
+# CONFIG_VENDOR_GOOGLE is not set
+# CONFIG_VENDOR_HP is not set
+# CONFIG_VENDOR_IBASE is not set
+# CONFIG_VENDOR_IBM is not set
+# CONFIG_VENDOR_INTEL is not set
+# CONFIG_VENDOR_INVENTEC is not set
+# CONFIG_VENDOR_KONTRON is not set
+# CONFIG_VENDOR_LENOVO is not set
+# CONFIG_VENDOR_LIBRETREND is not set
+# CONFIG_VENDOR_MSI is not set
+# CONFIG_VENDOR_OCP is not set
+# CONFIG_VENDOR_OPENCELLULAR is not set
+# CONFIG_VENDOR_PACKARDBELL is not set
+# CONFIG_VENDOR_PCENGINES is not set
+# CONFIG_VENDOR_PINE64 is not set
+# CONFIG_VENDOR_PORTWELL is not set
+# CONFIG_VENDOR_PRODRIVE is not set
+# CONFIG_VENDOR_PROTECTLI is not set
+# CONFIG_VENDOR_PURISM is not set
+# CONFIG_VENDOR_RAZER is not set
+# CONFIG_VENDOR_RODA is not set
+# CONFIG_VENDOR_SAMSUNG is not set
+# CONFIG_VENDOR_SAPPHIRE is not set
+# CONFIG_VENDOR_SIEMENS is not set
+# CONFIG_VENDOR_SIFIVE is not set
+# CONFIG_VENDOR_STARLABS is not set
+# CONFIG_VENDOR_SUPERMICRO is not set
+# CONFIG_VENDOR_SYSTEM76 is not set
+# CONFIG_VENDOR_TI is not set
+# CONFIG_VENDOR_UP is not set
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+CONFIG_MAINBOARD_PART_NUMBER="QEMU AArch64"
+CONFIG_MAINBOARD_DIR="emulation/qemu-aarch64"
+CONFIG_DIMM_MAX=4
+CONFIG_DIMM_SPD_SIZE=256
+CONFIG_FMDFILE=""
+# CONFIG_NO_POST is not set
+CONFIG_MAINBOARD_VENDOR="QEMU"
+CONFIG_CBFS_SIZE=0x00c00000
+CONFIG_CONSOLE_SERIAL=y
+CONFIG_MAX_CPUS=2
+# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set
+CONFIG_POST_DEVICE=y
+CONFIG_UART_FOR_CONSOLE=0
+CONFIG_DEVICETREE="devicetree.cb"
+# CONFIG_VBOOT is not set
+CONFIG_OVERRIDE_DEVICETREE=""
+CONFIG_DRAM_SIZE_MB=261120
+# CONFIG_CONSOLE_POST is not set
+CONFIG_BOARD_EMULATION_QEMU_AARCH64=y
+# CONFIG_BOARD_EMULATION_QEMU_ARMV7 is not set
+# CONFIG_BOARD_EMULATION_QEMU_X86_I440FX is not set
+# CONFIG_BOARD_EMULATION_QEMU_POWER8 is not set
+# CONFIG_BOARD_EMULATION_QEMU_POWER9 is not set
+# CONFIG_BOARD_EMULATION_QEMU_X86_Q35 is not set
+# CONFIG_BOARD_EMULATION_QEMU_RISCV_RV64 is not set
+# CONFIG_BOARD_EMULATION_QEMU_RISCV_RV32 is not set
+# CONFIG_BOARD_EMULATION_SPIKE_RISCV is not set
+CONFIG_ECAM_MMCONF_BASE_ADDRESS=0x4010000000
+CONFIG_ECAM_MMCONF_BUS_NUMBER=256
+CONFIG_MEMLAYOUT_LD_FILE="src/mainboard/emulation/qemu-aarch64/memlayout.ld"
+CONFIG_MAX_ACPI_TABLE_SIZE_KB=144
+CONFIG_DRIVERS_INTEL_WIFI=y
+CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000
+CONFIG_VBT_DATA_SIZE_KB=8
+CONFIG_CARDBUS_PLUGIN_SUPPORT=y
+CONFIG_PS2K_EISAID="PNP0303"
+CONFIG_PS2M_EISAID="PNP0F13"
+CONFIG_TTYS0_BAUD=115200
+CONFIG_D3COLD_SUPPORT=y
+# CONFIG_PCIEXP_ASPM is not set
+# CONFIG_PCIEXP_L1_SUB_STATE is not set
+# CONFIG_PCIEXP_CLK_PM is not set
+CONFIG_PC_CMOS_BASE_PORT_BANK1=0x72
+CONFIG_HEAP_SIZE=0x4000
+CONFIG_EC_GPE_SCI=0x50
+CONFIG_BOARD_ROMSIZE_KB_16384=y
+# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_5120 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_6144 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_10240 is not set
+CONFIG_COREBOOT_ROMSIZE_KB_12288=y
+# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set
+# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set
+CONFIG_COREBOOT_ROMSIZE_KB=12288
+CONFIG_ROM_SIZE=0x00c00000
+# end of Mainboard
+
+#
+# Chipset
+#
+
+#
+# SoC
+#
+CONFIG_CHIPSET_DEVICETREE=""
+CONFIG_ARM64_BL31_EXTERNAL_FILE=""
+CONFIG_ARCH_ARMV8_EXTENSION=0
+CONFIG_STACK_SIZE=0x0
+CONFIG_INTEL_GMA_BCLV_OFFSET=0xc8254
+CONFIG_INTEL_GMA_BCLV_WIDTH=16
+CONFIG_INTEL_GMA_BCLM_OFFSET=0xc8256
+CONFIG_INTEL_GMA_BCLM_WIDTH=16
+# CONFIG_PCIEXP_COMMON_CLOCK is not set
+CONFIG_GENERIC_UDELAY=y
+CONFIG_CBFS_CACHE_ALIGN=8
+CONFIG_DOMAIN_RESOURCE_32BIT_LIMIT=0xfe000000
+
+#
+# CPU
+#
+
+#
+# Northbridge
+#
+
+#
+# Southbridge
+#
+# CONFIG_PCIEXP_HOTPLUG is not set
+CONFIG_FIXED_RCBA_MMIO_BASE=0xfed1c000
+CONFIG_RCBA_LENGTH=0x4000
+
+#
+# Super I/O
+#
+
+#
+# Embedded Controllers
+#
+CONFIG_ARCH_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARM64=y
+CONFIG_ARCH_VERSTAGE_ARM64=y
+CONFIG_ARCH_ROMSTAGE_ARM64=y
+CONFIG_ARCH_RAMSTAGE_ARM64=y
+CONFIG_ARCH_BOOTBLOCK_ARMV8_64=y
+CONFIG_ARCH_VERSTAGE_ARMV8_64=y
+CONFIG_ARCH_ROMSTAGE_ARMV8_64=y
+CONFIG_ARCH_RAMSTAGE_ARMV8_64=y
+CONFIG_ARM64_USE_ARCH_TIMER=y
+CONFIG_ARM64_USE_ARM_TRUSTED_FIRMWARE=y
+# end of Chipset
+
+#
+# Devices
+#
+CONFIG_HAVE_LINEAR_FRAMEBUFFER=y
+CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_FORCE_NATIVE_VGA_INIT=y
+CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y
+CONFIG_NO_EARLY_GFX_INIT=y
+
+#
+# Display
+#
+CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y
+CONFIG_LINEAR_FRAMEBUFFER=y
+# CONFIG_BOOTSPLASH is not set
+# end of Display
+
+CONFIG_PCI=y
+CONFIG_ECAM_MMCONF_SUPPORT=y
+CONFIG_PCIX_PLUGIN_SUPPORT=y
+CONFIG_PCIEXP_PLUGIN_SUPPORT=y
+CONFIG_ECAM_MMCONF_LENGTH=0x10000000
+CONFIG_PCI_ALLOW_BUS_MASTER=y
+CONFIG_PCI_SET_BUS_MASTER_PCI_BRIDGES=y
+CONFIG_PCI_ALLOW_BUS_MASTER_ANY_DEVICE=y
+# CONFIG_PCIEXP_SUPPORT_RESIZABLE_BARS is not set
+# CONFIG_PCIEXP_LANE_ERR_STAT_CLEAR is not set
+CONFIG_FIRMWARE_CONNECTION_MANAGER=y
+# CONFIG_SOFTWARE_CONNECTION_MANAGER is not set
+# CONFIG_EARLY_PCI_BRIDGE is not set
+CONFIG_SUBSYSTEM_VENDOR_ID=0x0000
+CONFIG_SUBSYSTEM_DEVICE_ID=0x0000
+# CONFIG_SOFTWARE_I2C is not set
+CONFIG_I2C_TRANSFER_TIMEOUT_US=500000
+# CONFIG_RESOURCE_ALLOCATION_TOP_DOWN is not set
+# end of Devices
+
+#
+# Generic Drivers
+#
+CONFIG_CRB_TPM_BASE_ADDRESS=0xfed40000
+CONFIG_DRIVERS_UART=y
+CONFIG_HAVE_UART_SPECIAL=y
+# CONFIG_DRIVERS_UART_OXPCIE is not set
+CONFIG_DRIVERS_UART_PL011=y
+# CONFIG_VPD is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_SERIAL is not set
+# CONFIG_DRIVERS_GENERIC_CBFS_UUID is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9750 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9755 is not set
+# CONFIG_DRIVERS_GENESYSLOGIC_GL9763E is not set
+# CONFIG_DRIVERS_NXP_UWB_SR1XX is not set
+CONFIG_PC_CMOS_BASE_PORT_BANK0=0x70
+# CONFIG_DRIVERS_SIL_3114 is not set
+CONFIG_DRIVERS_WIFI_GENERIC=y
+# end of Generic Drivers
+
+#
+# Security
+#
+
+#
+# CBFS verification
+#
+# CONFIG_CBFS_VERIFICATION is not set
+# end of CBFS verification
+
+#
+# Verified Boot (vboot)
+#
+# end of Verified Boot (vboot)
+
+#
+# Trusted Platform Module
+#
+CONFIG_NO_TPM=y
+CONFIG_PCR_BOOT_MODE=1
+CONFIG_PCR_HWID=1
+CONFIG_PCR_SRTM=2
+CONFIG_PCR_RUNTIME_DATA=3
+# end of Trusted Platform Module
+
+#
+# Memory initialization
+#
+# end of Memory initialization
+
+CONFIG_BOOTMEDIA_LOCK_NONE=y
+# CONFIG_BOOTMEDIA_LOCK_CONTROLLER is not set
+# CONFIG_BOOTMEDIA_LOCK_CHIP is not set
+# end of Security
+
+CONFIG_ACPI_HAVE_PCAT_8259=y
+CONFIG_ACPI_CUSTOM_MADT=y
+CONFIG_BOOT_DEVICE_NOT_SPI_FLASH=y
+
+#
+# Console
+#
+CONFIG_BOOTBLOCK_CONSOLE=y
+
+#
+# device-specific UART
+#
+CONFIG_TTYS0_BASE=0x3f8
+# CONFIG_CONSOLE_SERIAL_921600 is not set
+# CONFIG_CONSOLE_SERIAL_460800 is not set
+# CONFIG_CONSOLE_SERIAL_230400 is not set
+CONFIG_CONSOLE_SERIAL_115200=y
+# CONFIG_CONSOLE_SERIAL_57600 is not set
+# CONFIG_CONSOLE_SERIAL_38400 is not set
+# CONFIG_CONSOLE_SERIAL_19200 is not set
+# CONFIG_CONSOLE_SERIAL_9600 is not set
+# CONFIG_CONSOLE_NE2K is not set
+CONFIG_CONSOLE_CBMEM=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7=y
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set
+# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set
+CONFIG_DEFAULT_CONSOLE_LOGLEVEL=7
+CONFIG_CONSOLE_USE_LOGLEVEL_PREFIX=y
+CONFIG_CONSOLE_USE_ANSI_ESCAPES=y
+CONFIG_POST_DEVICE_NONE=y
+# CONFIG_POST_DEVICE_LPC is not set
+# CONFIG_POST_DEVICE_PCI_PCIE is not set
+CONFIG_HWBASE_DEBUG_CB=y
+# end of Console
+
+CONFIG_HAVE_MONOTONIC_TIMER=y
+
+#
+# System tables
+#
+# end of System tables
+
+#
+# Payload
+#
+CONFIG_PAYLOAD_NONE=y
+# end of Payload
+
+#
+# Debugging
+#
+
+#
+# CPU Debug Settings
+#
+
+#
+# BLOB Debug Settings
+#
+
+#
+# General Debug Settings
+#
+# CONFIG_GDB_STUB is not set
+# CONFIG_FATAL_ASSERTS is not set
+# CONFIG_DEBUG_CBFS is not set
+# CONFIG_DEBUG_MALLOC is not set
+# CONFIG_DEBUG_CONSOLE_INIT is not set
+# CONFIG_DEBUG_BOOT_STATE is not set
+# CONFIG_DEBUG_ADA_CODE is not set
+# end of Debugging
+
+CONFIG_MISSING_BOARD_RESET=y
+CONFIG_DECOMPRESS_OFAST=y
+CONFIG_WARNINGS_ARE_ERRORS=y
+CONFIG_MAX_REBOOT_CNT=3
+CONFIG_NO_XIP_EARLY_STAGES=y
+CONFIG_BOOTBLOCK_CUSTOM=y
+CONFIG_HAVE_BOOTBLOCK=y
+CONFIG_HAVE_ROMSTAGE=y
+CONFIG_HAVE_RAMSTAGE=y
diff --git a/resources/packages/roms_helper/boot
b/resources/packages/roms_helper/boot
index 39aa520..f9f1d9d 100755
--- a/resources/packages/roms_helper/boot
+++ b/resources/packages/roms_helper/boot
@@ -2,7 +2,7 @@
# helper script: create ROM images for a given mainboard
#
-# Copyright (C) 2020,2021 Leah Rowe <info@minifree.org>
+# Copyright (C) 2020,2021,2024 Leah Rowe <info@minifree.org>
# Copyright (C) 2021 Vitali64 <vitali64pmemail@protonmail.com>
#
# This program is free software: you can redistribute it and/or modify
@@ -57,6 +57,7 @@ romtype="normal" # optional parameter in board.cfg. "normal"
is default
arch="undefined"
# Disable all payloads by default.
# board.cfg files have to specifically enable [a] payload(s)
+payload_uboot="n"
payload_grub="n"
payload_grub_withseabios="n" # seabios chainloaded from grub
payload_seabios="n"
@@ -111,10 +112,25 @@ fi
if [ "${payload_seabios_withgrub}" = "y" ]; then
payload_seabios="y" # if seabios-with-grub works, then SeaBIOS-alone
should also work
fi
+
+ubconflict="n"
+if [ "$payload_uboot" = "y" ] && [ "$payload_grub" = "y" ]; then
+ ubconflict="grub"
+fi
+if [ "$payload_uboot" = "y" ] && [ "$payload_seabios" = "y" ]; then
+ ubconflict="seabios"
+fi
+if [ "${ubconflict}" != "n" ]; then
+ printf "ERR build/roms %s: u-boot and %s both enabled. Disable %s.\n" \
+ "$board" "$ubconflict" "$ubconflict"
+ exit 1
+fi
+
# NOTE: reverse logic must not be applied. If SeaBIOS-with-GRUB works, that
doesn't
# necessarily mean GRUB-with-SeaBIOS will work nicely. for example, the board
might
# only have an add-on GPU available, where it's recommended to boot SeaBIOS
first
-if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ]; then
+if [ "${payload_grub}" != "y" ] && [ "${payload_seabios}" != "y" ] && \
+ [ "$payload_uboot" != "y" ]; then
while true; do
for configfile in "resources/coreboot/${board}/config/"*; do
if [ -f "${configfile}" ]; then
@@ -153,14 +169,19 @@ if [ "${arch}" = "x86_32" ] || [ "${arch}" = "x86_64" ];
then
fi
make -C "${cbdir}" crossgcc-i386 CPUS=$(nproc)
fi
+ export CROSS_COMPILE="i386-elf-"
+ export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
elif [ "${arch}" = "ARMv7" ]; then
cat version > "${cbdir}/.coreboot-version"
- cd "${cbdir}"
- make crossgcc-arm CPUS=$(nproc) # This is for armv7, doesn't apply to
aarch64
+ make -c "$cbdir" crossgcc-arm CPUS=$(nproc)
+ export CROSS_COMPILE="arm-eabi-"
+ export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
elif [ "${arch}" = "AArch64" ]; then
cat version > "${cbdir}/.coreboot-version"
- cd "${cbdir}"
- make crossgcc-aarch64 CPUS=$(nproc) # This is for aarch64, doesn't
apply to armv7
+ make -C "$cbdir" crossgcc-aarch64 CPUS=$(nproc)
+ make -C "$cbdir" crossgcc-arm CPU=$(nproc)
+ export CROSS_COMPILE="aarch64-elf-"
+ export PATH="${PWD}/${cbdir}/util/crossgcc/xgcc/bin:$PATH"
fi
if [ ! -f "${cbfstool}" ]; then
@@ -448,6 +469,64 @@ mkRoms() {
if [ "${payload_grub}" = "y" ]; then
mkRomsWithGrub "${corebootrom}" "${initmode}" "${displaymode}"
"grub"
fi
+
+ if [ "$payload_uboot" = "y" ]; then
+ build_uboot_payload
+ build_uboot_roms
+ fi
+}
+
+build_uboot_payload()
+{
+ for ub in "payload/u-boot/$board/"*; do
+ if [ -f "$ub" ]; then
+ return 0 # payloads were already build
+ fi
+ done
+ if [ ! -f "resources/u-boot/$board/config/default" ]; then
+ printf "build/roms %s: no u-boot config for board" "$board" 1>&2
+ exit 1
+ fi
+ [ -d "u-boot/u-boot" ] || ./build deblob-download u-boot-libre
+ make -C "u-boot/u-boot" clean
+ cp "resources/u-boot/$board/config/default" "u-boot/u-boot/.config"
+ make -C "u-boot/u-boot"
+ mkdir -p "payload/u-boot/$board"
+ for ub in u-boot u-boot.bin u-boot.dtb u-boot.img u-boot.itb \
+ u-boot.elf; do
+ [ -f "u-boot/u-boot/$ub" ] || continue
+ cp "u-boot/u-boot/$ub" "payload/u-boot/$board/$ub"
+ done
+}
+
+build_uboot_roms()
+{
+ _tmprom=$(mkUbootRom "${corebootrom}" "fallback/payload")
+ _newrom="${romdir}/uboot_${board}_${initmode}_${displaymode}.rom"
+ moverom "${_tmprom}" "${_newrom}" "$romtype"
+ rm -f "${_tmprom}"
+}
+
+# make a rom in /tmp/ and then print the path of that ROM
+mkUbootRom() {
+ _cbrom="${1}"
+ _uboot_cbfs_path="${2}"
+
+ _ubdir="payload/u-boot/$board"
+ _ubootelf="${_ubdir}/u-boot.elf"
+ [ -f "${_ubootelf}" ] || _ubootelf="${_ubdir}/u-boot"
+ if [ ! -f "$_ubootelf" ]; then
+ printf "mkUbootRom: %s: cant find u-boot\n" "$board" 1>&2
+ exit 1
+ fi
+
+ _tmpubootrom=$(mktemp -t coreboot_rom.XXXXXXXXXX)
+
+ cp "${_cbrom}" "${_tmpubootrom}"
+ "$cbfstool" "$_tmpubootrom" add-payload -f "$_ubootelf" \
+ -n "${_uboot_cbfs_path}" -c lzma
+
+ printf "%s\n" "${_tmpubootrom}"
}
initmode="libgfxinit"
diff --git a/resources/packages/u-boot-libre/deblob-download
b/resources/packages/u-boot-libre/deblob-download
index bd0258c..cd9405d 100755
--- a/resources/packages/u-boot-libre/deblob-download
+++ b/resources/packages/u-boot-libre/deblob-download
@@ -35,11 +35,11 @@ deleteblobs="true"
# Make sure that older revision are first as code uses that order to
# find the latest supported revision.
supported_uboot_revisions=" \
- v2021.07 \
+ v2023.10 \
"
downloadfor() {
- uboot_revision="v2021.07"
+ uboot_revision="v2023.10"
uboot_dir="u-boot/u-boot"
if [ -d "${uboot_dir}" ]; then
printf \
@@ -74,14 +74,6 @@ downloadfor() {
"download/u-boot"
return 1
fi
- else
- git -C "${uboot_dir}" pull || touch build_error
- if [ -f build_error ]; then
- printf \
- "ERROR: %s: Problem with git-pull. Network issue?\n" \
- "download/u-boot"
- return 1
- fi
fi
git -C "${uboot_dir}" reset --hard ${uboot_revision} || \
@@ -92,6 +84,17 @@ downloadfor() {
"download/u-boot" "${uboot_revision}" "${1}" "${uboot_dir}"
return 1
fi
+ for patch in resources/u-boot/default/patches/*; do
+ [ -f "$patch" ] || continue
+ git -C "$uboot_dir" am "../../$patch" || touch build_error
+ if [ -f "build_error" ]; then
+ break
+ fi
+ done
+ if [ -f "build_error" ]; then
+ printf "ERROR: %s: Unable to apply patches.\n" "$uboot_dir" 1>&2
+ return 1
+ fi
}
strip_comments()
diff --git a/resources/packages/u-boot-libre/deblob-release
b/resources/packages/u-boot-libre/deblob-release
index 103523d..62036e9 100755
--- a/resources/packages/u-boot-libre/deblob-release
+++ b/resources/packages/u-boot-libre/deblob-release
@@ -26,7 +26,7 @@ set -u -e
revision="r1"
supported_uboot_versions=" \
- 2021.07 \
+ v2023.10 \
"
topdir="$(realpath $(dirname $(realpath $0))/../../../../)"
diff --git a/resources/u-boot/default/blobs.list
b/resources/u-boot/default/blobs.list
index ec6c20e..d4023e6 100644
--- a/resources/u-boot/default/blobs.list
+++ b/resources/u-boot/default/blobs.list
@@ -183,3 +183,6 @@ doc/board/rockchip/rockchip.rst
# README.rockchip
# README.rockusb
# README.socfpga
+
+arch/mips/mach-octeon/include/mach/cvmx-pki-cluster.h
+test/lib/strlcat.c
diff --git
a/resources/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
b/resources/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
new file mode 100644
index 0000000..4a3e868
--- /dev/null
+++
b/resources/u-boot/default/patches/0001-clk-rockchip-rk3399-Set-hardcoded-clock-rates-same-a.patch
@@ -0,0 +1,100 @@
+From 27d49512277677afb7f71e093b007b3e2022b83e 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 f748fb5189e0..33f02c2d633c 100644
+--- a/drivers/clk/rockchip/clk_rk3399.c
++++ b/drivers/clk/rockchip/clk_rk3399.c
+@@ -54,10 +54,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_SPL_BUILD)
+-static const struct pll_div ppll_init_cfg = PLL_DIVISORS(PPLL_HZ, 2, 2, 1);
++static const struct pll_div ppll_init_cfg = PLL_DIVISORS(PPLL_HZ, 3, 2, 1);
+ #endif
+
+ static const struct pll_div apll_l_1600_cfg = PLL_DIVISORS(1600 * MHz, 3, 1,
1);
+@@ -682,7 +683,7 @@ static ulong rk3399_spi_set_clk(struct rockchip_cru *cru,
ulong clk_id, uint hz)
+ 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;
+
+@@ -1336,6 +1337,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.42.0
+
diff --git
a/resources/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
b/resources/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
new file mode 100644
index 0000000..cd5a275
--- /dev/null
+++
b/resources/u-boot/default/patches/0002-video-improve-UEFI-experience-on-DM_VIDEO.patch
@@ -0,0 +1,513 @@
+From ac31b6bc4bcfc328342ec1677db5b80548d43b35 Mon Sep 17 00:00:00 2001
+From: Andre Przywara <andre.przywara@arm.com>
+Date: Mon, 10 Jan 2022 00:56:31 +0000
+Subject: [PATCH 1/4] video: Add cursor support for video consoles
+
+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 b5d0e3dceca3..60de5fcacb82 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 b5b3b6625902..a6d994bd637c 100644
+--- a/drivers/video/vidconsole-uclass.c
++++ b/drivers/video/vidconsole-uclass.c
+@@ -56,6 +56,26 @@ static int vidconsole_entry_start(struct udevice *dev)
+ 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)
+ {
+@@ -63,6 +83,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)
+@@ -89,6 +111,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;
+
+@@ -282,6 +306,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;
+
+@@ -456,6 +488,11 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+ struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
+ int 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;
+@@ -470,6 +507,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':
+@@ -477,6 +515,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;
+
+@@ -494,6 +533,8 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+ break;
+ }
+
++ draw_cursor(dev, true);
++
+ return 0;
+ }
+
+@@ -646,6 +687,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 2694e44f6ecf..949abb3861e7 100644
+--- a/include/video_console.h
++++ b/include/video_console.h
+@@ -59,6 +59,7 @@ struct vidconsole_priv {
+ int escape_len;
+ int row_saved;
+ int col_saved;
++ bool cursor_visible;
+ char escape_buf[32];
+ };
+
+--
+2.42.0
+
+
+From ab8ddf81c1442717f6ffddc3460d4e4adbd5b570 Mon Sep 17 00:00:00 2001
+From: Andre Przywara <andre.przywara@arm.com>
+Date: Mon, 10 Jan 2022 00:56:36 +0000
+Subject: [PATCH 2/4] efi-selftest: Add international characters test
+
+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 cc44b38bc23a..175731ae96b6 100644
+--- a/lib/efi_selftest/efi_selftest_textoutput.c
++++ b/lib/efi_selftest/efi_selftest_textoutput.c
+@@ -118,6 +118,11 @@ static int execute(void)
+ 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");
+
+ return EFI_ST_SUCCESS;
+--
+2.42.0
+
+
+From 48e918c31a46815325ffd7a77eb7a3ffedf8e59c Mon Sep 17 00:00:00 2001
+From: Andre Przywara <andre.przywara@arm.com>
+Date: Mon, 10 Jan 2022 00:56:37 +0000
+Subject: [PATCH 3/4] efi_selftest: Add box drawing character selftest
+
+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 175731ae96b6..3c6870f74241 100644
+--- a/lib/efi_selftest/efi_selftest_textoutput.c
++++ b/lib/efi_selftest/efi_selftest_textoutput.c
+@@ -123,6 +123,17 @@ static int execute(void)
+ 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");
+
+ return EFI_ST_SUCCESS;
+--
+2.42.0
+
+
+From 407ca7e821aabf240c2602dd0db56d6398a0c03b Mon Sep 17 00:00:00 2001
+From: Andre Przywara <andre.przywara@arm.com>
+Date: Mon, 10 Jan 2022 00:56:38 +0000
+Subject: [PATCH 4/4] video: Convert UTF-8 input stream to the 437 code page
+
+The bitmap fonts (VGA 8x16 and friends) we import from Linux use the
+437 code page to map their glyphs. For U-Boot's own purposes this is
+probably fine, but UEFI applications output Unicode, which only matches
+in the very basic first 127 characters.
+
+Add a function that converts UTF-8 character sequences into the
+respective CP437 code point, as far as the characters defined in there
+allow this. This includes quite some international and box drawing
+characters, which are used by UEFI applications.
+
+Signed-off-by: Andre Przywara <andre.przywara@arm.com>
+Link: https://lore.kernel.org/r/20220110005638.21599-9-andre.przywara@arm.com
+[Alper: Rebase for makefile changes, use $(SPL_TPL_)VIDEO]
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+---
+ drivers/video/Makefile | 1 +
+ drivers/video/utf8_cp437.c | 169 ++++++++++++++++++++++++++++++
+ drivers/video/vidconsole-uclass.c | 6 +-
+ include/video_console.h | 9 ++
+ 4 files changed, 184 insertions(+), 1 deletion(-)
+ create mode 100644 drivers/video/utf8_cp437.c
+
+diff --git a/drivers/video/Makefile b/drivers/video/Makefile
+index d13af9f3b19b..4b1983990aba 100644
+--- a/drivers/video/Makefile
++++ b/drivers/video/Makefile
+@@ -20,6 +20,7 @@ obj-$(CONFIG_DISPLAY) += display-uclass.o
+ obj-$(CONFIG_VIDEO_MIPI_DSI) += dsi-host-uclass.o
+ obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video-uclass.o vidconsole-uclass.o
+ obj-$(CONFIG_$(SPL_TPL_)VIDEO) += video_bmp.o
++obj-$(CONFIG_$(SPL_TPL_)VIDEO) += utf8_cp437.o
+ obj-$(CONFIG_$(SPL_TPL_)PANEL) += panel-uclass.o
+ obj-$(CONFIG_PANEL_HX8238D) += hx8238d.o
+ obj-$(CONFIG_$(SPL_TPL_)SIMPLE_PANEL) += simple_panel.o
+diff --git a/drivers/video/utf8_cp437.c b/drivers/video/utf8_cp437.c
+new file mode 100644
+index 000000000000..cab68b92b6e3
+--- /dev/null
++++ b/drivers/video/utf8_cp437.c
+@@ -0,0 +1,169 @@
++/*
++ * Convert UTF-8 bytes into a code page 437 character.
++ * Based on the table in the Code_page_437 Wikipedia page.
++ */
++
++#include <linux/types.h>
++
++uint8_t code_points_00a0[] = {
++ 255, 173, 155, 156, 7, 157, 7, 21,
++ 7, 7, 166, 174, 170, 7, 7, 7,
++ 248, 241, 253, 7, 7, 230, 20, 250,
++ 7, 7, 167, 175, 172, 171, 7, 168,
++ 7, 7, 7, 7, 142, 143, 146, 128,
++ 7, 144, 7, 7, 7, 7, 7, 7,
++ 7, 165, 7, 7, 7, 7, 153, 7,
++ 7, 7, 7, 7, 154, 7, 7, 225,
++ 133, 160, 131, 7, 132, 134, 145, 135,
++ 138, 130, 136, 137, 141, 161, 140, 139,
++ 7, 164, 149, 162, 147, 7, 148, 246,
++ 7, 151, 163, 150, 129, 7, 7, 152,
++};
++
++uint8_t code_points_2550[] = {
++ 205, 186, 213, 214, 201, 184, 183, 187,
++ 212, 211, 200, 190, 189, 188, 198, 199,
++ 204, 181, 182, 185, 209, 210, 203, 207,
++ 208, 202, 216, 215, 206
++};
++
++static uint8_t utf8_convert_11bit(uint16_t code)
++{
++ switch (code) {
++ case 0x0192: return 159;
++ case 0x0393: return 226;
++ case 0x0398: return 233;
++ case 0x03A3: return 228;
++ case 0x03A6: return 232;
++ case 0x03A9: return 234;
++ case 0x03B1: return 224;
++ case 0x03B4: return 235;
++ case 0x03B5: return 238;
++ case 0x03C0: return 227;
++ case 0x03C3: return 229;
++ case 0x03C4: return 231;
++ case 0x03C6: return 237;
++ }
++
++ return 0;
++};
++
++static uint8_t utf8_convert_2xxx(uint16_t code)
++{
++ switch (code) {
++ case 0x2022: return 7;
++ case 0x203C: return 19;
++ case 0x207F: return 252;
++ case 0x20A7: return 158;
++ case 0x2190: return 27;
++ case 0x2191: return 24;
++ case 0x2192: return 26;
++ case 0x2193: return 25;
++ case 0x2194: return 29;
++ case 0x2195: return 18;
++ case 0x21A8: return 23;
++ case 0x2219: return 249;
++ case 0x221A: return 251;
++ case 0x221E: return 236;
++ case 0x221F: return 28;
++ case 0x2229: return 239;
++ case 0x2248: return 247;
++ case 0x2261: return 240;
++ case 0x2264: return 243;
++ case 0x2265: return 242;
++ case 0x2310: return 169;
++ case 0x2320: return 244;
++ case 0x2321: return 245;
++ case 0x2500: return 196;
++ case 0x2502: return 179;
++ case 0x250C: return 218;
++ case 0x2510: return 191;
++ case 0x2514: return 192;
++ case 0x2518: return 217;
++ case 0x251C: return 195;
++ case 0x2524: return 180;
++ case 0x252C: return 194;
++ case 0x2534: return 193;
++ case 0x253C: return 197;
++ case 0x2580: return 223;
++ case 0x2584: return 220;
++ case 0x2588: return 219;
++ case 0x258C: return 221;
++ case 0x2590: return 222;
++ case 0x2591: return 176;
++ case 0x2592: return 177;
++ case 0x2593: return 178;
++ case 0x25A0: return 254;
++ case 0x25AC: return 22;
++ case 0x25B2: return 30;
++ case 0x25BA: return 16;
++ case 0x25BC: return 31;
++ case 0x25C4: return 17;
++ case 0x25CB: return 9;
++ case 0x25D8: return 8;
++ case 0x25D9: return 10;
++ case 0x263A: return 1;
++ case 0x263B: return 2;
++ case 0x263C: return 15;
++ case 0x2640: return 12;
++ case 0x2642: return 11;
++ case 0x2660: return 6;
++ case 0x2663: return 5;
++ case 0x2665: return 3;
++ case 0x2666: return 4;
++ case 0x266A: return 13;
++ case 0x266B: return 14;
++ }
++
++ return 0;
++}
++
++uint8_t convert_uc16_to_cp437(uint16_t code)
++{
++ if (code < 0x7f) // ASCII
++ return code;
++ if (code < 0xa0) // high control characters
++ return code;
++ if (code < 0x100) // international characters
++ return code_points_00a0[code - 0xa0];
++ if (code < 0x800)
++ return utf8_convert_11bit(code);
++ if (code >= 0x2550 && code < 0x256d) // block graphics
++ return code_points_2550[code - 0x2550];
++
++ return utf8_convert_2xxx(code);
++}
++
++uint8_t convert_utf8_to_cp437(uint8_t c, uint32_t *esc)
++{
++ int shift;
++ uint16_t ucs;
++
++ if (c < 127) // ASCII
++ return c;
++ if (c == 127)
++ return 8; // DEL (?)
++
++ switch (c & 0xf0) {
++ case 0xc0: case 0xd0: // two bytes sequence
++ *esc = (1U << 24) | ((c & 0x1f) << 6);
++ return 0;
++ case 0xe0: // three bytes sequence
++ *esc = (2U << 24) | ((c & 0x0f) << 12);
++ return 0;
++ case 0xf0: // four bytes sequence
++ *esc = (3U << 24) | ((c & 0x07) << 18);
++ return 0;
++ case 0x80: case 0x90: case 0xa0: case 0xb0: // continuation
++ shift = (*esc >> 24) - 1;
++ ucs = *esc & 0xffffff;
++ if (shift) {
++ *esc = (shift << 24) | ucs | (c & 0x3f) << (shift * 6);
++ return 0;
++ }
++ *esc = 0;
++ return convert_uc16_to_cp437(ucs | (c & 0x3f));
++ }
++
++ return 0;
++}
+diff --git a/drivers/video/vidconsole-uclass.c
b/drivers/video/vidconsole-uclass.c
+index a6d994bd637c..a4029a58660b 100644
+--- a/drivers/video/vidconsole-uclass.c
++++ b/drivers/video/vidconsole-uclass.c
+@@ -486,6 +486,7 @@ static int vidconsole_output_glyph(struct udevice *dev,
char ch)
+ int vidconsole_put_char(struct udevice *dev, char ch)
+ {
+ struct vidconsole_priv *priv = dev_get_uclass_priv(dev);
++ uint8_t cp437;
+ int ret;
+
+ /*
+@@ -527,7 +528,10 @@ int vidconsole_put_char(struct udevice *dev, char ch)
+ priv->last_ch = 0;
+ break;
+ default:
+- ret = vidconsole_output_glyph(dev, ch);
++ cp437 = convert_utf8_to_cp437(ch, &priv->ucs);
++ if (cp437 == 0)
++ return 0;
++ ret = vidconsole_output_glyph(dev, cp437);
+ if (ret < 0)
+ return ret;
+ break;
+diff --git a/include/video_console.h b/include/video_console.h
+index 949abb3861e7..dbfb389f324f 100644
+--- a/include/video_console.h
++++ b/include/video_console.h
+@@ -59,6 +59,7 @@ struct vidconsole_priv {
+ int escape_len;
+ int row_saved;
+ int col_saved;
++ u32 ucs;
+ bool cursor_visible;
+ char escape_buf[32];
+ };
+@@ -457,4 +458,12 @@ static inline int vidconsole_memmove(struct udevice *dev,
void *dst,
+
+ #endif
+
++/*
++ * Convert an UTF-8 byte into the corresponding character in the CP437
++ * code page. Returns 0 if that character is part of a multi-byte sequence.
++ * for which *esc holds the state of. Repeatedly feed in more bytes until
++ * the return value returns a non-0 character.
++ */
++uint8_t convert_utf8_to_cp437(uint8_t c, uint32_t *esc);
++
+ #endif
+--
+2.42.0
+
diff --git
a/resources/u-boot/default/patches/0003-Add-video-damage-tracking.patch
b/resources/u-boot/default/patches/0003-Add-video-damage-tracking.patch
new file mode 100644
index 0000000..80195dc
--- /dev/null
+++ b/resources/u-boot/default/patches/0003-Add-video-damage-tracking.patch
@@ -0,0 +1,2411 @@
+From 60a24786c1c542b2a5967632df15ae14d1385061 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>
+Link:
https://lore.kernel.org/u-boot/20230821135111.3558478-2-alpernebiyasak@gmail.com/
+---
+ test/dm/video.c | 69 +++++++++++++++++++++++++++++++++++++++++--------
+ 1 file changed, 58 insertions(+), 11 deletions(-)
+
+diff --git a/test/dm/video.c b/test/dm/video.c
+index d907f681600b..641a6250100a 100644
+--- a/test/dm/video.c
++++ b/test/dm/video.c
+@@ -55,9 +55,6 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA |
UT_TESTF_SCAN_FDT);
+ * 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
+@@ -66,7 +63,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;
+@@ -82,16 +78,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.
+@@ -155,24 +169,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;
+ }
+@@ -191,24 +211,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;
+ }
+@@ -226,6 +252,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;
+ }
+@@ -247,19 +274,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;
+ }
+@@ -292,11 +323,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++) {
+@@ -304,11 +337,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;
+ }
+@@ -383,6 +418,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;
+ }
+@@ -402,6 +438,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;
+ }
+@@ -425,6 +462,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;
+ }
+@@ -448,6 +486,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;
+ }
+@@ -471,6 +510,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;
+ }
+@@ -489,6 +529,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;
+ }
+@@ -505,6 +546,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;
+ }
+@@ -524,6 +566,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;
+ }
+@@ -543,6 +586,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;
+ }
+@@ -558,6 +602,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;
+ }
+@@ -579,6 +624,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;
+ }
+@@ -600,6 +646,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.42.0
+
+
+From e441c509aa784328c735c52e0a27a39601049de7 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>
+Link:
https://lore.kernel.org/u-boot/20230821135111.3558478-3-alpernebiyasak@gmail.com/
+---
+ test/dm/video.c | 76 ++++++++++++++++++++++++++-----------------------
+ 1 file changed, 41 insertions(+), 35 deletions(-)
+
+diff --git a/test/dm/video.c b/test/dm/video.c
+index 641a6250100a..b9ff3da10c18 100644
+--- a/test/dm/video.c
++++ b/test/dm/video.c
+@@ -57,22 +57,28 @@ DM_TEST(dm_test_video_base, UT_TESTF_SCAN_PDATA |
UT_TESTF_SCAN_FDT);
+ *
+ * @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)
+@@ -168,30 +174,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;
+@@ -210,30 +216,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;
+@@ -251,7 +257,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;
+@@ -273,23 +279,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;
+@@ -322,13 +328,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 */
+@@ -336,13 +342,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;
+@@ -417,7 +423,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;
+@@ -437,7 +443,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;
+@@ -461,7 +467,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;
+@@ -485,7 +491,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;
+@@ -509,7 +515,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;
+@@ -528,7 +534,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;
+@@ -545,7 +551,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;
+@@ -565,7 +571,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;
+@@ -585,7 +591,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;
+@@ -601,7 +607,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;
+@@ -623,7 +629,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;
+@@ -645,7 +651,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.42.0
+
+
+From 2b431f45d217e3ab454fc719157cb8b78657a129 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>
+Link:
https://lore.kernel.org/u-boot/20230821135111.3558478-4-alpernebiyasak@gmail.com/
+---
+ test/dm/video.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 54 insertions(+)
+
+diff --git a/test/dm/video.c b/test/dm/video.c
+index b9ff3da10c18..e4bd27a6b76f 100644
+--- a/test/dm/video.c
++++ b/test/dm/video.c
+@@ -657,3 +657,57 @@ static int dm_test_video_truetype_bs(struct
unit_test_state *uts)
+ return 0;
+ }
+ DM_TEST(dm_test_video_truetype_bs, UT_TESTF_SCAN_PDATA | UT_TESTF_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, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+--
+2.42.0
+
+
+From 5aea7d8d14de93dcd33acc2bc19d9de942b6d8cd 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/
+---
+ drivers/video/Kconfig | 13 ++++++++++++
+ drivers/video/video-uclass.c | 41 +++++++++++++++++++++++++++++++++---
+ include/video.h | 32 ++++++++++++++++++++++++++--
+ 3 files changed, 81 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
+index 69f4809cf4a6..db531d7caae0 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -92,6 +92,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 f743ed74c818..9888a580bfd3 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -351,9 +351,39 @@ void video_set_default_colors(struct udevice *dev, bool
invert)
+ priv->colour_bg = video_index_to_colour(priv, back);
+ }
+
++/* Notify about changes in the frame buffer */
++void video_damage(struct udevice *vid, int x, int y, int width, int height)
++{
++ struct video_priv *priv = dev_get_uclass_priv(vid);
++ int xend = x + width;
++ int yend = y + height;
++
++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE))
++ return;
++
++ if (x > priv->xsize)
++ return;
++
++ 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);
++}
++
+ /* Flush video activity to the caches */
+ int video_sync(struct udevice *vid, bool force)
+ {
++ struct video_priv *priv = dev_get_uclass_priv(vid);
+ struct video_ops *ops = video_get_ops(vid);
+ int ret;
+
+@@ -369,15 +399,12 @@ int video_sync(struct udevice *vid, bool force)
+ * out whether it exists? For now, ARM is safe.
+ */
+ #if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
+- struct video_priv *priv = dev_get_uclass_priv(vid);
+-
+ if (priv->flush_dcache) {
+ flush_dcache_range((ulong)priv->fb,
+ ALIGN((ulong)priv->fb + priv->fb_size,
+ CONFIG_SYS_CACHELINE_SIZE));
+ }
+ #elif defined(CONFIG_VIDEO_SANDBOX_SDL)
+- struct video_priv *priv = dev_get_uclass_priv(vid);
+ static ulong last_sync;
+
+ if (force || get_timer(last_sync) > 100) {
+@@ -385,6 +412,14 @@ int video_sync(struct udevice *vid, bool force)
+ last_sync = get_timer(0);
+ }
+ #endif
++
++ 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 16f7a83f8d50..307e954db828 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
+@@ -112,6 +117,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;
+@@ -254,8 +265,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);
+
+@@ -375,6 +387,22 @@ static inline int video_sync_copy_all(struct udevice *dev)
+
+ #endif
+
++/**
++ * 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);
++
+ /**
+ * video_is_active() - Test if one video device it active
+ *
+--
+2.42.0
+
+
+From 9d61d286be0e696a719af0c25a60d31482ee152c 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>
+Link:
https://lore.kernel.org/u-boot/20230821135111.3558478-6-alpernebiyasak@gmail.com/
+---
+ drivers/video/video-uclass.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
+index 9888a580bfd3..09172f1f7f45 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -203,6 +203,8 @@ int video_fill_part(struct udevice *dev, int xstart, int
ystart, int xend,
+ if (ret)
+ return ret;
+
++ video_damage(dev, xstart, ystart, xend - xstart, yend - ystart);
++
+ return 0;
+ }
+
+@@ -249,6 +251,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.42.0
+
+
+From 599159f0d1678a473211a2beda302d12ac64bf5c 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 +++++++++++++
+ drivers/video/video-uclass.c | 1 +
+ 4 files changed, 94 insertions(+)
+
+diff --git a/drivers/video/console_normal.c b/drivers/video/console_normal.c
+index 413c7abee9e1..a19ce6a2bc11 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;
+ }
+
+@@ -90,6 +102,12 @@ static int console_putc_xy(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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 65358a1c6e74..6c3e7c1bb8dc 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;
+ }
+
+@@ -96,6 +108,12 @@ static int console_putc_xy_1(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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;
+ }
+
+@@ -174,6 +204,12 @@ static int console_putc_xy_2(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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);
+ }
+
+@@ -198,6 +234,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;
+ }
+
+@@ -224,6 +266,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;
+ }
+
+@@ -255,6 +303,12 @@ static int console_putc_xy_3(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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 0f9bb49e44f7..0adbf9cc3d67 100644
+--- a/drivers/video/console_truetype.c
++++ b/drivers/video/console_truetype.c
+@@ -178,6 +178,7 @@ struct console_tt_priv {
+ 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;
+@@ -221,6 +222,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;
+ }
+
+@@ -228,6 +235,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;
+@@ -246,6 +254,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;
+ }
+
+@@ -403,6 +417,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;
+diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
+index 09172f1f7f45..06e344f415ce 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -199,6 +199,7 @@ int video_fill_part(struct udevice *dev, int xstart, int
ystart, int xend,
+ }
+ line += priv->line_length;
+ }
++
+ ret = video_sync_copy(dev, start, line);
+ if (ret)
+ return ret;
+--
+2.42.0
+
+
+From 4946d75efb4a6b4ff1c2ec306cb7509e98c24c17 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>
+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 62bc182ca161..d26659ff0a0b 100644
+--- a/configs/sandbox_defconfig
++++ b/configs/sandbox_defconfig
+@@ -307,6 +307,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 e4bd27a6b76f..8c7d9800a42e 100644
+--- a/test/dm/video.c
++++ b/test/dm/video.c
+@@ -711,3 +711,59 @@ static int dm_test_video_copy(struct unit_test_state *uts)
+ return 0;
+ }
+ DM_TEST(dm_test_video_copy, UT_TESTF_SCAN_PDATA | UT_TESTF_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, UT_TESTF_SCAN_PDATA | UT_TESTF_SCAN_FDT);
+--
+2.42.0
+
+
+From a8073a8ba8a35600302ad6430977c766869f1605 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 45f003c8251a..10943b9ca19f 100644
+--- a/drivers/video/video_bmp.c
++++ b/drivers/video/video_bmp.c
+@@ -460,6 +460,8 @@ int video_bmp_display(struct udevice *dev, ulong
bmp_image, int x, int y,
+ 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.42.0
+
+
+From 210faf6dd92d4d7647cec88aa5affddf74c35fcb 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>
+Link:
https://lore.kernel.org/u-boot/20230821135111.3558478-10-alpernebiyasak@gmail.com/
+---
+ lib/efi_loader/efi_gop.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/lib/efi_loader/efi_gop.c b/lib/efi_loader/efi_gop.c
+index 778b693f983a..db6535e080c4 100644
+--- a/lib/efi_loader/efi_gop.c
++++ b/lib/efi_loader/efi_gop.c
+@@ -24,6 +24,7 @@ static const efi_guid_t efi_gop_guid =
EFI_GRAPHICS_OUTPUT_PROTOCOL_GUID;
+ * @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
+ */
+@@ -32,6 +33,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;
+@@ -120,6 +122,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 */
+@@ -243,6 +246,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;
+ }
+
+@@ -548,6 +554,7 @@ efi_status_t efi_gop_register(void)
+ gopobj->info.pixels_per_scanline = col;
+ gopobj->bpix = bpix;
+ gopobj->fb = fb;
++ gopobj->vdev = vdev;
+
+ return EFI_SUCCESS;
+ }
+--
+2.42.0
+
+
+From 95c2109f13e9457961745193cae222523366d810 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 | 41 +++++++++++++++++++++++++++++++-----
+ 1 file changed, 36 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
+index 06e344f415ce..ac2141892bf7 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -385,6 +385,41 @@ void video_damage(struct udevice *vid, int x, int y, int
width, int height)
+ priv->damage.yend = max(yend, priv->damage.yend);
+ }
+
++#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
++static void video_flush_dcache(struct udevice *vid)
++{
++ struct video_priv *priv = dev_get_uclass_priv(vid);
++
++ if (!priv->flush_dcache)
++ return;
++
++ if (!IS_ENABLED(CONFIG_VIDEO_DAMAGE)) {
++ flush_dcache_range((ulong)priv->fb,
++ ALIGN((ulong)priv->fb + priv->fb_size,
++ CONFIG_SYS_CACHELINE_SIZE));
++
++ 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 fb = (ulong)priv->fb;
++ 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)
+ {
+@@ -404,11 +439,7 @@ 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);
+ #elif defined(CONFIG_VIDEO_SANDBOX_SDL)
+ static ulong last_sync;
+
+--
+2.42.0
+
+
+From d4c117c2455f2df8fa224ec603f2749219c72243 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 | 16 +----
+ drivers/video/vidconsole-uclass.c | 16 -----
+ drivers/video/video-uclass.c | 97 ++++++++-----------------------
+ drivers/video/video_bmp.c | 7 ---
+ include/video.h | 37 ------------
+ include/video_console.h | 52 -----------------
+ test/dm/video.c | 3 +-
+ 11 files changed, 43 insertions(+), 248 deletions(-)
+
+diff --git a/configs/sandbox_defconfig b/configs/sandbox_defconfig
+index d26659ff0a0b..62bc182ca161 100644
+--- a/configs/sandbox_defconfig
++++ b/configs/sandbox_defconfig
+@@ -307,7 +307,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 db531d7caae0..5f17c6be84ed 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -83,11 +83,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.
+@@ -105,6 +108,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 a19ce6a2bc11..c44aa09473a3 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,
+@@ -108,10 +101,6 @@ static int console_putc_xy(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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 6c3e7c1bb8dc..6e9067d1c7fb 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;
+ }
+@@ -104,10 +97,6 @@ static int console_putc_xy_1(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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,
+@@ -199,11 +184,6 @@ static int console_putc_xy_2(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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,
+@@ -220,7 +200,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;
+@@ -230,9 +210,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,
+@@ -252,16 +229,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;
+ }
+@@ -296,10 +270,6 @@ static int console_putc_xy_3(struct udevice *dev, uint
x_frac, uint y, char ch)
+ 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 0adbf9cc3d67..07bb0af71311 100644
+--- a/drivers/video/console_truetype.c
++++ b/drivers/video/console_truetype.c
+@@ -182,7 +182,6 @@ static int console_truetype_set_row(struct udevice *dev,
uint row, int clr)
+ 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;
+@@ -218,9 +217,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,
+@@ -240,14 +236,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;
+@@ -280,7 +273,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, ch, &advance, &lsb);
+@@ -424,9 +417,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;
+diff --git a/drivers/video/vidconsole-uclass.c
b/drivers/video/vidconsole-uclass.c
+index a4029a58660b..f0db412146a8 100644
+--- a/drivers/video/vidconsole-uclass.c
++++ b/drivers/video/vidconsole-uclass.c
+@@ -728,22 +728,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 ac2141892bf7..afbd4670240b 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -160,7 +160,7 @@ int video_fill_part(struct udevice *dev, int xstart, int
ystart, int xend,
+ 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);
+@@ -200,10 +200,6 @@ int video_fill_part(struct udevice *dev, int xstart, int
ystart, int xend,
+ line += priv->line_length;
+ }
+
+- ret = video_sync_copy(dev, start, line);
+- if (ret)
+- return ret;
+-
+ video_damage(dev, xstart, ystart, xend - xstart, yend - ystart);
+
+ return 0;
+@@ -223,7 +219,6 @@ int video_reserve_from_bloblist(struct video_handoff *ho)
+ 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:
+@@ -248,9 +243,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);
+
+@@ -420,6 +412,27 @@ static void video_flush_dcache(struct udevice *vid)
+ }
+ #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)
+ {
+@@ -427,6 +440,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)
+@@ -503,69 +519,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 10943b9ca19f..da2bbe864a03 100644
+--- a/drivers/video/video_bmp.c
++++ b/drivers/video/video_bmp.c
+@@ -268,7 +268,6 @@ int video_bmp_display(struct udevice *dev, ulong
bmp_image, int x, int y,
+ 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')) {
+@@ -462,11 +461,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 307e954db828..3f072b4d6b89 100644
+--- a/include/video.h
++++ b/include/video.h
+@@ -350,43 +350,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
+-
+ /**
+ * video_damage() - Notify the video subsystem about screen updates.
+ *
+diff --git a/include/video_console.h b/include/video_console.h
+index dbfb389f324f..4b4d2e621b30 100644
+--- a/include/video_console.h
++++ b/include/video_console.h
+@@ -406,58 +406,6 @@ 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
+-
+ /*
+ * Convert an UTF-8 byte into the corresponding character in the CP437
+ * code page. Returns 0 if that character is part of a multi-byte sequence.
+diff --git a/test/dm/video.c b/test/dm/video.c
+index 8c7d9800a42e..4c3bcd26e94f 100644
+--- a/test/dm/video.c
++++ b/test/dm/video.c
+@@ -106,6 +106,7 @@ static int check_copy_frame_buffer(struct unit_test_state
*uts,
+ 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");
+
+@@ -706,7 +707,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.42.0
+
+
+From cf7e5c9411fbe82487191e162bafcf178eaeaf5e 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 | 14 +++++---------
+ 1 file changed, 5 insertions(+), 9 deletions(-)
+
+diff --git a/drivers/video/video-uclass.c b/drivers/video/video-uclass.c
+index afbd4670240b..2c7777261ad1 100644
+--- a/drivers/video/video-uclass.c
++++ b/drivers/video/video-uclass.c
+@@ -377,11 +377,13 @@ void video_damage(struct udevice *vid, int x, int y, int
width, int height)
+ priv->damage.yend = max(yend, priv->damage.yend);
+ }
+
+-#if defined(CONFIG_ARM) && !CONFIG_IS_ENABLED(SYS_DCACHE_OFF)
+ static void video_flush_dcache(struct udevice *vid)
+ {
+ struct video_priv *priv = dev_get_uclass_priv(vid);
+
++ if (CONFIG_IS_ENABLED(SYS_DCACHE_OFF))
++ return;
++
+ if (!priv->flush_dcache)
+ return;
+
+@@ -410,7 +412,6 @@ static void video_flush_dcache(struct udevice *vid)
+ }
+ }
+ }
+-#endif
+
+ static void video_flush_copy(struct udevice *vid)
+ {
+@@ -449,14 +450,9 @@ int video_sync(struct udevice *vid, bool force)
+ return ret;
+ }
+
+- /*
+- * 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);
+-#elif defined(CONFIG_VIDEO_SANDBOX_SDL)
++
++#if defined(CONFIG_VIDEO_SANDBOX_SDL)
+ static ulong last_sync;
+
+ if (force || get_timer(last_sync) > 100) {
+--
+2.42.0
+
+
+From 2ada48e20ae7fb1ce66d63c6f549887c38b058d4 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>
+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 e20c3a3ee926..6bd813b68c9c 100644
+--- a/arch/arm/mach-sunxi/Kconfig
++++ b/arch/arm/mach-sunxi/Kconfig
+@@ -813,6 +813,7 @@ config VIDEO_SUNXI
+ depends on !SUN50I_GEN_H6
+ 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 5f17c6be84ed..546df93f51a9 100644
+--- a/drivers/video/Kconfig
++++ b/drivers/video/Kconfig
+@@ -499,6 +499,7 @@ config VIDEO_LCD_ANX9804
+
+ config ATMEL_LCD
+ bool "Atmel LCD panel support"
++ imply VIDEO_DAMAGE
+ depends on ARCH_AT91
+
+ config ATMEL_LCD_BGR555
+@@ -508,6 +509,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
+@@ -654,6 +656,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.
+@@ -688,6 +691,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.
+
+@@ -764,6 +768,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
+@@ -778,6 +783,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
+
+@@ -840,6 +846,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.
+@@ -858,6 +865,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.42.0
+
diff --git
a/resources/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
b/resources/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
new file mode 100644
index 0000000..3a66b99
--- /dev/null
+++
b/resources/u-boot/default/patches/0004-HACK-regulator-Don-t-error-on-reentrant-regulator-ac.patch
@@ -0,0 +1,42 @@
+From 2ab104621dc97a89bc8f75e3b5903b83e793baf8 Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Sat, 19 Aug 2023 16:43:58 +0300
+Subject: [PATCH] HACK: regulator: Don't error on reentrant regulator actions
+
+Commit 4fcba5d556b42 ("regulator: implement basic reference counter")
+implements reference counting for regulator enable/disable actions, but
+does not update its callers to handle the error cases it adds. This
+breaks gru-kevin, report enabling the regulator as a success as a
+workaround. It would be better to fix the callers but that needs more
+debugging.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+---
+ drivers/power/regulator/regulator_common.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/power/regulator/regulator_common.c
b/drivers/power/regulator/regulator_common.c
+index e26f5ebec347..1c2dfdf9b19d 100644
+--- a/drivers/power/regulator/regulator_common.c
++++ b/drivers/power/regulator/regulator_common.c
+@@ -75,7 +75,7 @@ int regulator_common_set_enable(const struct udevice *dev,
+ /* If previously enabled, increase count */
+ if (enable && plat->enable_count > 0) {
+ plat->enable_count++;
+- return -EALREADY;
++ return 0;
+ }
+
+ if (!enable) {
+@@ -85,7 +85,7 @@ int regulator_common_set_enable(const struct udevice *dev,
+ return -EBUSY;
+ } else if (!plat->enable_count) {
+ /* If already disabled, do nothing */
+- return -EALREADY;
++ return 0;
+ }
+ }
+
+--
+2.42.0
+
diff --git
a/resources/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
b/resources/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
new file mode 100644
index 0000000..ac3ada3
--- /dev/null
+++
b/resources/u-boot/default/patches/0005-HACK-rockchip-Remove-binman-image-descriptions.patch
@@ -0,0 +1,307 @@
+From b14bc4a5d8dc31294dde4ee9ce8008d763c695de Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Fri, 13 Oct 2023 14:06:26 +0300
+Subject: [PATCH] HACK: rockchip: Remove binman image descriptions
+
+For Rockchip boards binman tries to build SPI and MMC images that
+require an externally built BL31 file to be provided, and the build
+fails otherwise. This is not really as configurable as it should be.
+
+Some downstreams only care about build outputs for U-Boot proper. As a
+hack to make sure they can do so without building BL31, remove the
+binman image descriptions from the device-tree sources. However,
+BINMAN_FDT expects these to be present and has to be disabled as well.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+---
+ arch/arm/dts/rk3288-u-boot.dtsi | 24 ----
+ arch/arm/dts/rk3399-gru-u-boot.dtsi | 6 -
+ arch/arm/dts/rk3399-u-boot.dtsi | 25 ----
+ arch/arm/dts/rockchip-u-boot.dtsi | 186 ----------------------------
+ 4 files changed, 241 deletions(-)
+
+diff --git a/arch/arm/dts/rk3288-u-boot.dtsi b/arch/arm/dts/rk3288-u-boot.dtsi
+index c4c5a2d225c4..432ab92d97c9 100644
+--- a/arch/arm/dts/rk3288-u-boot.dtsi
++++ b/arch/arm/dts/rk3288-u-boot.dtsi
+@@ -55,30 +55,6 @@ noc: syscon@ffac0000 {
+ };
+ };
+
+-#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
+-&binman {
+- rom {
+- filename = "u-boot.rom";
+- size = <0x400000>;
+- pad-byte = <0xff>;
+-
+- mkimage {
+- args = "-n rk3288 -T rkspi";
+- u-boot-spl {
+- };
+- };
+- u-boot-img {
+- offset = <0x20000>;
+- };
+- u-boot {
+- offset = <0x300000>;
+- };
+- fdtmap {
+- };
+- };
+-};
+-#endif
+-
+ &bus_intmem {
+ ddr_sram: ddr-sram@1000 {
+ compatible = "rockchip,rk3288-ddr-sram";
+diff --git a/arch/arm/dts/rk3399-gru-u-boot.dtsi
b/arch/arm/dts/rk3399-gru-u-boot.dtsi
+index b1604a6872c0..54296b4d7a1c 100644
+--- a/arch/arm/dts/rk3399-gru-u-boot.dtsi
++++ b/arch/arm/dts/rk3399-gru-u-boot.dtsi
+@@ -15,12 +15,6 @@ config {
+ };
+ };
+
+-&binman {
+- rom {
+- size = <0x800000>;
+- };
+-};
+-
+ &cros_ec {
+ ec-interrupt = <&gpio0 RK_PA1 GPIO_ACTIVE_LOW>;
+ };
+diff --git a/arch/arm/dts/rk3399-u-boot.dtsi b/arch/arm/dts/rk3399-u-boot.dtsi
+index 3423b882c437..0bf4c481b39a 100644
+--- a/arch/arm/dts/rk3399-u-boot.dtsi
++++ b/arch/arm/dts/rk3399-u-boot.dtsi
+@@ -60,31 +60,6 @@ pmusgrf: syscon@ff330000 {
+
+ };
+
+-#if defined(CONFIG_ROCKCHIP_SPI_IMAGE) && defined(CONFIG_HAS_ROM)
+-&binman {
+- multiple-images;
+- rom {
+- filename = "u-boot.rom";
+- size = <0x400000>;
+- pad-byte = <0xff>;
+-
+- mkimage {
+- args = "-n rk3399 -T rkspi";
+- u-boot-spl {
+- };
+- };
+- u-boot-img {
+- offset = <0x40000>;
+- };
+- u-boot {
+- offset = <0x300000>;
+- };
+- fdtmap {
+- };
+- };
+-};
+-#endif /* CONFIG_ROCKCHIP_SPI_IMAGE && CONFIG_HAS_ROM */
+-
+ &cru {
+ bootph-all;
+ };
+diff --git a/arch/arm/dts/rockchip-u-boot.dtsi
b/arch/arm/dts/rockchip-u-boot.dtsi
+index be2658e8ef18..3d55553e4401 100644
+--- a/arch/arm/dts/rockchip-u-boot.dtsi
++++ b/arch/arm/dts/rockchip-u-boot.dtsi
+@@ -10,189 +10,3 @@ binman: binman {
+ multiple-images;
+ };
+ };
+-
+-#ifdef CONFIG_SPL
+-&binman {
+- simple-bin {
+- filename = "u-boot-rockchip.bin";
+- pad-byte = <0xff>;
+-
+- mkimage {
+- filename = "idbloader.img";
+- args = "-n", CONFIG_SYS_SOC, "-T", "rksd";
+- multiple-data-files;
+-
+-#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
+- rockchip-tpl {
+- };
+-#elif defined(CONFIG_TPL)
+- u-boot-tpl {
+- };
+-#endif
+- u-boot-spl {
+- };
+- };
+-
+-#if defined(CONFIG_SPL_FIT) && (defined(CONFIG_ARM64) ||
defined(CONFIG_SPL_OPTEE_IMAGE))
+- fit: fit {
+-#ifdef CONFIG_ARM64
+- description = "FIT image for U-Boot with bl31 (TF-A)";
+-#else
+- description = "FIT image with OP-TEE";
+-#endif
+- #address-cells = <1>;
+- fit,fdt-list = "of-list";
+- filename = "u-boot.itb";
+- fit,external-offset = <CONFIG_FIT_EXTERNAL_OFFSET>;
+- fit,align = <512>;
+- offset = <CONFIG_SPL_PAD_TO>;
+- images {
+- u-boot {
+- description = "U-Boot";
+- type = "standalone";
+- os = "U-Boot";
+-#ifdef CONFIG_ARM64
+- arch = "arm64";
+-#else
+- arch = "arm";
+-#endif
+- compression = "none";
+- load = <CONFIG_TEXT_BASE>;
+- entry = <CONFIG_TEXT_BASE>;
+- u-boot-nodtb {
+- };
+-#ifdef CONFIG_SPL_FIT_SIGNATURE
+- hash {
+- algo = "sha256";
+- };
+-#endif
+- };
+-
+-#ifdef CONFIG_ARM64
+- @atf-SEQ {
+- fit,operation = "split-elf";
+- description = "ARM Trusted Firmware";
+- type = "firmware";
+- arch = "arm64";
+- os = "arm-trusted-firmware";
+- compression = "none";
+- fit,load;
+- fit,entry;
+- fit,data;
+-
+- atf-bl31 {
+- };
+-#ifdef CONFIG_SPL_FIT_SIGNATURE
+- hash {
+- algo = "sha256";
+- };
+-#endif
+- };
+- @tee-SEQ {
+- fit,operation = "split-elf";
+- description = "TEE";
+- type = "tee";
+- arch = "arm64";
+- os = "tee";
+- compression = "none";
+- fit,load;
+- fit,entry;
+- fit,data;
+-
+- tee-os {
+- optional;
+- };
+-#ifdef CONFIG_SPL_FIT_SIGNATURE
+- hash {
+- algo = "sha256";
+- };
+-#endif
+- };
+-#else
+- op-tee {
+- description = "OP-TEE";
+- type = "tee";
+- arch = "arm";
+- os = "tee";
+- compression = "none";
+- load = <(CFG_SYS_SDRAM_BASE +
0x8400000)>;
+- entry = <(CFG_SYS_SDRAM_BASE +
0x8400000)>;
+-
+- tee-os {
+- };
+-#ifdef CONFIG_SPL_FIT_SIGNATURE
+- hash {
+- algo = "sha256";
+- };
+-#endif
+- };
+-#endif
+-
+- @fdt-SEQ {
+- description = "fdt-NAME";
+- compression = "none";
+- type = "flat_dt";
+-#ifdef CONFIG_SPL_FIT_SIGNATURE
+- hash {
+- algo = "sha256";
+- };
+-#endif
+- };
+- };
+-
+- configurations {
+- default = "@config-DEFAULT-SEQ";
+- @config-SEQ {
+- description = "NAME.dtb";
+- fdt = "fdt-SEQ";
+-#ifdef CONFIG_ARM64
+- fit,firmware = "atf-1", "u-boot";
+-#else
+- fit,firmware = "op-tee", "u-boot";
+-#endif
+- fit,loadables;
+- };
+- };
+- };
+-#else
+- u-boot-img {
+- offset = <CONFIG_SPL_PAD_TO>;
+- };
+-#endif
+- };
+-
+-#ifdef CONFIG_ROCKCHIP_SPI_IMAGE
+- simple-bin-spi {
+- filename = "u-boot-rockchip-spi.bin";
+- pad-byte = <0xff>;
+-
+- mkimage {
+- filename = "idbloader-spi.img";
+- args = "-n", CONFIG_SYS_SOC, "-T", "rkspi";
+- multiple-data-files;
+-
+-#ifdef CONFIG_ROCKCHIP_EXTERNAL_TPL
+- rockchip-tpl {
+- };
+-#elif defined(CONFIG_TPL)
+- u-boot-tpl {
+- };
+-#endif
+- u-boot-spl {
+- };
+- };
+-
+-#if defined(CONFIG_ARM64) || defined(CONFIG_SPL_OPTEE_IMAGE)
+- fit {
+- type = "blob";
+- filename = "u-boot.itb";
+-#else
+- u-boot-img {
+-#endif
+- /* Sync with u-boot,spl-payload-offset if present */
+- offset = <CONFIG_SYS_SPI_U_BOOT_OFFS>;
+- };
+- };
+-#endif /* CONFIG_ROCKCHIP_SPI_IMAGE */
+-};
+-#endif /* CONFIG_SPL */
+--
+2.42.0
+
diff --git
a/resources/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
b/resources/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
new file mode 100644
index 0000000..7aa4e52
--- /dev/null
+++
b/resources/u-boot/default/patches/0006-arm-qemu-Enable-Bochs-console-buffering-USB-keyboard.patch
@@ -0,0 +1,348 @@
+From 2957e8bf43edf8de6e579ce1ed7f95e5bb4a1437 Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Mon, 14 Aug 2023 20:39:41 +0300
+Subject: [PATCH 1/4] arm: qemu: Enable Bochs video support
+
+Commit 716161663ec49 ("riscv: qemu: Enable Bochs video support") enables
+a video console for QEMU RISC-V virtual machines using an emulated Bochs
+VGA card. Similarly, enable it for ARM virtual machines as well.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Bin Meng <bmeng@tinylab.org>
+Link:
https://lore.kernel.org/u-boot/20230814173944.288356-2-alpernebiyasak@gmail.com/
+---
+ arch/arm/Kconfig | 4 ++++
+ board/emulation/qemu-arm/qemu-arm.env | 3 +++
+ doc/board/emulation/qemu-arm.rst | 4 ++++
+ 3 files changed, 11 insertions(+)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 328e2ddc33af..d96e230e9ee8 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1036,6 +1036,10 @@ config ARCH_QEMU
+ imply DM_RTC
+ imply RTC_PL031
+ imply OF_HAS_PRIOR_STAGE
++ imply VIDEO
++ imply VIDEO_BOCHS
++ imply SYS_WHITE_ON_BLACK
++ imply SYS_CONSOLE_IS_IN_ENV
+
+ config ARCH_RMOBILE
+ bool "Renesas ARM SoCs"
+diff --git a/board/emulation/qemu-arm/qemu-arm.env
b/board/emulation/qemu-arm/qemu-arm.env
+index e658d5ee7d63..86a99a2e8713 100644
+--- a/board/emulation/qemu-arm/qemu-arm.env
++++ b/board/emulation/qemu-arm/qemu-arm.env
+@@ -2,6 +2,9 @@
+
+ /* environment for qemu-arm and qemu-arm64 */
+
++stdin=serial
++stdout=serial,vidconsole
++stderr=serial,vidconsole
+ fdt_high=0xffffffff
+ initrd_high=0xffffffff
+ fdt_addr=0x40000000
+diff --git a/doc/board/emulation/qemu-arm.rst
b/doc/board/emulation/qemu-arm.rst
+index 7291fa4a3150..c423fce76edd 100644
+--- a/doc/board/emulation/qemu-arm.rst
++++ b/doc/board/emulation/qemu-arm.rst
+@@ -67,6 +67,10 @@ Additional persistent U-Boot environment support can be
added as follows:
+ Additional peripherals that have been tested to work in both U-Boot and Linux
+ can be enabled with the following command line parameters:
+
++- To add a video console, remove "-nographic" and add e.g.::
++
++ -serial stdio -device VGA
++
+ - To add a Serial ATA disk via an Intel ICH9 AHCI controller, pass e.g.::
+
+ -drive if=none,file=disk.img,format=raw,id=mydisk \
+--
+2.42.0
+
+
+From 5330bc1c2ad84ba9ecc473f8c24d6e15b366adf9 Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Mon, 14 Aug 2023 20:39:42 +0300
+Subject: [PATCH 2/4] arm: qemu: Enable PRE_CONSOLE_BUFFER
+
+Commit 608b80b5b855 ("riscv: qemu: Enable PRE_CONSOLE_BUFFER") enables
+buffering console messages for QEMU RISC-V virtual machines so those
+printed before the video console is available will still show up on the
+display. Similarly, enable it for ARM virtual machines as well.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Reviewed-by: Bin Meng <bmeng@tinylab.org>
+Link:
https://lore.kernel.org/u-boot/20230814173944.288356-3-alpernebiyasak@gmail.com/
+---
+ arch/arm/Kconfig | 1 +
+ board/emulation/qemu-arm/Kconfig | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index d96e230e9ee8..1cc2be55140a 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1040,6 +1040,7 @@ config ARCH_QEMU
+ imply VIDEO_BOCHS
+ imply SYS_WHITE_ON_BLACK
+ imply SYS_CONSOLE_IS_IN_ENV
++ imply PRE_CONSOLE_BUFFER
+
+ config ARCH_RMOBILE
+ bool "Renesas ARM SoCs"
+diff --git a/board/emulation/qemu-arm/Kconfig
b/board/emulation/qemu-arm/Kconfig
+index ed9949651c4b..09c95413a541 100644
+--- a/board/emulation/qemu-arm/Kconfig
++++ b/board/emulation/qemu-arm/Kconfig
+@@ -12,6 +12,10 @@ config BOARD_SPECIFIC_OPTIONS # dummy
+ imply VIRTIO_NET
+ imply VIRTIO_BLK
+
++config PRE_CON_BUF_ADDR
++ hex
++ default 0x40100000
++
+ endif
+
+ if TARGET_QEMU_ARM_64BIT && !TFABOOT
+--
+2.42.0
+
+
+From 7f666214855d062dc939ff54a0fa52fbde9f0391 Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Mon, 14 Aug 2023 20:39:43 +0300
+Subject: [PATCH 3/4] arm: qemu: Enable usb keyboard as an input device
+
+Commit 02be57caf730 ("riscv: qemu: Enable usb keyboard as an input
+device") adds PCI xHCI support to QEMU RISC-V virtual machines and
+enables using a USB keyboard as one of the input devices. Similarly,
+enable those for ARM virtual machines as well.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Reviewed-by: Simon Glass <sjg@chromium.org>
+Reviewed-by: Bin Meng <bmeng@tinylab.org>
+Link:
https://lore.kernel.org/u-boot/20230814173944.288356-4-alpernebiyasak@gmail.com/
+---
+ arch/arm/Kconfig | 5 +++++
+ board/emulation/qemu-arm/qemu-arm.c | 5 +++++
+ board/emulation/qemu-arm/qemu-arm.env | 2 +-
+ configs/qemu_arm64_defconfig | 2 --
+ configs/qemu_arm_defconfig | 2 --
+ doc/board/emulation/qemu-arm.rst | 4 ++++
+ 6 files changed, 15 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 1cc2be55140a..4c739bd9bc82 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1041,6 +1041,11 @@ config ARCH_QEMU
+ imply SYS_WHITE_ON_BLACK
+ imply SYS_CONSOLE_IS_IN_ENV
+ imply PRE_CONSOLE_BUFFER
++ imply USB
++ imply USB_XHCI_HCD
++ imply USB_XHCI_PCI
++ imply USB_KEYBOARD
++ imply CMD_USB
+
+ config ARCH_RMOBILE
+ bool "Renesas ARM SoCs"
+diff --git a/board/emulation/qemu-arm/qemu-arm.c
b/board/emulation/qemu-arm/qemu-arm.c
+index dfea0d92a3c8..942f1fff5717 100644
+--- a/board/emulation/qemu-arm/qemu-arm.c
++++ b/board/emulation/qemu-arm/qemu-arm.c
+@@ -11,6 +11,7 @@
+ #include <fdtdec.h>
+ #include <init.h>
+ #include <log.h>
++#include <usb.h>
+ #include <virtio_types.h>
+ #include <virtio.h>
+
+@@ -114,6 +115,10 @@ int board_late_init(void)
+ */
+ virtio_init();
+
++ /* start usb so that usb keyboard can be used as input device */
++ if (CONFIG_IS_ENABLED(USB_KEYBOARD))
++ usb_init();
++
+ return 0;
+ }
+
+diff --git a/board/emulation/qemu-arm/qemu-arm.env
b/board/emulation/qemu-arm/qemu-arm.env
+index 86a99a2e8713..fb4adef281ed 100644
+--- a/board/emulation/qemu-arm/qemu-arm.env
++++ b/board/emulation/qemu-arm/qemu-arm.env
+@@ -2,7 +2,7 @@
+
+ /* environment for qemu-arm and qemu-arm64 */
+
+-stdin=serial
++stdin=serial,usbkbd
+ stdout=serial,vidconsole
+ stderr=serial,vidconsole
+ fdt_high=0xffffffff
+diff --git a/configs/qemu_arm64_defconfig b/configs/qemu_arm64_defconfig
+index 94bd96678443..f6b8ae530a4a 100644
+--- a/configs/qemu_arm64_defconfig
++++ b/configs/qemu_arm64_defconfig
+@@ -35,7 +35,6 @@ CONFIG_CMD_NVEDIT_EFI=y
+ CONFIG_CMD_DFU=y
+ CONFIG_CMD_MTD=y
+ CONFIG_CMD_PCI=y
+-CONFIG_CMD_USB=y
+ CONFIG_CMD_TPM=y
+ CONFIG_CMD_MTDPARTS=y
+ CONFIG_ENV_IS_IN_FLASH=y
+@@ -68,7 +67,6 @@ CONFIG_SYSRESET=y
+ CONFIG_SYSRESET_CMD_POWEROFF=y
+ CONFIG_SYSRESET_PSCI=y
+ CONFIG_TPM2_MMIO=y
+-CONFIG_USB=y
+ CONFIG_USB_EHCI_HCD=y
+ CONFIG_USB_EHCI_PCI=y
+ CONFIG_TPM=y
+diff --git a/configs/qemu_arm_defconfig b/configs/qemu_arm_defconfig
+index 7cb1e9f037ff..1347b86f34b1 100644
+--- a/configs/qemu_arm_defconfig
++++ b/configs/qemu_arm_defconfig
+@@ -36,7 +36,6 @@ CONFIG_CMD_NVEDIT_EFI=y
+ CONFIG_CMD_DFU=y
+ CONFIG_CMD_MTD=y
+ CONFIG_CMD_PCI=y
+-CONFIG_CMD_USB=y
+ CONFIG_CMD_TPM=y
+ CONFIG_CMD_MTDPARTS=y
+ CONFIG_ENV_IS_IN_FLASH=y
+@@ -69,7 +68,6 @@ CONFIG_SYSRESET=y
+ CONFIG_SYSRESET_CMD_POWEROFF=y
+ CONFIG_SYSRESET_PSCI=y
+ CONFIG_TPM2_MMIO=y
+-CONFIG_USB=y
+ CONFIG_USB_EHCI_HCD=y
+ CONFIG_USB_EHCI_PCI=y
+ CONFIG_TPM=y
+diff --git a/doc/board/emulation/qemu-arm.rst
b/doc/board/emulation/qemu-arm.rst
+index c423fce76edd..5481ef6da328 100644
+--- a/doc/board/emulation/qemu-arm.rst
++++ b/doc/board/emulation/qemu-arm.rst
+@@ -84,6 +84,10 @@ can be enabled with the following command line parameters:
+
+ -device usb-ehci,id=ehci
+
++- To add a USB keyboard attached to an emulated xHCI controller, pass e.g.::
++
++ -device qemu-xhci,id=xhci -device usb-kbd,bus=xhci.0
++
+ - To add an NVMe disk, pass e.g.::
+
+ -drive if=none,file=disk.img,id=mydisk -device
nvme,drive=mydisk,serial=foo
+--
+2.42.0
+
+
+From fcc1b6cb56beaaf90bf80928627a606f33a42c3c Mon Sep 17 00:00:00 2001
+From: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Date: Mon, 14 Aug 2023 20:39:44 +0300
+Subject: [PATCH 4/4] doc: qemu: arm: Add a section on booting Linux distros
+
+Add an example qemu-system-aarch64 command that can make U-Boot on QEMU
+boot into the Debian Installer, along with resulting console messages
+from U-Boot, based on the existing documentation section for the x86
+version.
+
+Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com>
+Link:
https://lore.kernel.org/u-boot/20230814173944.288356-5-alpernebiyasak@gmail.com/
+---
+ doc/board/emulation/qemu-arm.rst | 68 ++++++++++++++++++++++++++++++++
+ 1 file changed, 68 insertions(+)
+
+diff --git a/doc/board/emulation/qemu-arm.rst
b/doc/board/emulation/qemu-arm.rst
+index 5481ef6da328..1c91c7f3ac67 100644
+--- a/doc/board/emulation/qemu-arm.rst
++++ b/doc/board/emulation/qemu-arm.rst
+@@ -98,6 +98,74 @@ can be enabled with the following command line parameters:
+
+ These have been tested in QEMU 2.9.0 but should work in at least 2.5.0 as
well.
+
++Booting distros
++---------------
++
++It is possible to install and boot a standard Linux distribution using
++qemu_arm64 by setting up a root disk::
++
++ qemu-img create root.img 20G
++
++then using the installer to install. For example, with Debian 12::
++
++ qemu-system-aarch64 \
++ -machine virt -cpu cortex-a53 -m 4G -smp 4 \
++ -bios u-boot.bin \
++ -serial stdio -device VGA \
++ -nic user,model=virtio-net-pci \
++ -device virtio-rng-pci \
++ -device qemu-xhci,id=xhci \
++ -device usb-kbd -device usb-tablet \
++ -drive
if=virtio,file=debian-12.0.0-arm64-netinst.iso,format=raw,readonly=on,media=cdrom
\
++ -drive if=virtio,file=root.img,format=raw,media=disk
++
++The output will be something like this::
++
++ U-Boot 2023.10-rc2-00075-gbe8fbe718e35 (Aug 11 2023 - 08:38:49 +0000)
++
++ DRAM: 4 GiB
++ Core: 51 devices, 14 uclasses, devicetree: board
++ Flash: 64 MiB
++ Loading Environment from Flash... *** Warning - bad CRC, using default
environment
++
++ In: serial,usbkbd
++ Out: serial,vidconsole
++ Err: serial,vidconsole
++ Bus xhci_pci: Register 8001040 NbrPorts 8
++ Starting the controller
++ USB XHCI 1.00
++ scanning bus xhci_pci for devices... 3 USB Device(s) found
++ Net: eth0: virtio-net#32
++ Hit any key to stop autoboot: 0
++ Scanning for bootflows in all bootdevs
++ Seq Method State Uclass Part Name
Filename
++ --- ----------- ------ -------- ---- ------------------------
----------------
++ Scanning global bootmeth 'efi_mgr':
++ Scanning bootdev 'fw-cfg@9020000.bootdev':
++ fatal: no kernel available
++ scanning bus for devices...
++ Scanning bootdev 'virtio-blk#34.bootdev':
++ 0 efi ready virtio 2 virtio-blk#34.bootdev.par
efi/boot/bootaa64.efi
++ ** Booting bootflow 'virtio-blk#34.bootdev.part_2' with efi
++ Using prior-stage device tree
++ Failed to load EFI variables
++ Error: writing contents
++ ** Unable to write file ubootefi.var **
++ Failed to persist EFI variables
++ Missing TPMv2 device for EFI_TCG_PROTOCOL
++ Booting /efi\boot\bootaa64.efi
++ Error: writing contents
++ ** Unable to write file ubootefi.var **
++ Failed to persist EFI variables
++ Welcome to GRUB!
++
++Standard boot looks through various available devices and finds the virtio
++disks, then boots from the first one. After a second or so the grub menu
appears
++and you can work through the installer flow normally.
++
++After the installation, you can boot into the installed system by running QEMU
++again without the drive argument corresponding to the installer CD image.
++
+ Enabling TPMv2 support
+ ----------------------
+
+--
+2.42.0
+
diff --git a/resources/u-boot/gru_bob/config/default
b/resources/u-boot/gru_bob/config/default
new file mode 100644
index 0000000..2bcbe3d
--- /dev/null
+++ b/resources/u-boot/gru_bob/config/default
@@ -0,0 +1,2342 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2023.10 Configuration
+#
+
+#
+# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_SYS_CACHE_SHIFT_6=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_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=y
+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288
+CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE=0x18000000
+# CONFIG_GIC_V3_ITS 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_USE_ARCH_MEMSET is not set
+# CONFIG_SPL_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_TARGET_STV0991 is not set
+# CONFIG_ARCH_BCM283X is not set
+# CONFIG_ARCH_BCMSTB is not set
+# CONFIG_ARCH_BCMBCA is not set
+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
+# CONFIG_TARGET_BCMNS is not set
+# CONFIG_TARGET_BCMNS2 is not set
+# CONFIG_TARGET_BCMNS3 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# 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_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_RMOBILE 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_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_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_PRESIDIO_ASIC is not set
+# CONFIG_TARGET_XENGUEST_ARM64 is not set
+# CONFIG_ARCH_GXP is not set
+# CONFIG_STATIC_MACH_TYPE is not set
+CONFIG_TEXT_BASE=0x18000000
+CONFIG_SYS_MALLOC_LEN=0x2000000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_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_SF_DEFAULT_SPEED=20000000
+CONFIG_SF_DEFAULT_MODE=0x0
+CONFIG_ENV_SIZE=0x8000
+CONFIG_DM_GPIO=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-bob"
+CONFIG_SPL_TEXT_BASE=0xff8c2000
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_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_ROCKCHIP_COMMON_BOARD=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set
+CONFIG_ROCKCHIP_BOOT_MODE_REG=0
+# CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set
+CONFIG_ROCKCHIP_STIMER=y
+CONFIG_ROCKCHIP_STIMER_BASE=0xff8680a0
+CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+# CONFIG_SPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
+# CONFIG_SPL_MMC is not set
+CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_SPL_SERIAL=y
+CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
+CONFIG_TPL_TEXT_BASE=0xff8c2000
+CONFIG_TPL_STACK=0xff8effff
+CONFIG_SPL_DRIVERS_MISC=y
+CONFIG_SPL_STACK_R_ADDR=0x04000000
+CONFIG_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_ROCKPRO64_RK3399 is not set
+# CONFIG_TARGET_ROC_PC_RK3399 is not set
+CONFIG_SPL_STACK=0xff8effff
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_ERR_PTR_OFFSET=0x0
+CONFIG_SPL_SIZE_LIMIT=0x0
+CONFIG_SPL=y
+CONFIG_PRE_CON_BUF_ADDR=0x0f200000
+CONFIG_PRE_CON_BUF_SZ=4096
+CONFIG_BOOTSTAGE_STASH_ADDR=0
+CONFIG_DEBUG_UART_BASE=0xff1a0000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_DEBUG_UART_BOARD_INIT=y
+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 is not set
+# 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_CRYPTO is not set
+# CONFIG_CMD_DEKBLOB is not set
+# CONFIG_IMX_CAAM_DEK_ENCAP is not set
+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
+# CONFIG_IMX_SECO_DEK_ENCAP is not set
+# CONFIG_IMX_ELE_DEK_ENCAP is not set
+# CONFIG_CMD_HDMIDETECT is not set
+CONFIG_IMX_DCD_ADDR=0x00910000
+# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
+CONFIG_IMX_CONTAINER_CFG=""
+CONFIG_SYS_MEM_TOP_HIDE=0x0
+CONFIG_SYS_LOAD_ADDR=0x800800
+
+#
+# ARM debug
+#
+CONFIG_SPL_PAYLOAD="u-boot.bin"
+CONFIG_BUILD_TARGET=""
+# CONFIG_PCI is not set
+CONFIG_FWU_NUM_BANKS=2
+CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+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
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130200
+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_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_SYS_SRAM_BASE=0x0
+CONFIG_SYS_SRAM_SIZE=0x0
+# CONFIG_MP is not set
+# CONFIG_API is not set
+
+#
+# Boot options
+#
+
+#
+# Boot images
+#
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_FIT=y
+# CONFIG_TIMESTAMP is not set
+CONFIG_FIT_EXTERNAL_OFFSET=0x0
+CONFIG_FIT_FULL_CHECK=y
+# CONFIG_FIT_SIGNATURE 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_SPL_FIT_PRINT is not set
+# CONFIG_SPL_FIT_FULL_CHECK is not set
+# CONFIG_SPL_FIT_SIGNATURE 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_SPL_FIT_IMAGE_POST_PROCESS is not set
+CONFIG_SPL_FIT_SOURCE=""
+# CONFIG_USE_SPL_FIT_GENERATOR is not set
+CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS=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_EXTLINUX=y
+CONFIG_BOOTMETH_EXTLINUX_PXE=y
+CONFIG_BOOTMETH_EFILOADER=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=y
+CONFIG_SUPPORT_RAW_INITRD=y
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+# CONFIG_CHROMEOS is not set
+# CONFIG_CHROMEOS_VBOOT is not set
+# CONFIG_RAMBOOT_PBL is not set
+CONFIG_SYS_BOOT_RAMDISK_HIGH=y
+# CONFIG_DISTRO_DEFAULTS is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
+# CONFIG_SHOW_BOOT_PROGRESS is not set
+# CONFIG_SPL_SHOW_BOOT_PROGRESS is not set
+
+#
+# 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
+# CONFIG_USE_BOOTARGS is not set
+# CONFIG_BOOTARGS_SUBST is not set
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="bootflow scan -lb"
+# CONFIG_USE_PREBOOT is not set
+CONFIG_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_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_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_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 is not set
+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 is not set
+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_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_BLOBLIST_FIXED=y
+# CONFIG_BLOBLIST_ALLOC is not set
+CONFIG_BLOBLIST_ADDR=0x100000
+CONFIG_BLOBLIST_SIZE=0x1000
+CONFIG_BLOBLIST_SIZE_RELOC=0x1000
+CONFIG_SPL_BLOBLIST_FIXED=y
+# CONFIG_SPL_BLOBLIST_ALLOC is not set
+CONFIG_SUPPORT_SPL=y
+CONFIG_SUPPORT_TPL=y
+
+#
+# SPL configuration options
+#
+CONFIG_SPL_FRAMEWORK=y
+# CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
+CONFIG_SPL_MAX_SIZE=0x2e000
+CONFIG_SPL_PAD_TO=0x7f8000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0xff8e0000
+# CONFIG_SPL_NO_BSS_LIMIT is not set
+CONFIG_SPL_BSS_LIMIT=y
+# CONFIG_SPL_FOOTPRINT_LIMIT is not set
+CONFIG_SPL_BSS_MAX_SIZE=0x10000
+CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
+# CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
+# CONFIG_SPL_SHOW_ERRORS is not set
+CONFIG_SPL_BINMAN_SYMBOLS=y
+CONFIG_SPL_BINMAN_UBOOT_SYMBOLS=y
+CONFIG_HANDOFF=y
+CONFIG_SPL_HANDOFF=y
+CONFIG_SPL_BOARD_INIT=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_SYS_MALLOC_SIMPLE=y
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_SEPARATE_BSS=y
+# CONFIG_SYS_SPL_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=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SPL_FIT_IMAGE_TINY is not set
+# CONFIG_SPL_CACHE is not set
+# CONFIG_SPL_CPU is not set
+# CONFIG_SPL_CRYPTO is not set
+# CONFIG_SPL_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_SUPPORT 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=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_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=y
+# CONFIG_SPL_SPI_FLASH_MTD is not set
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000
+# 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 is not set
+# CONFIG_VPL is not set
+# CONFIG_FDT_SIMPLEFB is not set
+# CONFIG_BMP is not set
+
+#
+# Command line interface
+#
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMDLINE_EDITING=y
+# CONFIG_CMDLINE_PS_SUPPORT is not set
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_PROMPT="=> "
+CONFIG_SYS_PROMPT_HUSH_PS2="> "
+CONFIG_SYS_MAXARGS=16
+CONFIG_SYS_CBSIZE=1024
+CONFIG_SYS_PBSIZE=1044
+CONFIG_SYS_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_LICENSE is not set
+# CONFIG_CMD_PMC 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_BOOTMETH=y
+CONFIG_BOOTM_EFI=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_VBE=y
+CONFIG_BOOTM_VXWORKS=y
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=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_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_XIMG=y
+# CONFIG_CMD_XXD is not set
+# CONFIG_CMD_SPL is not set
+# CONFIG_CMD_THOR_DOWNLOAD is not set
+# CONFIG_CMD_ZBOOT 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_ARMFLASH is not set
+# 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_FPGAD is not set
+# CONFIG_CMD_FUSE is not set
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_GPIO_READ is not set
+# CONFIG_CMD_PWM is not set
+CONFIG_CMD_GPT=y
+CONFIG_RANDOM_UUID=y
+# CONFIG_CMD_GPT_RENAME is not set
+# CONFIG_CMD_IDE is not set
+# CONFIG_CMD_IO is not set
+# 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_SWRITE is not set
+# CONFIG_CMD_CLONE is not set
+# CONFIG_CMD_OSD 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=0
+# CONFIG_CMD_TSI148 is not set
+# CONFIG_CMD_UNIVERSE is not set
+CONFIG_CMD_USB=y
+# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_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
+
+#
+# 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 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_VCI_STRING="U-Boot.armv8"
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+CONFIG_NET_TFTP_VARS=y
+# CONFIG_CMD_RARP is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_SYS_DISABLE_AUTOLOAD is not set
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_WOL is not set
+
+#
+# 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
+#
+# CONFIG_CMD_DDR3 is not set
+
+#
+# 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_MTDIDS_DEFAULT=""
+CONFIG_MTDPARTS_DEFAULT=""
+# CONFIG_CMD_REISER is not set
+# CONFIG_CMD_ZFS is not set
+
+#
+# Debug commands
+#
+# CONFIG_CMD_DIAG is not set
+# CONFIG_CMD_EVENT is not set
+CONFIG_CMD_LOG=y
+# CONFIG_CMD_UBI is not set
+CONFIG_MMC_SPEED_MODE_SET=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITIONS=y
+CONFIG_SPL_PARTITIONS=y
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_SPL_MAC_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_OF_LIVE is not set
+CONFIG_OF_SEPARATE=y
+# CONFIG_OF_EMBED is not set
+# CONFIG_OF_BOARD is not set
+# CONFIG_OF_OMIT_DTB is not set
+CONFIG_DEVICE_TREE_INCLUDES=""
+CONFIG_OF_LIST="rk3399-gru-bob"
+# CONFIG_MULTI_DTB_FIT is not set
+# CONFIG_SPL_MULTI_DTB_FIT is not set
+CONFIG_SPL_OF_LIST="rk3399-gru-bob"
+CONFIG_OF_TAG_MIGRATE=y
+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names
interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+# CONFIG_OF_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 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_ONENAND is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_ENV_IS_IN_SPI_FLASH is not set
+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
+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
+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 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_SYS_RX_ETH_BUFFER=4
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+CONFIG_SPL_DM=y
+CONFIG_DM_WARN=y
+# CONFIG_SPL_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_SPL_DM_DEVICE_REMOVE is not set
+CONFIG_DM_STDIO=y
+CONFIG_DM_SEQ_ALIAS=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+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_BOUNCE_BUFFER=y
+CONFIG_ADC=y
+# 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_BLOCK_CACHE=y
+# CONFIG_BLKMAP is not set
+# CONFIG_SPL_BLOCK_CACHE is not set
+# CONFIG_EFI_MEDIA is not set
+# CONFIG_SPL_BLK_FS is not set
+# CONFIG_IDE is not set
+# CONFIG_LBA48 is not set
+# CONFIG_SYS_64BIT_LBA is not set
+# CONFIG_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_V5L2_CACHE is not set
+# CONFIG_NCORE_CACHE is not set
+# CONFIG_SIFIVE_CCACHE is not set
+
+#
+# Clock
+#
+CONFIG_CLK=y
+CONFIG_SPL_CLK=y
+# CONFIG_SPL_CLK_CCF is not set
+# CONFIG_CLK_CCF 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_CLK_AT91 is not set
+# CONFIG_CLK_RCAR is not set
+# CONFIG_CLK_RCAR_CPG_LIB 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_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_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_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_ZYNQMP_GPIO_MODEPIN is not set
+# CONFIG_SLG7XL45106_I2C_GPO is not set
+# CONFIG_TURRIS_OMNIA_MCU is not set
+# CONFIG_FTGPIO010 is not set
+# CONFIG_ADP5585_GPIO is not set
+
+#
+# Hardware Spinlock Support
+#
+# CONFIG_DM_HWSPINLOCK is not set
+CONFIG_I2C=y
+CONFIG_DM_I2C=y
+CONFIG_SPL_DM_I2C=y
+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_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_DM_KEYBOARD=y
+# CONFIG_SPL_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_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_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_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_CROS_EC_I2C is not set
+# CONFIG_CROS_EC_LPC is not set
+# CONFIG_SPL_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_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
+
+#
+# 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_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_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_BCMSTB is not set
+# CONFIG_MMC_SDHCI_CADENCE 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_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 is not set
+# CONFIG_DM_MTD is not set
+# CONFIG_MTD_NOR_FLASH 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_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SF_DEFAULT_BUS=1
+CONFIG_SF_DEFAULT_CS=0
+# CONFIG_BOOTDEV_SPI_FLASH is not set
+# CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
+CONFIG_SPI_FLASH_SMART_HWCAPS=y
+# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set
+# CONFIG_SPI_FLASH_SOFT_RESET is not set
+# CONFIG_SPI_FLASH_BAR is not set
+CONFIG_SPI_FLASH_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_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_USE_4K_SECTORS=y
+# CONFIG_SPI_FLASH_DATAFLASH 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_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_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_FSLDMAFEC 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_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_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_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_POWER=y
+# CONFIG_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=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_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_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_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_DM_REGULATOR_FIXED=y
+# CONFIG_SPL_DM_REGULATOR_FIXED is not set
+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_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_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
+#
+
+#
+# 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_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
+
+#
+# Real Time Clock
+#
+# CONFIG_DM_RTC is not set
+# CONFIG_SPL_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_PL031 is not set
+# CONFIG_RTC_S35392A is not set
+# CONFIG_RTC_MC13XXX is not set
+# CONFIG_RTC_MC146818 is not set
+# CONFIG_RTC_M41T62 is not set
+# CONFIG_SCSI is not set
+# CONFIG_DM_SCSI is not set
+CONFIG_SERIAL=y
+CONFIG_BAUDRATE=115200
+CONFIG_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_DEBUG_UART_NS16550=y
+CONFIG_SPL_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_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_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_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_ATMEL_SPI is not set
+# CONFIG_BCMSTB_SPI is not set
+# CONFIG_CORTINA_SFLASH is not set
+# CONFIG_CADENCE_QSPI is not set
+# CONFIG_CF_SPI is not set
+# CONFIG_DESIGNWARE_SPI is not set
+# CONFIG_EXYNOS_SPI is not set
+# CONFIG_FSL_DSPI is not set
+# CONFIG_FSL_QSPI is not set
+# CONFIG_GXP_SPI is not set
+# CONFIG_ICH_SPI is not set
+# CONFIG_IPROC_QSPI is not set
+# CONFIG_KIRKWOOD_SPI is not set
+# CONFIG_MICROCHIP_COREQSPI is not set
+# CONFIG_MPC8XXX_SPI is not set
+# CONFIG_MTK_SNOR is not set
+# CONFIG_MTK_SNFI_SPI is not set
+# CONFIG_MTK_SPIM is not set
+# CONFIG_MVEBU_A3700_SPI is not set
+# CONFIG_MXS_SPI is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_NPCM_FIU_SPI is not set
+# CONFIG_NPCM_PSPI is not set
+# 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_TEGRA114_SPI is not set
+# CONFIG_TEGRA20_SFLASH is not set
+# CONFIG_TEGRA20_SLINK is not set
+# CONFIG_TEGRA210_QSPI is not set
+# CONFIG_TI_QSPI is not set
+# CONFIG_XILINX_SPI is not set
+# CONFIG_ZYNQ_SPI is not set
+# CONFIG_ZYNQ_QSPI is not set
+# CONFIG_ZYNQMP_GQSPI is not set
+# CONFIG_SH_QSPI is not set
+# CONFIG_MXC_SPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+# CONFIG_SYSINFO is not set
+
+#
+# System reset device drivers
+#
+CONFIG_SYSRESET=y
+CONFIG_SPL_SYSRESET=y
+CONFIG_SYSRESET_CMD_RESET=y
+# CONFIG_SYSRESET_CMD_POWEROFF 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=y
+CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
+# CONFIG_USB_XHCI_PCI 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 is not set
+# CONFIG_SPL_USB_DWC3_GENERIC is not set
+# CONFIG_USB_DWC3_LAYERSCAPE 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
+
+#
+# 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=0
+# 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_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_RAYDIUM_RM68200 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R69328 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_SOLOMON_SSD2825 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_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_WATCHDOG_TIMEOUT_MSECS=60000
+# 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_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 is not set
+# CONFIG_BCH is not set
+# CONFIG_BINMAN_FDT 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_SPL_LIB_UUID=y
+# CONFIG_SEMIHOSTING is not set
+# CONFIG_SPL_SEMIHOSTING 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_SYS_HZ=1000
+CONFIG_SPL_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_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 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=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 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_SPL_LZMA is not set
+CONFIG_VPL_LZMA=y
+# CONFIG_SPL_LZO is not set
+# CONFIG_SPL_GZIP is not set
+# CONFIG_SPL_ZSTD is not set
+CONFIG_ERRNO_STR=y
+# CONFIG_HEXDUMP is not set
+CONFIG_GETOPT=y
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_SYS_FDT_PAD=0x3000
+CONFIG_SPL_OF_LIBFDT=y
+CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+
+#
+# System tables
+#
+CONFIG_GENERATE_SMBIOS_TABLE=y
+# CONFIG_LIB_RATIONAL is not set
+# CONFIG_SPL_LIB_RATIONAL is not set
+# CONFIG_SMBIOS_PARSER is not set
+CONFIG_EFI_LOADER=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
+# CONFIG_EFI_VARIABLE_FILE_STORE is not set
+CONFIG_EFI_VARIABLE_NO_STORE=y
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=65536
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_OPTEE_LIB is not set
+# CONFIG_OPTEE_IMAGE is not set
+# CONFIG_BOOTM_OPTEE is not set
+# CONFIG_TEST_FDTDEC is not set
+CONFIG_LIB_ELF=y
+CONFIG_LMB=y
+CONFIG_LMB_USE_MAX_REGIONS=y
+CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_PHANDLE_CHECK_SEQ is not set
+
+#
+# FWU Multi Bank Updates
+#
+# CONFIG_POST is not set
+
+#
+# Unit tests
+#
+# CONFIG_UNIT_TEST is not set
+# CONFIG_SPL_UNIT_TEST is not set
+
+#
+# Tools options
+#
+CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC32=y
+CONFIG_TOOLS_LIBCRYPTO=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 is not set
+# CONFIG_FSPI_CONF_HEADER is not set
+# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/resources/u-boot/gru_kevin/config/default
b/resources/u-boot/gru_kevin/config/default
new file mode 100644
index 0000000..466bc96
--- /dev/null
+++ b/resources/u-boot/gru_kevin/config/default
@@ -0,0 +1,2342 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2023.10 Configuration
+#
+
+#
+# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_SYS_CACHE_SHIFT_6=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_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=y
+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288
+CONFIG_LNX_KRNL_IMG_TEXT_OFFSET_BASE=0x18000000
+# CONFIG_GIC_V3_ITS 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_USE_ARCH_MEMSET is not set
+# CONFIG_SPL_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_TARGET_STV0991 is not set
+# CONFIG_ARCH_BCM283X is not set
+# CONFIG_ARCH_BCMSTB is not set
+# CONFIG_ARCH_BCMBCA is not set
+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
+# CONFIG_TARGET_BCMNS is not set
+# CONFIG_TARGET_BCMNS2 is not set
+# CONFIG_TARGET_BCMNS3 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# 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_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_RMOBILE 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_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_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_PRESIDIO_ASIC is not set
+# CONFIG_TARGET_XENGUEST_ARM64 is not set
+# CONFIG_ARCH_GXP is not set
+# CONFIG_STATIC_MACH_TYPE is not set
+CONFIG_TEXT_BASE=0x18000000
+CONFIG_SYS_MALLOC_LEN=0x2000000
+CONFIG_SYS_MALLOC_F_LEN=0x4000
+CONFIG_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_SF_DEFAULT_SPEED=20000000
+CONFIG_SF_DEFAULT_MODE=0x0
+CONFIG_ENV_SIZE=0x8000
+CONFIG_DM_GPIO=y
+CONFIG_SPL_DM_SPI=y
+CONFIG_DEFAULT_DEVICE_TREE="rk3399-gru-kevin"
+CONFIG_SPL_TEXT_BASE=0xff8c2000
+CONFIG_BOARD_SPECIFIC_OPTIONS=y
+# CONFIG_OF_LIBFDT_OVERLAY is not set
+CONFIG_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_ROCKCHIP_COMMON_BOARD=y
+CONFIG_SPL_ROCKCHIP_COMMON_BOARD=y
+# CONFIG_ROCKCHIP_EXTERNAL_TPL is not set
+CONFIG_ROCKCHIP_BOOT_MODE_REG=0
+# CONFIG_ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON is not set
+CONFIG_ROCKCHIP_STIMER=y
+CONFIG_ROCKCHIP_STIMER_BASE=0xff8680a0
+CONFIG_ROCKCHIP_SPL_RESERVE_IRAM=0x4000
+# CONFIG_SPL_ROCKCHIP_EARLYRETURN_TO_BROM is not set
+# CONFIG_SPL_MMC is not set
+CONFIG_ROCKCHIP_SPI_IMAGE=y
+CONFIG_SPL_SERIAL=y
+CONFIG_TPL_LDSCRIPT="arch/arm/mach-rockchip/u-boot-tpl-v8.lds"
+CONFIG_TPL_TEXT_BASE=0xff8c2000
+CONFIG_TPL_STACK=0xff8effff
+CONFIG_SPL_DRIVERS_MISC=y
+CONFIG_SPL_STACK_R_ADDR=0x04000000
+# CONFIG_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_ROCKPRO64_RK3399 is not set
+# CONFIG_TARGET_ROC_PC_RK3399 is not set
+CONFIG_SPL_STACK=0xff8effff
+CONFIG_SPL_SYS_MALLOC_F_LEN=0x4000
+CONFIG_ERR_PTR_OFFSET=0x0
+CONFIG_SPL_SIZE_LIMIT=0x0
+CONFIG_SPL=y
+CONFIG_PRE_CON_BUF_ADDR=0x0f200000
+CONFIG_PRE_CON_BUF_SZ=4096
+CONFIG_BOOTSTAGE_STASH_ADDR=0
+CONFIG_DEBUG_UART_BASE=0xff1a0000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_DEBUG_UART_BOARD_INIT=y
+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 is not set
+# 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_CRYPTO is not set
+# CONFIG_CMD_DEKBLOB is not set
+# CONFIG_IMX_CAAM_DEK_ENCAP is not set
+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
+# CONFIG_IMX_SECO_DEK_ENCAP is not set
+# CONFIG_IMX_ELE_DEK_ENCAP is not set
+# CONFIG_CMD_HDMIDETECT is not set
+CONFIG_IMX_DCD_ADDR=0x00910000
+# CONFIG_SPL_LOAD_IMX_CONTAINER is not set
+CONFIG_IMX_CONTAINER_CFG=""
+CONFIG_SYS_MEM_TOP_HIDE=0x0
+CONFIG_SYS_LOAD_ADDR=0x800800
+
+#
+# ARM debug
+#
+CONFIG_SPL_PAYLOAD="u-boot.bin"
+CONFIG_BUILD_TARGET=""
+# CONFIG_PCI is not set
+CONFIG_FWU_NUM_BANKS=2
+CONFIG_FWU_NUM_IMAGES_PER_BANK=2
+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
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130200
+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_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_SYS_SRAM_BASE=0x0
+CONFIG_SYS_SRAM_SIZE=0x0
+# CONFIG_MP is not set
+# CONFIG_API is not set
+
+#
+# Boot options
+#
+
+#
+# Boot images
+#
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_FIT=y
+# CONFIG_TIMESTAMP is not set
+CONFIG_FIT_EXTERNAL_OFFSET=0x0
+CONFIG_FIT_FULL_CHECK=y
+# CONFIG_FIT_SIGNATURE 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_SPL_FIT_PRINT is not set
+# CONFIG_SPL_FIT_FULL_CHECK is not set
+# CONFIG_SPL_FIT_SIGNATURE 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_SPL_FIT_IMAGE_POST_PROCESS is not set
+CONFIG_SPL_FIT_SOURCE=""
+# CONFIG_USE_SPL_FIT_GENERATOR is not set
+CONFIG_PXE_UTILS=y
+CONFIG_BOOT_DEFAULTS=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_EXTLINUX=y
+CONFIG_BOOTMETH_EXTLINUX_PXE=y
+CONFIG_BOOTMETH_EFILOADER=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=y
+CONFIG_SUPPORT_RAW_INITRD=y
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+CONFIG_HAVE_TEXT_BASE=y
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+# CONFIG_CHROMEOS is not set
+# CONFIG_CHROMEOS_VBOOT is not set
+# CONFIG_RAMBOOT_PBL is not set
+CONFIG_SYS_BOOT_RAMDISK_HIGH=y
+# CONFIG_DISTRO_DEFAULTS is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
+# CONFIG_SHOW_BOOT_PROGRESS is not set
+# CONFIG_SPL_SHOW_BOOT_PROGRESS is not set
+
+#
+# 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
+# CONFIG_USE_BOOTARGS is not set
+# CONFIG_BOOTARGS_SUBST is not set
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="bootflow scan -lb"
+# CONFIG_USE_PREBOOT is not set
+CONFIG_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_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_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_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 is not set
+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 is not set
+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_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_BLOBLIST_FIXED=y
+# CONFIG_BLOBLIST_ALLOC is not set
+CONFIG_BLOBLIST_ADDR=0x100000
+CONFIG_BLOBLIST_SIZE=0x1000
+CONFIG_BLOBLIST_SIZE_RELOC=0x1000
+CONFIG_SPL_BLOBLIST_FIXED=y
+# CONFIG_SPL_BLOBLIST_ALLOC is not set
+CONFIG_SUPPORT_SPL=y
+CONFIG_SUPPORT_TPL=y
+
+#
+# SPL configuration options
+#
+CONFIG_SPL_FRAMEWORK=y
+# CONFIG_SPL_FRAMEWORK_BOARD_INIT_F is not set
+CONFIG_SPL_MAX_SIZE=0x2e000
+CONFIG_SPL_PAD_TO=0x7f8000
+CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
+CONFIG_SPL_BSS_START_ADDR=0xff8e0000
+# CONFIG_SPL_NO_BSS_LIMIT is not set
+CONFIG_SPL_BSS_LIMIT=y
+# CONFIG_SPL_FOOTPRINT_LIMIT is not set
+CONFIG_SPL_BSS_MAX_SIZE=0x10000
+CONFIG_SPL_SYS_STACK_F_CHECK_BYTE=0xaa
+# CONFIG_SPL_SYS_REPORT_STACK_F_USAGE is not set
+# CONFIG_SPL_SHOW_ERRORS is not set
+CONFIG_SPL_BINMAN_SYMBOLS=y
+CONFIG_SPL_BINMAN_UBOOT_SYMBOLS=y
+CONFIG_HANDOFF=y
+CONFIG_SPL_HANDOFF=y
+CONFIG_SPL_BOARD_INIT=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_SYS_MALLOC_SIMPLE=y
+# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set
+CONFIG_SPL_STACK_R=y
+CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN=0x4000
+CONFIG_SPL_SEPARATE_BSS=y
+# CONFIG_SYS_SPL_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=y
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x4000
+CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
+# CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
+# CONFIG_SPL_FIT_IMAGE_TINY is not set
+# CONFIG_SPL_CACHE is not set
+# CONFIG_SPL_CPU is not set
+# CONFIG_SPL_CRYPTO is not set
+# CONFIG_SPL_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_SUPPORT 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=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_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=y
+# CONFIG_SPL_SPI_FLASH_MTD is not set
+CONFIG_SPL_SPI_LOAD=y
+CONFIG_SYS_SPI_U_BOOT_OFFS=0x40000
+# 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 is not set
+# CONFIG_VPL is not set
+# CONFIG_FDT_SIMPLEFB is not set
+# CONFIG_BMP is not set
+
+#
+# Command line interface
+#
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMDLINE_EDITING=y
+# CONFIG_CMDLINE_PS_SUPPORT is not set
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_PROMPT="=> "
+CONFIG_SYS_PROMPT_HUSH_PS2="> "
+CONFIG_SYS_MAXARGS=16
+CONFIG_SYS_CBSIZE=1024
+CONFIG_SYS_PBSIZE=1044
+CONFIG_SYS_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_LICENSE is not set
+# CONFIG_CMD_PMC 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_BOOTMETH=y
+CONFIG_BOOTM_EFI=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_VBE=y
+CONFIG_BOOTM_VXWORKS=y
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=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_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_XIMG=y
+# CONFIG_CMD_XXD is not set
+# CONFIG_CMD_SPL is not set
+# CONFIG_CMD_THOR_DOWNLOAD is not set
+# CONFIG_CMD_ZBOOT 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_ARMFLASH is not set
+# 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_FPGAD is not set
+# CONFIG_CMD_FUSE is not set
+CONFIG_CMD_GPIO=y
+# CONFIG_CMD_GPIO_READ is not set
+# CONFIG_CMD_PWM is not set
+CONFIG_CMD_GPT=y
+CONFIG_RANDOM_UUID=y
+# CONFIG_CMD_GPT_RENAME is not set
+# CONFIG_CMD_IDE is not set
+# CONFIG_CMD_IO is not set
+# 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_SWRITE is not set
+# CONFIG_CMD_CLONE is not set
+# CONFIG_CMD_OSD 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=0
+# CONFIG_CMD_TSI148 is not set
+# CONFIG_CMD_UNIVERSE is not set
+CONFIG_CMD_USB=y
+# CONFIG_CMD_USB_SDP is not set
+# CONFIG_CMD_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
+
+#
+# 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 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_VCI_STRING="U-Boot.armv8"
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+CONFIG_NET_TFTP_VARS=y
+# CONFIG_CMD_RARP is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_SYS_DISABLE_AUTOLOAD is not set
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_MDIO=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_WOL is not set
+
+#
+# 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
+#
+# CONFIG_CMD_DDR3 is not set
+
+#
+# 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_MTDIDS_DEFAULT=""
+CONFIG_MTDPARTS_DEFAULT=""
+# CONFIG_CMD_REISER is not set
+# CONFIG_CMD_ZFS is not set
+
+#
+# Debug commands
+#
+# CONFIG_CMD_DIAG is not set
+# CONFIG_CMD_EVENT is not set
+CONFIG_CMD_LOG=y
+# CONFIG_CMD_UBI is not set
+CONFIG_MMC_SPEED_MODE_SET=y
+
+#
+# Partition Types
+#
+CONFIG_PARTITIONS=y
+CONFIG_SPL_PARTITIONS=y
+# CONFIG_MAC_PARTITION is not set
+# CONFIG_SPL_MAC_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_OF_LIVE is not set
+CONFIG_OF_SEPARATE=y
+# CONFIG_OF_EMBED is not set
+# CONFIG_OF_BOARD is not set
+# CONFIG_OF_OMIT_DTB is not set
+CONFIG_DEVICE_TREE_INCLUDES=""
+CONFIG_OF_LIST="rk3399-gru-kevin"
+# CONFIG_MULTI_DTB_FIT is not set
+# CONFIG_SPL_MULTI_DTB_FIT is not set
+CONFIG_SPL_OF_LIST="rk3399-gru-kevin"
+CONFIG_OF_TAG_MIGRATE=y
+CONFIG_OF_SPL_REMOVE_PROPS="pinctrl-0 pinctrl-names clock-names
interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+# CONFIG_OF_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 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_ONENAND is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_ENV_IS_IN_SPI_FLASH is not set
+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
+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
+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 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_SYS_RX_ETH_BUFFER=4
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+CONFIG_SPL_DM=y
+CONFIG_DM_WARN=y
+# CONFIG_SPL_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_SPL_DM_DEVICE_REMOVE is not set
+CONFIG_DM_STDIO=y
+CONFIG_DM_SEQ_ALIAS=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+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_BOUNCE_BUFFER=y
+CONFIG_ADC=y
+# 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_BLOCK_CACHE=y
+# CONFIG_BLKMAP is not set
+# CONFIG_SPL_BLOCK_CACHE is not set
+# CONFIG_EFI_MEDIA is not set
+# CONFIG_SPL_BLK_FS is not set
+# CONFIG_IDE is not set
+# CONFIG_LBA48 is not set
+# CONFIG_SYS_64BIT_LBA is not set
+# CONFIG_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_V5L2_CACHE is not set
+# CONFIG_NCORE_CACHE is not set
+# CONFIG_SIFIVE_CCACHE is not set
+
+#
+# Clock
+#
+CONFIG_CLK=y
+CONFIG_SPL_CLK=y
+# CONFIG_SPL_CLK_CCF is not set
+# CONFIG_CLK_CCF 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_CLK_AT91 is not set
+# CONFIG_CLK_RCAR is not set
+# CONFIG_CLK_RCAR_CPG_LIB 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_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_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_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_ZYNQMP_GPIO_MODEPIN is not set
+# CONFIG_SLG7XL45106_I2C_GPO is not set
+# CONFIG_TURRIS_OMNIA_MCU is not set
+# CONFIG_FTGPIO010 is not set
+# CONFIG_ADP5585_GPIO is not set
+
+#
+# Hardware Spinlock Support
+#
+# CONFIG_DM_HWSPINLOCK is not set
+CONFIG_I2C=y
+CONFIG_DM_I2C=y
+CONFIG_SPL_DM_I2C=y
+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_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_DM_KEYBOARD=y
+# CONFIG_SPL_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_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_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_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_CROS_EC_I2C is not set
+# CONFIG_CROS_EC_LPC is not set
+# CONFIG_SPL_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_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
+
+#
+# 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_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_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_BCMSTB is not set
+# CONFIG_MMC_SDHCI_CADENCE 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_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 is not set
+# CONFIG_DM_MTD is not set
+# CONFIG_MTD_NOR_FLASH 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_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH=y
+CONFIG_SF_DEFAULT_BUS=1
+CONFIG_SF_DEFAULT_CS=0
+# CONFIG_BOOTDEV_SPI_FLASH is not set
+# CONFIG_SPI_FLASH_SFDP_SUPPORT is not set
+CONFIG_SPI_FLASH_SMART_HWCAPS=y
+# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set
+# CONFIG_SPI_FLASH_SOFT_RESET is not set
+# CONFIG_SPI_FLASH_BAR is not set
+CONFIG_SPI_FLASH_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_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_USE_4K_SECTORS=y
+# CONFIG_SPI_FLASH_DATAFLASH 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_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_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_FSLDMAFEC 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_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_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_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_POWER=y
+# CONFIG_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=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_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_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_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_DM_REGULATOR_FIXED=y
+# CONFIG_SPL_DM_REGULATOR_FIXED is not set
+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_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_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
+#
+
+#
+# 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_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
+
+#
+# Real Time Clock
+#
+# CONFIG_DM_RTC is not set
+# CONFIG_SPL_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_PL031 is not set
+# CONFIG_RTC_S35392A is not set
+# CONFIG_RTC_MC13XXX is not set
+# CONFIG_RTC_MC146818 is not set
+# CONFIG_RTC_M41T62 is not set
+# CONFIG_SCSI is not set
+# CONFIG_DM_SCSI is not set
+CONFIG_SERIAL=y
+CONFIG_BAUDRATE=115200
+CONFIG_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_DEBUG_UART_NS16550=y
+CONFIG_SPL_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_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_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_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_ATMEL_SPI is not set
+# CONFIG_BCMSTB_SPI is not set
+# CONFIG_CORTINA_SFLASH is not set
+# CONFIG_CADENCE_QSPI is not set
+# CONFIG_CF_SPI is not set
+# CONFIG_DESIGNWARE_SPI is not set
+# CONFIG_EXYNOS_SPI is not set
+# CONFIG_FSL_DSPI is not set
+# CONFIG_FSL_QSPI is not set
+# CONFIG_GXP_SPI is not set
+# CONFIG_ICH_SPI is not set
+# CONFIG_IPROC_QSPI is not set
+# CONFIG_KIRKWOOD_SPI is not set
+# CONFIG_MICROCHIP_COREQSPI is not set
+# CONFIG_MPC8XXX_SPI is not set
+# CONFIG_MTK_SNOR is not set
+# CONFIG_MTK_SNFI_SPI is not set
+# CONFIG_MTK_SPIM is not set
+# CONFIG_MVEBU_A3700_SPI is not set
+# CONFIG_MXS_SPI is not set
+# CONFIG_SPI_MXIC is not set
+# CONFIG_NPCM_FIU_SPI is not set
+# CONFIG_NPCM_PSPI is not set
+# 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_TEGRA114_SPI is not set
+# CONFIG_TEGRA20_SFLASH is not set
+# CONFIG_TEGRA20_SLINK is not set
+# CONFIG_TEGRA210_QSPI is not set
+# CONFIG_TI_QSPI is not set
+# CONFIG_XILINX_SPI is not set
+# CONFIG_ZYNQ_SPI is not set
+# CONFIG_ZYNQ_QSPI is not set
+# CONFIG_ZYNQMP_GQSPI is not set
+# CONFIG_SH_QSPI is not set
+# CONFIG_MXC_SPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+# CONFIG_SYSINFO is not set
+
+#
+# System reset device drivers
+#
+CONFIG_SYSRESET=y
+CONFIG_SPL_SYSRESET=y
+CONFIG_SYSRESET_CMD_RESET=y
+# CONFIG_SYSRESET_CMD_POWEROFF 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=y
+CONFIG_USB_XHCI_DWC3_OF_SIMPLE=y
+# CONFIG_USB_XHCI_PCI 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 is not set
+# CONFIG_SPL_USB_DWC3_GENERIC is not set
+# CONFIG_USB_DWC3_LAYERSCAPE 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
+
+#
+# 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=0
+# 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_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_RAYDIUM_RM68200 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R69328 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_SOLOMON_SSD2825 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_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_WATCHDOG_TIMEOUT_MSECS=60000
+# 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_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 is not set
+# CONFIG_BCH is not set
+# CONFIG_BINMAN_FDT 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_SPL_LIB_UUID=y
+# CONFIG_SEMIHOSTING is not set
+# CONFIG_SPL_SEMIHOSTING 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_SYS_HZ=1000
+CONFIG_SPL_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_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 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=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 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_SPL_LZMA is not set
+CONFIG_VPL_LZMA=y
+# CONFIG_SPL_LZO is not set
+# CONFIG_SPL_GZIP is not set
+# CONFIG_SPL_ZSTD is not set
+CONFIG_ERRNO_STR=y
+# CONFIG_HEXDUMP is not set
+CONFIG_GETOPT=y
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_SYS_FDT_PAD=0x3000
+CONFIG_SPL_OF_LIBFDT=y
+CONFIG_SPL_OF_LIBFDT_ASSUME_MASK=0xff
+
+#
+# System tables
+#
+CONFIG_GENERATE_SMBIOS_TABLE=y
+# CONFIG_LIB_RATIONAL is not set
+# CONFIG_SPL_LIB_RATIONAL is not set
+# CONFIG_SMBIOS_PARSER is not set
+CONFIG_EFI_LOADER=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
+# CONFIG_EFI_VARIABLE_FILE_STORE is not set
+CONFIG_EFI_VARIABLE_NO_STORE=y
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=65536
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_OPTEE_LIB is not set
+# CONFIG_OPTEE_IMAGE is not set
+# CONFIG_BOOTM_OPTEE is not set
+# CONFIG_TEST_FDTDEC is not set
+CONFIG_LIB_ELF=y
+CONFIG_LMB=y
+CONFIG_LMB_USE_MAX_REGIONS=y
+CONFIG_LMB_MAX_REGIONS=16
+# CONFIG_PHANDLE_CHECK_SEQ is not set
+
+#
+# FWU Multi Bank Updates
+#
+# CONFIG_POST is not set
+
+#
+# Unit tests
+#
+# CONFIG_UNIT_TEST is not set
+# CONFIG_SPL_UNIT_TEST is not set
+
+#
+# Tools options
+#
+CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC32=y
+CONFIG_TOOLS_LIBCRYPTO=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 is not set
+# CONFIG_FSPI_CONF_HEADER is not set
+# CONFIG_TOOLS_MKFWUMDATA is not set
diff --git a/resources/u-boot/qemu_arm64_12mb/config/default
b/resources/u-boot/qemu_arm64_12mb/config/default
new file mode 100644
index 0000000..83c9026
--- /dev/null
+++ b/resources/u-boot/qemu_arm64_12mb/config/default
@@ -0,0 +1,1769 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# U-Boot 2023.10 Configuration
+#
+
+#
+# Compiler: gcc (Debian 13.2.0-5) 13.2.0
+#
+CONFIG_CREATE_ARCH_SYMLINK=y
+CONFIG_SYS_CACHE_SHIFT_6=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_GIC_V3_ITS 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_TARGET_STV0991 is not set
+# CONFIG_ARCH_BCM283X is not set
+# CONFIG_ARCH_BCMSTB is not set
+# CONFIG_ARCH_BCMBCA is not set
+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set
+# CONFIG_TARGET_BCMNS is not set
+# CONFIG_TARGET_BCMNS2 is not set
+# CONFIG_TARGET_BCMNS3 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_S5PC1XX is not set
+# 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_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_RMOBILE 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_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_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_PRESIDIO_ASIC is not set
+# CONFIG_TARGET_XENGUEST_ARM64 is not set
+# CONFIG_ARCH_GXP is not set
+# CONFIG_STATIC_MACH_TYPE is not set
+CONFIG_TEXT_BASE=0x50000000
+CONFIG_SYS_MALLOC_LEN=0x1000000
+CONFIG_SYS_MALLOC_F_LEN=0x2000
+CONFIG_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_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_ERR_PTR_OFFSET=0x0
+CONFIG_PRE_CON_BUF_ADDR=0x40100000
+CONFIG_PRE_CON_BUF_SZ=4096
+CONFIG_BOOTSTAGE_STASH_ADDR=0
+CONFIG_DEBUG_UART_BASE=0x9000000
+CONFIG_DEBUG_UART_CLOCK=0
+# CONFIG_DEBUG_UART_BOARD_INIT is not set
+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_CRYPTO=y
+CONFIG_ARMV8_CE_SHA1=y
+CONFIG_ARMV8_CE_SHA256=y
+# CONFIG_CMD_DEKBLOB is not set
+# CONFIG_IMX_CAAM_DEK_ENCAP is not set
+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set
+# CONFIG_IMX_SECO_DEK_ENCAP is not set
+# CONFIG_IMX_ELE_DEK_ENCAP is not set
+# CONFIG_CMD_HDMIDETECT is not set
+CONFIG_IMX_DCD_ADDR=0x00910000
+CONFIG_SYS_MEM_TOP_HIDE=0x0
+CONFIG_SYS_LOAD_ADDR=0x40200000
+CONFIG_MTDPARTS_NOR0="64m(u-boot)"
+CONFIG_MTDPARTS_NOR1="64m(u-boot-env)"
+
+#
+# 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
+
+#
+# General setup
+#
+CONFIG_LOCALVERSION=""
+CONFIG_LOCALVERSION_AUTO=y
+CONFIG_CC_IS_GCC=y
+CONFIG_GCC_VERSION=130200
+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_SYS_SRAM_BASE=0x0
+CONFIG_SYS_SRAM_SIZE=0x0
+# CONFIG_MP is not set
+# CONFIG_API is not set
+
+#
+# Boot options
+#
+
+#
+# Boot images
+#
+# CONFIG_ANDROID_BOOT_IMAGE is not set
+CONFIG_FIT=y
+CONFIG_TIMESTAMP=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=y
+CONFIG_BOOTSTD=y
+CONFIG_BOOTSTD_FULL=y
+CONFIG_BOOTSTD_DEFAULTS=y
+CONFIG_BOOTSTD_BOOTCOMMAND=y
+CONFIG_BOOTMETH_GLOBAL=y
+CONFIG_BOOTMETH_EXTLINUX=y
+CONFIG_BOOTMETH_EXTLINUX_PXE=y
+CONFIG_BOOTMETH_EFILOADER=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=y
+CONFIG_SUPPORT_RAW_INITRD=y
+# CONFIG_OF_BOARD_SETUP is not set
+# CONFIG_OF_SYSTEM_SETUP is not set
+# CONFIG_OF_STDOUT_VIA_ALIAS is not set
+CONFIG_HAVE_TEXT_BASE=y
+CONFIG_HAVE_SYS_MONITOR_BASE=y
+CONFIG_SYS_MONITOR_BASE=0x50000000
+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set
+CONFIG_ARCH_FIXUP_FDT_MEMORY=y
+# CONFIG_CHROMEOS is not set
+# CONFIG_CHROMEOS_VBOOT is not set
+# CONFIG_RAMBOOT_PBL is not set
+CONFIG_SYS_BOOT_RAMDISK_HIGH=y
+# CONFIG_DISTRO_DEFAULTS is not set
+
+#
+# Boot timing
+#
+# CONFIG_BOOTSTAGE is not set
+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000
+# 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
+# CONFIG_USE_BOOTARGS is not set
+# CONFIG_BOOTARGS_SUBST is not set
+CONFIG_USE_BOOTCOMMAND=y
+CONFIG_BOOTCOMMAND="bootflow scan -lb"
+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_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_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 is not set
+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 is not set
+# 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_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 is not set
+CONFIG_IMAGE_SIGN_INFO=y
+# CONFIG_FDT_SIMPLEFB is not set
+# CONFIG_BMP is not set
+
+#
+# Command line interface
+#
+CONFIG_CMDLINE=y
+CONFIG_HUSH_PARSER=y
+CONFIG_CMDLINE_EDITING=y
+# CONFIG_CMDLINE_PS_SUPPORT is not set
+CONFIG_AUTO_COMPLETE=y
+CONFIG_SYS_LONGHELP=y
+CONFIG_SYS_PROMPT="=> "
+CONFIG_SYS_PROMPT_HUSH_PS2="> "
+CONFIG_SYS_MAXARGS=16
+CONFIG_SYS_CBSIZE=512
+CONFIG_SYS_PBSIZE=532
+CONFIG_SYS_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_LICENSE is not set
+# CONFIG_CMD_PMC 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_BOOTMETH=y
+CONFIG_BOOTM_EFI=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_VBE=y
+CONFIG_BOOTM_VXWORKS=y
+CONFIG_SYS_BOOTM_LEN=0x4000000
+CONFIG_CMD_BOOTEFI=y
+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=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_FDT=y
+CONFIG_CMD_GO=y
+CONFIG_CMD_RUN=y
+CONFIG_CMD_IMI=y
+# CONFIG_CMD_IMLS is not set
+CONFIG_CMD_XIMG=y
+# CONFIG_CMD_XXD is not set
+# CONFIG_CMD_THOR_DOWNLOAD is not set
+# CONFIG_CMD_ZBOOT is not set
+
+#
+# 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 is not set
+CONFIG_CMD_CRC32=y
+# CONFIG_CRC32_VERIFY is not set
+# CONFIG_CMD_EEPROM is not set
+# CONFIG_LOOPW is not set
+# CONFIG_CMD_MD5SUM is not set
+# CONFIG_CMD_MEMINFO is not set
+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_BIND is not set
+# CONFIG_CMD_CLK is not set
+# CONFIG_CMD_DEMO is not set
+CONFIG_CMD_DFU=y
+CONFIG_CMD_DM=y
+CONFIG_CMD_FLASH=y
+# CONFIG_CMD_FPGAD is not set
+# CONFIG_CMD_FUSE is not set
+# CONFIG_CMD_GPIO is not set
+# CONFIG_CMD_GPT is not set
+# CONFIG_RANDOM_UUID is not set
+# CONFIG_CMD_IDE is not set
+# CONFIG_CMD_IO is not set
+# CONFIG_CMD_IOTRACE is not set
+# 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_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=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_TSI148 is not set
+# CONFIG_CMD_UNIVERSE is not set
+CONFIG_CMD_USB=y
+# CONFIG_CMD_USB_SDP 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
+
+#
+# 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 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_VCI_STRING="U-Boot.armv8"
+CONFIG_CMD_TFTPBOOT=y
+# CONFIG_CMD_TFTPPUT is not set
+# CONFIG_CMD_TFTPSRV is not set
+CONFIG_NET_TFTP_VARS=y
+# CONFIG_CMD_RARP is not set
+# CONFIG_CMD_NFS is not set
+# CONFIG_SYS_DISABLE_AUTOLOAD is not set
+# CONFIG_CMD_WGET is not set
+CONFIG_CMD_MII=y
+CONFIG_CMD_PING=y
+# CONFIG_CMD_CDP is not set
+# CONFIG_CMD_SNTP is not set
+# CONFIG_CMD_DNS is not set
+# CONFIG_CMD_LINK_LOCAL is not set
+# CONFIG_CMD_ETHSW is not set
+CONFIG_CMD_PXE=y
+# CONFIG_CMD_WOL is not set
+
+#
+# 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 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
+#
+# CONFIG_CMD_DDR3 is not set
+
+#
+# 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_REISER is not set
+# CONFIG_CMD_ZFS is not set
+
+#
+# Debug commands
+#
+# 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_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_SEPARATE=y
+# CONFIG_OF_EMBED 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_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 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_ONENAND is not set
+# CONFIG_ENV_IS_IN_REMOTE is not set
+# CONFIG_SYS_REDUNDAND_ENVIRONMENT is not set
+# CONFIG_SYS_RELOC_GD_ENV_ADDR is not set
+# 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
+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 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_SYS_RX_ETH_BUFFER=4
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_DM=y
+CONFIG_DM_WARN=y
+# 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_ADC_EXYNOS is not set
+# CONFIG_ADC_SANDBOX is not set
+# CONFIG_SARADC_MESON is not set
+# CONFIG_SARADC_ROCKCHIP is not set
+# CONFIG_ADC_IMX93 is not set
+# CONFIG_SATA is not set
+CONFIG_LIBATA=y
+CONFIG_SCSI_AHCI=y
+
+#
+# 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_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 is not set
+# CONFIG_LBA48 is not set
+# CONFIG_SYS_64BIT_LBA 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_V5L2_CACHE is not set
+# CONFIG_NCORE_CACHE is not set
+# CONFIG_SIFIVE_CCACHE is not set
+
+#
+# Clock
+#
+# CONFIG_CLK is not set
+# CONFIG_CLK_CCF 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_SF is not set
+# CONFIG_DFU_VIRT is not set
+CONFIG_SET_DFU_ALT_INFO=y
+CONFIG_SYS_DFU_DATA_BUF_SIZE=0x800000
+CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
+
+#
+# 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_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_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_DM_MMC 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_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_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_FSLDMAFEC 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_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_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_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
+#
+
+#
+# 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_TPM_RNG=y
+
+#
+# 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_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_DM_SCSI=y
+CONFIG_SERIAL=y
+CONFIG_BAUDRATE=115200
+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_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_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_TI is not set
+# CONFIG_SPI is not set
+
+#
+# SPMI support
+#
+# CONFIG_SPMI is not set
+# CONFIG_SYSINFO is not set
+
+#
+# System reset device drivers
+#
+CONFIG_SYSRESET=y
+CONFIG_SYSRESET_CMD_RESET=y
+CONFIG_SYSRESET_CMD_POWEROFF=y
+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_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 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_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_RAYDIUM_RM68200 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R61307 is not set
+# CONFIG_VIDEO_LCD_RENESAS_R69328 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_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_WATCHDOG_TIMEOUT_MSECS=60000
+# 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_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 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_SEMIHOSTING is not set
+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
+
+#
+# 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
+
+#
+# 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_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_ERRNO_STR is not set
+CONFIG_HEXDUMP=y
+# CONFIG_GETOPT is not set
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_ASSUME_MASK=0
+CONFIG_SYS_FDT_PAD=0x3000
+# CONFIG_FDT_FIXUP_PARTITIONS is not set
+
+#
+# System tables
+#
+CONFIG_GENERATE_SMBIOS_TABLE=y
+# CONFIG_LIB_RATIONAL is not set
+CONFIG_SMBIOS_PARSER=y
+CONFIG_EFI_LOADER=y
+CONFIG_CMD_BOOTEFI_BOOTMGR=y
+CONFIG_EFI_VARIABLE_FILE_STORE=y
+# CONFIG_EFI_VARIABLE_NO_STORE is not set
+# CONFIG_EFI_VARIABLES_PRESEED is not set
+CONFIG_EFI_VAR_BUF_SIZE=65536
+CONFIG_EFI_GET_TIME=y
+CONFIG_EFI_SET_TIME=y
+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set
+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set
+# CONFIG_EFI_CAPSULE_ON_DISK is not set
+CONFIG_EFI_CAPSULE_MAX=15
+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y
+CONFIG_EFI_DEVICE_PATH_UTIL=y
+CONFIG_EFI_DT_FIXUP=y
+CONFIG_EFI_LOADER_HII=y
+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y
+CONFIG_EFI_UNICODE_CAPITALIZATION=y
+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set
+CONFIG_EFI_PLATFORM_LANG_CODES="en-US"
+CONFIG_EFI_HAVE_RUNTIME_RESET=y
+CONFIG_EFI_RNG_PROTOCOL=y
+CONFIG_EFI_TCG2_PROTOCOL=y
+CONFIG_EFI_TCG2_PROTOCOL_EVENTLOG_SIZE=65536
+# CONFIG_EFI_TCG2_PROTOCOL_MEASURE_DTB is not set
+CONFIG_EFI_LOAD_FILE2_INITRD=y
+# CONFIG_EFI_SECURE_BOOT is not set
+CONFIG_EFI_ECPT=y
+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y
+# CONFIG_OPTEE_LIB is not set
+# CONFIG_OPTEE_IMAGE is not set
+# CONFIG_BOOTM_OPTEE is not set
+# 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
+
+#
+# FWU Multi Bank Updates
+#
+# CONFIG_POST is not set
+
+#
+# Unit tests
+#
+# CONFIG_UNIT_TEST is not set
+
+#
+# Tools options
+#
+CONFIG_MKIMAGE_DTC_PATH="dtc"
+CONFIG_TOOLS_CRC32=y
+CONFIG_TOOLS_LIBCRYPTO=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 is not set
+# CONFIG_FSPI_CONF_HEADER is not set
+# CONFIG_TOOLS_MKFWUMDATA is not set
--
2.39.2
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH v2] Add support for google gru_bob and gru_kevin,
Leah Rowe <=