guowenxue
2023-12-26 ad923ea232ca60c999b9cc94faccc3b14c2fe3e0
Update meta-igkboard to add igkboard-imx6ull support

Signed-off-by: guowenxue <guowenxue@gmail.com>
1 files renamed
8 files added
4 files modified
282 ■■■■ changed files
yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf 24 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/conf/igkboard-imx8mp_local.conf patch | view | raw | blame | history
yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf 58 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf 43 ●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt 29 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt 29 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend 22 ●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb 29 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend 32 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend 12 ●●●●● patch | view | raw | blame | history
yocto/meta-igkboard/tools/igkboard-setup.sh 4 ●●● patch | view | raw | blame | history
yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf
New file
@@ -0,0 +1,24 @@
MACHINE ??= 'igkboard-imx6ull'
DISTRO ?= 'fsl-imx-wayland'
PACKAGE_CLASSES ?= 'package_deb'
EXTRA_IMAGE_FEATURES ?= "debug-tweaks"
USER_CLASSES ?= "buildstats"
PATCHRESOLVE = "noop"
BB_DISKMON_DIRS ??= "\
    STOPTASKS,${TMPDIR},1G,100K \
    STOPTASKS,${DL_DIR},1G,100K \
    STOPTASKS,${SSTATE_DIR},1G,100K \
    STOPTASKS,/tmp,100M,100K \
    ABORT,${TMPDIR},100M,1K \
    ABORT,${DL_DIR},100M,1K \
    ABORT,${SSTATE_DIR},100M,1K \
    ABORT,/tmp,10M,1K"
PACKAGECONFIG:append_pn-qemu-system-native = " sdl"
CONF_VERSION = "2"
#DL_DIR ?= "${HOME}/oe-sources-yocto/"
ACCEPT_FSL_EULA = "1"
# Switch to Debian packaging and include package-management in the image
PACKAGE_CLASSES = "package_deb"
EXTRA_IMAGE_FEATURES += "package-management"
yocto/meta-igkboard/conf/igkboard-imx8mp_local.conf
yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf
New file
@@ -0,0 +1,58 @@
#@TYPE       : Machine
#@NAME       : LingYun IoT Gatway Kits Boards based on i.MX6ULL
#@SOC        : i.MX6ULL
#@DESCRIPTION: Machine configuration for LingYun IGKBoard-IMX6ULL
#@MAINTAINER : Wenxue Guo <guowenxue@gmail.com>
#@REFERENCE  : meta-imx/meta-bsp/conf/machine/imx6ull9x9evk.conf
# Add new machine igkboard-imx6ull
MACHINEOVERRIDES =. "mx6:mx6ul:mx6ull:igkboardbase:igkboard-imx6ull"
include conf/machine/include/imx-base.inc
include conf/machine/include/arm/armv7a/tune-cortexa7.inc
# Device tree file generated during kernel compilation
KERNEL_DEVICETREE = "${MACHINE}.dtb"
# Device tree overlay files generated during kernel compilation
KERNEL_DTOVERLAY = " \
    ${MACHINE}/adc.dtbo \
    ${MACHINE}/cam.dtbo \
    ${MACHINE}/can1.dtbo \
    ${MACHINE}/can2.dtbo \
    ${MACHINE}/i2c1.dtbo \
    ${MACHINE}/lcd.dtbo \
    ${MACHINE}/nbiot-4g.dtbo \
    ${MACHINE}/pwm7.dtbo \
    ${MACHINE}/pwm8.dtbo \
    ${MACHINE}/spi1.dtbo \
    ${MACHINE}/uart2.dtbo \
    ${MACHINE}/uart3.dtbo \
    ${MACHINE}/uart4.dtbo \
    ${MACHINE}/uart7.dtbo \
    ${MACHINE}/w1.dtbo \
"
# Uboot configuration
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${MACHINE}_defconfig,sdcard"
# Add wic image in deploy folder
SOC_DEFAULT_IMAGE_FSTYPES:append = " wic"
# Define the kernel boot file
WKS_FILE_DEPENDS:append = " uenv"
IMAGE_BOOT_FILES = " \
    ${KERNEL_IMAGETYPE} \
    ${KERNEL_DEVICETREE} \
    overlays/*;overlays/ \
    config.txt \
"
# Remove unused optee bcm4339 bcm43455
MACHINE_FEATURES += "wifi bluetooth"
# Refer to linux-imx/drivers/tty/serial/imx.c
SERIAL_CONSOLES = "115200;ttymxc0"
# /etc/hostname (uname -a)
hostname:pn-base-files = "igkboard"
yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf
@@ -1,18 +1,32 @@
#@TYPE: Machine
#@NAME: IoT Gatway Kits Boards based on i.MX8M Plus
#@SOC: i.MX8M Plus
#@TYPE       : Machine
#@NAME       : LingYun IoT Gatway Kits Boards based on i.MX8M Plus
#@SOC        : i.MX8M Plus
#@DESCRIPTION: Machine configuration for LingYun IGKBoard-IMX8MP 2GB LPDDR4, 8GB eMMC
#@MAINTAINER: Wenxue Guo <guowenxue@gmail.com>
#@REFERENCE: meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf
#@MAINTAINER : Wenxue Guo <guowenxue@gmail.com>
#@REFERENCE  : meta-freescale/conf/machine/imx8mp-lpddr4-evk.conf
MACHINEOVERRIDES =. "mx8:mx8m:mx8mp:"
MACHINEOVERRIDES =. "igkboardbase:igkboard-imx8mp:"
# Add new machine igkboard-imx8mp
MACHINEOVERRIDES =. "mx8:mx8m:mx8mp:igkboardbase:igkboard-imx8mp:"
require conf/machine/include/imx-base.inc
require conf/machine/include/arm/armv8a/tune-cortexa53.inc
MACHINE_FEATURES:append = " wifi bluetooth ppp "
MACHINE_FEATURES:remove = " nxp8801-sdio nxp8987-sdio nxp8997-pcie nxp8997-sdio nxp9098-pcie nxp9098-sdio nxpiw416-sdio nxpiw612-sdio qemu-usermode "
# linux kernel images
KERNEL_DEVICETREE = "freescale/${MACHINE}.dtb"
KERNEL_IMAGETYPE = "Image"
# Uboot configuration
UBOOT_DTB_NAME = "${MACHINE}.dtb"
LOADADDR = ""
UBOOT_SUFFIX = "bin"
UBOOT_MAKE_TARGET = ""
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "${MACHINE}_defconfig,sdcard"
SERIAL_CONSOLES = "115200;ttymxc1"
# Set DDR FIRMWARE, Refer to:
# meta-imx/meta-bsp/recipes-bsp/imx-mkimage/imx-boot_*.bb
@@ -25,20 +39,6 @@
    lpddr4_pmu_train_2d_imem_${DDR_FIRMWARE_VERSION}.bin \
"
# Set linux DTB
KERNEL_DEVICETREE = "freescale/igkboard-imx8mp.dtb"
KERNEL_IMAGETYPE = "Image"
# Set u-boot DTB
UBOOT_DTB_NAME = "igkboard-imx8mp.dtb"
LOADADDR = ""
UBOOT_SUFFIX = "bin"
UBOOT_MAKE_TARGET = ""
SPL_BINARY = "spl/u-boot-spl.bin"
UBOOT_CONFIG ??= "sd"
UBOOT_CONFIG[sd] = "igkboard-imx8mp_defconfig,sdcard"
SERIAL_CONSOLES = "115200;ttymxc1"
# Set ATF platform name
ATF_PLATFORM = "imx8mp"
@@ -48,6 +48,7 @@
IMX_BOOT_SEEK = "32"
OPTEE_BIN_EXT = "8mp"
# Add wic image in deploy folder
SOC_DEFAULT_IMAGE_FSTYPES:append = " wic"
# Boot partition size [in KiB] for kernel and other data
yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt
New file
@@ -0,0 +1,29 @@
# Enable LCD overlay
#dtoverlay_lcd=yes
# Enable Camera overlay
#dtoverlay_cam=yes
# Eanble 1-Wire overlay
#dtoverlay_w1=yes
# Enable ADC overlay
#dtoverlay_adc=yes
# Enable I2C overlay
#dtoverlay_i2c=1
# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
#dtoverlay_spi=1
# Enable UART overlays
#dtoverlay_uart=2 3 4 7
# Enable CAN overlays
#dtoverlay_can=1 2
# Enable PWM overlays, PWM8 conflict with UART8(NB-IoT/4G module)
#dtoverlay_pwm=7
# Enable extra overlays
#dtoverlay_extra=nbiot-4g
yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt
New file
@@ -0,0 +1,29 @@
# Enable LCD overlay
#dtoverlay_lcd=yes
# Enable Camera overlay
#dtoverlay_cam=yes
# Eanble 1-Wire overlay
#dtoverlay_w1=yes
# Enable ADC overlay
#dtoverlay_adc=yes
# Enable I2C overlay
#dtoverlay_i2c=1
# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
#dtoverlay_spi=1
# Enable UART overlays
#dtoverlay_uart=2 3 4 7
# Enable CAN overlays
#dtoverlay_can=1 2
# Enable PWM overlays, PWM8 conflict with UART8(NB-IoT/4G module)
#dtoverlay_pwm=7
# Enable extra overlays
#dtoverlay_extra=nbiot-4g
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp
yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp
yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend
@@ -1,23 +1,7 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:append = " file://uboot-imx-lf-6.1.36-2.1.0.patch "
do_deploy:append:igkboardbase() {
    # Deploy u-boot-nodtb.bin and fsl-imx8m*-XX.dtb for mkimage to generate boot binary
    if [ -n "${UBOOT_CONFIG}" ]
    then
        for config in ${UBOOT_MACHINE}; do
            i=$(expr $i + 1);
            for type in ${UBOOT_CONFIG}; do
                j=$(expr $j + 1);
                if [ $j -eq $i ]
                then
                    install -d ${DEPLOYDIR}/${BOOT_TOOLS}
                    install -m 0777 ${B}/${config}/arch/arm/dts/${UBOOT_DTB_NAME}  ${DEPLOYDIR}/${BOOT_TOOLS}
                    install -m 0777 ${B}/${config}/u-boot-nodtb.bin  ${DEPLOYDIR}/${BOOT_TOOLS}/u-boot-nodtb.bin-${MACHINE}-${type}
                fi
            done
            unset  j
        done
        unset  i
    fi
addtask copy_logo after do_unpack before do_configure
do_copy_logo(){
    cp ${BSPDIR}/sources/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-${MACHINE}.bmp ${S}/tools/logos/lingyun.bmp
}
yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb
New file
@@ -0,0 +1,29 @@
DESCRIPTION = "U-boot Env from config.txt"
SECTION = "app"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
FILES:${PN} = "/boot"
S = "${WORKDIR}"
SRC_URI = " "
SRC_URI = " \
    file://config-${MACHINE}.txt \
"
do_install() {
    install -d ${D}/boot
    install -m 0644 ${S}/config-${MACHINE}.txt ${D}/boot/config.txt
}
inherit deploy
addtask deploy after do_install
do_deploy () {
    install -m 0644 ${D}/boot/config.txt ${DEPLOYDIR}
}
COMPATIBLE_MACHINE = "(igkboardbase)"
PACKAGE_ARCH = "${MACHINE_ARCH}"
yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend
@@ -5,8 +5,36 @@
PATCHTOOL = "patch"
KERNEL_DANGLING_FEATURES_WARN_ONLY="1"
KERNEL_DTC_FLAGS = "-@"
KERNEL_DTOVERLAY ?= ""
do_copy_defconfig:append() {
    cp ${S}/arch/arm64/configs/${MACHINE}_defconfig ${WORKDIR}/defconfig
    cp ${S}/arch/arm64/configs/${MACHINE}_defconfig ${B}/.config
    if [ ${DO_CONFIG_V7_COPY} = "yes" ]; then
        cp ${S}/arch/arm/configs/${MACHINE}_defconfig ${WORKDIR}/defconfig
        cp ${S}/arch/arm/configs/${MACHINE}_defconfig ${B}/.config
    else
        cp ${S}/arch/arm64/configs/${MACHINE}_defconfig ${WORKDIR}/defconfig
        cp ${S}/arch/arm64/configs/${MACHINE}_defconfig ${B}/.config
    fi
}
do_compile:append() {
    if [ -n "${KERNEL_DTC_FLAGS}" ]; then
        export DTC_FLAGS="${KERNEL_DTC_FLAGS}"
    fi
    for dtbf in ${KERNEL_DTOVERLAY}; do
        dtb=`normalize_dtb "$dtbf"`
        oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
    done
}
do_deploy:append(){
    install -d ${DEPLOYDIR}/overlays
    if [ ${DO_CONFIG_V7_COPY} = "yes" ]; then
        cp ${B}/arch/arm/boot/dts/${MACHINE}/*.dtbo ${DEPLOYDIR}/overlays
#    else
#        cp ${B}/arch/arm64/boot/dts/${MACHINE}/*.dtbo ${DEPLOYDIR}/overlays
    fi
}
yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend
New file
@@ -0,0 +1,12 @@
RDEPENDS:${PN}:remove = " \
    qt3d \
    qtdatavis3d \
    qtquick3d \
    qtquick3dphysics \
    qtopcua \
    qthttpserver \
    qtlocation \
    qtlottie \
    qtpositioning \
    qtspeech \
"
yocto/meta-igkboard/tools/igkboard-setup.sh
@@ -12,10 +12,12 @@
    echo "Options:"
    echo "  <machine>    machine name"
    echo "               - igkboard-imx8mp"
    echo "               - igkboard-imx6ull"
    echo "  * [-b build-dir]: Build directory, if unspecified script uses 'build' as output directory"
    echo "  * [-h]: help"
    echo "Examples: "
    echo "$ MACHINE=igkboard-imx8mp source sources/meta-igkboard/tools/igkboard-setup.sh -b igkboard-imx8mp"
    echo "$ MACHINE=igkboard-imx6ull source sources/meta-igkboard/tools/igkboard-setup.sh -b igkboard-imx6ull"
    echo
}
@@ -89,7 +91,7 @@
function igkboard_conf_set(){
    local build_dir=$1
    cp $CWD/sources/meta-igkboard/conf/local.conf $CWD/${build_dir}/conf/local.conf
    cp $CWD/sources/meta-igkboard/conf/${MACHINE}_local.conf $CWD/${build_dir}/conf/local.conf
    cp $CWD/sources/meta-igkboard/conf/bblayers.conf $CWD/${build_dir}/conf/bblayers.conf
}