rom_trampoline.S 710 B

123456789101112131415161718192021222324
  1. /*
  2. * Copyright (c) 2020, ARM Limited. All rights reserved.
  3. *
  4. * SPDX-License-Identifier: BSD-3-Clause
  5. *
  6. * The Arm Ltd. FPGA images start execution at address 0x0, which is
  7. * mapped at an (emulated) ROM image. The payload uploader can write to
  8. * this memory, but write access by the CPU cores is prohibited.
  9. *
  10. * Provide a simple trampoline to start BL31 execution at the actual
  11. * load address. We put the DTB address in x0, so any code in DRAM could
  12. * make use of that information (not yet used in BL31 right now).
  13. */
  14. #include <asm_macros.S>
  15. #include <common/bl_common.ld.h>
  16. .text
  17. .global _start
  18. _start:
  19. mov_imm x1, BL31_BASE /* beginning of DRAM */
  20. mov_imm x0, FPGA_PRELOADED_DTB_BASE
  21. br x1