Mistake on this page? Email us

Example: imx7s-warp-mbl BSP recipe/package relationships

Example: imx7s-warp-mbl recipe/package UML diagram

This section provides a concrete example of the UML diagram shown in Figure 4.0 for the i.MX7 Warp7 target MACHINE=imx7s-warp-mbl.


Figure 9.1: The UML diagram shows the relationships between the recipes and configuration files for the imx7s-warp-mbl target.

Figure 9.1 shows the imx7s-warp-mbl realization of recipes and configuration files shown in Figure 4.0.

This section discusses the meta-freescale and meta-freescale-3rdparty entities shown in green in the above figure:

  • imx7s-warp-mbl.conf: This is the meta-[soc-vendor]-mbl=meta-freescale-3rdparty-mbl machine configuration file for the target.
    • KERNEL_CLASSES = "mbl-fitimage": The mbl-fitimage.bbclass is inherited into kernel.bbclass processing by defining this symbol to include mbl-fitimage.
    • KERNEL_IMAGETYPE = "fitImage": The kernel is packaged in a FIT image by specifying "fitImage".
    • # KERNEL_DEVICETREE="imx7s-warp.dtb": It's unnecessary to change this symbol here because the required "imx7s-warp.dtb" value is specified in imx7s-warp.conf.
    • UBOOT_CONFIG = "".
    • UBOOT_MACHINE = "warp7_bl33_defconfig": This is the U-Boot default configuration file to use.
    • UBOOT_CONFIG[sd] = "".
    • UBOOT_SUFFIX = "bin": This is used to enable U-Boot verified boot. See uboot-sign.bbclass for more information.
    • UBOOT_BINARY = "u-boot.${UBOOT_SUFFIX}": This is the U-Boot binary name.
    • UBOOT_ENTRYPOINT = "0x80800000": This is the U-Boot binary entry point.
    • UBOOT_DTB_LOADADDRESS = "0x83000000": This is the location where the U-Boot DTD is loaded into memory.
    • UBOOT_IMAGE = "mbl-u-boot.bin": This is the name of the U-Boot image.
    • UBOOT_SIGN_ENABLE = "1": This enables verified boot signing.
    • MBL_WKS_BOOTLOADER1_FILENAME = "bl2.bin.imx": This sets the file that WIC uses to populate the BL2 section of the flash partition layout.
    • MBL_WKS_BOOTLOADER1_OFFSET_BANK1_KiB = "1": This sets the offset of the BL2 section of the flash partition layout.
    • MBL_WKS_BOOTLOADER1_SIZE_KiB = "1023": This sets the size allocated for the BL2 section of the flash partition layout.
    • MBL_WKS_BOOTLOADER2_OFFSET_BANK1_KiB = "1024": This sets the offset of the first BL3 FIP bank in the flash partition layout.
    • MBL_WKS_BOOTLOADER2_ALIGN_KiB = "1024": This sets the alignment used for the BL3 FIP banks in the flash partition layout.
    • MBL_WKS_BOOTLOADER2_SIZE_KiB = "1024": This sets the size allocated for each BL3 FIP bank in the flash partition layout.
    • MBL_FLASH_ERASE_BLOCK_SIZE_KiB = "6144": This is used to determine the default alignment of partitions in the flash partition layout.
  • imx7s-warp.conf: This is the meta-[soc-vendor]=meta-freescale-3rdparty machine configuration file that provides the base BSP support for the NXP Warp7 target.
  • imx-base.inc: This is an example of the [soc-family].inc file and gives the virtual provider definitions:
    • PREFERRED_PROVIDER_virtual/bootloader="u-boot-fslc".
    • PREFERRED_PROVIDER_virtual/kernel="linux-fslc".
  • linux-fslc_${PV}.bb: This is the Freescale NXP community maintained mainline Linux kernel BSP recipe with backported features and fixes. The package version symbol ${PV} is periodically updated to the next Linux kernel stable release version, for example, 4.9, 4.14, 4.19.
  • linux-fslc.inc: This is a common include file for linux-fslc* recipes. It specifies a Linux kernel default config, common dependencies and the inclusion of the imx-base.inc include file.
  • linux-imx.inc: This is the common include file for IMX SoCs that encapsulates the interface to the openembedded-core .bbclasses, including kernel.bbclass.
  • u-boot-fslc_${PV}.bb: This is the Freescale NXP community maintained mainline U-Boot BSP recipe with backported features and fixes. The package version symbol ${PV} is periodically updated to the next U-Boot stable release version, for example, 2018.07, 2018.11.

imx7s-warp-mbl recipe dependency graph

This section presents a recipe and machine configuration file dependency graph for the imx7s-warp-mbl target as an alternative way of visualizing the information shown in Figure 9.1.


  imx7s-warp-mbl.conf                                                                                 (1)
      KERNEL_XXX config                                                                               (2)
      KERNEL_CLASSES  = "mbl-fitimage"                                                                (3)
      KERNEL_IMAGETYPE = "fitImage"
      UBOOT_XXX config                                                                                (4)
      MBL_WKS_BOOTLOADERxxx config                                                                   (5)
      IMAGE_BOOT_FILES config
      PREFERRED_PROVIDER_virtual/atf = "atf-${MACHINE}"                                               (6)
      |   \-> atf-imx7s-warp-mbl.bb
      |           DEPENDS = ""
      |           \-> aft.inc
      |               DEPENDS += " openssl-native coreutils-native optee-os u-boot virtual/kernel"
      \-> imx7s-warp.conf                                                                             (7)
          MACHINEOVERRIDES =. "mx7:mx7d:use-mainline-bsp:"                                            (8)
          KERNEL_DEVICETREE = "imx7s-warp.dtb"
          \-> imx-base.inc                                                                            (9)
                # boot loader  recipe config
                PREFERRED_PROVIDER_u-boot ??= "u-boot-fslc"                                           (10)
                PREFERRED_PROVIDER_virtual/bootloader ??= "u-boot-fslc"                               (11)
                    \-> u-boot-fslc_XXXX.YY.bb                                                        (12)
                        \-> u-boot-fslc_%.bbappend                                                    (13)
                        \-> u-boot-fslc_%.bbappend                                                    (14)

                # kernel recipe config
                IMX_DEFAULT_KERNEL_use-mainline-bsp = "linux-fslc"                                    (15)
                PREFERRED_PROVIDER_virtual/kernel ??= "${IMX_DEFAULT_KERNEL}"
                    \-> linux-fslc_X.YY.bb                                                            (16)
                    |   \-> linux-fslc.inc                                                            (17)
                    |       \-> linux-imx.inc                                                         (18)
                    |       |       inherit kernel <others removed to save space>
                    |       |           \-> kernel.bbclass
                    |       |                   inherit ${KERNEL_CLASSES}                             (19)
                    |       |                       \-> mbl-fitimage.bbclass                          (20)
                    |       |                               inherit kernel-fitimage
                    |       |                                   \-> kernel-fitimage.bbclass
                    |       |
                    |       |                               do_compile[depends] += "mbl-boot-scr:do_deploy"
                    |       |                                                                         (21)
                    |       |
                    |       \-> u-boot-sign.bbclass                                                   (22)
                    \-> linux-fslc_%.bbappend                                                         (23)
                    \-> linux-fslc_%.bbappend                                                         (24)

The diagram show the recipes and configuration files dependency graph for the imx7s-warp-mbl.

The figure above shows the recipes and machine configuration file dependency graph for the imx7s-warp-mbl:

  • (1) meta-freescale-3rdparty-mbl/conf/machine/imx7s-warp-mbl.conf is the ${MACHINE}.conf configuration file for imx7s-warp. See Figure 4.0 and Machine configuration files.
  • (2) The KERNEL_XXX symbols control Linux kernel and for FIT image generation. See linux* for more information.
  • (3) See (19).
  • (4) The UBOOT_XXX symbols control U-Boot image generation and the signing of FIT image components by the uboot-mkimage tool.
  • (5) This specifies bootloader offsets and sizes used to determine the flash partition geometry.
  • (6) This specifies atf-imx7s-warp-mbl.bb is to be used as the virtual/atf provider.
  • (7) meta-freescale-3rdparty/conf/machine/imx7s-warp.conf is the meta-[soc-vendor] ${machine}.conf configuration file for imx7s-warp-mbl.
  • (8) use-mainline-bsp is used to configure linux-fslc*. See (15).
  • (9) require meta-freescale/conf/machine/include/imx-base.inc.
  • (10) This makes the ATF recipe work because of DEPENDS += " u-boot ".
  • (11) This specifies the uboot-fslc recipe to be the virtual/bootloader provider.
  • (12) meta-freescale/recipes-bsp/u-boot/u-boot-fslc_2018.09.bb, for example.
  • (13) meta-freescale-3rdparty/recipes-bsp/u-boot/u-boot-fslc_%.bbappend.
  • (14) meta-freescale-mbl/recipes-bsp/u-boot/u-boot-fslc_%.bbappend.
  • (15) Configured by MACHINEOVERRIDES including "use-mainline-bsp".
  • (16) meta-freescale/recipes-kernel/linux/linux-fslc_4.18.bb.
  • (17) meta-freescale/recipes-kernel/linux/linux-fslc.inc.
  • (18) meta-freescale/recipes-kernel/linux/linux-imx.inc.
  • (19) As kernel.bbclass includes the line inherit ${KERNEL_CLASSES} and imx7s-warp-mbl.conf includes the line KERNEL_CLASSES = "mbl-fitimage", then the mbl-fitimage.bbclass is inherited by the kernel.bbclass.
  • (20) This generates the FIT image according to the MBL specification.
  • (21) This is how the dependency on mbl-boot-scr is introduced for the BSPs.
  • (22) This is used for FIT image signing.
  • (23) meta-freescale-3rdparty/recipes-kernel/linux/linux-fslc_%.bbappend.
  • (24) meta-freescale-3rdparty-mbl/recipes-kernel/linux/linux-fslc_%.bbappend.
Important Information for this Arm website

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies. If you are not happy with the use of these cookies, please review our Cookie Policy to learn how they can be disabled. By disabling cookies, some features of the site will not work.