u-boot: fix extlinux creation race
PATCH 1/2 u-boot: fix extlinux creation race
From: Jack Mitchell <[email protected]>
There was a race condition in the uboot-extlinux bbclass where only a half written extlinux.conf would be put in the deploy directory. Fix this by adding the deploy task after the do_install rather than after the do_compile.
Signed-off-by Jack Mitchell <[email protected]>
--- meta/recipes-bsp/u-boot/u-boot.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-bsp/u-boot/u-boot.inc +1 -1
@@ -304,4 +304,4 @@ do_deploy () { fi } -addtask deploy before do_build after do_compile +addtask deploy before do_build after do_install
Signature · 1 line
2.12.0
PATCH 2/2 u-boot: add option to specify FDT argument in extlinux.conf
From: Jack Mitchell <[email protected]>
Also fixes a use before defined bug with localdata.
Signed-off-by Jack Mitchell <[email protected]>
--- meta/classes/uboot-extlinux-config.bbclass | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-)
meta/classes/uboot-extlinux-config.bbclass +12 -3
@@ -12,6 +12,7 @@ # UBOOT_EXTLINUX_KERNEL_ARGS - Add additional kernel arguments. # UBOOT_EXTLINUX_KERNEL_IMAGE - Kernel image name. # UBOOT_EXTLINUX_FDTDIR - Device tree directory. +# UBOOT_EXTLINUX_FDT - Device tree file. # UBOOT_EXTLINUX_INITRD - Indicates a list of filesystem images to # concatenate and use as an initrd (optional). # UBOOT_EXTLINUX_MENU_DESCRIPTION - Name to use as description.
@@ -59,6 +60,7 @@ # a console=...some_tty... UBOOT_EXTLINUX_CONSOLE ??= "console=${console}" UBOOT_EXTLINUX_LABELS ??= "linux" +UBOOT_EXTLINUX_FDT ??= "" UBOOT_EXTLINUX_FDTDIR ??= "../" UBOOT_EXTLINUX_KERNEL_IMAGE ??= "../${KERNEL_IMAGETYPE}" UBOOT_EXTLINUX_KERNEL_ARGS ??= "rootwait rw"
@@ -84,6 +86,8 @@ python create_extlinux_config() { if not cfile: bb.fatal('Unable to read UBOOT_EXTLINUX_CONFIG') + localdata = bb.data.createCopy(d) + try: with open(cfile, 'w') as cfgfile: cfgfile.write('# Generic Distro Configuration file generated by OpenEmbedded\n')
@@ -99,9 +103,8 @@ python create_extlinux_config() { default = localdata.getVar('UBOOT_EXTLINUX_DEFAULT_LABEL') if default: cfgfile.write('DEFAULT %s\n' % (default)) - + for label in labels.split(): - localdata = bb.data.createCopy(d) overrides = localdata.getVar('OVERRIDES') if not overrides:
@@ -121,7 +124,13 @@ python create_extlinux_config() { kernel_image = localdata.getVar('UBOOT_EXTLINUX_KERNEL_IMAGE') fdtdir = localdata.getVar('UBOOT_EXTLINUX_FDTDIR') - if fdtdir: + + fdt = localdata.getVar('UBOOT_EXTLINUX_FDT') + + if fdt: + cfgfile.write('LABEL %s\n\tKERNEL %s\n\tFDT %s\n' % + (menu_description, kernel_image, fdt)) + elif fdtdir: cfgfile.write('LABEL %s\n\tKERNEL %s\n\tFDTDIR %s\n' % (menu_description, kernel_image, fdtdir)) else:
Signature · 1 line
2.12.0