diff --git a/packages/lang/gcc-arm-arm-none-linux-gnueabihf/package.mk b/packages/lang/gcc-arm-arm-none-linux-gnueabihf/package.mk
deleted file mode 100644
index c74467016e..0000000000
--- a/packages/lang/gcc-arm-arm-none-linux-gnueabihf/package.mk
+++ /dev/null
@@ -1,36 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0
-# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
-
-PKG_NAME="gcc-arm-arm-none-linux-gnueabihf"
-PKG_VERSION="10.2-2020.11"
-PKG_SHA256="102825ae56c9e00142d06f35d2bdd3299edb6060e84a275a25b095e66fd3fc2a"
-PKG_LICENSE="GPL"
-PKG_SITE="https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a"
-PKG_URL="https://developer.arm.com/-/media/Files/downloads/gnu-a/${PKG_VERSION}/binrel/gcc-arm-${PKG_VERSION}-x86_64-arm-none-linux-gnueabihf.tar.xz"
-PKG_DEPENDS_HOST="ccache:host"
-PKG_LONGDESC="ARM AArch32 GNU Linux Binary Toolchain"
-PKG_TOOLCHAIN="manual"
-
-makeinstall_host() {
- mkdir -p ${TOOLCHAIN}/lib/gcc-arm-arm-none-linux-gnueabihf/
- cp -a * ${TOOLCHAIN}/lib/gcc-arm-arm-none-linux-gnueabihf
-
- # wrap gcc and g++ with ccache like in gcc package.mk
- PKG_GCC_PREFIX="${TOOLCHAIN}/lib/gcc-arm-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf-"
-
- cp "${PKG_GCC_PREFIX}gcc" "${PKG_GCC_PREFIX}gcc.real"
-cat > "${PKG_GCC_PREFIX}gcc" << EOF
-#!/bin/sh
-${TOOLCHAIN}/bin/ccache ${PKG_GCC_PREFIX}gcc.real "\$@"
-EOF
-
- chmod +x "${PKG_GCC_PREFIX}gcc"
-
- cp "${PKG_GCC_PREFIX}g++" "${PKG_GCC_PREFIX}g++.real"
-cat > "${PKG_GCC_PREFIX}g++" << EOF
-#!/bin/sh
-${TOOLCHAIN}/bin/ccache ${PKG_GCC_PREFIX}g++.real "\$@"
-EOF
-
- chmod +x "${PKG_GCC_PREFIX}g++"
-}
diff --git a/projects/Rockchip/README.md b/projects/Rockchip/README.md
index 183eb4f695..b2ba7614cb 100644
--- a/projects/Rockchip/README.md
+++ b/projects/Rockchip/README.md
@@ -9,16 +9,21 @@ This project is for Rockchip SoC devices
* [mqmaker MiQi](devices/RK3288)
**RK3328**
+* [Beelink A1 TV BOX](devices/RK3328)
* [PINE64 ROCK64](devices/RK3328)
-* [Popcorn Hour RockBox](devices/RK3328)
* [Popcorn Hour Transformer](devices/RK3328)
* [Firefly ROC-RK3328-CC](devices/RK3328)
**RK3399**
* [96rocks ROCK960](devices/RK3399)
+* [Hugsun X99 TV BOX](devices/RK3399)
* [Khadas Edge](devices/RK3399)
+* [FriendlyARM NanoPC-T4](devices/RK3399)
+* [FriendlyARM NanoPi M4](devices/RK3399)
+* [Orange Pi RK3399](devices/RK3399)
* [PINE64 RockPro64](devices/RK3399)
* [Radxa ROCK Pi 4](devices/RK3399)
+* [ROC-RK3399-PC](devices/RK3399)
* [Rockchip Sapphire Board](devices/RK3399)
**My single-board computer is not listed, will it be added in the future?**
@@ -29,7 +34,6 @@ You may have luck if your device vendor is open source friendly, otherwise keep
## Links
-* https://github.com/rockchip-linux
* http://opensource.rock-chips.com
## Useful debug commands
diff --git a/projects/Rockchip/bootloader/canupdate.sh b/projects/Rockchip/bootloader/canupdate.sh
index 908179b820..77a2efc4fc 100644
--- a/projects/Rockchip/bootloader/canupdate.sh
+++ b/projects/Rockchip/bootloader/canupdate.sh
@@ -1,17 +1,15 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
-# detect legacy kernel installs and abort to prevent upgrades
-case $(uname -r) in
- 4.4*)
- echo "Updates from legacy kernels are not supported!"
- sleep 10
- exit 1
- ;;
-esac
+# devices have been renamed after LE9.2
+if [ "${1}" = "TinkerBoard.arm" -o "${1}" = "MiQi.arm" ]; then
+ if [ "${2}" = "RK3288.arm" ]; then
+ exit 0
+ fi
+fi
# Allow upgrades between arm and aarch64
-if [ "$1" = "@PROJECT@.arm" -o "$1" = "@PROJECT@.aarch64" ]; then
+if [ "${1}" = "@PROJECT@.arm" -o "${1}" = "@PROJECT@.aarch64" ]; then
exit 0
else
exit 1
diff --git a/projects/Rockchip/bootloader/install b/projects/Rockchip/bootloader/install
index aa50eaf105..e42d89f7e5 100644
--- a/projects/Rockchip/bootloader/install
+++ b/projects/Rockchip/bootloader/install
@@ -4,31 +4,31 @@
PKG_RKBIN="$(get_build_dir rkbin)"
PKG_SOC="${DEVICE/RK/rk}"
-case "$PKG_SOC" in
+case "${PKG_SOC}" in
rk3036)
PKG_DATAFILE="spl/u-boot-spl-nodtb.bin"
PKG_LOADER="u-boot-dtb.bin"
;;
rk3288)
- PKG_DATAFILE="$PKG_RKBIN/rk32/rk3288_ddr_400MHz_v1.08.bin"
- PKG_LOADER="$PKG_RKBIN/rk32/rk3288_miniloader_v2.58.bin"
+ PKG_DATAFILE="${PKG_RKBIN}/rk32/rk3288_ddr_400MHz_v1.08.bin"
+ PKG_LOADER="${PKG_RKBIN}/rk32/rk3288_miniloader_v2.58.bin"
PKG_LOAD_ADDR="0x0"
;;
rk3328)
- if [ "$UBOOT_SYSTEM" = "roc-cc" -o "$UBOOT_SYSTEM" = "box-trn9" ]; then
- PKG_DATAFILE="$PKG_RKBIN/rk33/rk3328_ddr_933MHz_v1.16.bin"
+ if [ "${UBOOT_SYSTEM}" = "roc-cc" -o "${UBOOT_SYSTEM}" = "box-trn9" ]; then
+ PKG_DATAFILE="${PKG_RKBIN}/rk33/rk3328_ddr_933MHz_v1.16.bin"
else
- PKG_DATAFILE="$PKG_RKBIN/rk33/rk3328_ddr_786MHz_v1.16.bin"
+ PKG_DATAFILE="${PKG_RKBIN}/rk33/rk3328_ddr_786MHz_v1.16.bin"
fi
- PKG_LOADER="$PKG_RKBIN/rk33/rk3328_miniloader_v2.50.bin"
- PKG_BL31="$PKG_RKBIN/rk33/rk3328_bl31_v1.42.elf"
+ PKG_LOADER="${PKG_RKBIN}/rk33/rk3328_miniloader_v2.50.bin"
+ PKG_BL31="${PKG_RKBIN}/rk33/rk3328_bl31_v1.42.elf"
PKG_BL31_ADDR="0x10000"
PKG_LOAD_ADDR="0x200000"
;;
rk3399)
- PKG_DATAFILE="$PKG_RKBIN/rk33/rk3399_ddr_800MHz_v1.17.bin"
- PKG_LOADER="$PKG_RKBIN/rk33/rk3399_miniloader_v1.24.bin"
- PKG_BL31="$PKG_RKBIN/rk33/rk3399_bl31_v1.31.elf"
+ PKG_DATAFILE="${PKG_RKBIN}/rk33/rk3399_ddr_800MHz_v1.17.bin"
+ PKG_LOADER="${PKG_RKBIN}/rk33/rk3399_miniloader_v1.24.bin"
+ PKG_BL31="${PKG_RKBIN}/rk33/rk3399_bl31_v1.31.elf"
PKG_BL31_ADDR="0x40000"
PKG_LOAD_ADDR="0x200000"
;;
@@ -38,25 +38,25 @@ case "$PKG_SOC" in
;;
esac
-if [ -n "$PKG_DATAFILE" -a -n "$PKG_LOADER" ]; then
- tools/mkimage -n $PKG_SOC -T rksd -d "$PKG_DATAFILE" idbloader.img
- cat "$PKG_LOADER" >> idbloader.img
- cp -av idbloader.img $INSTALL/usr/share/bootloader
+if [ -n "${PKG_DATAFILE}" -a -n "${PKG_LOADER}" ]; then
+ tools/mkimage -n ${PKG_SOC} -T rksd -d "${PKG_DATAFILE}" idbloader.img
+ cat "${PKG_LOADER}" >> idbloader.img
+ cp -av idbloader.img ${INSTALL}/usr/share/bootloader
fi
-if [ -n "$PKG_LOAD_ADDR" ]; then
- $PKG_RKBIN/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img $PKG_LOAD_ADDR
- cp -av uboot.img $INSTALL/usr/share/bootloader
+if [ -n "${PKG_LOAD_ADDR}" ]; then
+ ${PKG_RKBIN}/tools/loaderimage --pack --uboot u-boot-dtb.bin uboot.img ${PKG_LOAD_ADDR}
+ cp -av uboot.img ${INSTALL}/usr/share/bootloader
fi
-if [ -n "$PKG_BL31" ]; then
+if [ -n "${PKG_BL31}" ]; then
cat >trust.ini <"$SAVE_ERROR" 2>&1 || show_error
+ dd if="${RELEASE_DIR}/3rdparty/bootloader/idbloader.img" of="${DISK}" bs=32k seek=1 conv=fsync,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
-if [ -f "$RELEASE_DIR/3rdparty/bootloader/uboot.img" ]; then
+if [ -f "${RELEASE_DIR}/3rdparty/bootloader/uboot.img" ]; then
echo "image: burn uboot.img to image..."
- dd if="$RELEASE_DIR/3rdparty/bootloader/uboot.img" of="$DISK" bs=64k seek=128 conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error
+ dd if="${RELEASE_DIR}/3rdparty/bootloader/uboot.img" of="${DISK}" bs=64k seek=128 conv=fsync,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
-if [ -f "$RELEASE_DIR/3rdparty/bootloader/trust.img" ]; then
+if [ -f "${RELEASE_DIR}/3rdparty/bootloader/trust.img" ]; then
echo "image: burn trust.img to image..."
- dd if="$RELEASE_DIR/3rdparty/bootloader/trust.img" of="$DISK" bs=64k seek=192 conv=fsync,notrunc >"$SAVE_ERROR" 2>&1 || show_error
+ dd if="${RELEASE_DIR}/3rdparty/bootloader/trust.img" of="${DISK}" bs=64k seek=192 conv=fsync,notrunc >"${SAVE_ERROR}" 2>&1 || show_error
fi
diff --git a/projects/Rockchip/bootloader/release b/projects/Rockchip/bootloader/release
index 25a3210c67..d9649bc88f 100644
--- a/projects/Rockchip/bootloader/release
+++ b/projects/Rockchip/bootloader/release
@@ -1,20 +1,20 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
-SRCDIR="$BUILD/image/system/usr/share/bootloader"
-DSTDIR="$RELEASE_DIR/3rdparty/bootloader"
+SRCDIR="${BUILD}/image/system/usr/share/bootloader"
+DSTDIR="${RELEASE_DIR}/3rdparty/bootloader"
-mkdir -p "$DSTDIR"
- if [ -n "$UBOOT_SYSTEM" ]; then
- if [ -f "$SRCDIR/idbloader.img" ]; then
- cp -a "$SRCDIR/idbloader.img" "$DSTDIR"
+mkdir -p "${DSTDIR}"
+ if [ -n "${UBOOT_SYSTEM}" ]; then
+ if [ -f "${SRCDIR}/idbloader.img" ]; then
+ cp -a "${SRCDIR}/idbloader.img" "${DSTDIR}"
fi
- if [ -f "$SRCDIR/uboot.img" ]; then
- cp -a "$SRCDIR/uboot.img" "$DSTDIR"
+ if [ -f "${SRCDIR}/uboot.img" ]; then
+ cp -a "${SRCDIR}/uboot.img" "${DSTDIR}"
fi
- if [ -f "$SRCDIR/trust.img" ]; then
- cp -a "$SRCDIR/trust.img" "$DSTDIR"
+ if [ -f "${SRCDIR}/trust.img" ]; then
+ cp -a "${SRCDIR}/trust.img" "${DSTDIR}"
fi
fi
- cp -a "$SRCDIR"/${DEVICE,,}-*.dtb "$DSTDIR"
+ cp -a "${SRCDIR}"/${DEVICE,,}-*.dtb "${DSTDIR}"
diff --git a/projects/Rockchip/bootloader/update.sh b/projects/Rockchip/bootloader/update.sh
index d2a6993dd2..933366e338 100644
--- a/projects/Rockchip/bootloader/update.sh
+++ b/projects/Rockchip/bootloader/update.sh
@@ -1,50 +1,87 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
-[ -z "$SYSTEM_ROOT" ] && SYSTEM_ROOT=""
-[ -z "$BOOT_ROOT" ] && BOOT_ROOT="/flash"
-[ -z "$BOOT_PART" ] && BOOT_PART=$(df "$BOOT_ROOT" | tail -1 | awk {' print $1 '})
-if [ -z "$BOOT_DISK" ]; then
- case $BOOT_PART in
+[ -z "${SYSTEM_ROOT}" ] && SYSTEM_ROOT=""
+[ -z "${BOOT_ROOT}" ] && BOOT_ROOT="/flash"
+[ -z "${BOOT_PART}" ] && BOOT_PART=$(df "${BOOT_ROOT}" | tail -1 | awk {' print $1 '})
+if [ -z "${BOOT_DISK}" ]; then
+ case ${BOOT_PART} in
/dev/sd[a-z][0-9]*)
- BOOT_DISK=$(echo $BOOT_PART | sed -e "s,[0-9]*,,g")
+ BOOT_DISK=$(echo ${BOOT_PART} | sed -e "s,[0-9]*,,g")
;;
/dev/mmcblk*)
- BOOT_DISK=$(echo $BOOT_PART | sed -e "s,p[0-9]*,,g")
+ BOOT_DISK=$(echo ${BOOT_PART} | sed -e "s,p[0-9]*,,g")
;;
esac
fi
-# mount $BOOT_ROOT r/w
- mount -o remount,rw $BOOT_ROOT
+# mount ${BOOT_ROOT} r/w
+ mount -o remount,rw ${BOOT_ROOT}
# update device tree
- for all_dtb in $BOOT_ROOT/*.dtb; do
- dtb=$(basename $all_dtb)
- if [ -f $SYSTEM_ROOT/usr/share/bootloader/$dtb ]; then
- echo -n "Updating $dtb... "
- cp -p $SYSTEM_ROOT/usr/share/bootloader/$dtb $BOOT_ROOT
+ for all_dtb in ${BOOT_ROOT}/*.dtb; do
+ dtb=$(basename ${all_dtb})
+
+ # device tree mappings for update from vendor to mainline kernel
+ case "${dtb}" in
+ rk3288-miniarm.dtb)
+ new_dtb=rk3288-tinker.dtb
+ ;;
+ rk3328-box.dtb|rk3328-box-trn9.dtb|rk3328-box-z28.dtb|rk3328-rockbox.dtb)
+ new_dtb=rk3328-a1.dtb
+ ;;
+ rk3399-rock-pi-4.dtb)
+ new_dtb=rk3399-rock-pi-4a.dtb
+ ;;
+ *)
+ new_dtb="${dtb}"
+ ;;
+ esac
+
+ if [ "${dtb}" != "${new_dtb}" -a -f ${SYSTEM_ROOT}/usr/share/bootloader/${new_dtb} ]; then
+ echo -n "Replacing ${dtb} with ${new_dtb} ... "
+ cp -p ${SYSTEM_ROOT}/usr/share/bootloader/${new_dtb} ${BOOT_ROOT} && \
+ sed -e "s/FDT \/${dtb}/FDT \/${new_dtb}/g" \
+ -i ${BOOT_ROOT}/extlinux/extlinux.conf && \
+ rm -f ${BOOT_ROOT}/${dtb}
echo "done"
+ else
+ if [ -f ${SYSTEM_ROOT}/usr/share/bootloader/${dtb} ]; then
+ echo -n "Updating ${dtb}... "
+ cp -p ${SYSTEM_ROOT}/usr/share/bootloader/${dtb} ${BOOT_ROOT}
+ echo "done"
+ elif [ "$(grep -c "FDT /${dtb}" ${BOOT_ROOT}/extlinux/extlinux.conf)" -ne 0 ]; then
+ non_existend_dtb="${dtb}"
+ fi
fi
done
# update bootloader
- if [ -f $SYSTEM_ROOT/usr/share/bootloader/idbloader.img ]; then
+ if [ -f ${SYSTEM_ROOT}/usr/share/bootloader/idbloader.img ]; then
echo -n "Updating idbloader.img... "
- dd if=$SYSTEM_ROOT/usr/share/bootloader/idbloader.img of=$BOOT_DISK bs=32k seek=1 conv=fsync &>/dev/null
+ dd if=${SYSTEM_ROOT}/usr/share/bootloader/idbloader.img of=${BOOT_DISK} bs=32k seek=1 conv=fsync &>/dev/null
echo "done"
fi
- if [ -f $SYSTEM_ROOT/usr/share/bootloader/uboot.img ]; then
+ if [ -f ${SYSTEM_ROOT}/usr/share/bootloader/uboot.img ]; then
echo -n "Updating uboot.img... "
- dd if=$SYSTEM_ROOT/usr/share/bootloader/uboot.img of=$BOOT_DISK bs=64k seek=128 conv=fsync &>/dev/null
+ dd if=${SYSTEM_ROOT}/usr/share/bootloader/uboot.img of=${BOOT_DISK} bs=64k seek=128 conv=fsync &>/dev/null
echo "done"
fi
- if [ -f $SYSTEM_ROOT/usr/share/bootloader/trust.img ]; then
+ if [ -f ${SYSTEM_ROOT}/usr/share/bootloader/trust.img ]; then
echo -n "Updating trust.img... "
- dd if=$SYSTEM_ROOT/usr/share/bootloader/trust.img of=$BOOT_DISK bs=64k seek=192 conv=fsync &>/dev/null
+ dd if=${SYSTEM_ROOT}/usr/share/bootloader/trust.img of=${BOOT_DISK} bs=64k seek=192 conv=fsync &>/dev/null
echo "done"
fi
-# mount $BOOT_ROOT r/o
+# mount ${BOOT_ROOT} r/o
sync
- mount -o remount,ro $BOOT_ROOT
+ mount -o remount,ro ${BOOT_ROOT}
+
+# warning if device tree was not updated
+ if [ -n "${non_existend_dtb}" ]; then
+ echo "The device tree ${non_existend_dtb} your installation uses does not exist in this update package."
+ echo "The updated system will continue to use the device tree from the previous system and your installation might be broken."
+ echo "Please check documentation to find out which boards are supported by this package."
+ sleep 10
+ fi
+
diff --git a/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf b/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf
index 7e3e7e0526..a2a4eb1524 100644
--- a/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf
+++ b/projects/Rockchip/devices/RK3288/linux/default/linux.arm.conf
@@ -3235,7 +3235,7 @@ CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_CMA_HELPER=y
CONFIG_DRM_KMS_CMA_HELPER=y
@@ -5780,7 +5780,7 @@ CONFIG_CRYPTO_LIB_SHA256=y
CONFIG_CRYPTO_HW=y
# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
-CONFIG_CRYPTO_DEV_ROCKCHIP=m
+# CONFIG_CRYPTO_DEV_ROCKCHIP is not set
CONFIG_CRYPTO_DEV_VIRTIO=m
# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
# CONFIG_CRYPTO_DEV_CCREE is not set
diff --git a/projects/Rockchip/devices/RK3288/options b/projects/Rockchip/devices/RK3288/options
index 64703ad9e3..b05d5e9ac6 100644
--- a/projects/Rockchip/devices/RK3288/options
+++ b/projects/Rockchip/devices/RK3288/options
@@ -10,7 +10,6 @@
TARGET_CPU="cortex-a17"
TARGET_FPU="neon-vfpv4"
TARGET_FEATURES="32bit"
- KERNEL_TOOLCHAIN="arm-none-linux-gnueabihf"
;;
esac
diff --git a/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf b/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf
index 937cd8f7cb..c6c2e73658 100644
--- a/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf
+++ b/projects/Rockchip/devices/RK3328/linux/default/linux.aarch64.conf
@@ -3323,7 +3323,7 @@ CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_CMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
diff --git a/projects/Rockchip/devices/RK3399/README.md b/projects/Rockchip/devices/RK3399/README.md
index 72923919c1..3c767523bf 100644
--- a/projects/Rockchip/devices/RK3399/README.md
+++ b/projects/Rockchip/devices/RK3399/README.md
@@ -4,18 +4,13 @@ This is a SoC device for RK3399
**Build**
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=firefly make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=hugsun-x99 make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=khadas-edge make image`
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=khadas-edge-v make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=nanopc-t4 make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=nanopi-m4 make image`
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=nanopi-neo4 make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=orangepi make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rock960 make image`
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rock-pi-4a make image`
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rock-pi-4b make image`
-* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rock-pi-4c make image`
+* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rock-pi-4 make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=rockpro64 make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=roc-pc make image`
* `PROJECT=Rockchip DEVICE=RK3399 ARCH=arm UBOOT_SYSTEM=sapphire make image`
diff --git a/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf b/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf
index 54c51b710a..b639c30d86 100644
--- a/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf
+++ b/projects/Rockchip/devices/RK3399/linux/default/linux.aarch64.conf
@@ -3846,7 +3846,7 @@ CONFIG_DRM_KMS_HELPER=y
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_FBDEV_OVERALLOC=100
-# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
+CONFIG_DRM_LOAD_EDID_FIRMWARE=y
# CONFIG_DRM_DP_CEC is not set
CONFIG_DRM_GEM_CMA_HELPER=y
CONFIG_DRM_GEM_SHMEM_HELPER=y
@@ -4755,7 +4755,27 @@ CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
# CONFIG_USB_RAW_GADGET is not set
# end of USB Gadget precomposed configurations
-# CONFIG_TYPEC is not set
+CONFIG_TYPEC=y
+CONFIG_TYPEC_TCPM=m
+# CONFIG_TYPEC_TCPCI is not set
+CONFIG_TYPEC_FUSB302=m
+# CONFIG_TYPEC_UCSI is not set
+# CONFIG_TYPEC_HD3SS3220 is not set
+# CONFIG_TYPEC_TPS6598X is not set
+# CONFIG_TYPEC_STUSB160X is not set
+
+#
+# USB Type-C Multiplexer/DeMultiplexer Switch support
+#
+# CONFIG_TYPEC_MUX_PI3USB30532 is not set
+# end of USB Type-C Multiplexer/DeMultiplexer Switch support
+
+#
+# USB Type-C Alternate Mode drivers
+#
+# CONFIG_TYPEC_DP_ALTMODE is not set
+# end of USB Type-C Alternate Mode drivers
+
CONFIG_USB_ROLE_SWITCH=y
CONFIG_MMC=y
CONFIG_PWRSEQ_EMMC=y
diff --git a/projects/Rockchip/patches/linux/default/linux-1003-for-libreelec.patch b/projects/Rockchip/patches/linux/default/linux-1003-for-libreelec.patch
index 35a3c0f8a0..c759418b1a 100644
--- a/projects/Rockchip/patches/linux/default/linux-1003-for-libreelec.patch
+++ b/projects/Rockchip/patches/linux/default/linux-1003-for-libreelec.patch
@@ -450,3 +450,243 @@ index 403d4c6a49a8..7505c3eee4c1 100644
};
struct hdmi_codec_priv {
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alex Bee
+Date: Sat, 27 Feb 2021 17:41:48 +0100
+Subject: [PATCH] ARM64: dts: rockchip: fix gpu register width and supplies
+ for RK3328
+
+Signed-off-by: Alex Bee
+---
+ arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 4 ++++
+ arch/arm64/boot/dts/rockchip/rk3328-rock64.dts | 4 ++++
+ arch/arm64/boot/dts/rockchip/rk3328.dtsi | 2 +-
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+index 3ac876c08d61..8607514437f5 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+@@ -161,6 +161,10 @@ &gmac2io {
+ status = "okay";
+ };
+
++&gpu {
++ mali-supply = <&vdd_logic>;
++};
++
+ &hdmi {
+ status = "okay";
+ };
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+index 89fde87f7650..bd62349a9390 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-rock64.dts
+@@ -157,6 +157,10 @@ &gmac2io {
+ status = "okay";
+ };
+
++&gpu {
++ mali-supply = <&vdd_logic>;
++};
++
+ &hdmi {
+ status = "okay";
+ };
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+index 2dc257098002..f86f10f7e64e 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+@@ -619,7 +619,7 @@ saradc: adc@ff280000 {
+
+ gpu: gpu@ff300000 {
+ compatible = "rockchip,rk3328-mali", "arm,mali-450";
+- reg = <0x0 0xff300000 0x0 0x40000>;
++ reg = <0x0 0xff300000 0x0 0x30000>;
+ interrupts = ,
+ ,
+ ,
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Kamil=20Trzci=C5=84ski?=
+Date: Sun, 30 Dec 2018 13:32:47 +0100
+Subject: [PATCH] ayufan: dts: rockpro64: change rx_delay for gmac
+
+Change-Id: Ib3899f684188aa1ed1545717af004bba53fe0e07
+---
+ arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
+index 58097245994a..0da80295f09f 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
++++ b/arch/arm64/boot/dts/rockchip/rk3399-rockpro64.dtsi
+@@ -248,7 +248,7 @@ &gmac {
+ snps,reset-active-low;
+ snps,reset-delays-us = <0 10000 50000>;
+ tx_delay = <0x28>;
+- rx_delay = <0x11>;
++ rx_delay = <0x20>;
+ status = "okay";
+ };
+
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aditya Prayoga
+Date: Tue, 15 Sep 2020 13:29:45 +0700
+Subject: [PATCH] PCI: rockchip: support ep-gpio undefined case
+
+Signed-off-by: Aditya Prayoga
+---
+ drivers/pci/controller/pcie-rockchip.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/pci/controller/pcie-rockchip.c b/drivers/pci/controller/pcie-rockchip.c
+index 904dec0d3a88..13b0d30b130d 100644
+--- a/drivers/pci/controller/pcie-rockchip.c
++++ b/drivers/pci/controller/pcie-rockchip.c
+@@ -118,9 +118,9 @@ int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
+ }
+
+ if (rockchip->is_rc) {
+- rockchip->ep_gpio = devm_gpiod_get(dev, "ep", GPIOD_OUT_HIGH);
++ rockchip->ep_gpio = devm_gpiod_get_optional(dev, "ep", GPIOD_OUT_HIGH);
+ if (IS_ERR(rockchip->ep_gpio)) {
+- dev_err(dev, "missing ep-gpios property in node\n");
++ dev_err(dev, "invalid ep-gpios property in node\n");
+ return PTR_ERR(rockchip->ep_gpio);
+ }
+ }
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alex Bee
+Date: Sat, 27 Feb 2021 17:52:02 +0100
+Subject: [PATCH] ARM64: dts: rockchip: add SPDIF nodes for RK3328 A1/ROC CC
+
+Signed-off-by: Alex Bee
+---
+ arch/arm64/boot/dts/rockchip/rk3328-a1.dts | 23 +++++++++++++++++++
+ .../arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 23 +++++++++++++++++++
+ 2 files changed, 46 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-a1.dts b/arch/arm64/boot/dts/rockchip/rk3328-a1.dts
+index 4013f16bb368..1bb3f4a6e496 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-a1.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-a1.dts
+@@ -52,6 +52,24 @@ ir-receiver {
+ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
+ linux,rc-map-name = "rc-beelink-gs1";
+ };
++
++ spdif_sound: spdif-sound {
++ compatible = "simple-audio-card";
++ simple-audio-card,name = "SPDIF";
++
++ simple-audio-card,cpu {
++ sound-dai = <&spdif>;
++ };
++
++ simple-audio-card,codec {
++ sound-dai = <&spdif_dit>;
++ };
++ };
++
++ spdif_dit: spdif-dit {
++ compatible = "linux,spdif-dit";
++ #sound-dai-cells = <0>;
++ };
+ };
+
+ &analog_sound {
+@@ -319,6 +337,11 @@ &sdmmc {
+ status = "okay";
+ };
+
++&spdif {
++ pinctrl-0 = <&spdifm0_tx>;
++ status = "okay";
++};
++
+ &tsadc {
+ rockchip,hw-tshut-mode = <0>;
+ rockchip,hw-tshut-polarity = <0>;
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+index 8607514437f5..6ca08854aef3 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+@@ -102,6 +102,24 @@ user_led: led-1 {
+ mode = <0x05>;
+ };
+ };
++
++ spdif_sound: spdif-sound {
++ compatible = "simple-audio-card";
++ simple-audio-card,name = "SPDIF";
++
++ simple-audio-card,cpu {
++ sound-dai = <&spdif>;
++ };
++
++ simple-audio-card,codec {
++ sound-dai = <&spdif_dit>;
++ };
++ };
++
++ spdif_dit: spdif-dit {
++ compatible = "linux,spdif-dit";
++ #sound-dai-cells = <0>;
++ };
+ };
+
+ &analog_sound {
+@@ -337,6 +355,11 @@ &sdmmc {
+ status = "okay";
+ };
+
++&spdif {
++ pinctrl-0 = <&spdifm0_tx>;
++ status = "okay";
++};
++
+ &tsadc {
+ status = "okay";
+ };
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Alex Bee
+Date: Sat, 27 Feb 2021 18:01:13 +0100
+Subject: [PATCH] ARM64: dts: rockchip: Add ir-receiver node for RK3328 ROC CC
+
+Signed-off-by: Alex Bee
+---
+ arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+index 6ca08854aef3..fb21ad1324bc 100644
+--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
++++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+@@ -83,6 +83,13 @@ vcc_phy: vcc-phy-regulator {
+ regulator-boot-on;
+ };
+
++ ir-receiver {
++ compatible = "gpio-ir-receiver";
++ gpios = <&gpio2 RK_PA2 GPIO_ACTIVE_LOW>;
++ pinctrl-0 = <&ir_int>;
++ pinctrl-names = "default";
++ };
++
+ leds {
+ compatible = "gpio-leds";
+
+@@ -325,6 +332,13 @@ &io_domains {
+ };
+
+ &pinctrl {
++
++ ir {
++ ir_int: ir-int {
++ rockchip,pins = <2 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
++ };
++ };
++
+ pmic {
+ pmic_int_l: pmic-int-l {
+ rockchip,pins = <1 RK_PD0 RK_FUNC_GPIO &pcfg_pull_up>;
diff --git a/scripts/uboot_helper b/scripts/uboot_helper
index 15a11803c4..d19fdfa29f 100755
--- a/scripts/uboot_helper
+++ b/scripts/uboot_helper
@@ -263,10 +263,6 @@ devices = \
},
},
'RK3399': {
- 'firefly': {
- 'dtb': 'rk3399-firefly.dtb',
- 'config': 'evb-rk3399_defconfig'
- },
'hugsun-x99': {
'dtb': 'rk3399-hugsun-x99.dtb',
'config': 'evb-rk3399_defconfig'
@@ -275,10 +271,6 @@ devices = \
'dtb': 'rk3399-khadas-edge.dtb',
'config': 'evb-rk3399_defconfig'
},
- 'khadas-edge-v': {
- 'dtb': 'rk3399-khadas-edge-v.dtb',
- 'config': 'evb-rk3399_defconfig'
- },
'nanopc-t4': {
'dtb': 'rk3399-nanopc-t4.dtb',
'config': 'evb-rk3399_defconfig'
@@ -287,10 +279,6 @@ devices = \
'dtb': 'rk3399-nanopi-m4.dtb',
'config': 'evb-rk3399_defconfig'
},
- 'nanopi-neo4': {
- 'dtb': 'rk3399-nanopi-neo4.dtb',
- 'config': 'evb-rk3399_defconfig'
- },
'orangepi': {
'dtb': 'rk3399-orangepi.dtb',
'config': 'evb-rk3399_defconfig'
@@ -299,18 +287,10 @@ devices = \
'dtb': 'rk3399-rock960.dtb',
'config': 'evb-rk3399_defconfig'
},
- 'rock-pi-4a': {
+ 'rock-pi-4': {
'dtb': 'rk3399-rock-pi-4a.dtb',
'config': 'evb-rk3399_defconfig'
},
- 'rock-pi-4b': {
- 'dtb': 'rk3399-rock-pi-4b.dtb',
- 'config': 'evb-rk3399_defconfig'
- },
- 'rock-pi-4c': {
- 'dtb': 'rk3399-rock-pi-4c.dtb',
- 'config': 'evb-rk3399_defconfig'
- },
'rockpro64': {
'dtb': 'rk3399-rockpro64.dtb',
'config': 'evb-rk3399_defconfig'