diff --git a/config/boards/kickpi-k3b.csc b/config/boards/kickpi-k3b.csc new file mode 100644 index 000000000000..cf8390d5ab05 --- /dev/null +++ b/config/boards/kickpi-k3b.csc @@ -0,0 +1,44 @@ +# Rockchip RK3562 DDR3 eMMC GBE SWT6621S WLAN/BT +BOARD_NAME="KICKPI K3B" +BOARD_VENDOR="kickpi" +BOARDFAMILY="rk35xx" +BOARD_MAINTAINER="retro98boy" +INTRODUCED="2026" +BOOTCONFIG="kickpi-k3b-rk3562_defconfig" +KERNEL_TARGET="vendor" +KERNEL_TEST_TARGET="vendor" +FULL_DESKTOP="yes" +BOOT_LOGO="desktop" +BOOT_FDT_FILE="rockchip/rk3562-kickpi-k3b.dtb" +BOOT_SCENARIO="spl-blobs" +BOOT_SOC="rk3562" +IMAGE_PARTITION_TABLE="gpt" +enable_extension "seekwave-swt6621s-dkms" +SWT6621S_TYPE="SDIO" +PACKAGE_LIST_BOARD="alsa-ucm-conf" + +function post_family_config__kickpi-k3b() { + declare -g OVERLAY_PREFIX="rk3562-kickpi-k3b" + # Default DSI panel overlay. + declare -g DEFAULT_OVERLAYS="sq101p-x4ei451-84h501" +} + +function post_family_tweaks_bsp__kickpi-k3b() { + display_alert "${BOARD}" "Installing ALSA UCM configuration files" "info" + + install -Dm644 "${SRC}/packages/bsp/kickpi-k3b/kickpi-k3b-HiFi.conf" \ + "${destination}/usr/share/alsa/ucm2/Rockchip/kickpi-k3b/kickpi-k3b-HiFi.conf" + install -Dm644 "${SRC}/packages/bsp/kickpi-k3b/kickpi-k3b.conf" \ + "${destination}/usr/share/alsa/ucm2/Rockchip/kickpi-k3b/kickpi-k3b.conf" + + mkdir -p "${destination}/usr/share/alsa/ucm2/conf.d/kickpi-k3b" + ln -sfv ../../Rockchip/kickpi-k3b/kickpi-k3b.conf \ + "${destination}/usr/share/alsa/ucm2/conf.d/kickpi-k3b/kickpi-k3b.conf" +} + +function post_family_tweaks__kickpi-k3b() { + echo -e "panel_simple\njadard_touch" > "${SDCARD}/etc/modules-load.d/panel.conf" + # The JD9366 touch driver must be probed after the display driver. + # Otherwise, I2C communication will fail. + echo "softdep jadard_touch pre: panel_simple" > "${SDCARD}/etc/modprobe.d/jadard_touch-dependencies.conf" +} diff --git a/config/kernel/linux-rk35xx-vendor.config b/config/kernel/linux-rk35xx-vendor.config index 7ee5f55f2b1b..10fc89f4296f 100644 --- a/config/kernel/linux-rk35xx-vendor.config +++ b/config/kernel/linux-rk35xx-vendor.config @@ -718,6 +718,7 @@ CONFIG_STMMAC_ETH=y CONFIG_BROADCOM_PHY=m CONFIG_MOTORCOMM_PHY=y CONFIG_REALTEK_PHY=y +CONFIG_MAXIO_PHY=y CONFIG_ROCKCHIP_PHY=y CONFIG_CAN_VCAN=m CONFIG_CAN_GRCAN=m @@ -1067,6 +1068,9 @@ CONFIG_TOUCHSCREEN_MTOUCH=m CONFIG_TOUCHSCREEN_IMAGIS=m CONFIG_TOUCHSCREEN_IMX6UL_TSC=m CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_JADARD_CHIPSET=m +CONFIG_TOUCHSCREEN_JADARD_MODULE=m +CONFIG_TOUCHSCREEN_JADARD_IC_JD9366T=m CONFIG_TOUCHSCREEN_MK712=m CONFIG_TOUCHSCREEN_PENMOUNT=m CONFIG_TOUCHSCREEN_EDT_FT5X06=m @@ -2398,6 +2402,7 @@ CONFIG_CPU_RK1808=y CONFIG_CPU_RK3328=y CONFIG_CPU_RK3399=y CONFIG_CPU_RK3528=y +CONFIG_CPU_RK3562=y CONFIG_CPU_RK3568=y CONFIG_CPU_RK3576=y CONFIG_CPU_RK3588=y diff --git a/config/sources/families/include/rockchip64_common.inc b/config/sources/families/include/rockchip64_common.inc index f3ac38ce5aeb..2872872a4aa5 100644 --- a/config/sources/families/include/rockchip64_common.inc +++ b/config/sources/families/include/rockchip64_common.inc @@ -131,6 +131,15 @@ case "$BOOT_SOC" in ROCKUSB_BLOB="rk35/rk3528_spl_loader_v1.07.104.bin" ;; + rk3562) + CPUMAX=${CPUMAX:="2000000"} + BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}" + DDR_BLOB="${DDR_BLOB:-"rk35/rk3562_ddr_1056MHz_v1.07.bin"}" + BL31_BLOB="${BL31_BLOB:-"rk35/rk3562_bl31_v1.21.elf"}" + BOOT_SOC_MKIMAGE="rk3562" + BOOTENV_FILE='rk35xx.txt' + ;; + rk3566) CPUMAX=${CPUMAX:="1800000"} BOOT_SCENARIO="${BOOT_SCENARIO:=spl-blobs}" diff --git a/extensions/seekwave-swt6621s-dkms.sh b/extensions/seekwave-swt6621s-dkms.sh new file mode 100644 index 000000000000..6f9f65f02f09 --- /dev/null +++ b/extensions/seekwave-swt6621s-dkms.sh @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# SeekWave SWT6621S DKMS driver +# +# For SWT6621S_TYPE=SDIO, this extension downloads a pinned commit from: +# retro98boy/seekwave-swt6621s.git +# +# For SWT6621S_TYPE=USB, it currently skips with an informational message. + +# Branch: kickpi-k3b-sdio-uart, Commit date: Jul 16, 2026 +readonly SEEKWAVE_SWT6621S_COMMIT="b1b15016119cb21965fc64dd374e42f46f011bb4" + +function extension_finish_config__install_seekwave_swt6621s_dkms() { + if [[ "${SWT6621S_TYPE}" == "USB" ]]; then + display_alert "SWT6621S_TYPE=USB is not supported yet" "skipping seekwave-swt6621s dkms" "info" + return 0 + fi + + if [[ "${SWT6621S_TYPE}" != "SDIO" ]]; then + display_alert "Unknown SWT6621S_TYPE='${SWT6621S_TYPE}'" "skipping seekwave-swt6621s dkms" "warn" + return 0 + fi + + if [[ "${KERNEL_HAS_WORKING_HEADERS}" != "yes" ]]; then + display_alert "Kernel version has no working headers package" "skipping seekwave-swt6621s dkms for kernel v${KERNEL_MAJOR_MINOR}" "warn" + return 0 + fi + + declare -g INSTALL_HEADERS="yes" + display_alert "Forcing INSTALL_HEADERS=yes; for use with seekwave-swt6621s dkms" "${EXTENSION}" "debug" + + local seekwave_cache_dir="${SRC}/cache/seekwave-swt6621s-dkms" + local seekwave_tarball_url="${GITHUB_SOURCE}/retro98boy/seekwave-swt6621s/archive/${SEEKWAVE_SWT6621S_COMMIT}.tar.gz" + + display_alert "Downloading SeekWave SWT6621S SDIO source" "${seekwave_tarball_url}" "info" + run_host_command_logged mkdir -p "${seekwave_cache_dir}" + run_host_command_logged curl -fsSL --progress-bar "${seekwave_tarball_url}" -o "${seekwave_cache_dir}/source.tar.gz" +} + +function post_install_kernel_debs__install_seekwave_swt6621s_dkms_package() { + if [[ "${SWT6621S_TYPE}" == "USB" ]]; then + return 0 + fi + + if [[ "${SWT6621S_TYPE}" != "SDIO" ]]; then + return 0 + fi + + if [[ "${INSTALL_HEADERS}" != "yes" || "${KERNEL_HAS_WORKING_HEADERS}" != "yes" ]]; then + return 0 + fi + + display_alert "Installing SeekWave SWT6621S DKMS driver" "${EXTENSION}" "info" + + use_clean_environment="yes" chroot_sdcard_apt_get_install "dkms" + + local seekwave_cache_dir="${SRC}/cache/seekwave-swt6621s-dkms" + cp "${seekwave_cache_dir}/source.tar.gz" "${SDCARD}/tmp/seekwave-swt6621s.tar.gz" + + use_clean_environment="yes" chroot_sdcard "mkdir -p /usr/src/seekwave-swt6621s-1.0.0" + use_clean_environment="yes" chroot_sdcard "tar -xzf /tmp/seekwave-swt6621s.tar.gz -C /tmp/" + use_clean_environment="yes" chroot_sdcard "cp -a /tmp/seekwave-swt6621s-${SEEKWAVE_SWT6621S_COMMIT}/. /usr/src/seekwave-swt6621s-1.0.0/" + use_clean_environment="yes" chroot_sdcard "rm -rf /tmp/seekwave-swt6621s.tar.gz /tmp/seekwave-swt6621s-${SEEKWAVE_SWT6621S_COMMIT}" + + declare -ag if_error_find_files_sdcard=("/var/lib/dkms/seekwave-swt6621s*/*/build/*.log") + display_alert "Building SeekWave SWT6621S kernel modules via DKMS" "${EXTENSION}" "info" + + if [[ -z "${IMAGE_INSTALLED_KERNEL_VERSION}" ]]; then + display_alert "Cannot determine target kernel version" "SeekWave SWT6621S DKMS build skipped" "warn" + return 0 + fi + local target_kver="${IMAGE_INSTALLED_KERNEL_VERSION}-${BRANCH}-${LINUXFAMILY}" + display_alert "Target kernel version for DKMS" "${target_kver}" "debug" + + use_clean_environment="yes" chroot_sdcard "dkms add -m seekwave-swt6621s -v 1.0.0" + use_clean_environment="yes" chroot_sdcard "dkms build -m seekwave-swt6621s -v 1.0.0 -k ${target_kver}" + use_clean_environment="yes" chroot_sdcard "dkms install -m seekwave-swt6621s -v 1.0.0 -k ${target_kver}" + + cat > "${SDCARD}/etc/modules-load.d/swt6621s-sdio-uart.conf" <<- 'EOF' + skw_sdio_lite + swt6621s_wifi + skwbt + EOF + + cat > "${SDCARD}/etc/modprobe.d/swt6621s-sdio-uart.conf" <<- 'EOF' + options skw_sdio_lite firmware_dir=seekwave + options swt6621s_wifi firmware_dir=seekwave + options skwbt firmware_dir=seekwave + softdep swt6621s_wifi pre: skw_sdio_lite + softdep skwbt pre: swt6621s_wifi + EOF + + display_alert "SeekWave SWT6621S DKMS driver installed" "${EXTENSION}" "info" +} diff --git a/packages/bsp/kickpi-k3b/kickpi-k3b-HiFi.conf b/packages/bsp/kickpi-k3b/kickpi-k3b-HiFi.conf new file mode 100644 index 000000000000..9a74e587d968 --- /dev/null +++ b/packages/bsp/kickpi-k3b/kickpi-k3b-HiFi.conf @@ -0,0 +1,42 @@ +SectionVerb { + Value { + TQ "HiFi" + } +} + +SectionDevice."Speaker" { + Comment "Speaker" + + ConflictingDevice [ + "Headphones" + ] + + Value { + PlaybackPriority 100 + PlaybackPCM "hw:${CardId},0" + PlaybackMixerElem "DAC" + } + + EnableSequence [ + cset "name='Playback Path' 'SPK'" + ] +} + +SectionDevice."Headphones" { + Comment "Headphones" + + ConflictingDevice [ + "Speaker" + ] + + Value { + PlaybackPriority 200 + PlaybackPCM "hw:${CardId},0" + PlaybackMixerElem "DAC" + JackControl "Headphone Jack" + } + + EnableSequence [ + cset "name='Playback Path' 'HP'" + ] +} diff --git a/packages/bsp/kickpi-k3b/kickpi-k3b.conf b/packages/bsp/kickpi-k3b/kickpi-k3b.conf new file mode 100644 index 000000000000..d391457bb72e --- /dev/null +++ b/packages/bsp/kickpi-k3b/kickpi-k3b.conf @@ -0,0 +1,13 @@ +Syntax 4 + +Comment "KICKPI K3B Sound" + +SectionUseCase."HiFi" { + File "/Rockchip/kickpi-k3b/kickpi-k3b-HiFi.conf" + Comment "Play HiFi quality music" +} + +BootSequence [ + cset "name='DAC Playback Volume' 252" + cset "name='Playback Path' 'HP'" +] diff --git a/patch/u-boot/legacy/u-boot-radxa-rk35xx/board_kickpi-k3b/add-board-kickpi-k3b.patch b/patch/u-boot/legacy/u-boot-radxa-rk35xx/board_kickpi-k3b/add-board-kickpi-k3b.patch new file mode 100644 index 000000000000..8bf593e74063 --- /dev/null +++ b/patch/u-boot/legacy/u-boot-radxa-rk35xx/board_kickpi-k3b/add-board-kickpi-k3b.patch @@ -0,0 +1,240 @@ +diff --git a/arch/arm/dts/rk3562-kickpi-k3b.dts b/arch/arm/dts/rk3562-kickpi-k3b.dts +new file mode 100644 +index 00000000000..41958cda7c4 +--- /dev/null ++++ b/arch/arm/dts/rk3562-kickpi-k3b.dts +@@ -0,0 +1,18 @@ ++/* ++ * SPDX-License-Identifier: GPL-2.0+ ++ * ++ * (C) Copyright 2022 Rockchip Electronics Co., Ltd ++ */ ++ ++/dts-v1/; ++#include "rk3562.dtsi" ++#include "rk3562-u-boot.dtsi" ++ ++/ { ++ model = "KICKPI K3B"; ++ compatible = "kickpi,k3b", "rockchip,rk3562"; ++}; ++ ++&sfc { ++ status = "disabled"; ++}; +diff --git a/configs/kickpi-k3b-rk3562_defconfig b/configs/kickpi-k3b-rk3562_defconfig +new file mode 100644 +index 00000000000..5c2d2e0224d +--- /dev/null ++++ b/configs/kickpi-k3b-rk3562_defconfig +@@ -0,0 +1,210 @@ ++# Reference from rk3562_defconfig ++CONFIG_ARM=y ++CONFIG_ARCH_ROCKCHIP=y ++CONFIG_SPL_LIBCOMMON_SUPPORT=y ++CONFIG_SPL_LIBGENERIC_SUPPORT=y ++CONFIG_SYS_MALLOC_F_LEN=0x80000 ++CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.sh" ++CONFIG_ROCKCHIP_RK3562=y ++CONFIG_ROCKCHIP_FIT_IMAGE=y ++CONFIG_ROCKCHIP_VENDOR_PARTITION=y ++CONFIG_USING_KERNEL_DTB_V2=y ++CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y ++CONFIG_ROCKCHIP_NEW_IDB=y ++CONFIG_SPL_SERIAL_SUPPORT=y ++CONFIG_SPL_DRIVERS_MISC_SUPPORT=y ++CONFIG_TARGET_EVB_RK3562=y ++CONFIG_SPL_LIBDISK_SUPPORT=y ++CONFIG_SPL_SPI_FLASH_SUPPORT=y ++CONFIG_SPL_SPI_SUPPORT=y ++CONFIG_DEFAULT_DEVICE_TREE="rk3562-kickpi-k3b" ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++CONFIG_FIT_IMAGE_POST_PROCESS=y ++CONFIG_FIT_HW_CRYPTO=y ++CONFIG_SPL_LOAD_FIT=y ++CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y ++CONFIG_SPL_FIT_HW_CRYPTO=y ++# CONFIG_SPL_SYS_DCACHE_OFF is not set ++CONFIG_BOOTDELAY=0 ++# CONFIG_CONSOLE_MUX is not set ++CONFIG_SYS_CONSOLE_INFO_QUIET=y ++# CONFIG_DISPLAY_CPUINFO is not set ++CONFIG_ANDROID_BOOTLOADER=y ++CONFIG_ANDROID_AVB=y ++CONFIG_ANDROID_BOOT_IMAGE_HASH=y ++CONFIG_BOARD_RNG_SEED=y ++CONFIG_SPL_BOARD_INIT=y ++# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set ++# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set ++CONFIG_SPL_SEPARATE_BSS=y ++CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y ++CONFIG_SPL_MMC_WRITE=y ++CONFIG_SPL_MTD_SUPPORT=y ++CONFIG_SPL_MTD_WRITE=y ++CONFIG_SPL_ATF=y ++CONFIG_SPL_ATF_NO_PLATFORM_PARAM=y ++CONFIG_SPL_AB=y ++CONFIG_FASTBOOT_BUF_ADDR=0xc00800 ++CONFIG_FASTBOOT_BUF_SIZE=0x04000000 ++CONFIG_FASTBOOT_FLASH=y ++CONFIG_FASTBOOT_FLASH_MMC_DEV=0 ++# CONFIG_CMD_BDI is not set ++CONFIG_CMD_BOOTZ=y ++CONFIG_CMD_DTIMG=y ++# CONFIG_CMD_ELF is not set ++# CONFIG_CMD_IMI is not set ++# CONFIG_CMD_IMLS is not set ++# CONFIG_CMD_XIMG is not set ++# CONFIG_CMD_LZMADEC is not set ++# CONFIG_CMD_UNZIP is not set ++# CONFIG_CMD_FLASH is not set ++# CONFIG_CMD_FPGA is not set ++CONFIG_CMD_GPT=y ++# CONFIG_CMD_LOADB is not set ++# CONFIG_CMD_LOADS is not set ++CONFIG_CMD_BOOT_ANDROID=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_SF=y ++CONFIG_CMD_SPI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_USB_MASS_STORAGE=y ++# CONFIG_CMD_ITEST is not set ++# CONFIG_CMD_SETEXPR is not set ++# CONFIG_CMD_MISC is not set ++CONFIG_CMD_MTD_BLK=y ++# CONFIG_ISO_PARTITION is not set ++CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64 ++CONFIG_SPL_OF_CONTROL=y ++CONFIG_SPL_DTB_MINIMUM=y ++CONFIG_OF_LIVE=y ++CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents" ++# CONFIG_NET_TFTP_VARS is not set ++CONFIG_REGMAP=y ++CONFIG_SPL_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SPL_SYSCON=y ++# CONFIG_SARADC_ROCKCHIP is not set ++CONFIG_SARADC_ROCKCHIP_V2=y ++CONFIG_CLK=y ++CONFIG_SPL_CLK=y ++CONFIG_CLK_SCMI=y ++CONFIG_SPL_CLK_SCMI=y ++CONFIG_DM_CRYPTO=y ++CONFIG_SPL_DM_CRYPTO=y ++CONFIG_ROCKCHIP_CRYPTO_V2=y ++CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y ++CONFIG_DM_RNG=y ++CONFIG_RNG_ROCKCHIP=y ++CONFIG_SCMI_FIRMWARE=y ++CONFIG_SPL_SCMI_FIRMWARE=y ++CONFIG_ROCKCHIP_GPIO=y ++CONFIG_ROCKCHIP_GPIO_V2=y ++CONFIG_SYS_I2C_ROCKCHIP=y ++CONFIG_DM_KEY=y ++CONFIG_RK8XX_PWRKEY=y ++CONFIG_ADC_KEY=y ++CONFIG_MISC=y ++CONFIG_SPL_MISC=y ++CONFIG_ROCKCHIP_OTP=y ++CONFIG_SPL_ROCKCHIP_SECURE_OTP=y ++CONFIG_MMC_DW=y ++CONFIG_MMC_DW_ROCKCHIP=y ++CONFIG_MMC_SDHCI=y ++CONFIG_MMC_SDHCI_SDMA=y ++CONFIG_MMC_SDHCI_ROCKCHIP=y ++CONFIG_MTD=y ++CONFIG_MTD_BLK=y ++CONFIG_MTD_DEVICE=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI_FLASH=y ++CONFIG_SF_DEFAULT_MODE=0x3 ++CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_SPI_FLASH_SST=y ++CONFIG_SPI_FLASH_WINBOND=y ++CONFIG_SPI_FLASH_XMC=y ++CONFIG_SPI_FLASH_XTX=y ++CONFIG_SPI_FLASH_PUYA=y ++CONFIG_SPI_FLASH_FMSH=y ++CONFIG_SPI_FLASH_DOSILICON=y ++CONFIG_SPI_FLASH_BOYA=y ++CONFIG_SPI_FLASH_NORMEM=y ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_SPL_SPI_FLASH_MTD=y ++CONFIG_DM_ETH=y ++CONFIG_DM_ETH_PHY=y ++CONFIG_DWC_ETH_QOS=y ++CONFIG_GMAC_ROCKCHIP=y ++CONFIG_PHY_ROCKCHIP_INNO_USB2=y ++CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y ++CONFIG_PINCTRL=y ++CONFIG_SPL_PINCTRL=y ++CONFIG_DM_FUEL_GAUGE=y ++CONFIG_POWER_FG_RK817=y ++CONFIG_DM_PMIC=y ++CONFIG_PMIC_RK8XX=y ++CONFIG_REGULATOR_FAN53555=y ++CONFIG_REGULATOR_PWM=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_REGULATOR_RK8XX=y ++CONFIG_DM_CHARGE_DISPLAY=y ++CONFIG_CHARGE_ANIMATION=y ++CONFIG_PWM_ROCKCHIP=y ++CONFIG_RAM=y ++CONFIG_SPL_RAM=y ++CONFIG_TPL_RAM=y ++CONFIG_DM_DMC=y ++CONFIG_DM_RESET=y ++CONFIG_SPL_DM_RESET=y ++CONFIG_SPL_RESET_ROCKCHIP=y ++CONFIG_BAUDRATE=1500000 ++CONFIG_DEBUG_UART_BASE=0xff210000 ++CONFIG_DEBUG_UART_CLOCK=24000000 ++CONFIG_DEBUG_UART_SHIFT=2 ++CONFIG_ROCKCHIP_SFC=y ++CONFIG_SYSRESET=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_DWC3=y ++CONFIG_USB_EHCI_HCD=y ++CONFIG_USB_EHCI_GENERIC=y ++CONFIG_USB_OHCI_HCD=y ++CONFIG_USB_OHCI_GENERIC=y ++CONFIG_USB_DWC3=y ++CONFIG_USB_DWC3_GADGET=y ++CONFIG_USB_DWC3_GENERIC=y ++CONFIG_USB_STORAGE=y ++CONFIG_USB_GADGET=y ++CONFIG_USB_GADGET_MANUFACTURER="Rockchip" ++CONFIG_USB_GADGET_VENDOR_NUM=0x2207 ++CONFIG_USB_GADGET_PRODUCT_NUM=0x350a ++CONFIG_USB_GADGET_DOWNLOAD=y ++CONFIG_DM_VIDEO=y ++CONFIG_DISPLAY=y ++CONFIG_DRM_ROCKCHIP=y ++CONFIG_DRM_ROCKCHIP_INNO_VIDEO_COMBO_PHY=y ++CONFIG_DRM_ROCKCHIP_DW_MIPI_DSI=y ++CONFIG_DRM_ROCKCHIP_LVDS=y ++CONFIG_DRM_ROCKCHIP_RGB=y ++CONFIG_USE_TINY_PRINTF=y ++CONFIG_SPL_TINY_MEMSET=y ++CONFIG_RSA=y ++CONFIG_SPL_RSA=y ++CONFIG_RSA_N_SIZE=0x200 ++CONFIG_RSA_E_SIZE=0x10 ++CONFIG_RSA_C_SIZE=0x20 ++CONFIG_XBC=y ++CONFIG_SHA1=y ++CONFIG_SHA256=y ++CONFIG_LZ4=y ++CONFIG_SPL_GZIP=y ++CONFIG_ERRNO_STR=y ++# CONFIG_EFI_LOADER is not set ++CONFIG_AVB_LIBAVB=y ++CONFIG_AVB_LIBAVB_AB=y ++CONFIG_AVB_LIBAVB_ATX=y ++CONFIG_AVB_LIBAVB_USER=y ++CONFIG_RK_AVB_LIBAVB_USER=y