Skip to content
Snippets Groups Projects
  • Luca Ceresoli's avatar
    c7df098a
    arm64: zynqmp: accept an absolute path for PMUFW_INIT_FILE · c7df098a
    Luca Ceresoli authored
    
    The value of PMUFW_INIT_FILE is prefixed with "$(srctree)/", thus
    forcing it to be a relative path inside the U-Boot source tree. Since
    the PMUFW is a binary file generated outside of U-Boot, the PMUFW
    binary must be copied inside the U-Boot source tree before the
    build.
    
    This generates a few problems:
    
     * if the source tree is shared among different out-of-tree builds,
       they will pollute (and potentially corrupt) each other
     * the source tree cannot be read-only
     * any buildsystem must add a command to copy the PMUFW binary
     * putting an externally-generated binary in the source tree is ugly
       as hell
    
    Avoid these problems by accepting an absolute path for
    PMUFW_INIT_FILE. This would be as simple as removing the "$(srctree)/"
    prefix, but in order to keep backward compatibility we rather use the
    shell and readlink to get the absolute path even when starting from a
    relative path.
    
    Since 'readlink -f' produces an empty string if the file does not
    exist, we also add a check to ensure the file configured in
    PMUFW_INIT_FILE exists. Otherwise the build would exit successfully,
    but produce a boot.bin without PMUFW as if PMUFW_INIT_FILE were empty.
    
    Tested in the 12 possible combinations of:
     - PMUFW_INIT_FILE empty, relative, absolute, non-existing
     - building in-tree, in subdir, in other directory
    
    Signed-off-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Cc: Simon Glass <sjg@chromium.org>
    Cc: Emmanuel Vadot <manu@bidouilliste.com>
    Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
    c7df098a
    History
    arm64: zynqmp: accept an absolute path for PMUFW_INIT_FILE
    Luca Ceresoli authored
    
    The value of PMUFW_INIT_FILE is prefixed with "$(srctree)/", thus
    forcing it to be a relative path inside the U-Boot source tree. Since
    the PMUFW is a binary file generated outside of U-Boot, the PMUFW
    binary must be copied inside the U-Boot source tree before the
    build.
    
    This generates a few problems:
    
     * if the source tree is shared among different out-of-tree builds,
       they will pollute (and potentially corrupt) each other
     * the source tree cannot be read-only
     * any buildsystem must add a command to copy the PMUFW binary
     * putting an externally-generated binary in the source tree is ugly
       as hell
    
    Avoid these problems by accepting an absolute path for
    PMUFW_INIT_FILE. This would be as simple as removing the "$(srctree)/"
    prefix, but in order to keep backward compatibility we rather use the
    shell and readlink to get the absolute path even when starting from a
    relative path.
    
    Since 'readlink -f' produces an empty string if the file does not
    exist, we also add a check to ensure the file configured in
    PMUFW_INIT_FILE exists. Otherwise the build would exit successfully,
    but produce a boot.bin without PMUFW as if PMUFW_INIT_FILE were empty.
    
    Tested in the 12 possible combinations of:
     - PMUFW_INIT_FILE empty, relative, absolute, non-existing
     - building in-tree, in subdir, in other directory
    
    Signed-off-by: default avatarLuca Ceresoli <luca@lucaceresoli.net>
    Cc: Michal Simek <michal.simek@xilinx.com>
    Cc: Simon Glass <sjg@chromium.org>
    Cc: Emmanuel Vadot <manu@bidouilliste.com>
    Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>