From ad923ea232ca60c999b9cc94faccc3b14c2fe3e0 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Tue, 26 Dec 2023 10:28:15 +0800 Subject: [PATCH] Update meta-igkboard to add igkboard-imx6ull support --- yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb | 29 +++++ yocto/meta-igkboard/tools/igkboard-setup.sh | 4 yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend | 12 ++ yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf | 43 ++++---- yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp | 0 yocto/meta-igkboard/conf/igkboard-imx8mp_local.conf | 0 yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend | 22 --- yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp | 0 yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend | 32 ++++++ yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt | 29 +++++ yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf | 58 +++++++++++ yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf | 24 ++++ yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt | 29 +++++ 13 files changed, 239 insertions(+), 43 deletions(-) diff --git a/yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf b/yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf new file mode 100644 index 0000000..2a1cc00 --- /dev/null +++ b/yocto/meta-igkboard/conf/igkboard-imx6ull_local.conf @@ -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" diff --git a/yocto/meta-igkboard/conf/local.conf b/yocto/meta-igkboard/conf/igkboard-imx8mp_local.conf similarity index 100% rename from yocto/meta-igkboard/conf/local.conf rename to yocto/meta-igkboard/conf/igkboard-imx8mp_local.conf diff --git a/yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf b/yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf new file mode 100644 index 0000000..1dc54d3 --- /dev/null +++ b/yocto/meta-igkboard/conf/machine/igkboard-imx6ull.conf @@ -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" diff --git a/yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf b/yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf index fec84b0..c581a46 100644 --- a/yocto/meta-igkboard/conf/machine/igkboard-imx8mp.conf +++ b/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 diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt b/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt new file mode 100644 index 0000000..d23b6fd --- /dev/null +++ b/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx6ull.txt @@ -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 diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt b/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt new file mode 100644 index 0000000..d23b6fd --- /dev/null +++ b/yocto/meta-igkboard/recipes-bsp/u-boot/files/config-igkboard-imx8mp.txt @@ -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 diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp b/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp new file mode 100644 index 0000000..ef087b6 --- /dev/null +++ b/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx6ull.bmp Binary files differ diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp b/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp new file mode 100644 index 0000000..ef087b6 --- /dev/null +++ b/yocto/meta-igkboard/recipes-bsp/u-boot/files/uboot-logo-igkboard-imx8mp.bmp Binary files differ diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend b/yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend index 344a567..9675d97 100644 --- a/yocto/meta-igkboard/recipes-bsp/u-boot/u-boot-imx_%.bbappend +++ b/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 } diff --git a/yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb b/yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb new file mode 100644 index 0000000..b632d6c --- /dev/null +++ b/yocto/meta-igkboard/recipes-bsp/u-boot/uenv_1.0.bb @@ -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}" diff --git a/yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend b/yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend index baa4abe..df6ddf9 100644 --- a/yocto/meta-igkboard/recipes-kernel/linux/linux-imx_%.bbappend +++ b/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 } diff --git a/yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend b/yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend new file mode 100644 index 0000000..ecaaba8 --- /dev/null +++ b/yocto/meta-igkboard/recipes-qt/packagegroups/packagegroup-qt6-addons.bbappend @@ -0,0 +1,12 @@ +RDEPENDS:${PN}:remove = " \ + qt3d \ + qtdatavis3d \ + qtquick3d \ + qtquick3dphysics \ + qtopcua \ + qthttpserver \ + qtlocation \ + qtlottie \ + qtpositioning \ + qtspeech \ +" diff --git a/yocto/meta-igkboard/tools/igkboard-setup.sh b/yocto/meta-igkboard/tools/igkboard-setup.sh index dca643b..9482970 100755 --- a/yocto/meta-igkboard/tools/igkboard-setup.sh +++ b/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 } -- Gitblit v1.9.1