|
@@ -0,0 +1,84 @@
|
|
|
+SUMMARY = "Firmware image recipe for generating SD-Card artifacts."
|
|
|
+
|
|
|
+inherit deploy nopackages
|
|
|
+
|
|
|
+DEPENDS = "virtual/uefi-firmware \
|
|
|
+ virtual/control-processor-firmware \
|
|
|
+ board-firmware-n1sdp"
|
|
|
+
|
|
|
+LICENSE = "MIT"
|
|
|
+PACKAGE_ARCH = "${MACHINE_ARCH}"
|
|
|
+COMPATIBLE_MACHINE = "n1sdp"
|
|
|
+RM_WORK_EXCLUDE += "${PN}"
|
|
|
+do_configure[noexec] = "1"
|
|
|
+do_compile[noexec] = "1"
|
|
|
+do_install[noexec] = "1"
|
|
|
+
|
|
|
+FIRMWARE_DIR = "n1sdp-board-firmware_source"
|
|
|
+PRIMARY_DIR = "${WORKDIR}/n1sdp-board-firmware_primary"
|
|
|
+SECONDARY_DIR = "${WORKDIR}/n1sdp-board-firmware_secondary"
|
|
|
+
|
|
|
+SOC_BINARIES_PRIMARY = "mcp_fw.bin scp_fw.bin ${SOC_BINARIES_SECONDARY}"
|
|
|
+SOC_BINARIES_SECONDARY = "mcp_rom.bin scp_rom.bin"
|
|
|
+
|
|
|
+
|
|
|
+prepare_package() {
|
|
|
+ cd ${WORKDIR}
|
|
|
+
|
|
|
+ # Master/Primary
|
|
|
+ cp -av ${RECIPE_SYSROOT}/${FIRMWARE_DIR}/* ${PRIMARY_DIR}
|
|
|
+ mkdir -p ${PRIMARY_DIR}/SOFTWARE/
|
|
|
+
|
|
|
+ # Copy uefi binary
|
|
|
+ cp -v ${RECIPE_SYSROOT}/firmware/uefi.bin ${PRIMARY_DIR}/SOFTWARE/
|
|
|
+
|
|
|
+ # Copy SOC binaries
|
|
|
+ for f in ${SOC_BINARIES_PRIMARY}; do
|
|
|
+ cp -v ${RECIPE_SYSROOT}/firmware/${f} ${PRIMARY_DIR}/SOFTWARE/
|
|
|
+ done
|
|
|
+
|
|
|
+ sed -i -e 's|^C2C_ENABLE.*|C2C_ENABLE: TRUE ;C2C enable TRUE/FALSE|' \
|
|
|
+ ${PRIMARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+ sed -i -e 's|^C2C_SIDE.*|C2C_SIDE: MASTER ;C2C side SLAVE/MASTER|' \
|
|
|
+ ${PRIMARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+ sed -i -e 's|.*SOCCON: 0x1170.*PLATFORM_CTRL.*|SOCCON: 0x1170 0x00000100 ;SoC SCC PLATFORM_CTRL|' \
|
|
|
+ ${PRIMARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+
|
|
|
+ # Slave/Secondary
|
|
|
+ cp -av ${RECIPE_SYSROOT}/${FIRMWARE_DIR}/* ${SECONDARY_DIR}
|
|
|
+ mkdir -p ${SECONDARY_DIR}/SOFTWARE/
|
|
|
+
|
|
|
+ # Copy SOC binaries
|
|
|
+ for f in ${SOC_BINARIES_SECONDARY}; do
|
|
|
+ cp -v ${RECIPE_SYSROOT}/firmware/${f} ${SECONDARY_DIR}/SOFTWARE/
|
|
|
+ done
|
|
|
+
|
|
|
+ sed -i -e 's|^C2C_ENABLE.*|C2C_ENABLE: TRUE ;C2C enable TRUE/FALSE|' \
|
|
|
+ ${SECONDARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+ sed -i -e 's|^C2C_SIDE.*|C2C_SIDE: SLAVE ;C2C side SLAVE/MASTER|' \
|
|
|
+ ${SECONDARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+ sed -i -e 's|.*SOCCON: 0x1170.*PLATFORM_CTRL.*|SOCCON: 0x1170 0x00000101 ;SoC SCC PLATFORM_CTRL|' \
|
|
|
+ ${SECONDARY_DIR}/MB/HBI0316A/io_v123f.txt
|
|
|
+ sed -i -e '/^TOTALIMAGES:/ s|5|2|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
|
|
+ sed -i -e 's|^IMAGE[^23]|;&|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
|
|
+ sed -i -e 's|^IMAGE2|IMAGE0|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
|
|
+ sed -i -e 's|^IMAGE3|IMAGE1|' ${SECONDARY_DIR}/MB/HBI0316A/images.txt
|
|
|
+}
|
|
|
+
|
|
|
+do_deploy() {
|
|
|
+ # prepare Master & Slave packages
|
|
|
+ prepare_package
|
|
|
+
|
|
|
+ for dir in ${PRIMARY_DIR} ${SECONDARY_DIR}; do
|
|
|
+ dir_name=$(basename ${dir})
|
|
|
+ mkdir -p ${D}/${dir_name}
|
|
|
+ cp -av ${dir} ${D}
|
|
|
+
|
|
|
+ # Compress the files
|
|
|
+ tar -C ${D}/${dir_name} -zcvf ${DEPLOYDIR}/${dir_name}.tar.gz ./
|
|
|
+ done
|
|
|
+}
|
|
|
+do_deploy[dirs] += "${PRIMARY_DIR} ${SECONDARY_DIR}"
|
|
|
+do_deploy[cleandirs] += "${PRIMARY_DIR} ${SECONDARY_DIR}"
|
|
|
+do_deploy[umask] = "022"
|
|
|
+addtask deploy after do_populate_sysroot
|