From c6bbc9540d9cfe010611843592f2e06fdad79bda Mon Sep 17 00:00:00 2001
From: guowenxue <guowenxue@gmail.com>
Date: Sun, 09 Oct 2022 11:11:00 +0800
Subject: [PATCH] update honister and kirkstone to add overlays support in /boot

---
 yocto/meta-igkboard/kirkstone/conf/machine/igkboard.conf                   |    2 
 yocto/meta-igkboard/kirkstone/recipes-kernel/linux/linux-imx_5.15.bbappend |   68 ++++++++
 yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-nolcd.txt   |   24 +++
 yocto/meta-igkboard/honister/conf/machine/igkboard.conf                    |    2 
 yocto/meta-igkboard/honister/recipes-images/igkboard/linuxsys-image.bb     |   61 +++----
 yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-lcd.txt     |   24 +++
 yocto/meta-igkboard/kirkstone/recipes-images/igkboard/linuxsys-image.bb    |   61 +++----
 yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-nolcd.txt  |   24 +++
 yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend  |   72 +++++++++-
 yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-lcd.txt    |   24 +++
 10 files changed, 280 insertions(+), 82 deletions(-)

diff --git a/yocto/meta-igkboard/honister/conf/machine/igkboard.conf b/yocto/meta-igkboard/honister/conf/machine/igkboard.conf
index c0da5ef..12b92b4 100644
--- a/yocto/meta-igkboard/honister/conf/machine/igkboard.conf
+++ b/yocto/meta-igkboard/honister/conf/machine/igkboard.conf
@@ -18,6 +18,8 @@
 IMAGE_BOOT_FILES = " \
     ${KERNEL_IMAGETYPE} \
     ${KERNEL_DEVICETREE} \
+    overlays/*;overlays/ \
+    config-*.txt \
 "
 
 # Remove unused optee bcm4339 bcm43455
diff --git a/yocto/meta-igkboard/honister/recipes-images/igkboard/linuxsys-image.bb b/yocto/meta-igkboard/honister/recipes-images/igkboard/linuxsys-image.bb
index 1476a70..24f2e6c 100644
--- a/yocto/meta-igkboard/honister/recipes-images/igkboard/linuxsys-image.bb
+++ b/yocto/meta-igkboard/honister/recipes-images/igkboard/linuxsys-image.bb
@@ -9,50 +9,43 @@
 
 ## Select Image Features
 IMAGE_FEATURES += " \
-	ssh-server-openssh \
-	package-management \
+    ssh-server-openssh \
+    package-management \
 "
 
 CORE_IMAGE_EXTRA_INSTALL += " \
-	packagegroup-core-full-cmdline \
-	packagegroup-tools-bluetooth \
-	packagegroup-fsl-tools-audio \
-	packagegroup-fsl-gstreamer1.0 \
-	packagegroup-fsl-gstreamer1.0-full \
-	packagegroup-qt6-imx \
-	packagegroup-misc-utils \
-	firmwared \
-	${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \
+    packagegroup-core-full-cmdline \
+    packagegroup-tools-bluetooth \
+    packagegroup-fsl-tools-audio \
+    packagegroup-fsl-gstreamer1.0 \
+    packagegroup-fsl-gstreamer1.0-full \
+    packagegroup-qt6-imx \
+    packagegroup-misc-utils \
+    firmwared \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \
 "
 
 CORE_IMAGE_EXTRA_INSTALL:append = " \
-	bash \
-	drivers-mods \
-	hello-apps \
-	gnupg \
-	e2fsprogs \
-	e2fsprogs-resize2fs \
-	parted \
-	v4l-utils \
-	yavta \
-	sudo \
-	nano \
-	hostapd \
-	evtest \
-	mtd-utils \
-	libgpiod \
-	i2c-tools \
-	spitools \
-	spidev-test \
-	canutils \
-	xz \
-	udev-extraconf \
+    hello-apps \
+    bash bash-completion nano sudo \
+    curl tree xz dnsmasq gnupg git rsync \
+    e2fsprogs e2fsprogs-resize2fs parted \
+    v4l-utils zbar yavta fbgrab imagemagick \
+    mtd-utils evtest iperf3 iotop lsof \
+    mosquitto sqlite3 stunnel \
+    i2c-tools spitools spidev-test \
+    libgpiod libgpiod-tools \
+    libevent libconfig boost ldd \
+    libmodbus libsocketcan canutils \
+    wvdial ppp hostapd ntp iw \
+    nodejs nodejs-npm tcpdump \
+    udev-extraconf usb-modeswitch \
 "
 
 inherit extrausers
 
-# generate by printf "%q\n" $(mkpasswd -m sha256crypt 12345) 
+# generate by printf "%q\n" $(mkpasswd -m sha256crypt 12345)
 PASSWD= "\$5\$CZyCdtQE9Dp\$kuAmtCHtAv3X5gL1/imI.g1lf.JChVAEkdA3.8Yw8j8"
 EXTRA_USERS_PARAMS = "\
-	usermod -p '${PASSWD}' root; \
+    usermod -p '${PASSWD}' root; \
 "
diff --git a/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-lcd.txt b/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-lcd.txt
new file mode 100644
index 0000000..352ae27
--- /dev/null
+++ b/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-lcd.txt
@@ -0,0 +1,24 @@
+# Enable LCD overlay
+dtoverlay_lcd=yes
+
+# Camera overlay
+dtoverlay_cam=yes
+
+# Enable I2C overlay
+dtoverlay_i2c1=yes
+
+# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
+dtoverlay_spi1=yes
+
+# Enable UART overlay
+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 8
+
+# Extra overlays
+#dtoverlay_extra=nbiot-4g
+
diff --git a/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-nolcd.txt b/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-nolcd.txt
new file mode 100644
index 0000000..af330ac
--- /dev/null
+++ b/yocto/meta-igkboard/honister/recipes-kernel/linux/files/config-nolcd.txt
@@ -0,0 +1,24 @@
+# Enable LCD overlay
+#dtoverlay_lcd=no
+
+# Enable Camera overlay
+#dtoverlay_cam=no
+
+# Enable I2C overlay
+dtoverlay_i2c1=yes
+
+# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
+#dtoverlay_spi1=no
+
+# 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 w1
+
diff --git a/yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend b/yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend
index 0c42ef4..ae9fdf2 100644
--- a/yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend
+++ b/yocto/meta-igkboard/honister/recipes-kernel/linux/linux-imx_5.15.bbappend
@@ -1,5 +1,5 @@
 # Copyright (C) 2022 LingYun IoT System Studio
-# Released under the GPLv2 license 
+# Released under the GPLv2 license
 #
 # SPDX-License-Identifier: GPLv2
 #
@@ -12,11 +12,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-SRCBRANCH = "lf-5.15.y"
-KERNEL_SRC = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH}"
-KBRANCH = "${SRCBRANCH}"
-SRC_URI = "${KERNEL_SRC}"
-
+# base: meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.15.bb
 # https://source.codeaurora.org/external/imx/linux-imx/tag/?h=lf-5.15.32-2.0.0
 SRCREV = "fa6c3168595c02bd9d5366fcc28c9e7304947a3d"
 LOCALVERSION = "-lf-5.15.32-2.0.0"
@@ -25,10 +21,70 @@
 KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
 
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-SRC_URI += " file://linux-imx-lf-5.15.32-2.0.0.patch "
+SRC_URI += " file://linux-imx-lf-5.15.32-2.0.0.patch \
+             file://config-lcd.txt \
+             file://config-nolcd.txt \
+           "
 PATCHTOOL = "patch"
 
 do_copy_defconfig:append() {
-    cp ${S}/arch/arm/configs/igkboard_defconfig ${WORKDIR}/defconfig 
+    cp ${S}/arch/arm/configs/igkboard_defconfig ${WORKDIR}/defconfig
     cp ${S}/arch/arm/configs/igkboard_defconfig ${B}/.config
 }
+
+KERNEL_DTC_FLAGS = "-@"
+
+KERNEL_DEVICETREE2 ?= ""
+KERNEL_DEVICETREE2:igkboard = " \
+    overlays/cam.dtbo \
+    overlays/can1.dtbo \
+    overlays/can2.dtbo \
+    overlays/i2c1.dtbo \
+    overlays/lcd.dtbo \
+    overlays/nbiot-4g.dtbo \
+    overlays/pwm7.dtbo \
+    overlays/pwm8.dtbo \
+    overlays/spi1.dtbo \
+    overlays/uart2.dtbo \
+    overlays/uart3.dtbo \
+    overlays/uart4.dtbo \
+    overlays/uart7.dtbo \
+    overlays/w1.dtbo \
+"
+
+# compile dtbo file, refer to: poky/meta/classes/kernel-devicetree.bbclass
+do_compile:append() {
+    if [ -n "${KERNEL_DTC_FLAGS}" ]; then
+        export DTC_FLAGS="${KERNEL_DTC_FLAGS}"
+    fi
+
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+    done
+}
+
+# install to linux kernel package
+FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/overlays/*.dtbo"
+do_install:append() {
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        install -d ${D}/${KERNEL_IMAGEDEST}/overlays
+        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${D}/${KERNEL_IMAGEDEST}/$dtb
+    done
+
+    install -m 0644 ${WORKDIR}/config-lcd.txt ${D}/${KERNEL_IMAGEDEST}/
+    install -m 0644 ${WORKDIR}/config-nolcd.txt ${D}/${KERNEL_IMAGEDEST}/
+}
+
+# install to deploy images path
+do_deploy:append(){
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        install -d ${deployDir}/overlays
+        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${deployDir}/$dtb
+    done
+
+    install -m 0644 ${WORKDIR}/config-lcd.txt ${deployDir}/
+    install -m 0644 ${WORKDIR}/config-nolcd.txt ${deployDir}/
+}
diff --git a/yocto/meta-igkboard/kirkstone/conf/machine/igkboard.conf b/yocto/meta-igkboard/kirkstone/conf/machine/igkboard.conf
index c0da5ef..12b92b4 100644
--- a/yocto/meta-igkboard/kirkstone/conf/machine/igkboard.conf
+++ b/yocto/meta-igkboard/kirkstone/conf/machine/igkboard.conf
@@ -18,6 +18,8 @@
 IMAGE_BOOT_FILES = " \
     ${KERNEL_IMAGETYPE} \
     ${KERNEL_DEVICETREE} \
+    overlays/*;overlays/ \
+    config-*.txt \
 "
 
 # Remove unused optee bcm4339 bcm43455
diff --git a/yocto/meta-igkboard/kirkstone/recipes-images/igkboard/linuxsys-image.bb b/yocto/meta-igkboard/kirkstone/recipes-images/igkboard/linuxsys-image.bb
index 1476a70..24f2e6c 100644
--- a/yocto/meta-igkboard/kirkstone/recipes-images/igkboard/linuxsys-image.bb
+++ b/yocto/meta-igkboard/kirkstone/recipes-images/igkboard/linuxsys-image.bb
@@ -9,50 +9,43 @@
 
 ## Select Image Features
 IMAGE_FEATURES += " \
-	ssh-server-openssh \
-	package-management \
+    ssh-server-openssh \
+    package-management \
 "
 
 CORE_IMAGE_EXTRA_INSTALL += " \
-	packagegroup-core-full-cmdline \
-	packagegroup-tools-bluetooth \
-	packagegroup-fsl-tools-audio \
-	packagegroup-fsl-gstreamer1.0 \
-	packagegroup-fsl-gstreamer1.0-full \
-	packagegroup-qt6-imx \
-	packagegroup-misc-utils \
-	firmwared \
-	${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \
+    packagegroup-core-full-cmdline \
+    packagegroup-tools-bluetooth \
+    packagegroup-fsl-tools-audio \
+    packagegroup-fsl-gstreamer1.0 \
+    packagegroup-fsl-gstreamer1.0-full \
+    packagegroup-qt6-imx \
+    packagegroup-misc-utils \
+    firmwared \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'weston-init', '', d)} \
 "
 
 CORE_IMAGE_EXTRA_INSTALL:append = " \
-	bash \
-	drivers-mods \
-	hello-apps \
-	gnupg \
-	e2fsprogs \
-	e2fsprogs-resize2fs \
-	parted \
-	v4l-utils \
-	yavta \
-	sudo \
-	nano \
-	hostapd \
-	evtest \
-	mtd-utils \
-	libgpiod \
-	i2c-tools \
-	spitools \
-	spidev-test \
-	canutils \
-	xz \
-	udev-extraconf \
+    hello-apps \
+    bash bash-completion nano sudo \
+    curl tree xz dnsmasq gnupg git rsync \
+    e2fsprogs e2fsprogs-resize2fs parted \
+    v4l-utils zbar yavta fbgrab imagemagick \
+    mtd-utils evtest iperf3 iotop lsof \
+    mosquitto sqlite3 stunnel \
+    i2c-tools spitools spidev-test \
+    libgpiod libgpiod-tools \
+    libevent libconfig boost ldd \
+    libmodbus libsocketcan canutils \
+    wvdial ppp hostapd ntp iw \
+    nodejs nodejs-npm tcpdump \
+    udev-extraconf usb-modeswitch \
 "
 
 inherit extrausers
 
-# generate by printf "%q\n" $(mkpasswd -m sha256crypt 12345) 
+# generate by printf "%q\n" $(mkpasswd -m sha256crypt 12345)
 PASSWD= "\$5\$CZyCdtQE9Dp\$kuAmtCHtAv3X5gL1/imI.g1lf.JChVAEkdA3.8Yw8j8"
 EXTRA_USERS_PARAMS = "\
-	usermod -p '${PASSWD}' root; \
+    usermod -p '${PASSWD}' root; \
 "
diff --git a/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-lcd.txt b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-lcd.txt
new file mode 100644
index 0000000..352ae27
--- /dev/null
+++ b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-lcd.txt
@@ -0,0 +1,24 @@
+# Enable LCD overlay
+dtoverlay_lcd=yes
+
+# Camera overlay
+dtoverlay_cam=yes
+
+# Enable I2C overlay
+dtoverlay_i2c1=yes
+
+# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
+dtoverlay_spi1=yes
+
+# Enable UART overlay
+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 8
+
+# Extra overlays
+#dtoverlay_extra=nbiot-4g
+
diff --git a/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-nolcd.txt b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-nolcd.txt
new file mode 100644
index 0000000..af330ac
--- /dev/null
+++ b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/files/config-nolcd.txt
@@ -0,0 +1,24 @@
+# Enable LCD overlay
+#dtoverlay_lcd=no
+
+# Enable Camera overlay
+#dtoverlay_cam=no
+
+# Enable I2C overlay
+dtoverlay_i2c1=yes
+
+# Enable SPI overlay, SPI1 conflict with UART8(NB-IoT/4G module)
+#dtoverlay_spi1=no
+
+# 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 w1
+
diff --git a/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/linux-imx_5.15.bbappend b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/linux-imx_5.15.bbappend
index f3adf5c..ae9fdf2 100644
--- a/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/linux-imx_5.15.bbappend
+++ b/yocto/meta-igkboard/kirkstone/recipes-kernel/linux/linux-imx_5.15.bbappend
@@ -12,11 +12,7 @@
 
 require recipes-kernel/linux/linux-yocto.inc
 
-SRCBRANCH = "lf-5.15.y"
-KERNEL_SRC = "git://source.codeaurora.org/external/imx/linux-imx.git;protocol=https;branch=${SRCBRANCH}"
-KBRANCH = "${SRCBRANCH}"
-SRC_URI = "${KERNEL_SRC}"
-
+# base: meta-imx/meta-bsp/recipes-kernel/linux/linux-imx_5.15.bb
 # https://source.codeaurora.org/external/imx/linux-imx/tag/?h=lf-5.15.32-2.0.0
 SRCREV = "fa6c3168595c02bd9d5366fcc28c9e7304947a3d"
 LOCALVERSION = "-lf-5.15.32-2.0.0"
@@ -25,10 +21,70 @@
 KERNEL_DANGLING_FEATURES_WARN_ONLY = "1"
 
 FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
-SRC_URI += " file://linux-imx-lf-5.15.32-2.0.0.patch "
+SRC_URI += " file://linux-imx-lf-5.15.32-2.0.0.patch \
+             file://config-lcd.txt \
+             file://config-nolcd.txt \
+           "
 PATCHTOOL = "patch"
 
 do_copy_defconfig:append() {
     cp ${S}/arch/arm/configs/igkboard_defconfig ${WORKDIR}/defconfig
     cp ${S}/arch/arm/configs/igkboard_defconfig ${B}/.config
 }
+
+KERNEL_DTC_FLAGS = "-@"
+
+KERNEL_DEVICETREE2 ?= ""
+KERNEL_DEVICETREE2:igkboard = " \
+    overlays/cam.dtbo \
+    overlays/can1.dtbo \
+    overlays/can2.dtbo \
+    overlays/i2c1.dtbo \
+    overlays/lcd.dtbo \
+    overlays/nbiot-4g.dtbo \
+    overlays/pwm7.dtbo \
+    overlays/pwm8.dtbo \
+    overlays/spi1.dtbo \
+    overlays/uart2.dtbo \
+    overlays/uart3.dtbo \
+    overlays/uart4.dtbo \
+    overlays/uart7.dtbo \
+    overlays/w1.dtbo \
+"
+
+# compile dtbo file, refer to: poky/meta/classes/kernel-devicetree.bbclass
+do_compile:append() {
+    if [ -n "${KERNEL_DTC_FLAGS}" ]; then
+        export DTC_FLAGS="${KERNEL_DTC_FLAGS}"
+    fi
+
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        oe_runmake $dtb CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+    done
+}
+
+# install to linux kernel package
+FILES:${KERNEL_PACKAGE_NAME}-devicetree += "/${KERNEL_IMAGEDEST}/overlays/*.dtbo"
+do_install:append() {
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        install -d ${D}/${KERNEL_IMAGEDEST}/overlays
+        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${D}/${KERNEL_IMAGEDEST}/$dtb
+    done
+
+    install -m 0644 ${WORKDIR}/config-lcd.txt ${D}/${KERNEL_IMAGEDEST}/
+    install -m 0644 ${WORKDIR}/config-nolcd.txt ${D}/${KERNEL_IMAGEDEST}/
+}
+
+# install to deploy images path
+do_deploy:append(){
+    for dtbf in ${KERNEL_DEVICETREE2}; do
+        dtb=`normalize_dtb "$dtbf"`
+        install -d ${deployDir}/overlays
+        install -m 0644 ${B}/arch/arm/boot/dts/$dtb ${deployDir}/$dtb
+    done
+
+    install -m 0644 ${WORKDIR}/config-lcd.txt ${deployDir}/
+    install -m 0644 ${WORKDIR}/config-nolcd.txt ${deployDir}/
+}

--
Gitblit v1.9.1