Description ---------- Add a new class and unittest for generating FIT blobs.
Testing ------- 1. linux-yocto_5.4.bbappend was modified to have the following configuration: ``` inherit fit-image KERNEL_IMAGE_NODE[name] = "kernel" KERNEL_IMAGE_NODE[description] = "${PF}" KERNEL_IMAGE_NODE[data] = '/incbin/("./arch/${ARCH}/boot/zImage")' KERNEL_IMAGE_NODE[type] = "kernel" KERNEL_IMAGE_NODE[arch] = "${ARCH}" KERNEL_IMAGE_NODE[os] = "linux" KERNEL_IMAGE_NODE[compression] = "none" KERNEL_IMAGE_NODE[load] = "${UBOOT_LOADADDRESS}" KERNEL_IMAGE_NODE[entry] = "${UBOOT_ENTRYPOINT}" KERNEL_IMAGE_NODE[hash] = "sha256" FDT_IMAGE_NODE[name] = "fdt" FDT_IMAGE_NODE[description] = "FDT blob" FDT_IMAGE_NODE[data] = '/incbin/("./arch/${ARCH}/boot/dts/am335x-bone.dtb")' FDT_IMAGE_NODE[type] = "flat_dt" FDT_IMAGE_NODE[arch] = "${ARCH}" FDT_IMAGE_NODE[compression] = "none" FDT_IMAGE_NODE[hash] = "sha256" CONF1_CONF_NODE[name] = "conf" CONF1_CONF_NODE[description] = "Linux kernel and FDT blob" CONF1_CONF_NODE[kernel] = "kernel" CONF1_CONF_NODE[fdt] = "fdt" FIT_IMAGES_NODE = "KERNEL_IMAGE_NODE FDT_IMAGE_NODE" FIT_CONFIGURATIONS_NODE = "CONF1_CONF_NODE" FIT_CONFIGURATIONS_NODE[default] = "${@d.getVarFlag('CONF1_CONF_NODE', 'name') or ""}" ``` 2. Build the kernel: `bitbake virtual/kernel` 3. Verify that `image-fit.itb` is present in the build directory: PASS 4. Disassemble the image using the command: `dtc -I dtb -O dts image-fit.itb` 5. Verify that the FIT source contains the expected configuration: PASS 6. Run the unittest using the command: `oe-selftest --run-tests fit_image.FitImage` 7. Verify that is successfully: PASS ``` 2020-05-26 16:54:34,996 - oe-selftest - INFO - SUMMARY: 2020-05-26 16:54:34,996 - oe-selftest - INFO - oe-selftest () - Ran 13 tests in 1956.639s 2020-05-26 16:54:34,997 - oe-selftest - INFO - oe-selftest - OK - All required tests passed (successes=13, skipped=0, failures=0, errors=0) ``` Changes since v1: ---------------- - Change the format of short-log to "<target>: <summary>" Changes since v2: ---------------- - rename the file from `fit-image` to `fit_image` to successfully export the class functions. - adding new sanity checks. - add missing dependency. - fix a variable reference in a debug log. Changes since v3: ---------------- - unit-test added - class updated to support also properties for U-Boot image Nandor Han (3): Add a recipe for `python3-fdt` package classes: Add a new bbclass that abstracts the generation of FIT blobs selftest: add a unit-test for fit-image bbclass .../fit-image-test/files/dt-fake.dtb | 3 + .../fit-image-test/files/zImage-fake | 3 + .../fit-image-test/fit-image-test.bb | 17 + meta/classes/fit_image.bbclass | 387 ++++++++++++++++++ meta/lib/oeqa/selftest/cases/fit_image.py | 212 ++++++++++ .../python/python3-fdt_0.2.0.bb | 14 + 6 files changed, 636 insertions(+) create mode 100644 meta-selftest/recipes-test/fit-image-test/files/dt-fake.dtb create mode 100644 meta-selftest/recipes-test/fit-image-test/files/zImage-fake create mode 100644 meta-selftest/recipes-test/fit-image-test/fit-image-test.bb create mode 100644 meta/classes/fit_image.bbclass create mode 100644 meta/lib/oeqa/selftest/cases/fit_image.py create mode 100644 meta/recipes-devtools/python/python3-fdt_0.2.0.bb -- 2.24.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#138727): https://lists.openembedded.org/g/openembedded-core/message/138727 Mute This Topic: https://lists.openembedded.org/mt/74483347/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-