@@ -159,6 +159,13 @@ Notes:
compatible (see Rockchip Media Process Platform (MPP) and
downstream gstreamer-rockchip plugin for those kernels).
+ RK_FITIMAGE
+
+ When generating an image, the BSP code needs to know whether or not to
+ package the pieces as a fitImage or not. By default it is assumed most
+ MACHINEs will use the fitImage format. Otherwise disable the RK_FITIMAGE
+ variable boolean to indicate otherwise.
+
U-Boot Environment:
------------------
In order to configure U-Boot to be able to store its environment into the
@@ -11,8 +11,6 @@ require conf/machine/include/arm/armv8a/tune-cortexa35.inc
require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
TFA_PLATFORM = "px30"
TFA_BUILD_TARGET = "bl31"
@@ -2,6 +2,7 @@
# Released under the MIT license (see COPYING.MIT for the terms)
SOC_FAMILY = "rk3066"
+RK_FITIMAGE = "False"
require conf/machine/include/soc-family.inc
require conf/machine/include/rockchip-defaults.inc
@@ -11,6 +12,5 @@ SERIAL_CONSOLES = "115200;ttyS2"
KBUILD_DEFCONFIG = "multi_v7_defconfig"
KERNEL_FEATURES:append:rk3066 = " bsp/rockchip/remove-non-rockchip-arch-arm.scc"
-KERNEL_IMAGETYPE ?= "zImage"
ENABLE_STATELESS_VPU_GST ?= "1"
@@ -2,6 +2,7 @@
# Released under the MIT license (see COPYING.MIT for the terms)
SOC_FAMILY = "rk3188"
+RK_FITIMAGE = "False"
require conf/machine/include/soc-family.inc
require conf/machine/include/rockchip-defaults.inc
@@ -11,6 +12,5 @@ SERIAL_CONSOLES = "115200;ttyFIQ0"
KBUILD_DEFCONFIG = "multi_v7_defconfig"
KERNEL_FEATURES:append:rk3188 = " bsp/rockchip/remove-non-rockchip-arch-arm.scc"
-KERNEL_IMAGETYPE ?= "zImage"
ENABLE_STATELESS_VPU_GST ?= "1"
@@ -2,6 +2,7 @@
# Released under the MIT license (see COPYING.MIT for the terms)
SOC_FAMILY = "rk3288"
+RK_FITIMAGE = "False"
require conf/machine/include/soc-family.inc
require conf/machine/include/rockchip-defaults.inc
@@ -11,7 +12,6 @@ SERIAL_CONSOLES = "115200;ttyS2"
KBUILD_DEFCONFIG ?= "multi_v7_defconfig"
KERNEL_FEATURES:append:rk3288 = " bsp/rockchip/remove-non-rockchip-arch-arm.scc"
-KERNEL_IMAGETYPE ?= "zImage"
UBOOT_SUFFIX ?= "bin"
@@ -13,8 +13,6 @@ SERIAL_CONSOLES = "1500000;ttyS0"
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3308 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
UBOOT_SUFFIX ?= "itb"
UBOOT_ENTRYPOINT ?= "0x06000000"
@@ -12,8 +12,6 @@ require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3328 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
TFA_PLATFORM = "rk3328"
TFA_BUILD_TARGET = "bl31"
@@ -12,8 +12,6 @@ require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3399 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
TFA_PLATFORM = "rk3399"
TFA_BUILD_TARGET = "bl31"
@@ -11,8 +11,6 @@ require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3566 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin-tf-a"
PREFERRED_PROVIDER_optee-os = "rockchip-rkbin-optee-os"
@@ -11,8 +11,6 @@ require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin-tf-a"
PREFERRED_PROVIDER_optee-os = "rockchip-rkbin-optee-os"
@@ -10,8 +10,6 @@ require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3588s = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
-KERNEL_CLASSES = "kernel-fitimage"
-KERNEL_IMAGETYPE ?= "fitImage"
PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin-tf-a"
PREFERRED_PROVIDER_optee-os = "rockchip-rkbin-optee-os"
@@ -1,9 +1,12 @@
# meta-rockchip default settings
MACHINEOVERRIDES =. "${@bb.utils.contains('ROCKCHIP_CLOSED_TPL', '1', 'closed-tpl:', '', d)}"
MACHINEOVERRIDES =. "rockchip:"
+
# kernel
+RK_FITIMAGE ?= "True"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
KCONFIG_MODE ?= "alldefconfig"
+require conf/machine/include/rockchip-${@ 'fitimage' if bb.utils.to_boolean(d.getVar('RK_FITIMAGE')) else 'unfitimage'}.inc
# xserver
XSERVER = " \
@@ -13,13 +13,13 @@ NONFITDT ?= "${@d.getVar('KERNEL_DEVICETREE').split()[0].split('/')[1]}"
UBOOT_EXTLINUX ?= "1"
UBOOT_EXTLINUX_ROOT ?= "root=PARTLABEL=rootfsA"
-UBOOT_EXTLINUX_FDTDIR ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot', d)}"
-UBOOT_EXTLINUX_FDT ?= "${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', '/boot/${NONFITDT}', d)}"
+UBOOT_EXTLINUX_FDTDIR ?= "${@ '' if bb.utils.to_boolean(d.getVar('RK_FITIMAGE')) else '/boot'}"
+UBOOT_EXTLINUX_FDT ?= "${@ '' if bb.utils.to_boolean(d.getVar('RK_FITIMAGE')) else '/boot/${NONFITDT}'}"
UBOOT_EXTLINUX_CONSOLE ?= "earlycon console=tty1 console=${RK_CONSOLE_DEVICE},${RK_CONSOLE_BAUD}n8"
UBOOT_EXTLINUX_KERNEL_ARGS ?= "rootwait rw rootfstype=ext4"
-UBOOT_EXTLINUX_KERNEL_IMAGE ?= "/boot/${KERNEL_IMAGETYPE}"
+UBOOT_EXTLINUX_KERNEL_IMAGE ?= "/boot/${@ 'fitImage' if bb.utils.to_boolean(d.getVar('RK_FITIMAGE')) else '${KERNEL_IMAGETYPE}'}"
UBOOT_EXTLINUX_LABELS ?= "default"
UBOOT_EXTLINUX_MENU_DESCRIPTION:default ?= "${MACHINE}"
MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "u-boot-extlinux"
-MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "kernel-image ${@bb.utils.contains('KERNEL_IMAGETYPE', 'fitImage', '', 'kernel-devicetree', d)}"
+MACHINE_ESSENTIAL_EXTRA_RDEPENDS += "${@ 'linux-yocto-fitimage' if bb.utils.to_boolean(d.getVar('RK_FITIMAGE')) else 'kernel-devicetree'}"
new file mode 100644
@@ -0,0 +1,4 @@
+KERNEL_CLASSES += "kernel-fit-extra-artifacts"
+KERNEL_IMAGETYPE ?= "Image"
+RRECOMMENDS:${KERNEL_PACKAGE_NAME}-base = ""
+KERNEL_DEPLOY_DEPEND ?= "linux-yocto-fitimage:do_deploy"
new file mode 100644
@@ -0,0 +1 @@
+KERNEL_IMAGETYPE ?= "zImage"
oe-core has completely re-written the fitImage support starting roughly at commit [1], update meta-rockchip to match. Most of the MACHINEs in meta-rockchip use a fitImage, but some don't. Create a boolean variable (RK_FITIMAGE), enabled by default, to keep track of which ones do and which ones don't. Use this variable to decide how to configure various image-related fields. Run tested on the following with RAUC configured: - nanopi-m4b - nanopi-r2s - radxa-zero-3e - rock-pi-4b - rock-pi-e - rock-pi-s Run tested on the following without RAUC: - radxa-zero-3e - rock-pi-e - rock-pi-s [1] oe-core: 3442d9297dca ("oe-selftest: fitimage: test external dtb") Signed-off-by: Trevor Woerner <twoerner@gmail.com> --- changes in v2: - remove the ",False" from the bb.utils.to_boolean() calls - add informaton on new param (RK_FITIMAGE) to README - re-structure the fitimage require so it is less invasive in MACHINE.conf files --- README | 7 +++++++ conf/machine/include/px30.inc | 2 -- conf/machine/include/rk3066.inc | 2 +- conf/machine/include/rk3188.inc | 2 +- conf/machine/include/rk3288.inc | 2 +- conf/machine/include/rk3308.inc | 2 -- conf/machine/include/rk3328.inc | 2 -- conf/machine/include/rk3399.inc | 2 -- conf/machine/include/rk3566.inc | 2 -- conf/machine/include/rk3568.inc | 2 -- conf/machine/include/rk3588s.inc | 2 -- conf/machine/include/rockchip-defaults.inc | 3 +++ conf/machine/include/rockchip-extlinux.inc | 8 ++++---- conf/machine/include/rockchip-fitimage.inc | 4 ++++ conf/machine/include/rockchip-unfitimage.inc | 1 + 15 files changed, 22 insertions(+), 21 deletions(-) create mode 100644 conf/machine/include/rockchip-fitimage.inc create mode 100644 conf/machine/include/rockchip-unfitimage.inc