opensbi/firmware
Vincent Chen 0f20e8adcf firmware: Support position independent execution
Enable OpenSBI to support position independent execution. Because the
position independent code will cause an additional GOT reference when
accessing the global variables, it will reduce performance a bit. Therefore,
the position independent execution is disabled by default. Users can
through specifying "FW_PIC=y" on the make command to enable this feature.

In theory, after enabling position-independent execution, the OpenSBI
can run at arbitrary address with appropriate alignment. Therefore, the
original relocation mechanism will be skipped. In other words, OpenSBI will
directly run at the load address without any code movement.

Signed-off-by: Vincent Chen <vincent.chen@sifive.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
2021-03-19 15:00:50 +05:30
..
payloads firmware: Use lla to access all global symbols 2021-03-19 14:57:45 +05:30
external_deps.mk firmware: Remove FW_PAYLOAD_FDT_PATH compile-time option 2020-10-18 10:29:59 +05:30
fw_base.S firmware: Support position independent execution 2021-03-19 15:00:50 +05:30
fw_base.ldS firmware: Support position independent execution 2021-03-19 15:00:50 +05:30
fw_dynamic.S firmware: Use lla to access all global symbols 2021-03-19 14:57:45 +05:30
fw_dynamic.elf.ldS firmware: Relocate when load address is not equal to link address 2019-06-12 17:56:28 +05:30
fw_jump.S firmware: Use lla to access all global symbols 2021-03-19 14:57:45 +05:30
fw_jump.elf.ldS firmware: Relocate when load address is not equal to link address 2019-06-12 17:56:28 +05:30
fw_payload.S firmware: Use lla to access all global symbols 2021-03-19 14:57:45 +05:30
fw_payload.elf.ldS firmware: Relocate when load address is not equal to link address 2019-06-12 17:56:28 +05:30
objects.mk firmware: Support position independent execution 2021-03-19 15:00:50 +05:30