]> code.ossystems Code Review - openembedded-core.git/commitdiff
u-boot: add option to specify FDT argument in extlinux.conf
authorJack Mitchell <jack@embed.me.uk>
Sat, 11 Mar 2017 14:16:03 +0000 (14:16 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 13 Mar 2017 09:43:08 +0000 (09:43 +0000)
Also fixes a use before defined bug with localdata.

Signed-off-by: Jack Mitchell <jack@embed.me.uk>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/uboot-extlinux-config.bbclass

index aae21713e365639785041ba57ca85f6607def387..8447a047ee3d39bd94eebeb758101fda28cadb24 100644 (file)
@@ -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: