Browse Source

visionfive2: initramfs-img-gpu-firmware: Install IMG GPU firmware into the initramfs
This recipe depends on visionfive2-pvr-graphics that creates a copy of firmware at deploy directory.
Hence, bundling GPU firmware to initramfs no longer needed in linux-starfive-dev as zcat command will fail to extract & bundle /dev/console.

Signed-off-by: weiheng.cheng <weiheng.cheng@starfivetech.com>

weiheng.cheng 11 months ago
parent
commit
0b5fa52f3a

+ 5 - 2
recipes-core/images/core-image-minimal-initramfs.bbappend

@@ -1,5 +1,8 @@
-# Manually adding riscv64-oe-linux as a compatible hosts
+# Install IMG GPU firmware into the initramfs
+PACKAGE_INSTALL += "initramfs-img-gpu-firmware"
+
+# Add riscv64-oe-linux as a compatible hosts
 COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|riscv64.*)-(linux.*|freebsd.*)'
 
-# Manually avoid circular dependencies
+# Avoid circular dependencies
 EXTRA_IMAGEDEPENDS = ""

+ 14 - 0
recipes-kernel/firmware/initramfs-img-gpu-firmware.bb

@@ -0,0 +1,14 @@
+SUMMARY = "IMG GPU firmware installation recipe"
+DESCRIPTION = "Install IMG GPU firmware to the initramfs"
+LICENSE = "CLOSED"
+
+DEPENDS += "visionfive2-pvr-graphics"
+
+FILES:${PN} += "/lib/*"
+
+do_install:append() {
+        install -d ${D}/lib/firmware
+        install -m 0755 ${DEPLOY_DIR}/lib/firmware/* ${D}/lib/firmware
+}
+
+INSANE_SKIP:${PN} += "already-stripped arch"

+ 1 - 9
recipes-kernel/linux/linux-starfive-dev.bbappend

@@ -40,20 +40,12 @@ FILES:${KERNEL_PACKAGE_NAME}-base += "/usr/*"
 DEPENDS:starfive-visionfive2 += " u-boot-tools-native u-boot-starfive"
 
 do_deploy:append:starfive-visionfive2 () {
-	# Unpack and repack cpio archive to include rgx firmware for DDK1.19
-	cd ${DEPLOY_DIR_IMAGE}
-	rm -rf ${DEPLOY_DIR_IMAGE}/initramfs
-	mkdir ${DEPLOY_DIR_IMAGE}/initramfs
-	cd ${DEPLOY_DIR_IMAGE}/initramfs
-	zcat ${DEPLOY_DIR_IMAGE}/core-image-minimal-initramfs-starfive-visionfive2.cpio.gz | cpio -idmv || true
-	# cp -r ${DEPLOY_DIR}/lib ./
-	find . | cpio -H newc -o | gzip > ${DEPLOY_DIR_IMAGE}/core-image-minimal-initramfs-starfive-visionfive2-temp.cpio.gz
 	# Create FitImage
 	cd ${DEPLOY_DIR_IMAGE}
 	rm -rf ${DEPLOY_DIR_IMAGE}/tmp
 	mkdir ${DEPLOY_DIR_IMAGE}/tmp
 	cp -P ${DEPLOYDIR}/* ${DEPLOY_DIR_IMAGE}/tmp/
-	mkimage -A riscv -O linux -T ramdisk -n "Initial Ram Disk" -d core-image-minimal-initramfs-starfive-visionfive2-temp.cpio.gz initramfs.img
+	mkimage -A riscv -O linux -T ramdisk -n "Initial Ram Disk" -d core-image-minimal-initramfs-starfive-visionfive2.cpio.gz initramfs.img
 	mkimage -f ${DEPLOY_DIR_IMAGE}/visionfive2-fit-image.its ${DEPLOY_DIR_IMAGE}/starfiveu.fit
 }