Skip to content
Snippets Groups Projects
  • Heiko Stuebner's avatar
    6ccb05ea
    image: fdt: copy possible optee nodes to a loaded devicetree · 6ccb05ea
    Heiko Stuebner authored
    
    The loading convention for optee or any other tee on arm64 is as bl32
    parameter to the trusted-firmware. So TF-A gets invoked with the TEE as
    bl32 and main u-boot as bl33. Once it has done its startup TF-A jumps
    into the bl32 for the TEE startup, returns to TF-A and then jumps to bl33.
    
    All of them get passed a devicetree as parameter and all components often
    get loaded from a FIT image.
    
    OP-TEE will create additional nodes in that devicetree namely a firmware
    node and possibly multiple reserved-memory nodes.
    
    While this devicetree is used in main u-boot, in most cases it won't be
    the one passed to the actual kernel. Instead most boot commands will load
    a new devicetree from somewhere like mass storage of the network, so if
    that happens u-boot should transfer the optee nodes to that new devicetree.
    
    To make that happen introduce optee_copy_fdt_nodes() called from the dt
    setup function in image-fdt which after checking for the optee presence
    in the u-boot dt will make sure a optee node is present in the kernel dt
    and transfer any reserved-memory regions it can find.
    
    Signed-off-by: default avatarHeiko Stuebner <heiko.stuebner@theobroma-systems.com>
    Reviewed-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
    6ccb05ea
    History
    image: fdt: copy possible optee nodes to a loaded devicetree
    Heiko Stuebner authored
    
    The loading convention for optee or any other tee on arm64 is as bl32
    parameter to the trusted-firmware. So TF-A gets invoked with the TEE as
    bl32 and main u-boot as bl33. Once it has done its startup TF-A jumps
    into the bl32 for the TEE startup, returns to TF-A and then jumps to bl33.
    
    All of them get passed a devicetree as parameter and all components often
    get loaded from a FIT image.
    
    OP-TEE will create additional nodes in that devicetree namely a firmware
    node and possibly multiple reserved-memory nodes.
    
    While this devicetree is used in main u-boot, in most cases it won't be
    the one passed to the actual kernel. Instead most boot commands will load
    a new devicetree from somewhere like mass storage of the network, so if
    that happens u-boot should transfer the optee nodes to that new devicetree.
    
    To make that happen introduce optee_copy_fdt_nodes() called from the dt
    setup function in image-fdt which after checking for the optee presence
    in the u-boot dt will make sure a optee node is present in the kernel dt
    and transfer any reserved-memory regions it can find.
    
    Signed-off-by: default avatarHeiko Stuebner <heiko.stuebner@theobroma-systems.com>
    Reviewed-by: default avatarJens Wiklander <jens.wiklander@linaro.org>