From e07ced21e80b28c8ce5b53c58c522bb6784edbda Mon Sep 17 00:00:00 2001 From: egg12138 Date: Thu, 13 Nov 2025 19:22:13 +0800 Subject: [PATCH] hi309a: add hi309a recipes in bsp hisilicon - add basic configurations mirrored from hi3093 - as an example for - TODO: use hi3093 as a template for future hi309* family * same kernel manifest * similar rootfs contents * different kernel patches - does not sync 24.03-LTS patch for hi3093 kernel: * support fpf * kernel-22.03-lts-sp3-mmc Signed-off-by: egg12138 --- .oebuild/platform/hi309a.yaml | 8 +++ bsp/meta-hisilicon/conf/machine/hi309a.conf | 64 +++++++++++++++++++ .../conf/machine/include/hi309a.inc | 3 + .../recipes-core/images/bsp-hi309a.inc | 1 + .../images/image-early-config-hi309a.inc | 1 + .../recipes-core/images/image-hi309a.inc | 1 + .../recipes-kernel/linux/linux-hi309a.inc | 4 ++ .../linux/linux-openeuler-rt.bbappend | 2 +- .../linux/linux-openeuler.bbappend | 5 +- 9 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 .oebuild/platform/hi309a.yaml create mode 100644 bsp/meta-hisilicon/conf/machine/hi309a.conf create mode 100644 bsp/meta-hisilicon/conf/machine/include/hi309a.inc create mode 100644 bsp/meta-hisilicon/recipes-core/images/bsp-hi309a.inc create mode 100644 bsp/meta-hisilicon/recipes-core/images/image-early-config-hi309a.inc create mode 100644 bsp/meta-hisilicon/recipes-core/images/image-hi309a.inc create mode 100644 bsp/meta-hisilicon/recipes-kernel/linux/linux-hi309a.inc diff --git a/.oebuild/platform/hi309a.yaml b/.oebuild/platform/hi309a.yaml new file mode 100644 index 00000000000..4257c6eba23 --- /dev/null +++ b/.oebuild/platform/hi309a.yaml @@ -0,0 +1,8 @@ +type: platform + +machine: hi309a + +toolchain_type: EXTERNAL_TOOLCHAIN:aarch64 + +layers: + - yocto-meta-openeuler/bsp/meta-hisilicon diff --git a/bsp/meta-hisilicon/conf/machine/hi309a.conf b/bsp/meta-hisilicon/conf/machine/hi309a.conf new file mode 100644 index 00000000000..97b8ddd0a3d --- /dev/null +++ b/bsp/meta-hisilicon/conf/machine/hi309a.conf @@ -0,0 +1,64 @@ +require conf/machine/include/hi309a.inc + +# auto load module during startup +KERNEL_MODULE_AUTOLOAD = " ${@bb.utils.contains('MCS_FEATURES', 'openamp', 'mcs_km', '', d)} " + +#================================================================================== +# README: How to Add a New hi309x Machine (hi3093 Configuration As Template) +#================================================================================== +# +# This file demonstrates the pattern for adding a new hi309x variant machine +# by inheriting from the base hi3093 configuration with minimal customizations. +# +# BACKGROUND: +# ----------- +# The hi3093 recipes are the first recipes set in the hi309x platform series. +# To add a new variant (like hi309a, hi309b, etc.) with subtle difference, +# you mirror the structure and use inheritance to avoid code duplication. +# +# FILES CREATED/ADDED FOR hi309a: +# -------------------------------- +# 1. conf/machine/hi309a.conf - Main machine config (this file) +# 2. conf/machine/include/hi309a.inc - Machine-specific overrides +# 3. recipes-kernel/linux/linux-hi309a.inc - Kernel-related configurations +# 4. recipes-core/images/bsp-hi309a.inc - BSP packages to be installed, used for all openeuiler images (tiny, standard, etc.) +# 5. recipes-core/images/image-hi309a.inc - Image composition config, (mainly kernel modules) +# 6. recipes-core/images/image-early-config-hi309a.inc - Early image config +# 7. .oebuild/platform/hi309a.yaml - Platform config for oebuild +# +# Common customization areas: +# 1. MACHINEOVERRIDES - Add your machine name to the override chain +# 2. Kernel defconfig - Only create if different from hi3093 +# 3. MACHINE_FEATURES - Add/remove features specific to your variant +# 4. IMAGE_INSTALL - Add/remove packages in bsp-.inc +# 5. KERNEL_MODULE_AUTOLOAD - Auto-load specific modules +# 6. DISTRO_FEATURES - Add variant-specific distro features +# +# EXAMPLE (hi309a customizations): +# --------------------------------- +# MACHINEOVERRIDES =. "hi309a:march64le:" +# (Adds hi309a to the override chain, inherits all hi3093 settings) +# +# Kernel config optimization: +# Instead of creating a duplicate defconfig, hi309a uses hi3093's directly: +# OPENEULER_KERNEL_CONFIG = "file://config/hi3093/defconfig" +# (Saves ~4591 lines of duplication when configurations are identical) +# +# MAINTENANCE TIP: +# ---------------- +# When hi3093 base configuration is updated, review if changes need to be +# propagated to or are compatible with your hi309x variant. Since most +# configuration is inherited automatically, updates are usually minimal. +# +# TROUBLESHOOTING: +# ---------------- +# - If a package isn't working as expected, check MACHINEOVERRIDES includes +# your machine name +# - Verify kernel configuration with: bitbake -c menuconfig virtual/kernel +# - Check package inclusion with: bitbake -g +# - Use bitbake-getvar to inspect variable values +# +# For more information, see hi3093.inc and hi309a.inc for examples. +# +#================================================================================== + diff --git a/bsp/meta-hisilicon/conf/machine/include/hi309a.inc b/bsp/meta-hisilicon/conf/machine/include/hi309a.inc new file mode 100644 index 00000000000..ab8c10a7dc9 --- /dev/null +++ b/bsp/meta-hisilicon/conf/machine/include/hi309a.inc @@ -0,0 +1,3 @@ +require conf/machine/include/hi3093.inc + +MACHINEOVERRIDES =. "hi309a:march64le:" diff --git a/bsp/meta-hisilicon/recipes-core/images/bsp-hi309a.inc b/bsp/meta-hisilicon/recipes-core/images/bsp-hi309a.inc new file mode 100644 index 00000000000..5f88912a052 --- /dev/null +++ b/bsp/meta-hisilicon/recipes-core/images/bsp-hi309a.inc @@ -0,0 +1 @@ +require recipes-core/images/bsp-hi3093.inc diff --git a/bsp/meta-hisilicon/recipes-core/images/image-early-config-hi309a.inc b/bsp/meta-hisilicon/recipes-core/images/image-early-config-hi309a.inc new file mode 100644 index 00000000000..4aa03b2b79d --- /dev/null +++ b/bsp/meta-hisilicon/recipes-core/images/image-early-config-hi309a.inc @@ -0,0 +1 @@ +require recipes-core/images/image-early-config-hi3093.inc diff --git a/bsp/meta-hisilicon/recipes-core/images/image-hi309a.inc b/bsp/meta-hisilicon/recipes-core/images/image-hi309a.inc new file mode 100644 index 00000000000..9b093ae198e --- /dev/null +++ b/bsp/meta-hisilicon/recipes-core/images/image-hi309a.inc @@ -0,0 +1 @@ +require recipes-core/images/image-hi3093.inc diff --git a/bsp/meta-hisilicon/recipes-kernel/linux/linux-hi309a.inc b/bsp/meta-hisilicon/recipes-kernel/linux/linux-hi309a.inc new file mode 100644 index 00000000000..579f168436f --- /dev/null +++ b/bsp/meta-hisilicon/recipes-kernel/linux/linux-hi309a.inc @@ -0,0 +1,4 @@ +require recipes-kernel/linux/linux-hi3093.inc + +# Use hi3093's defconfig temporarily +OPENEULER_KERNEL_CONFIG = "file://config/hi3093/defconfig" diff --git a/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler-rt.bbappend b/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler-rt.bbappend index dfe6cf7263b..b635629890d 100644 --- a/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler-rt.bbappend +++ b/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler-rt.bbappend @@ -1,5 +1,5 @@ # add COMPATIBLE_MACHINE -COMPATIBLE_MACHINE = "hi3093|hieulerpi1" +COMPATIBLE_MACHINE = "hi3093|hieulerpi1|hi309a" require recipes-kernel/linux/${@bb.utils.contains('DISTRO_FEATURES', 'mpu_solution', 'linux-hi3093-mpu.inc', 'linux-${MACHINE}.inc', d)} diff --git a/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend b/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend index 8a2801852d2..c7f127e2410 100644 --- a/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend +++ b/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend @@ -1,9 +1,10 @@ # add COMPATIBLE_MACHINE -COMPATIBLE_MACHINE = "hi3093|hieulerpi1|hiedge1" +COMPATIBLE_MACHINE = "hi309a|hi3093|hieulerpi1|hiedge1" require recipes-kernel/linux/${@bb.utils.contains('DISTRO_FEATURES', 'mpu_solution', 'linux-hi3093-mpu.inc', 'linux-${MACHINE}.inc', d)} SRC_URI:prepend:hi3093 = " \ file://patch/0001-kernel-22.03-lts-sp3-mmc.patch \ file://patch/0001-kernel-support-pfp.patch \ -" \ No newline at end of file +" + -- Gitee