• Oliver Swede's avatar
    plat/arm/board/arm_fpga: Use preloaded BL33 alternative boot flow · 5cfe699f
    Oliver Swede authored
    This makes use of the PRELOADED_BL33_BASE flag to indicate to BL31 that
    the BL33 payload (kernel) has already been loaded and resides in memory;
    BL31 will then jump to the non-secure address.
    
    For this port the BL33 payload is the Linux kernel, and in accordance
    with the pre-kernel setup requirements (as specified in the `Booting
    AArch64 Linux' documentation:
    https://www.kernel.org/doc/Documentation/arm64/booting.txt
    
    ),
    this change also sets up the primary CPU's registers x0-x3 so they are
    the expected values, which includes the address of the DTB at x0.
    
    An external linker script is currently required to combine BL31, the
    BL33 payload, and any other software images to create an ELF file that
    can be uploaded to the FPGA board along with the bit file. It therefore
    has dependencies on the value of PRELOADED_BL33_BASE (kernel base) and
    the DTB base (plus any other relevant base addresses used to
    distinguish the different ELF sections), both of which are set in this
    patch.
    Signed-off-by: default avatarOliver Swede <oli.swede@arm.com>
    Change-Id: If7ae8ee82d1e09fb05f553f6077ae13680dbf66b
    5cfe699f
fpga_bl31_setup.c 1.82 KB