forked from Mirrors/opensbi

This patch extends fw_base to relocate to link address whenever firmware load address is not equal to link address. The relocation will not work when load start to load end overlap link start to link end. Signed-off-by: Anup Patel <anup.patel@wdc.com> Tested-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
33 lines
492 B
Plaintext
33 lines
492 B
Plaintext
/*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*
|
|
* Copyright (c) 2019 Western Digital Corporation or its affiliates.
|
|
*
|
|
* Authors:
|
|
* Anup Patel <anup.patel@wdc.com>
|
|
*/
|
|
|
|
OUTPUT_ARCH(riscv)
|
|
ENTRY(_start)
|
|
|
|
SECTIONS
|
|
{
|
|
#include "fw_base.ldS"
|
|
|
|
#ifdef FW_PAYLOAD_OFFSET
|
|
. = FW_TEXT_START + FW_PAYLOAD_OFFSET;
|
|
#else
|
|
. = ALIGN(FW_PAYLOAD_ALIGN);
|
|
#endif
|
|
|
|
.payload :
|
|
{
|
|
PROVIDE(_payload_start = .);
|
|
*(.payload)
|
|
. = ALIGN(8);
|
|
PROVIDE(_payload_end = .);
|
|
}
|
|
|
|
PROVIDE(_fw_reloc_end = .);
|
|
}
|