diff options
52 files changed, 697 insertions, 339 deletions
diff --git a/.github/workflows/premerge.yml b/.github/workflows/premerge.yml new file mode 100644 index 0000000..471bc9a --- /dev/null +++ b/.github/workflows/premerge.yml @@ -0,0 +1,16 @@ +name: PR build + +on: + pull_request_target: + +jobs: + build: + uses: ndechesne/meta-qcom/.github/workflows/build-template.yml@master + with: + host: ubuntu-20.04 + images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image cryptodev-module + machines: dragonboard-410c dragonboard-845c qrb5165-rb5 qcom-armv8a sa8155p-adp + ref: refs/pull/${{github.event.pull_request.number}}/merge + branch: ${{github.base_ref}} + url: ${{github.server_url}}/${{github.repository}} + secrets: inherit diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 0000000..8c69c5d --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,21 @@ +name: Push build + +on: + push: + branches: + - master + - honister + - dunfell + +jobs: + build: + uses: ndechesne/meta-qcom/.github/workflows/build-template.yml@master + with: + host: ubuntu-20.04 + images: core-image-base core-image-weston core-image-x11 initramfs-test-image initramfs-test-full-image cryptodev-module + machines: dragonboard-410c dragonboard-845c qrb5165-rb5 qcom-armv8a sa8155p-adp + ref: ${{github.sha}} + ref_type: sha + branch: ${{github.ref_name}} + url: ${{github.server_url}}/${{github.repository}} + secrets: inherit @@ -30,25 +30,14 @@ for the implementation details. ## Contributing If you want to contribute changes, you can send Github pull requests at -https://github.com/ndechesne/meta-qcom/pulls. - -Alternatively you can send patches to openembedded@lists.linaro.org, in which -case, please: - -* When creating patches, please use something like: - -`git format-patch -s --subject-prefix='meta-qcom][PATCH' origin` - -* When sending patches, please use something like: - -`git send-email --to openembedded@lists.linaro.org <generated patch>` +https://github.com/Linaro/meta-qcom/pulls. You can discuss about this layer, on `#linaro` on FreeNode IRC network. ## Reporting issues -Please report any issue on https://github.com/ndechesne/meta-qcom/issues +Please report any issue on https://github.com/Linaro/meta-qcom/issues ## Maintainer(s) -Nicolas Dechesne <nicolas.dechesne@linaro.org> +Dmitry Baryshkov <dmitry.baryshkov@linaro.org> diff --git a/conf/machine/dragonboard-820c.conf b/conf/machine/dragonboard-820c.conf index ed61911..b36d148 100644 --- a/conf/machine/dragonboard-820c.conf +++ b/conf/machine/dragonboard-820c.conf @@ -16,6 +16,7 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ kernel-modules \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a530 mesa-driver-msm', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \ linux-firmware-qcom-venus-4.2 \ " diff --git a/conf/machine/dragonboard-845c.conf b/conf/machine/dragonboard-845c.conf index 8391ef6..e5f0755 100644 --- a/conf/machine/dragonboard-845c.conf +++ b/conf/machine/dragonboard-845c.conf @@ -8,6 +8,7 @@ MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth ext2" KERNEL_IMAGETYPE ?= "Image.gz" KERNEL_DEVICETREE ?= "qcom/sdm845-db845c.dtb" +KERNEL_CMDLINE_EXTRA ?= "clk_ignore_unused pd_ignore_unused" SERIAL_CONSOLE ?= "115200 ttyMSM0" diff --git a/conf/machine/include/qcom-apq8016.inc b/conf/machine/include/qcom-apq8016.inc index 80e097b..a073ae7 100644 --- a/conf/machine/include/qcom-apq8016.inc +++ b/conf/machine/include/qcom-apq8016.inc @@ -9,3 +9,6 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ MACHINE_EXTRA_RRECOMMENDS += " \ fastrpc \ " + +# Android boot image settings +QCOM_BOOTIMG_PAGE_SIZE = "2048" diff --git a/conf/machine/include/qcom-apq8064.inc b/conf/machine/include/qcom-apq8064.inc index 96f880c..af8e87a 100644 --- a/conf/machine/include/qcom-apq8064.inc +++ b/conf/machine/include/qcom-apq8064.inc @@ -1,3 +1,6 @@ SOC_FAMILY = "apq8064" require conf/machine/include/qcom-common.inc require conf/machine/include/tune-cortexa8.inc + +# Android boot image settings +QCOM_BOOTIMG_PAGE_SIZE = "2048" diff --git a/conf/machine/include/qcom-apq8096.inc b/conf/machine/include/qcom-apq8096.inc index 4f62b59..8038091 100644 --- a/conf/machine/include/qcom-apq8096.inc +++ b/conf/machine/include/qcom-apq8096.inc @@ -10,6 +10,3 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ MACHINE_EXTRA_RRECOMMENDS += " \ fastrpc \ " - -# Android boot image settings -QCOM_BOOTIMG_PAGE_SIZE = "4096" diff --git a/conf/machine/include/qcom-common.inc b/conf/machine/include/qcom-common.inc index d2434f9..18b9ce7 100644 --- a/conf/machine/include/qcom-common.inc +++ b/conf/machine/include/qcom-common.inc @@ -30,4 +30,12 @@ IMAGE_ROOTFS_ALIGNMENT ?= "4096" # Android boot image settings QCOM_BOOTIMG_KERNEL_BASE ?= "0x80000000" -QCOM_BOOTIMG_PAGE_SIZE ?= "2048" +QCOM_BOOTIMG_PAGE_SIZE ?= "4096" + +# Default serial console for QCOM devices +SERIAL_CONSOLES ?= "115200;ttyMSM0" + +# Increase INITRAMFS_MAXSIZE to 384 MiB to cover initramfs-kerneltest-full +# image. All our boards (except db410c) have 2GiB and db410c has 1GiB of RAM, +# so this image would fit. +INITRAMFS_MAXSIZE = "393216" diff --git a/conf/machine/include/qcom-qcs404.inc b/conf/machine/include/qcom-qcs404.inc index eacc03c..90f9acb 100644 --- a/conf/machine/include/qcom-qcs404.inc +++ b/conf/machine/include/qcom-qcs404.inc @@ -5,6 +5,3 @@ require conf/machine/include/arm/arch-armv8a.inc MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ qrtr \ " - -# Android boot image settings -QCOM_BOOTIMG_PAGE_SIZE = "4096" diff --git a/conf/machine/include/qcom-sa8155p.inc b/conf/machine/include/qcom-sa8155p.inc new file mode 100644 index 0000000..b3b521e --- /dev/null +++ b/conf/machine/include/qcom-sa8155p.inc @@ -0,0 +1,14 @@ +SOC_FAMILY = "sa8155p" +require conf/machine/include/qcom-common.inc +require conf/machine/include/arm/arch-armv8a.inc + +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ + pd-mapper \ + qrtr \ + rmtfs \ + tqftpserv \ +" + +MACHINE_EXTRA_RRECOMMENDS += " \ + fastrpc \ +" diff --git a/conf/machine/include/qcom-sdm845.inc b/conf/machine/include/qcom-sdm845.inc index ab99f39..43dded1 100644 --- a/conf/machine/include/qcom-sdm845.inc +++ b/conf/machine/include/qcom-sdm845.inc @@ -12,6 +12,3 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ MACHINE_EXTRA_RRECOMMENDS += " \ fastrpc \ " - -# Android boot image settings -QCOM_BOOTIMG_PAGE_SIZE = "4096" diff --git a/conf/machine/include/qcom-sm8250.inc b/conf/machine/include/qcom-sm8250.inc index b077313..13bcf5b 100644 --- a/conf/machine/include/qcom-sm8250.inc +++ b/conf/machine/include/qcom-sm8250.inc @@ -12,6 +12,3 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ MACHINE_EXTRA_RRECOMMENDS += " \ fastrpc \ " - -# Android boot image settings -QCOM_BOOTIMG_PAGE_SIZE ?= "4096" diff --git a/conf/machine/qcom-armv7a.conf b/conf/machine/qcom-armv7a.conf new file mode 100644 index 0000000..d71e366 --- /dev/null +++ b/conf/machine/qcom-armv7a.conf @@ -0,0 +1,38 @@ +#@TYPE: Machine +#@NAME: Qualcomm Snapdragon ARMv7-a (with Krait cores) +#@DESCRIPTION: Unified 32-bit machine configuration for the devices with Qualcomm Snapdragon ARMv7-a based CPUs (S4 and later) +# +# Note: This machine targets Snapdragon S4 Plus/Pro/Prime and early (32-bit +# ARM) models of Snapdragon 400/600/800 series SoCs. It will most probably +# work on Snapdragon S4 (MSM8x25, Cortex-A5 with VFPv4) or on 32-bit IPQ SoCs +# +# Do not use this machine for SDXnn modems or for Snapdragon S1/S2/S3. + +require conf/machine/include/qcom-common.inc + +# Krait is not Cortex-A15, but its features are close enough +DEFAULTTUNE = "cortexa15thf-neon-vfpv4" +require conf/machine/include/tune-cortexa15.inc + +# Android boot image settings +QCOM_BOOTIMG_PAGE_SIZE = "2048" + +MACHINE_FEATURES = "alsa screen alsa bluetooth ext2 ext3 opengl usb usbhost usbgadget" + +KERNEL_IMAGETYPE ?= "zImage" +KERNEL_DEVICETREE ?= " \ + qcom-apq8064-asus-nexus7-flo.dtb \ + qcom-apq8064-ifc6410.dtb \ + qcom-apq8084-ifc6540.dtb \ + qcom-msm8974-lge-nexus5-hammerhead.dtb \ + qcom-msm8974-sony-xperia-castor.dtb \ +" + +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'wireless-regdb-static', '', d)} \ +" + +SERIAL_CONSOLE ?= "115200 ttyMSM0" + +QCOM_BOOTIMG_ROOTFS ?= "PARTLABEL=userdata" diff --git a/conf/machine/qcom-armv8a.conf b/conf/machine/qcom-armv8a.conf new file mode 100644 index 0000000..54ab0cd --- /dev/null +++ b/conf/machine/qcom-armv8a.conf @@ -0,0 +1,50 @@ +require conf/machine/include/qcom-common.inc +require conf/machine/include/arm/arch-armv8a.inc + +MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth ext2" + +# UFS partitions in 820/845/RB5 setup with 4096 logical sector size +EXTRA_IMAGECMD_ext4 += " -b 4096 " + +# Support for dragonboard{410, 820, 845}c, rb5 +KERNEL_IMAGETYPE ?= "Image.gz" +SERIAL_CONSOLE ?= "115200 ttyMSM0" +KERNEL_DEVICETREE ?= "qcom/apq8016-sbc.dtb qcom/apq8096-db820c.dtb qcom/sdm845-db845c.dtb qcom/qrb5165-rb5.dtb qcom/sm8250-rb5-dvt.dtb" + +QCOM_BOOTIMG_PAGE_SIZE[apq8016-sbc] = "2048" +QCOM_BOOTIMG_ROOTFS = "/dev/sda1" +QCOM_BOOTIMG_ROOTFS[apq8016-sbc] = "/dev/mmcblk0p14" +SD_QCOM_BOOTIMG_ROOTFS[apq8016-sbc] = "/dev/mmcblk1p7" +KERNEL_CMDLINE_EXTRA[sdm845-db845c] = "clk_ignore_unused pd_ignore_unused" + +# Userspace tools +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ + pd-mapper \ + qrtr \ + rmtfs \ + tqftpserv \ +" + +MACHINE_EXTRA_RRECOMMENDS += " \ + fastrpc \ +" + +# Modules and firmware for all supported machines +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ + kernel-modules \ + firmware-qcom-dragonboard410c \ + firmware-qcom-dragonboard820c \ + firmware-qcom-dragonboard845c \ + firmware-qcom-rb5 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath10k linux-firmware-ath11k linux-firmware-qcom-sdm845-modem wireless-regdb-static', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca linux-firmware-qcom-sdm845-modem', '', d)} \ + linux-firmware-qcom-sdm845-audio \ + linux-firmware-qcom-sdm845-compute \ + linux-firmware-qcom-sm8250-audio \ + linux-firmware-qcom-sm8250-compute \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a3xx linux-firmware-qcom-adreno-a530 linux-firmware-qcom-adreno-a630 linux-firmware-qcom-adreno-a650', '', d)} \ + linux-firmware-qcom-venus-1.8 \ + linux-firmware-qcom-venus-4.2 \ + linux-firmware-qcom-venus-5.2 \ + linux-firmware-qcom-vpu-1.0 \ +" diff --git a/conf/machine/qrb5165-rb5.conf b/conf/machine/qrb5165-rb5.conf index dc62570..b27de12 100644 --- a/conf/machine/qrb5165-rb5.conf +++ b/conf/machine/qrb5165-rb5.conf @@ -7,19 +7,21 @@ require conf/machine/include/qcom-sm8250.inc MACHINE_FEATURES = "usbhost usbgadget alsa screen wifi bluetooth ext2" KERNEL_IMAGETYPE ?= "Image.gz" -KERNEL_DEVICETREE ?= "qcom/qrb5165-rb5.dtb" +KERNEL_DEVICETREE ?= "qcom/qrb5165-rb5.dtb qcom/sm8250-rb5-dvt.dtb" +KERNEL_CMDLINE_EXTRA ?= "pcie_pme=nomsi" SERIAL_CONSOLE ?= "115200 ttyMSM0" MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ kernel-modules \ firmware-qcom-rb5 linux-firmware-lt9611uxc \ - lt9611uxc-upgrade \ ${@bb.utils.contains('DISTRO_FEATURES', 'wifi', 'linux-firmware-ath11k wireless-regdb-static', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'linux-firmware-qca', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-msm', '', d)} \ + linux-firmware-qcom-sm8250-audio \ + linux-firmware-qcom-sm8250-compute \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'linux-firmware-qcom-adreno-a650 mesa-driver-msm', '', d)} \ + linux-firmware-qcom-vpu-1.0 \ " -# linux-firmware-qcom-adreno-a650 # /dev/sda1 is 'rootfs' partition after installing the latest bootloader package from linaro QCOM_BOOTIMG_ROOTFS ?= "/dev/sda1" diff --git a/conf/machine/sa8155p-adp.conf b/conf/machine/sa8155p-adp.conf new file mode 100644 index 0000000..19734d9 --- /dev/null +++ b/conf/machine/sa8155p-adp.conf @@ -0,0 +1,24 @@ +#@TYPE: Machine +#@NAME: SA8155P-ADP +#@DESCRIPTION: Machine configuration for the SA8155P-ADP (and IOT v2) development board, with Qualcomm Snapdragon SA8155p. + +require conf/machine/include/qcom-sa8155p.inc + +MACHINE_FEATURES = "usbhost usbgadget ext2" + +KERNEL_IMAGETYPE ?= "Image.gz" +KERNEL_DEVICETREE ?= "qcom/sa8155p-adp.dtb qcom/sa8155p-iot-v2-adp.dtb" + +SERIAL_CONSOLE ?= "115200 ttyMSM0" + +MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += " \ + kernel-modules \ +" + +# /dev/sda6 is 'system' partition for adp board, but its very small, so we +# use 'userdata' partition here. +# /dev/sda9 is 'userdata' partition for adp board, so wipe it and use for our build +QCOM_BOOTIMG_ROOTFS ?= "/dev/sda9" + +# UFS partitions setup with 4096 logical sector size +EXTRA_IMAGECMD:ext4 += " -b 4096 " diff --git a/dynamic-layers/networking-layer/recipes-test/images/initramfs-test-image.bbappend b/dynamic-layers/networking-layer/recipes-test/images/initramfs-test-image.bbappend deleted file mode 100644 index bd946f8..0000000 --- a/dynamic-layers/networking-layer/recipes-test/images/initramfs-test-image.bbappend +++ /dev/null @@ -1,5 +0,0 @@ -PACKAGE_INSTALL += " \ - iperf2 \ - iperf3 \ - tcpdump \ -" diff --git a/dynamic-layers/openembedded-layer/recipes-test/images/initramfs-test-image.bbappend b/dynamic-layers/openembedded-layer/recipes-test/images/initramfs-test-image.bbappend deleted file mode 100644 index 16f4e3c..0000000 --- a/dynamic-layers/openembedded-layer/recipes-test/images/initramfs-test-image.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -PACKAGE_INSTALL += " \ - devmem2 \ -" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c-bootloader-sdcard_17.09.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard410c-bootloader-sdcard_17.09.bb index 61ef441..3adaa37 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard410c-bootloader-sdcard_17.09.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c-bootloader-sdcard_17.09.bb @@ -9,7 +9,6 @@ SRC_URI = "https://releases.linaro.org/96boards/dragonboard410c/linaro/rescue/17 SRC_URI[md5sum] = "e15da2a623442d66587aea506599fb69" SRC_URI[sha256sum] = "9885f915ebd4986432340cf1d03b8fd2bfdd97ad6a4a7466200fddbe41cdcf5c" -COMPATIBLE_MACHINE = "(dragonboard-410c)" PACKAGE_ARCH = "${MACHINE_ARCH}" S = "${WORKDIR}" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c.inc b/recipes-bsp/firmware/firmware-qcom-dragonboard410c.inc new file mode 100644 index 0000000..d8361f3 --- /dev/null +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c.inc @@ -0,0 +1,36 @@ +DESCRIPTION = "QCOM Firmware for DragonBoard 410c" + +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4d087ee0965cb059f1b2f9429e166f64" + +DEPENDS += "mtools-native" + +inherit allarch + +S = "${WORKDIR}/linux-board-support-package-r${PV}" + +do_compile() { + : +} + +do_install() { + install -d ${D}${nonarch_base_libdir}/firmware/ + + install -d ${D}/boot + cp ./efs-seed/fs_image_linux.tar.gz.mbn.img ${D}/boot/modem_fsg + + cp -r ./proprietary-linux/wlan ${D}${nonarch_base_libdir}/firmware/ + + install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 + MTOOLS_SKIP_CHECK=1 mcopy -i ./bootloaders-linux/NON-HLOS.bin \ + ::image/modem.* ::image/mba.mbn ::image/wcnss.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 + + install -d ${D}${sysconfdir}/ + install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE-${PN} +} + +FILES_${PN} += "/boot/modem_fsg" +FILES_${PN} += "${nonarch_base_libdir}/firmware/wlan/*" +FILES_${PN} += "${nonarch_base_libdir}/firmware/qcom/msm8916/*" + +INSANE_SKIP_${PN} += "arch" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb index ecdbed9..6f188bc 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1034.2.1.bb @@ -1,45 +1,5 @@ -DESCRIPTION = "QCOM Firmware for DragonBoard 410c" - -LICENSE = "Proprietary" -LIC_FILES_CHKSUM = "file://LICENSE;md5=4d087ee0965cb059f1b2f9429e166f64" +require recipes-bsp/firmware/firmware-qcom-dragonboard410c.inc SRC_URI = "http://releases.linaro.org/96boards/dragonboard410c/qualcomm/firmware/linux-board-support-package-r${PV}.zip" SRC_URI[md5sum] = "25c241bfd5fb2e55e8185752d5fe92ce" SRC_URI[sha256sum] = "46953b974c5c58c7ca66db414437c0268b033ac9d28127e98d9c4e1a49359da5" - -DEPENDS += "mtools-native" - -COMPATIBLE_MACHINE = "(dragonboard-410c)" -PACKAGE_ARCH = "${MACHINE_ARCH}" - -S = "${WORKDIR}/linux-board-support-package-r${PV}" - -do_compile() { - : -} - -do_install() { - install -d ${D}${nonarch_base_libdir}/firmware/ - - install -d ${D}/boot - cp ./efs-seed/fs_image_linux.tar.gz.mbn.img ${D}/boot/modem_fsg - - cp -r ./proprietary-linux/wlan ${D}${nonarch_base_libdir}/firmware/ - - install -d ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 - MTOOLS_SKIP_CHECK=1 mcopy -i ./bootloaders-linux/NON-HLOS.bin \ - ::image/modem.* ::image/mba.mbn ::image/wcnss.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8916 - - install -d ${D}${sysconfdir}/ - install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE -} - -FILES_${PN} += "/boot/modem_fsg" -FILES_${PN} += "${nonarch_base_libdir}/firmware/wlan/*" -FILES_${PN} += "${nonarch_base_libdir}/firmware/qcom/msm8916/*" - -INSANE_SKIP_${PN} += "arch" - -RPROVIDES_${PN} += "linux-firmware-qcom-license" -RREPLACES_${PN} += "linux-firmware-qcom-license" -RCONFLICTS_${PN} += "linux-firmware-qcom-license" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1036.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1036.1.bb new file mode 100644 index 0000000..194c3e5 --- /dev/null +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard410c_1036.1.bb @@ -0,0 +1,15 @@ +# This firmware is not released for redistribution, however it can be +# downloaded from https://developer.qualcomm.com/hardware/dragonboard-410c +# +# Add the following line to local.conf to use it: +# PREFERRED_VERSION_firmware-qcom-dragonboard410c = "1036.1" +# You have to manually put the downloaded file into ${DL_DIR} + +require recipes-bsp/firmware/firmware-qcom-dragonboard410c.inc + +SRC_URI = '${@oe.utils.conditional("PREFERRED_VERSION_firmware-qcom-dragonboard410c", "1036.1", "file://dragonboard_410c.zip.1.0-r1036.1.zip", "", d)}' +SRC_URI[md5sum] = "3092fccf7a97fa319d7732a98425f9d4" +SRC_URI[sha256sum] = "93070f58fa3aa6467baa881935c37c4da2df2a8af3248746931ce3d11a3a1200" + +# This should not be selected by default as the firmware archive is behind the accept&click wall. +DEFAULT_PREFERENCE = "-1" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb index 952f574..bb0d9b6 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard820c_01700.1.bb @@ -7,8 +7,7 @@ SRC_URI = "https://releases.linaro.org/96boards/dragonboard820c/qualcomm/firmwar SRC_URI[md5sum] = "587138c5e677342db9a88d5c8747ec6c" SRC_URI[sha256sum] = "6ee9c461b2b5dd2d3bd705bb5ea3f44b319ecb909b2772f305ce12439e089cd9" -COMPATIBLE_MACHINE = "(dragonboard-820c)" -PACKAGE_ARCH = "${MACHINE_ARCH}" +inherit allarch S = "${WORKDIR}/linux-board-support-package-r${PV}" @@ -22,13 +21,11 @@ do_install() { install -m 0444 ./proprietary-linux/adsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/ + install -m 0444 ./bootloaders-linux/adspso.bin ${D}${nonarch_base_libdir}/firmware/qcom/msm8996/ + install -d ${D}${sysconfdir}/ - install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE + install -m 0644 LICENSE ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE-${PN} } FILES_${PN} += "${nonarch_base_libdir}/firmware/*" INSANE_SKIP_${PN} += "arch" - -RPROVIDES_${PN} += "linux-firmware-qcom-license" -RREPLACES_${PN} += "linux-firmware-qcom-license" -RCONFLICTS_${PN} += "linux-firmware-qcom-license" diff --git a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb index fbc9187..9011f87 100644 --- a/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb +++ b/recipes-bsp/firmware/firmware-qcom-dragonboard845c_20190529180356-v4.bb @@ -7,36 +7,21 @@ SRC_URI = "https://releases.linaro.org/96boards/dragonboard845c/qualcomm/firmwar SRC_URI[md5sum] = "ad69855a1275547b16d94a1b5405ac62" SRC_URI[sha256sum] = "4289d2f2a7124b104d0274879e702aae9b1e50c42eec3747f8584c6744ef65e3" -COMPATIBLE_MACHINE = "(dragonboard-845c)" -PACKAGE_ARCH = "${MACHINE_ARCH}" -DEPENDS += "qca-swiss-army-knife-native" -inherit python3native - -do_compile() { - # Build board-2.bin needed by WiFi - ath10k-generate-board-2_json.sh ./38-bdwlan_split board-2.json - python3 "${STAGING_BINDIR_NATIVE}/ath10k-bdencoder" -c board-2.json -o board-2.bin -} do_install() { install -d ${D}${nonarch_base_libdir}/firmware/ install -d ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 + install -m 0444 ./08-dspso/dspso.bin ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 + install -m 0444 ./17-USB3-201-202-FW/K2026090.mem ${D}${nonarch_base_libdir}/firmware/renesas_usb_fw.mem install -m 0444 ./18-adreno-fw/a630_zap*.* ${D}${nonarch_base_libdir}/firmware/qcom/ install -m 0444 ./20-adsp_split/firmware/adsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 install -m 0444 ./21-cdsp_split/firmware/cdsp*.* ${D}${nonarch_base_libdir}/firmware/qcom/sdm845 - install -d ${D}${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/ - install -m 0444 ./board-2.bin ${D}${nonarch_base_libdir}/firmware/ath10k/WCN3990/hw1.0/ - install -d ${D}${sysconfdir}/ - install -m 0644 LICENSE.qcom.txt ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE + install -m 0644 LICENSE.qcom.txt ${D}${sysconfdir}/QCOM-LINUX-BOARD-SUPPORT-LICENSE-${PN} } FILES_${PN} += "${nonarch_base_libdir}/firmware/*" INSANE_SKIP_${PN} += "arch" - -RPROVIDES_${PN} += "linux-firmware-qcom-license" -RREPLACES_${PN} += "linux-firmware-qcom-license" -RCONFLICTS_${PN} += "linux-firmware-qcom-license" diff --git a/recipes-bsp/firmware/firmware-qcom-rb5_20210331-v4.bb b/recipes-bsp/firmware/firmware-qcom-rb5_20210331-v4.bb index 428a904..8cafe7f 100644 --- a/recipes-bsp/firmware/firmware-qcom-rb5_20210331-v4.bb +++ b/recipes-bsp/firmware/firmware-qcom-rb5_20210331-v4.bb @@ -1,9 +1,3 @@ -# Provide base URI of NHLOS_Binaries.zip and adreno_1.0_qrb5165_rb5.tar.gz -# files. Use "file://" if those files are copied into -# recipes-bsp/firmware/files/ directory. -# NHLOS_URI ?= "file://" -# ADRENO_URI ?= "file://" - DESCRIPTION = "QCOM Firmware for Qualcomm Robotics RB5 platform" LICENSE = "Proprietary" @@ -22,9 +16,7 @@ PE = "1" DEPENDS += "qca-swiss-army-knife-native" -PACKAGE_ARCH = "${MACHINE_ARCH}" - -VENUS_FW = "vpu-1.0" +inherit allarch do_compile() { # Build board-2.bin needed by WiFi @@ -35,18 +27,10 @@ do_compile() { do_install() { install -d ${D}${nonarch_base_libdir}/firmware/qcom/sm8250 - install -m 0444 ./18-adreno-fw/a650_gmu.bin ${D}${nonarch_base_libdir}/firmware/qcom - install -m 0444 ./18-adreno-fw/a650_sqe.fw ${D}${nonarch_base_libdir}/firmware/qcom - install -m 0444 ./18-adreno-fw/a650_zap.elf ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/a650_zap.mbn + install -m 0444 ./08-dspso/dspso.bin ${D}${nonarch_base_libdir}/firmware/qcom/sm8250 - install -m 0444 ./20-adsp_split/adsp.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/ - install -m 0444 ./21-cdsp_split/cdsp.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/ install -m 0444 ./30-slpi_split/slpi.mbn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/ - - install -m 0444 ./39-jsn/*.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/ - - install -d ${D}${nonarch_base_libdir}/firmware/qcom/${VENUS_FW} - install -m 0444 ./33-venus_split/venus.b* ./33-venus_split/venus.mdt ${D}${nonarch_base_libdir}/firmware/qcom/${VENUS_FW} + install -m 0444 ./39-jsn/slpi*.jsn ${D}${nonarch_base_libdir}/firmware/qcom/sm8250/ install -d ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/ install -m 0444 ${S}/board-2.bin ${D}${nonarch_base_libdir}/firmware/ath11k/QCA6390/hw2.0/board-2.bin @@ -61,14 +45,6 @@ INHIBIT_PACKAGE_DEBUG_SPLIT = "1" INHIBIT_PACKAGE_STRIP = "1" INHIBIT_DEFAULT_DEPS = "1" -RPROVIDES_${PN} += "linux-firmware-qcom-adreno-a650" -RREPLACES_${PN} += "linux-firmware-qcom-adreno-a650" -RCONFLICTS_${PN} += "linux-firmware-qcom-adreno-a650" - -RPROVIDES_${PN} += "linux-firmware-qcom-${VENUS_FW}" -RREPLACES_${PN} += "linux-firmware-qcom-${VENUS_FW}" -RCONFLICTS_${PN} += "linux-firmware-qcom-${VENUS_FW}" - inherit update-alternatives ALTERNATIVE_${PN} = "qca6390-board2" diff --git a/recipes-bsp/firmware/firmware-qcom-sd-600eval_1.0.bb b/recipes-bsp/firmware/firmware-qcom-sd-600eval_1.0.bb index 0a16d46..a3af887 100644 --- a/recipes-bsp/firmware/firmware-qcom-sd-600eval_1.0.bb +++ b/recipes-bsp/firmware/firmware-qcom-sd-600eval_1.0.bb @@ -7,8 +7,7 @@ SRC_URI = "https://eragon.einfochips.com/pub/media/datasheet/SD_600eval-linux_pr SRC_URI[md5sum] = "0903e9f656d3cea005ecc8e26f1243b2" SRC_URI[sha256sum] = "fdffcb2cedc0d0215ee3dec95ce3683a780d9280960d27200379fbe1b21af979" -COMPATIBLE_MACHINE = "(sd-600eval|dragonboard-600c)" -PACKAGE_ARCH = "${MACHINE_ARCH}" +inherit allarch S = "${WORKDIR}/SD_600eval-linux_proprietary_firmware-v${PV}" diff --git a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade.bb b/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade.bb deleted file mode 100644 index e6ae271..0000000 --- a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade.bb +++ /dev/null @@ -1,19 +0,0 @@ -SUMMARY = "Upgrade Lontium LT9611UXC firmware to the latest image" - -SRC_URI = "file://lt9611uxc.service file://lt9611uxc-upgrade.sh" -LICENSE = "MIT" - -LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" - -inherit systemd - -RDEPENDS_${PN} += "linux-firmware-lt9611uxc" - -do_install() { - install -d ${D}${bindir} - install -m 0755 ${WORKDIR}/lt9611uxc-upgrade.sh ${D}${bindir} - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/lt9611uxc.service ${D}${systemd_system_unitdir} -} - -SYSTEMD_SERVICE_${PN} = "lt9611uxc.service" diff --git a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc-upgrade.sh b/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc-upgrade.sh deleted file mode 100644 index 0886980..0000000 --- a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc-upgrade.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh - -set -e - -if [ ! -r /lib/firmware/lt9611uxc_fw.bin ] ; then - echo "LT9611UXC firmware not found" - exit 1 -fi - -if [ ! -d /sys/bus/i2c/drivers/lt9611uxc ] ; then - modprobe lontium-lt9611uxc - sleep 1 -fi - -for f in /sys/bus/i2c/drivers/lt9611uxc/* ; do - [ -L $f ] || continue - version=`cat $f/lt9611uxc_firmware` - if [ "$version" -lt "43" ] ; then - echo > $f/lt9611uxc_firmware - fi -done diff --git a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc.service b/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc.service deleted file mode 100644 index 79c510c..0000000 --- a/recipes-bsp/lt9611uxc-upgrade/lt9611uxc-upgrade/lt9611uxc.service +++ /dev/null @@ -1,11 +0,0 @@ -[Unit] -Description=Update LT9611UXC Firmware -ConditionFirstBoot=true -After=systemd-udev-settle.service - -[Service] -Type=oneshot -ExecStart=/usr/bin/lt9611uxc-upgrade.sh - -[Install] -WantedBy=getty.target diff --git a/recipes-devtools/skales/skales_git.bb b/recipes-devtools/skales/skales_git.bb index 782d20c..134cc1e 100644 --- a/recipes-devtools/skales/skales_git.bb +++ b/recipes-devtools/skales/skales_git.bb @@ -1,6 +1,6 @@ SUMMARY = "Tools to create boot images for QCOM SoC" -HOMEPAGE = "https://www.codeaurora.org/cgit/quic/kernel/skales/" +HOMEPAGE = "https://git.codelinaro.org/clo/qsdk/oss/tools/skales" SECTION = "devel" LICENSE = "BSD-3-Clause" @@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = "file://mkbootimg;beginline=3;endline=29;md5=114b84083e657f38 SRCREV = "6eac9e943de53c4aaaede3697e9226a47686fe25" PV = "1.5.0+git${SRCPV}" -SRC_URI = "git://source.codeaurora.org/quic/kernel/skales;protocol=http \ +SRC_URI = "git://git.codelinaro.org/clo/qsdk/oss/tools/skales.git;protocol=https;branch=caf_migration/skales/master \ file://0002-mkbootimg-use-python3.patch \ " diff --git a/recipes-kernel/images/initramfs-rootfs-image.bb b/recipes-kernel/images/initramfs-rootfs-image.bb new file mode 100644 index 0000000..9bc9dc5 --- /dev/null +++ b/recipes-kernel/images/initramfs-rootfs-image.bb @@ -0,0 +1,26 @@ +DESCRIPTION = "Ramdisk image for pivoting into rootfs" + +PACKAGE_INSTALL = " \ + base-passwd \ + initramfs-module-copy-modules \ + initramfs-module-rootfs \ + initramfs-module-udev \ + ${VIRTUAL-RUNTIME_base-utils} \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ + ${ROOTFS_BOOTSTRAP_INSTALL} \ +" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "debug-tweaks" +IMAGE_LINGUAS = "" + +LICENSE = "MIT" + +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +# Exclude all kernel images from the rootfs +PACKAGE_EXCLUDE = "kernel-image-*" diff --git a/recipes-kernel/linux/linux-linaro-qcom.inc b/recipes-kernel/linux/linux-linaro-qcom.inc index 21f0ae6..b193b63 100644 --- a/recipes-kernel/linux/linux-linaro-qcom.inc +++ b/recipes-kernel/linux/linux-linaro-qcom.inc @@ -1,27 +1,33 @@ -# Copyright (C) 2014 Linaro +# Copyright (C) 2014-2021 Linaro # Copyright (C) 2012, 2013 O.S. Systems Software LTDA. # Released under the MIT license (see COPYING.MIT for the terms) -DESCRIPTION = "Linux kernel for MSM platforms" +DESCRIPTION ??= "Linaro Qualcomm Landing team ${PV} Kernel" LICENSE = "GPLv2" +LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" inherit kernel -# Put a local version until we have a true SRCREV to point to -LOCALVERSION ?= "+linaro" +LOCALVERSION ?= "-linaro-lt-qcom" SCMVERSION ?= "y" -LINUX_LINARO_QCOM_GIT ?= "git://git.linaro.org/landing-teams/working/qualcomm/kernel.git;protocol=https" +SRCBRANCH = "release/qcomlt-${PV}" + +COMPATIBLE_MACHINE = "(qcom)" + +LINUX_LINARO_QCOM_GIT ?= "git://git.codelinaro.org/linaro/qcomlt/kernel.git;protocol=https" SRC_URI = "${LINUX_LINARO_QCOM_GIT};branch=${SRCBRANCH}" S = "${WORKDIR}/git" KERNEL_DEFCONFIG_aarch64 ?= "${S}/arch/arm64/configs/defconfig" -KERNEL_DEFCONFIG_apq8064 ?= "${S}/arch/arm/configs/qcom_defconfig" +KERNEL_DEFCONFIG_arm ?= "${S}/arch/arm/configs/qcom_defconfig" KERNEL_CONFIG_FRAGMENTS += "${S}/kernel/configs/distro.config" +require recipes-kernel/linux/linux-qcom-bootimg.inc + kernel_conf_variable() { - CONF_SED_SCRIPT="$CONF_SED_SCRIPT /CONFIG_$1[ =]/d;" + sed -e "/CONFIG_$1[ =]/d;" -i ${B}/.config if test "$2" = "n" then echo "# CONFIG_$1 is not set" >> ${B}/.config @@ -31,18 +37,15 @@ kernel_conf_variable() { } do_configure_prepend() { - echo "" > ${B}/.config - CONF_SED_SCRIPT="" - - kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\"" - kernel_conf_variable LOCALVERSION_AUTO y - if [ -f '${WORKDIR}/defconfig' ]; then - sed -e "${CONF_SED_SCRIPT}" < '${WORKDIR}/defconfig' >> '${B}/.config' + cp '${WORKDIR}/defconfig' '${B}/.config' else - sed -e "${CONF_SED_SCRIPT}" < '${KERNEL_DEFCONFIG}' >> '${B}/.config' + cp '${KERNEL_DEFCONFIG}' '${B}/.config' fi + kernel_conf_variable LOCALVERSION "\"${LOCALVERSION}\"" + kernel_conf_variable LOCALVERSION_AUTO y + if [ "${SCMVERSION}" = "y" ]; then # Add GIT revision to the local version head=`git --git-dir=${S}/.git rev-parse --verify --short HEAD 2> /dev/null` @@ -76,17 +79,8 @@ do_configure_prepend() { # Now that all the fragments are located merge them. ( cd ${WORKDIR} && ${S}/scripts/kconfig/merge_config.sh -m -r -O ${B} ${B}/.config ${KERNEL_CONFIG_FRAGMENTS} 1>&2 ) fi - - yes '' | oe_runmake -C ${S} O=${B} oldconfig - oe_runmake -C ${S} O=${B} savedefconfig && cp ${B}/defconfig ${WORKDIR}/defconfig.saved } -# append DTB -do_compile_append() { - if ! [ -e ${B}/arch/${ARCH}/boot/dts/${KERNEL_DEVICETREE} ] ; then - oe_runmake ${KERNEL_DEVICETREE} - fi - cp arch/${ARCH}/boot/${KERNEL_IMAGETYPE} arch/${ARCH}/boot/${KERNEL_IMAGETYPE}.backup - cat arch/${ARCH}/boot/${KERNEL_IMAGETYPE}.backup arch/${ARCH}/boot/dts/${KERNEL_DEVICETREE} > arch/${ARCH}/boot/${KERNEL_IMAGETYPE} - rm -f arch/${ARCH}/boot/${KERNEL_IMAGETYPE}.backup +do_configure_append() { + oe_runmake -C ${S} O=${B} savedefconfig && cp ${B}/defconfig ${WORKDIR}/defconfig.saved } diff --git a/recipes-kernel/linux/linux-linaro-qcomlt-dev.bb b/recipes-kernel/linux/linux-linaro-qcomlt-dev.bb index 82cf263..9aae535 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt-dev.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt-dev.bb @@ -5,20 +5,16 @@ # To enable it add the following line to conf/local.conf: # PREFERRED_PROVIDER_virtual/kernel = "linux-linaro-qcomlt-dev" -DESCRIPTION = "Linaro Qualcomm Landing team Integration Kernel ${PV}" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - require recipes-kernel/linux/linux-linaro-qcom.inc -require recipes-kernel/linux/linux-qcom-bootimg.inc - -SRCBRANCH ?= "integration-linux-qcomlt" -SRCREV ?= "${AUTOREV}" -LINUX_VERSION = "5.8-rc+" -PV = "${LINUX_VERSION}+git${SRCPV}" +DESCRIPTION = "Linaro Qualcomm Landing team Integration Kernel ${PV}" +SRCBRANCH = "integration-linux-qcomlt" -# Wifi firmware has a recognizable arch :( -ERROR_QA_remove = "arch" +# Set default SRCREV. it is statically set to the korg v3.7 tag, and +# hence prevent network access during parsing. If linux-linaro-qcomlt-dev +# is the preferred provider, they will be overridden to AUTOREV in following +# anonymous python routine and resolved when the variables are finalized. +SRCREV ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-linaro-qcomlt-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}' -# Disable by default -DEFAULT_PREFERENCE = "-1" +LINUX_VERSION = "5.11+" +PV = "${LINUX_VERSION}+git${SRCPV}" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt/0001-Revert-kbuild-Enable-DT-schema-checks-for-.dtb-targe.patch b/recipes-kernel/linux/linux-linaro-qcomlt/0001-Revert-kbuild-Enable-DT-schema-checks-for-.dtb-targe.patch new file mode 100644 index 0000000..e792fe9 --- /dev/null +++ b/recipes-kernel/linux/linux-linaro-qcomlt/0001-Revert-kbuild-Enable-DT-schema-checks-for-.dtb-targe.patch @@ -0,0 +1,46 @@ +From 75e895343d5a2fcbdf4cb3d31ab7492bd65925f0 Mon Sep 17 00:00:00 2001 +From: Rob Herring <robh@kernel.org> +Date: Wed, 8 Dec 2021 15:39:16 -0600 +Subject: [PATCH] Revert "kbuild: Enable DT schema checks for %.dtb targets" + +This reverts commit 53182e81f47d4ea0c727c49ad23cb782173ab849. + +This added tool dependencies on various build systems using %.dtb +targets. Validation will need to be controlled by a kconfig or make +variable instead, but for now let's just revert it. + +Signed-off-by: Rob Herring <robh@kernel.org> +--- + Makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 9e12c14ea0fb..fa5070e53979 100644 +--- a/Makefile ++++ b/Makefile +@@ -1374,17 +1374,17 @@ endif + + ifneq ($(dtstree),) + +-%.dtb: dt_binding_check include/config/kernel.release scripts_dtc +- $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml ++%.dtb: include/config/kernel.release scripts_dtc ++ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ + +-%.dtbo: dt_binding_check include/config/kernel.release scripts_dtc +- $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml ++%.dtbo: include/config/kernel.release scripts_dtc ++ $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ + + PHONY += dtbs dtbs_install dtbs_check + dtbs: include/config/kernel.release scripts_dtc + $(Q)$(MAKE) $(build)=$(dtstree) + +-ifneq ($(filter dtbs_check %.dtb %.dtbo, $(MAKECMDGOALS)),) ++ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),) + export CHECK_DTBS=y + dtbs: dt_binding_check + endif +-- +2.33.1 + diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb index 0320f89..f1652f0 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.10.bb @@ -1,15 +1,6 @@ # Copyright (C) 2014-2020 Linaro # Released under the MIT license (see COPYING.MIT for the terms) -DESCRIPTION = "Linaro Qualcomm Landing team 5.10 Kernel" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - require recipes-kernel/linux/linux-linaro-qcom.inc -require recipes-kernel/linux/linux-qcom-bootimg.inc - -LOCALVERSION ?= "-linaro-lt-qcom" - -SRCBRANCH = "release/qcomlt-5.10" -SRCREV = "6afb1155f01df9871e14e4189d83d31000b308ee" -COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845|sm8250)" +SRCREV = "9ab492e76768cd1bd9f2da52004ed537c8b329f3" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.12.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.12.bb index 254b94a..2587152 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt_5.12.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.12.bb @@ -1,13 +1,7 @@ # Copyright (C) 2014-2021 Linaro # Released under the MIT license (see COPYING.MIT for the terms) -DESCRIPTION = "Linaro Qualcomm Landing team 5.12 Kernel" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - require recipes-kernel/linux/linux-linaro-qcom.inc -require recipes-kernel/linux/linux-qcom-bootimg.inc - -LOCALVERSION ?= "-linaro-lt-qcom" SRCBRANCH = "release/rb5/qcomlt-5.12" SRCREV = "deeb40c41728645cd6971b1d7bd08281238caba0" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.13.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.13.bb new file mode 100644 index 0000000..3636b5e --- /dev/null +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.13.bb @@ -0,0 +1,6 @@ +# Copyright (C) 2014-2020 Linaro +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-kernel/linux/linux-linaro-qcom.inc + +SRCREV = "1429722a220973e881d8cb5b5b486693457b4f11" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.15.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.15.bb new file mode 100644 index 0000000..6e4171c --- /dev/null +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.15.bb @@ -0,0 +1,11 @@ +# Copyright (C) 2021 Linaro +# Released under the MIT license (see COPYING.MIT for the terms) + +require recipes-kernel/linux/linux-linaro-qcom.inc + +# SRCBRANCH set to "release/qcomlt-5.15" in linux-linaro-qcom.inc +SRCREV = "9bc25b368335b6d3d59be44db0c4818bdfbfa546" + +# SRCBRANCH set to adp stable release branch +SRCBRANCH:sa8155p = "release/sa8155p-adp/v5.15.y" +SRCREV:sa8155p = "38b7066ac1084c74759f1314c54b5735a1e5031d" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.7.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.7.bb index d59db58..dcf8220 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt_5.7.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.7.bb @@ -1,14 +1,10 @@ # Copyright (C) 2014-2019 Linaro # Released under the MIT license (see COPYING.MIT for the terms) -DESCRIPTION = "Linaro Qualcomm Landing team 5.7 Kernel" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" +require recipes-kernel/linux/linux-linaro-qcom.inc inherit python3native -require recipes-kernel/linux/linux-linaro-qcom.inc -require recipes-kernel/linux/linux-qcom-bootimg.inc - SRC_URI_append_qrb5165-rb5 = " \ file://qrb5165-rb5.dts;subdir=git/arch/arm64/boot/dts/qcom \ file://qrb5165-rb5-enable.patch \ @@ -19,11 +15,4 @@ SRC_URI_append_qrb5165-rb5 = " \ file://0001-arm64-dts-qcom-sm8250-Add-support-for-SDC2.patch \ " -LOCALVERSION ?= "-linaro-lt-qcom" -SRCBRANCH ?= "release/qcomlt-5.7" SRCREV ?= "4af49ea41ecf17e5e6243f3ac81dfc2f84d8a3a1" - -COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845|sm8250)" - -# Wifi firmware has a recognizable arch :( -ERROR_QA_remove = "arch" diff --git a/recipes-kernel/linux/linux-linaro-qcomlt_5.9.bb b/recipes-kernel/linux/linux-linaro-qcomlt_5.9.bb index a1af3c0..baf2a08 100644 --- a/recipes-kernel/linux/linux-linaro-qcomlt_5.9.bb +++ b/recipes-kernel/linux/linux-linaro-qcomlt_5.9.bb @@ -1,18 +1,9 @@ # Copyright (C) 2014-2019 Linaro # Released under the MIT license (see COPYING.MIT for the terms) -DESCRIPTION = "Linaro Qualcomm Landing team 5.9 Kernel" -LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46" - require recipes-kernel/linux/linux-linaro-qcom.inc -require recipes-kernel/linux/linux-qcom-bootimg.inc - -LOCALVERSION ?= "-linaro-lt-qcom" -SRCBRANCH ?= "release/qcomlt-5.9" SRCREV ?= "b5ff44498a19a685aa10a07ec67e3d12bc95a33a" SRCBRANCH_sm8250 = "release/rb5/qcomlt-5.9" SRCREV_sm8250 = "6d5a9a5da79684f69e4c66a7cf9108ab4e77025f" - -COMPATIBLE_MACHINE = "(apq8016|apq8096|sdm845|sm8250)" diff --git a/recipes-kernel/linux/linux-qcom-bootimg.inc b/recipes-kernel/linux/linux-qcom-bootimg.inc index 8a8a407..9e3fef9 100644 --- a/recipes-kernel/linux/linux-qcom-bootimg.inc +++ b/recipes-kernel/linux/linux-qcom-bootimg.inc @@ -1,49 +1,146 @@ -DEPENDS += "skales-native" - -QCOM_BOOTIMG_ROOTFS ?= "undefined" -SD_QCOM_BOOTIMG_ROOTFS ?= "undefined" - -# set output file names -BOOT_IMAGE_BASE_NAME = "boot-${KERNEL_IMAGE_NAME}" -BOOT_IMAGE_SYMLINK_NAME = "boot-${KERNEL_IMAGE_LINK_NAME}" -SD_BOOT_IMAGE_BASE_NAME = "boot-sd${KERNEL_IMAGE_NAME}" -SD_BOOT_IMAGE_SYMLINK_NAME = "boot-sd-${KERNEL_IMAGE_LINK_NAME}" -KERNEL_CMDLINE = "root=${1} rw rootwait console=${ttydev},${baudrate}n8" -KERNEL_CMDLINE_append_dragonboard-845c = " clk_ignore_unused pd_ignore_unused" -KERNEL_CMDLINE_append_qrb5165-rb5 = " pcie_pme=nomsi" - -# param ${1} partition where rootfs is located -# param ${2} output boot image file name -priv_make_image() { - ${STAGING_BINDIR_NATIVE}/skales/mkbootimg --kernel ${B}/arch/${ARCH}/boot/${KERNEL_IMAGETYPE} \ - --ramdisk ${B}/initrd.img \ - --output ${DEPLOYDIR}/${2}.img \ - --pagesize ${QCOM_BOOTIMG_PAGE_SIZE} \ - --base ${QCOM_BOOTIMG_KERNEL_BASE} \ - --cmdline "${KERNEL_CMDLINE}" +QIMG_DEPLOYDIR = "${WORKDIR}/qcom_deploy-${PN}" + +# Define INITRAMFS_IMAGE to create kernel+initramfs Android boot images in +# addition to default boot images. For example add the following line to your +# conf/local.conf: +# +# INITRAMFS_IMAGE = "initramfs-kerneltest-image" +# + +python __anonymous () { + if d.getVar('INITRAMFS_IMAGE') != '': + d.appendVarFlag('do_qcom_img_deploy', 'depends', ' ${INITRAMFS_IMAGE}:do_image_complete') } -do_deploy_append() { +python do_qcom_img_deploy() { + import shutil + import subprocess + + subdir = d.getVar("KERNEL_DEPLOYSUBDIR") + if subdir is not None: + qcom_deploy_dir = os.path.join(d.getVar("QIMG_DEPLOYDIR"), subdir) + image_dir = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), subdir) + else: + qcom_deploy_dir = d.getVar("QIMG_DEPLOYDIR") + image_dir = d.getVar("DEPLOY_DIR_IMAGE") + + initrd = None + if d.getVar('INITRAMFS_IMAGE') != '': + initrd_image_name = d.getVar("INITRAMFS_IMAGE_NAME") + baseinitrd = os.path.join(d.getVar("DEPLOY_DIR_IMAGE"), initrd_image_name) + for img in (".cpio.gz", ".cpio.lz4", ".cpio.lzo", ".cpio.lzma", ".cpio.xz", ".cpio"): + if os.path.exists(baseinitrd + img): + initrd = baseinitrd + img + break + if not initrd: + bb.fatal("Could not find initramfs image %s for bundling" % d.getVar("INITRAMFS_IMAGE")) + + B = d.getVar("B") + D = d.getVar("D") + kernel_output_dir = d.getVar("KERNEL_OUTPUT_DIR") + kernel_imagedest = d.getVar("KERNEL_IMAGEDEST") + kernel = os.path.join(B, "kernel-dtb") + definitrd = os.path.join(B, "initrd.img") + mkbootimg = os.path.join(d.getVar("STAGING_BINDIR_NATIVE"), "skales", "mkbootimg") + kernel_image_name = d.getVar("KERNEL_IMAGE_NAME") + kernel_link_name = d.getVar("KERNEL_IMAGE_LINK_NAME") + output_img = os.path.join(qcom_deploy_dir, "boot-%s.img" % (kernel_link_name)) + output_sd_img = os.path.join(qcom_deploy_dir, "boot-sd-%s.img" % (kernel_link_name)) + + arch = d.getVar("ARCH") + if arch is "arm": + kernel_name = "zImage" + elif arch is "arm64": + kernel_name = "Image.gz" + else: + bb.fatal("Unuspported ARCH %s" % arch) + + if os.path.exists(output_img): + os.unlink(output_img) + if os.path.exists(output_sd_img): + os.unlink(output_sd_img) + + with open(definitrd, "w") as f: + f.write("This is not an initrd\n") + + for dtbf in d.getVar("KERNEL_DEVICETREE").split(): + dtb = os.path.basename(dtbf) + dtb_name = dtb.rsplit('.', 1)[0] + + def getVarDTB(name): + return d.getVarFlag(name, dtb_name) or d.getVar(name) - tmp="${SERIAL_CONSOLES}" - baudrate=`echo $tmp | sed 's/\;.*//'` - ttydev=`echo $tmp | sed -e 's/^[0-9]*\;//' -e 's/\s.*//' -e 's/\;.*//'` + def make_image_internal(output, output_link, rootfs, initrd = definitrd): + subprocess.check_call([mkbootimg, + "--kernel", kernel, + "--ramdisk", initrd, + "--output", output, + "--pagesize", getVarDTB("QCOM_BOOTIMG_PAGE_SIZE"), + "--base", getVarDTB("QCOM_BOOTIMG_KERNEL_BASE"), + "--cmdline", "root=%s rw rootwait %s %s" % (rootfs, consoles, getVarDTB("KERNEL_CMDLINE_EXTRA") or "")]) + if os.path.exists(output_link): + os.unlink(output_link) + os.symlink(os.path.basename(output), output_link) + + def make_image(template, rootfs): + output = os.path.join(qcom_deploy_dir, template % (dtb_name, kernel_image_name)) + output_link = os.path.join(qcom_deploy_dir, template % (dtb_name, kernel_link_name)) + make_image_internal(output, output_link, rootfs) + return output + + def make_initramfs_image(template, rootfs, initrd, initrd_image_name): + output = os.path.join(qcom_deploy_dir, template % (initrd_image_name, dtb_name, kernel_image_name)) + output_link = os.path.join(qcom_deploy_dir, template % (initrd_image_name, dtb_name, kernel_link_name)) + make_image_internal(output, output_link, rootfs, initrd) + output_link = os.path.join(qcom_deploy_dir, template % ("initramfs", dtb_name, kernel_link_name)) + if os.path.exists(output_link): + os.unlink(output_link) + os.symlink(os.path.basename(output), output_link) + return output + + consoles = ' '.join(map(lambda c: "console=%(tty)s,%(rate)sn8" % dict(zip(("rate", "tty"), c.split(';'))), getVarDTB("SERIAL_CONSOLES").split())) + + # prepare kernel image with appended dtb + with open(kernel, 'wb') as wfd: + with open(os.path.join(kernel_output_dir, kernel_name), 'rb') as rfd: + shutil.copyfileobj(rfd, wfd) + with open(os.path.join(D, kernel_imagedest, dtb), 'rb') as rfd: + shutil.copyfileobj(rfd, wfd) + + rootfs = getVarDTB("QCOM_BOOTIMG_ROOTFS") + if not rootfs or rootfs is "": + bb.fatal("QCOM_BOOTIMG_ROOTFS is undefined") + + output = make_image("boot-%s-%s.img", rootfs) + if not os.path.exists(output_img): + os.symlink(os.path.basename(output), output_img) + + if initrd: + make_initramfs_image("boot-%s-%s-%s.img", rootfs, initrd, d.getVar("INITRAMFS_IMAGE")) + + sd_rootfs = getVarDTB("SD_QCOM_BOOTIMG_ROOTFS") + if sd_rootfs: + output = make_image("boot-sd-%s-%s.img", sd_rootfs) + if not os.path.exists(output_sd_img): + os.symlink(os.path.basename(output), output_sd_img) + + if initrd: + make_initramfs_image("boot-sd-%s-%s-%s.img", rootfs, initrd, d.getVar("INITRAMFS_IMAGE")) +} - # mkbootimg requires an initrd file, make fake one that will be ignored - # during boot - echo "This is not an initrd" > ${B}/initrd.img +do_qcom_img_deploy[depends] += "skales-native:do_populate_sysroot" - # don't build bootimg if rootfs partition is not defined - if [ "${QCOM_BOOTIMG_ROOTFS}" = "undefined" ]; then - bbfatal "Rootfs partition must be defined" - fi +addtask qcom_img_deploy after do_populate_sysroot do_packagedata bundle_initramfs before do_deploy - priv_make_image ${QCOM_BOOTIMG_ROOTFS} ${BOOT_IMAGE_BASE_NAME} - ln -sf ${BOOT_IMAGE_BASE_NAME}.img ${DEPLOYDIR}/${BOOT_IMAGE_SYMLINK_NAME}.img +# Setup sstate, see deploy.bbclass +SSTATETASKS += "do_qcom_img_deploy" +do_qcom_img_deploy[sstate-inputdirs] = "${QIMG_DEPLOYDIR}" +do_qcom_img_deploy[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" - # build sd boot image only for machines supporting it. - if [ "${SD_QCOM_BOOTIMG_ROOTFS}" != "undefined" ]; then - priv_make_image ${SD_QCOM_BOOTIMG_ROOTFS} ${SD_BOOT_IMAGE_BASE_NAME} - ln -sf ${SD_BOOT_IMAGE_BASE_NAME}.img ${DEPLOYDIR}/${SD_BOOT_IMAGE_SYMLINK_NAME}.img - fi +python do_qcom_img_deploy_setscene () { + sstate_setscene(d) } +addtask do_qcom_img_deploy_setscene +do_qcom_img_deploy[dirs] = "${QIMG_DEPLOYDIR} ${B}" +do_qcom_img_deploy[cleandirs] = "${QIMG_DEPLOYDIR}" +do_qcom_img_deploy[stamp-extra-info] = "${MACHINE_ARCH}" diff --git a/recipes-rt/rt-tests/rt-tests_%.bbappend b/recipes-rt/rt-tests/rt-tests_%.bbappend new file mode 100644 index 0000000..2ae7c6d --- /dev/null +++ b/recipes-rt/rt-tests/rt-tests_%.bbappend @@ -0,0 +1,17 @@ +# Upstream repo no longer has 'master' branch, and switched to +# 'main'. To avoid issue such as: +# +# ERROR: rt-tests-1_1.1-r0 do_fetch: Fetcher failure: Unable to find +# revision dff174f994f547a5785d32454865f140daacb0f5 in branch master +# even from upstream +# +# we need to set the default branch name to 'main' in the recipe. +# +# Upstream patch is in progress + +SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main \ + file://run-ptest \ + file://rt_bmark.py \ + file://0001-gzip-with-n-for-build-reproducibilty.patch \ +" + diff --git a/recipes-support/fastrpc/fastrpc_git.bb b/recipes-support/fastrpc/fastrpc_git.bb index 179d42b..18f477f 100644 --- a/recipes-support/fastrpc/fastrpc_git.bb +++ b/recipes-support/fastrpc/fastrpc_git.bb @@ -1,4 +1,4 @@ -HOMEPAGE = "https://git.linaro.org/landing-teams/working/qualcomm/fastrpc.git" +HOMEPAGE = "https://git.codelinaro.org/linaro/qcomlt/fastrpc.git" SUMMARY = "Qualcomm FastRPC applications and library" SECTION = "devel" @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://src/fastrpc_apps_user.c;beginline=1;endline=29;md5=f9 SRCREV = "bc36c705c9b057ca880a423021d3c19f02edeadd" SRC_URI = "\ - git://git.linaro.org/landing-teams/working/qualcomm/fastrpc.git;branch=automake;protocol=https \ + git://git.codelinaro.org/linaro/qcomlt/fastrpc.git;branch=automake;protocol=https \ file://0001-apps_std_fopen_with_env-account-for-domain-kinds-whe.patch \ file://adsprpcd.service \ file://cdsprpcd.service \ diff --git a/recipes-support/initrdscripts/files/copy-modules.sh b/recipes-support/initrdscripts/files/copy-modules.sh new file mode 100644 index 0000000..12dc052 --- /dev/null +++ b/recipes-support/initrdscripts/files/copy-modules.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# Copyright (C) 2022 Linaro Ltd. +# Licensed on MIT + +copy_modules_enabled() { + [ -n "${bootparam_copy_modules}" -a -d /lib/modules/`uname -r` ] +} + +copy_modules_run() { + if [ -n "$ROOTFS_DIR" ]; then + rm -rf $ROOTFS_DIR/lib/modules/`uname -r` + mkdir -p $ROOTFS_DIR/lib/modules + cp -a /lib/modules/`uname -r` $ROOTFS_DIR/lib/modules + else + debug "No rootfs has been set" + fi +} diff --git a/recipes-support/initrdscripts/initramfs-module-copy-modules_1.0.bb b/recipes-support/initrdscripts/initramfs-module-copy-modules_1.0.bb new file mode 100644 index 0000000..effc7df --- /dev/null +++ b/recipes-support/initrdscripts/initramfs-module-copy-modules_1.0.bb @@ -0,0 +1,15 @@ +SUMMARY = "initramfs-framework module for copying kernel modules from initramfs to rootfs" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" +RDEPENDS:${PN} = "initramfs-framework-base ${VIRTUAL-RUNTIME_base-utils}" + +SRC_URI = "file://copy-modules.sh" + +S = "${WORKDIR}" + +do_install() { + install -d ${D}/init.d + install -m 0755 ${WORKDIR}/copy-modules.sh ${D}/init.d/95-copy_modules +} + +FILES:${PN} = "/init.d/" diff --git a/recipes-support/rmtfs/rmtfs_git.bb b/recipes-support/rmtfs/rmtfs_git.bb index 249e21e..e935bdd 100644 --- a/recipes-support/rmtfs/rmtfs_git.bb +++ b/recipes-support/rmtfs/rmtfs_git.bb @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ca25dbf5ebfc1a058bfc657c895aac2f" inherit systemd -SRCREV = "1cc12d3dc1f251f6d3151970621a06fdd013a1d0" +SRCREV = "293ab8babb27ac0f24247bb101fed9420c629c29" SRC_URI = "git://github.com/andersson/${BPN}.git;branch=master;protocol=https" DEPENDS = "qmic-native qrtr udev" diff --git a/recipes-test/images/initramfs-kerneltest-full-image.bb b/recipes-test/images/initramfs-kerneltest-full-image.bb new file mode 100644 index 0000000..ea60bfe --- /dev/null +++ b/recipes-test/images/initramfs-kerneltest-full-image.bb @@ -0,0 +1,3 @@ +require initramfs-test-full-image.bb + +PACKAGE_INSTALL += "${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" diff --git a/recipes-test/images/initramfs-kerneltest-image.bb b/recipes-test/images/initramfs-kerneltest-image.bb new file mode 100644 index 0000000..9dea43c --- /dev/null +++ b/recipes-test/images/initramfs-kerneltest-image.bb @@ -0,0 +1,3 @@ +require initramfs-test-image.bb + +PACKAGE_INSTALL += "${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS}" diff --git a/recipes-test/images/initramfs-test-full-image.bb b/recipes-test/images/initramfs-test-full-image.bb new file mode 100644 index 0000000..c7580ca --- /dev/null +++ b/recipes-test/images/initramfs-test-full-image.bb @@ -0,0 +1,70 @@ +require recipes-test/images/initramfs-tiny-image.bb + +DESCRIPTION = "Relatively larger ramdisk image for running tests (bootrr, etc)" + +PACKAGE_INSTALL += " \ + bluez5 \ + coreutils \ + dhcp-client \ + diag \ + e2fsprogs \ + e2fsprogs-e2fsck \ + e2fsprogs-mke2fs \ + e2fsprogs-resize2fs \ + e2fsprogs-tune2fs \ + ethtool \ + gptfdisk \ + iw \ + hdparm \ + kexec \ + lava-test-shell \ + libdrm-tests \ + lsof \ + ncurses \ + ncurses-terminfo \ + ncurses-terminfo-base \ + pciutils \ + pd-mapper \ + qrtr \ + rmtfs \ + stress-ng \ + tqftpserv \ + usbutils \ + util-linux \ + util-linux-chrt \ + util-linux-lsblk \ + wpa-supplicant \ +" + +PACKAGE_INSTALL:append:libc-glibc += " \ + rt-tests \ +" + +# We'd like to include extra packages provided by layers which we do not depend +# on. This can be handled by .bbappends, but then image recipes including this +# one would not get all these tools. So simulate dynamic bbappend here. +PACKAGE_INSTALL_openembedded_layer += " \ + crash \ + cryptsetup \ + devmem2 \ + dhrystone \ + iozone3 \ + libgpiod \ + libgpiod-tools \ + lmbench \ + makedumpfile \ + mbw \ + sysbench \ + tinymembench \ + tiobench \ + whetstone \ +" + +PACKAGE_INSTALL_networking_layer += " \ + iperf2 \ + iperf3 \ + tcpdump \ +" + +PACKAGE_INSTALL += "${@bb.utils.contains("BBFILE_COLLECTIONS", "openembedded-layer", "${PACKAGE_INSTALL_openembedded_layer}", "", d)}" +PACKAGE_INSTALL += "${@bb.utils.contains("BBFILE_COLLECTIONS", "networking-layer", "${PACKAGE_INSTALL_networking_layer}", "", d)}" diff --git a/recipes-test/images/initramfs-test-image.bb b/recipes-test/images/initramfs-test-image.bb index 6ae22b6..591e649 100644 --- a/recipes-test/images/initramfs-test-image.bb +++ b/recipes-test/images/initramfs-test-image.bb @@ -1,12 +1,12 @@ +require recipes-test/images/initramfs-tiny-image.bb + DESCRIPTION = "Small ramdisk image for running tests (bootrr, etc)" -PACKAGE_INSTALL = " \ - ${ROOTFS_BOOTSTRAP_INSTALL} \ +PACKAGE_INSTALL += " \ bluez5 \ - busybox \ - base-passwd \ dhcp-client \ diag \ + dropbear \ e2fsprogs \ e2fsprogs-e2fsck \ e2fsprogs-mke2fs \ @@ -16,41 +16,32 @@ PACKAGE_INSTALL = " \ gptfdisk \ iw \ lava-test-shell \ - packagegroup-core-boot \ + libdrm-tests \ + lrzsz \ pciutils \ pd-mapper \ qrtr \ rmtfs \ + strace \ tqftpserv \ - udev \ usbutils \ wpa-supplicant \ " -# Do not pollute the initrd image with rootfs features -IMAGE_FEATURES = "debug-tweaks" - -export IMAGE_BASENAME = "initramfs-test-image" -IMAGE_LINGUAS = "" - -LICENSE = "MIT" - -IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" -inherit core-image - -IMAGE_ROOTFS_SIZE = "8192" -IMAGE_ROOTFS_EXTRA_SPACE = "0" - -# Disable installation of kernel and modules via packagegroup-core-boot -NO_RECOMMENDATIONS = "1" +# We'd like to include extra packages provided by layers which we do not depend +# on. This can be handled by .bbappends, but then image recipes including this +# one would not get all these tools. So simulate dynamic bbappend here. +PACKAGE_INSTALL_openembedded_layer += " \ + cryptsetup \ + devmem2 \ +" -# Enable local auto-login (on systemd) of the root user (local = serial port and -# virtual console by default, can be configured). -LOCAL_GETTY ?= " \ - ${IMAGE_ROOTFS}${systemd_system_unitdir}/serial-getty@.service \ - ${IMAGE_ROOTFS}${systemd_system_unitdir}/getty@.service \ +PACKAGE_INSTALL_networking_layer += " \ + iperf2 \ + iperf3 \ + phytool \ + tcpdump \ " -local_autologin () { - sed -i -e 's/^\(ExecStart *=.*getty \)/\1--autologin root /' ${LOCAL_GETTY} -} -ROOTFS_POSTPROCESS_COMMAND += "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'local_autologin;', '', d)}" + +PACKAGE_INSTALL += "${@bb.utils.contains("BBFILE_COLLECTIONS", "openembedded-layer", "${PACKAGE_INSTALL_openembedded_layer}", "", d)}" +PACKAGE_INSTALL += "${@bb.utils.contains("BBFILE_COLLECTIONS", "networking-layer", "${PACKAGE_INSTALL_networking_layer}", "", d)}" diff --git a/recipes-test/images/initramfs-tiny-image.bb b/recipes-test/images/initramfs-tiny-image.bb new file mode 100644 index 0000000..c70ccee --- /dev/null +++ b/recipes-test/images/initramfs-tiny-image.bb @@ -0,0 +1,35 @@ +DESCRIPTION = "Tiny ramdisk image for board bringup" + +PACKAGE_INSTALL = " \ + ${ROOTFS_BOOTSTRAP_INSTALL} \ + busybox \ + base-passwd \ + packagegroup-core-boot \ + udev \ +" + +# Do not pollute the initrd image with rootfs features +IMAGE_FEATURES = "debug-tweaks" +IMAGE_LINGUAS = "" + +LICENSE = "MIT" + +IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}" +inherit core-image + +IMAGE_ROOTFS_SIZE = "8192" +IMAGE_ROOTFS_EXTRA_SPACE = "0" + +# Disable installation of kernel and modules via packagegroup-core-boot +NO_RECOMMENDATIONS ?= "1" + +# Enable local auto-login (on systemd) of the root user (local = serial port and +# virtual console by default, can be configured). +LOCAL_GETTY ?= " \ + ${IMAGE_ROOTFS}${systemd_system_unitdir}/serial-getty@.service \ + ${IMAGE_ROOTFS}${systemd_system_unitdir}/getty@.service \ +" +local_autologin () { + sed -i -e 's/^\(ExecStart *=.*getty \)/\1--autologin root /' ${LOCAL_GETTY} +} +ROOTFS_POSTPROCESS_COMMAND += "${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'local_autologin;', '', d)}" |