204 lines
4.2 KiB
Plaintext
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
|
|
}
|