• Achin Gupta's avatar
    Rework BL2 to BL3-1 hand over interface · e4d084ea
    Achin Gupta authored
    This patch reworks BL2 to BL3-1 hand over interface by introducing a
    composite structure (bl31_args) that holds the superset of information
    that needs to be passed from BL2 to BL3-1.
    
      - The extents of secure memory available to BL3-1
      - The extents of memory available to BL3-2 (not yet implemented) and
        BL3-3
      - Information to execute BL3-2 (not yet implemented) and BL3-3 images
    
    This patch also introduces a new platform API (bl2_get_bl31_args_ptr)
    that needs to be implemented by the platform code to export reference to
    bl31_args structure which has been allocated in platform-defined memory.
    
    The platform will initialize the extents of memory available to BL3-3
    during early platform setup in bl31_args structure. This obviates the
    need for bl2_get_ns_mem_layout platform API.
    
    BL2 calls the bl2_get_bl31_args_ptr function to get a reference to
    bl31_args structure. It uses the 'bl33_meminfo' field of this structure
    to load the BL3-3 image. It sets the entry point information for the
    BL3-3 image in the 'bl33_image_info' field of this structure. The
    reference to this structure is passed to the BL3-1 image.
    
    Also fixes issue ARM-software/tf-issues#25
    
    Change-Id: Ic36426196dd5ebf89e60ff42643bed01b3500517
    e4d084ea
bl_common.c 17 KB