diff --git a/.oebuild/platform/hi309a.yaml b/.oebuild/platform/hi309a.yaml new file mode 100644 index 0000000000000000000000000000000000000000..4257c6eba237a9352a4535ac2908d37f36e98db5 --- /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 0000000000000000000000000000000000000000..97b8ddd0a3dcb8b385c5c9d5a782d6e4a0dd6dba --- /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 0000000000000000000000000000000000000000..ab8c10a7dc968221d90b8cd1e3c40592e3cc7e3a --- /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 0000000000000000000000000000000000000000..5f88912a05250e6210c72897819cf8338e6d20ab --- /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 0000000000000000000000000000000000000000..4aa03b2b79d56eec232db171cb43429c7f6136f8 --- /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 0000000000000000000000000000000000000000..9b093ae198efa3412045d4616ef5098ad4dd70b4 --- /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 0000000000000000000000000000000000000000..579f168436f17123d7f4f7ed3634c1b885be2748 --- /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 942b6814de655d964ca4ce06eb3e6732f53eccca..82a367f4ad717ead733075c46b4fe0b2ad7b0da1 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 00fc692dd58ff1d5362273dccae2c21b90f80868..823fbee7484301cf751654afd626982d5b3bd693 100644 --- a/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend +++ b/bsp/meta-hisilicon/recipes-kernel/linux/linux-openeuler.bbappend @@ -1,4 +1,4 @@ # add COMPATIBLE_MACHINE -COMPATIBLE_MACHINE = "hi3093|hieulerpi1|hiedge1|hipico|3591rc" +COMPATIBLE_MACHINE = "hi309a|hi3093|hieulerpi1|hiedge1|hipico|3591rc" require recipes-kernel/linux/${@bb.utils.contains('DISTRO_FEATURES', 'mpu_solution', 'linux-hi3093-mpu.inc', 'linux-${MACHINE}.inc', d)}