Files
BPI-CM9-Linux/aml-patches/amlbian/0002-a9-armbian-support-multidtb-1-1.patch

99 lines
4.3 KiB
Diff

From 82a117be11cbd40d4a64b4b7699b049d38107d09 Mon Sep 17 00:00:00 2001
From: "chunfei.wang" <chunfei.wang@amlogic.com>
Date: Wed, 5 Aug 2026 07:39:25 +0000
Subject: [PATCH 2/7] a9: armbian support multidtb [1/1]
PD#SWPL-274170
Problem:
a9 armbian support 4g/8g/16g
Solution:
add 4g/8g/16g dtb
Fixed conflicts:
NA
Verify:
A9
Change-Id: I1cfa77c486c973513a3b952babf409415e17b4e5
Signed-off-by: chunfei.wang <chunfei.wang@amlogic.com>
---
config/boards/a9-by401-6.12-bookworm-gnome.conf | 4 ++--
config/boards/a9-by401-6.12-noble-minimal.conf | 4 ++--
lib/function-img.sh | 3 ++-
scripts/build-kernel.sh | 9 +++++++++
4 files changed, 15 insertions(+), 5 deletions(-)
diff --git a/config/boards/a9-by401-6.12-bookworm-gnome.conf b/config/boards/a9-by401-6.12-bookworm-gnome.conf
index 2c4b55c..6cb9c7e 100644
--- a/config/boards/a9-by401-6.12-bookworm-gnome.conf
+++ b/config/boards/a9-by401-6.12-bookworm-gnome.conf
@@ -141,9 +141,9 @@ MODULES_INITRD="mesona9-by401-initrd"
# Work name for logging
WORK_BOARD="A311Y3-BY401"
if [ ${HDMIONLY} = "yes" ];then
- KERNEL_DEVICETREE="a9_a311y3_by401_hdmi_linux.dtb"
+ KERNEL_DEVICETREE="a9_a311y3_by401_4g_hdmi_linux.dtb a9_a311y3_by401_8g_hdmi_linux.dtb a9_a311y3_by401_16g_hdmi_linux.dtb a9_a311y3_by401_4g_hdmi_linux_v1.dtb a9_a311y3_by401_8g_hdmi_linux_v1.dtb a9_a311y3_by401_16g_hdmi_linux_v1.dtb"
else
- KERNEL_DEVICETREE="a9_a311y3_by401_linux.dtb"
+ KERNEL_DEVICETREE="a9_a311y3_by401_4g_linux.dtb a9_a311y3_by401_8g_linux.dtb a9_a311y3_by401_16g_linux.dtb a9_a311y3_by401_4g_linux_v1.dtb a9_a311y3_by401_8g_linux_v1.dtb a9_a311y3_by401_16g_linux_v1.dtb"
fi
# wifi config
diff --git a/config/boards/a9-by401-6.12-noble-minimal.conf b/config/boards/a9-by401-6.12-noble-minimal.conf
index fffb9c8..41820f3 100644
--- a/config/boards/a9-by401-6.12-noble-minimal.conf
+++ b/config/boards/a9-by401-6.12-noble-minimal.conf
@@ -125,9 +125,9 @@ MODULES_INITRD="mesona9-by401-initrd"
# Work name for logging
WORK_BOARD="A311Y3-BY401"
if [ ${HDMIONLY} = "yes" ];then
- KERNEL_DEVICETREE="a9_a311y3_by401_hdmi_linux.dtb"
+ KERNEL_DEVICETREE="a9_a311y3_by401_4g_hdmi_linux.dtb a9_a311y3_by401_8g_hdmi_linux.dtb a9_a311y3_by401_16g_hdmi_linux.dtb a9_a311y3_by401_4g_hdmi_linux_v1.dtb a9_a311y3_by401_8g_hdmi_linux_v1.dtb a9_a311y3_by401_16g_hdmi_linux_v1.dtb"
else
- KERNEL_DEVICETREE="a9_a311y3_by401_linux.dtb"
+ KERNEL_DEVICETREE = "a9_a311y3_by401_4g_linux.dtb a9_a311y3_by401_8g_linux.dtb a9_a311y3_by401_16g_linux.dtb a9_a311y3_by401_4g_linux_v1.dtb a9_a311y3_by401_8g_linux_v1.dtb a9_a311y3_by401_16g_linux_v1.dtb"
fi
# wifi config
diff --git a/lib/function-img.sh b/lib/function-img.sh
index d354667..56b7a70 100644
--- a/lib/function-img.sh
+++ b/lib/function-img.sh
@@ -1291,8 +1291,9 @@ function pack_image_platform() {
display_alert "ERROR: Source file does not exist, skipping link creation for $TARGET_LOGO. ($SOURCE_LOGO)"
exit 1
fi
+
# 检查 amlbian.dtb
- SOURCE_DTB="$DTBS_DIR/$KERNEL_DEVICETREE"
+ SOURCE_DTB="$DTBS_DIR/multi.dtb"
TARGET_DTB="$D/amlbian.dtb"
if [ -e "$SOURCE_DTB" ]; then
ln -sf "$SOURCE_DTB" "$TARGET_DTB"
diff --git a/scripts/build-kernel.sh b/scripts/build-kernel.sh
index c7a06d4..5f0fa26 100644
--- a/scripts/build-kernel.sh
+++ b/scripts/build-kernel.sh
@@ -440,6 +440,15 @@ function compile_kernel() {
if [[ ${dtb_count} -gt 0 ]]; then
export AMLBIAN_KERNEL_DTB_DIR="${dtb_staging_dir}"
display_alert "COMPILE-KERNEL AMLBIAN_KERNEL_DTB_DIR=${AMLBIAN_KERNEL_DTB_DIR} (count=${dtb_count})"
+
+ echo "SOURCE_DIR=${SOURCE_DIR}"
+ echo "build_dir=${build_dir}"
+ echo "dtb_staging_dir=${dtb_staging_dir}"
+ if [ $(echo "${KERNEL_DEVICETREE}" | wc -w ) -gt 1 ]; then
+ ${SOURCE_DIR}/../prebuilt/hosttools/kernel/dtbTool -o ${dtb_staging_dir}/multi.dtb -p ${build_dir}/scripts/dtc/ ${dtb_staging_dir}/
+ else
+ install -m 0644 ${dtb_staging_dir}/${KERNEL_DEVICETREE} ${dtb_staging_dir}/multi.dtb
+ fi
else
display_alert "COMPILE-KERNEL No DTBs staged for packaging"
fi
--
2.43.2