Files
2022-02-17 11:37:06 +01:00

204 lines
4.2 KiB
Plaintext

SEARCH_DIR( ../lib)
SEARCH_DIR( ../N7121vB1R05/lib)
INCLUDE hardware.ld
INCLUDE configuration.ld
INCLUDE memories.ld
__FILL_VALUE = 0xF71B;
MEMORY
{
TEXT (RX) : ORIGIN = 0x0000000200000000 , LENGTH = 0x10000000
DATA (RW) : ORIGIN = 0x0000000100000100 , LENGTH = 0x10000000
RODATA (R) : ORIGIN = (0x0000000100000000 + (0x06000)), LENGTH = 0x00004000
}
EXTERN(system_call_table user_call_table interrupt_call_table)
__SECUREBOX_COMMBUFFER_START_ADDRESS = (0x3000);
__MMU_RAM_GRANULARITY_BYTES = 16;
SECTIONS
{
INCLUDE phlibSfrUm.ld
.nxp.jcop.securebox.text.SECUREBOX_PRODUCT_NAME (ORIGIN(TEXT)) :
{
FILL(0xF71B);
KEEP (*(.text.VECTOR.system_call_table))
KEEP (*(.text.VECTOR.user_call_table))
KEEP (*(.text.VECTOR.interrupt_call_table))
KEEP(*(.text.bootflow .text.bootflow.*))
*_asm.o(.text .text.*)
*_Int.o(.text .text.*)
*_Usr.o(.text .text.*)
KEEP (*(SORT(.text.compiler_rt.*)))
KEEP (*(SORT(.text.libc.string.mem*)))
KEEP (*(SORT(.text.libc.strtol.*)))
*(EXCLUDE_FILE (*7816L4Parser*.o) .text EXCLUDE_FILE (*7816L4Parser*.o) .text.*)
. = . + 8;
. = ALIGN(512);
} > TEXT
.nxp.jcop.securebox.data.SECUREBOX_PRODUCT_NAME (ORIGIN(DATA)) :
{
FILL(0);
KEEP (*(.section.data.cl_scratchpad))
KEEP (*(.data.gphCl_ScratchPad))
*(.data.dm9 .data.dm9.* .data.DM9 .data.DM9.*)
ASSERT((. & (~ __MRK3_MEM_MASK)) < 512, "Could not place _DM9 objects in first 512 bytes of .data");
*(.data.dm12 .data.dm12.* .data.DM12 .data.DM12.*)
ASSERT((. & (~ __MRK3_MEM_MASK)) < 4096, "Could not place _DM12 objects in first 4096 bytes of .data");
*(SORT_BY_USAGE(.data*))
. = .;
} > DATA
.nxp.jcop.securebox.bss.SECUREBOX_PRODUCT_NAME (NOLOAD) :
{
FILL(0);
*(SORT_BY_USAGE(.bss*)
SORT_BY_USAGE(COMMON))
. = .;
. = ALIGN(__MMU_RAM_GRANULARITY_BYTES);
} > DATA
__bss_start = ADDR(.nxp.jcop.securebox.bss.SECUREBOX_PRODUCT_NAME) & (~ __MRK3_MEM_MASK);
__bss_size = SIZEOF(.nxp.jcop.securebox.bss.SECUREBOX_PRODUCT_NAME);
__bss_end = (__bss_start + __bss_size);
.nxp.jcop.securebox.workspace.SECUREBOX_PRODUCT_NAME (ORIGIN(DATA) + (0x4000)) :
{
FILL(0);
KEEP (*(.section.workspace))
. = .;
. = ALIGN(__MMU_RAM_GRANULARITY_BYTES);
} > DATA
.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME :
{
FILL(0);
KEEP (*(.section.stack))
. = .;
. = ALIGN(__MMU_RAM_GRANULARITY_BYTES);
} > DATA
PROVIDE (___STACK_START = ADDR(.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME));
PROVIDE (___STACK_END = ADDR(.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME) + SIZEOF(.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME));
.nxp.jcop.securebox.rodata.SECUREBOX_PRODUCT_NAME (ORIGIN(RODATA)) :
{
FILL(0);
*(.rodata .rodata.*)
. = . + SIZEOF(.nxp.jcop.securebox.data.SECUREBOX_PRODUCT_NAME);
. = ALIGN(512);
} > RODATA
.nxp.jcop.securebox.nvm.SECUREBOX_PRODUCT_NAME ((0x08000)) :
{
FILL(0);
*(.nvm .nvm.*)
. = ALIGN(512);
} > DATA
.nxp.jcop.securebox.metadata.SECUREBOX_PRODUCT_NAME ORIGIN(VMA_NONE) :
{
SHORT(0x7103);
SHORT(SIZEOF(.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME));
SHORT(SIZEOF(.nxp.jcop.securebox.workspace.SECUREBOX_PRODUCT_NAME));
LONG(SIZEOF(.nxp.jcop.securebox.nvm.SECUREBOX_PRODUCT_NAME));
SHORT(SIZEOF(.nxp.jcop.securebox.data.SECUREBOX_PRODUCT_NAME) + SIZEOF(.nxp.jcop.securebox.bss.SECUREBOX_PRODUCT_NAME));
LONG(SIZEOF(.nxp.jcop.securebox.text.SECUREBOX_PRODUCT_NAME) >> 4);
LONG(SIZEOF(.nxp.jcop.securebox.rodata.SECUREBOX_PRODUCT_NAME) >> 4);
SHORT(0x00A5);
LONG(0xFF0012E6);
LONG(0x00FFED19);
} > VMA_NONE
__SECUREBOX_STACK_SIZE = SIZEOF(.nxp.jcop.securebox.stack.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_WORKSPACE_SIZE = SIZEOF(.nxp.jcop.securebox.workspace.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_NVM_SIZE = SIZEOF(.nxp.jcop.securebox.nvm.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_DATA_SIZE = SIZEOF(.nxp.jcop.securebox.data.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_BSS_SIZE = SIZEOF(.nxp.jcop.securebox.bss.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_TEXT_SIZE = SIZEOF(.nxp.jcop.securebox.text.SECUREBOX_PRODUCT_NAME);
__SECUREBOX_RODATA_SIZE = SIZEOF(.nxp.jcop.securebox.rodata.SECUREBOX_PRODUCT_NAME);
}
SECTIONS
{
INCLUDE common_sections.ld
}