mirror of
git://git.yoctoproject.org/meta-rockchip.git
synced 2025-07-19 12:49:03 +02:00

On systems where KERNEL_IMAGETYPE is not set to fitImage, one needs to either pass an DTB or a path to a directory where DTBs are located on the rootfs. When FDT property in extlinux is provided, FDTDIR isn't used (and actually u-boot-extlinux-config doesn't even write it to the configuration file). When relative paths are used, they are relative to the directory where extlinux.conf is stored[1]. Since the DTBs are stored in /boot, just providing the filename of the DTB won't work because extlinux in U-Boot will search for it in /boot/extlinux. We should therefore either use ../ prefix for relative paths or use /boot to make it absolute. /boot is more explicit and easily parseable, so let's use the latter. [1] https://wiki.syslinux.org/wiki/index.php?title=Config#Working_directory Fixes:d80fa46c42
("rockchip-extlinux.inc: handle multiple DTs in KERNEL_DEVICETREE") Fixes:3b51866f22
("remove /boot partition") Fixes:13316b7968
("KERNEL_DEVICETREE: 32-bit re-org") Reviewed-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
26 lines
1.3 KiB
C++
26 lines
1.3 KiB
C++
# KERNEL_DEVICETREE follows the pattern of
|
|
# 'rockchip/${SOC_FAMILY}-${BOARD}.dtb' which is required when compiling
|
|
# the kernel so the kernel's Makefile can find the device tree
|
|
#
|
|
# when using extlinux with a fitImage the device tree is contained in the
|
|
# fitImage
|
|
#
|
|
# however for non-fitImages it is not found at
|
|
# $UBOOT_EXTLINUX_FDTDIR/rockchip/$KERNEL_DEVICETREE but rather at
|
|
# $UBOOT_EXTLINUX_FDTDIR/$KERNEL_DEVICETREE therefore we need to strip off
|
|
# the 'rockchip/' part for extlinux non-fitImage builds
|
|
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_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_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)}"
|