Skip to content
  • Patrick Delaunay's avatar
    cmd: pxe: support INITRD and FDT selection with FIT · a5dacef7
    Patrick Delaunay authored and Tom Rini's avatar Tom Rini committed
    
    
    Since the commit d5ba6188 ("cmd: pxe_utils: Check fdtcontroladdr
    in label_boot") the FDT or the FDTDIR label is required in extlinux.conf
    and the fallback done by bootm command when only the device tree present
    in this command parameters is no more performed when FIT is used for
    kernel.
    
    When the label FDT or FDTDIR are absent or if the device tree file is
    absent, the PXE command in U-Boot uses the default U-Boot device tree
    selected by fdtcontroladdr = gd->fdt_blob, it is the "Scenario 3".
    
    With this scenario the bootm FIP fallback is no more possible with
    the extlinux.conf when only "kernel" label is present and is a FIP:
    
      kernel <path>#<conf>[#<extra-conf[#...]]
    
    As the U-Boot FDT is always provided in the third bootm argument,
    the device tree found in FIP is not used as fallback, it was done
    previously in boot_get_fdt().
    
    This patch adds a new field kernel_label to save the full kernel label.
    The FDT bootm parameters use the kernel address (to avoid to load a
    second time the same FIP) and the config when this full label is reused
    for "fdt" or "initrd" label.
    
    This FIP support in extlinux.conf is restored when the "FDT" label
    can be found and select the same FIP (identical file and configuration):
    
      kernel <path>#<conf>[#<extra-conf[#...]]
      fdt <path>#<conf>[#<extra-conf[#...]]
    
    The patch add also this possibility for initrd.
    
      initrd <path>#<conf>[#<extra-conf[#...]]
    
    Signed-off-by: Patrick Delaunay's avatarPatrick Delaunay <patrick.delaunay@foss.st.com>
    Reviewed-by: default avatarNeil Armstrong <neil.armstrong@linaro.org>
    a5dacef7