📄 gsm_is_secure.template
字号:
/*
* Locosto Standalone PSP build for Virtio Linker Command file
*
* Target : ARM
*
* Platform : Locosto Virtio
*
* Copyright (c) Texas Instruments 2005
*
* Flash size -- 16MB, check I-sample spec
* remove Internal ROM
* Jump table check from release notes
* .out file is extracted and placed in Flash, copied to RAM in Cal+, store addresses for future reference
*/
-c -heap 64/* Autoinitialize variables at runtime */
/*********************************/
/* SPECIFY THE SYSTEM MEMORY MAP */
/*********************************/
MEMORY
{
/* Secure Boot ROM */
BOOT_MEM (RXI) : org = 0x00000000 len = 0x00100000
/* Will Keep External RAM for I-Sample to start With */
/* CS0: External SRAM 2 Mbytes */
D_MEM0 (RW) : org = 0x00400000 len = 0x00800000
/* CS3: Flash 6 Mbytes */
/* Breaking into Multiple Segments , Thanks to V1.22E the Pre
* historic Tool chain */
P_MEM0 (RXI) : org = 0x06000000 len = 0x00410000
P_MEM1 (RXI) : org = 0x06410000 len = 0x002f0000
/* FFS Area */
FFS_MEM (RI) : org = 0x06700000 len = 0x00100000
/* CS3: Flash 8 Mbytes */
/* Breaking into Multiple Segments , Thanks to V1.22E the Pre
* historic Tool chain */
P_MEM2 (RXI) : org = 0x06800000 len = 0x00400000
P_MEM3 (RXI) : org = 0x06C00000 len = 0x00400000
/* CS6: Locosto Internal SRAM 320 kbytes */
/* Code & Variables Memory */
S_MEM (RXW) : org = 0x08000000 len = 0x00050000
}
/***********************************************/
/* SPECIFY THE SECTIONS ALLOCATION INTO MEMORY */
/***********************************************/
/*
* Since the bootloader directly calls the INT_Initialize() routine located
* in int.s, this int.s code must always be mapped at the same address
* (usually in the second flash sector). Its length is about 0x500 bytes.
* Then comes the code that need to be loaded into the internal RAM.
*/
SECTIONS
{
.cert : {} > 0x06000000
.text : {} >> P_MEM0 /* Code. .text must be contiguous to .cert */
/* Entry point of the Firmware */
.start : {} > P_MEM0
/*
* Interrupt vector re-mapping management
*/
.intload : {} > P_MEM0
.indint : {} load = P_MEM0, run = 0x0800000C
/*
* Firmware's certificate location
*/
.inttext : {} > P_MEM0 /* int.s Code */
.bss_dar : > S_MEM /* DAR SWE Variables */
{
$(BSS_DAR_LIB)
}
GROUP > S_MEM |D_MEM0 /* Will be place in S_MEM if it fits there */
{
S_D_Mem
.bss /* Global & Static Variables */
{
$(BSS_BOOT_LIB)
$(BSS_LIBS)
}
E_D_Mem
}
/*
* .text and .const sections which must be mapped in internal RAM.
*/
.ldfl : {} > P_MEM2 /* Used to know the start load address */
GROUP load = P_MEM2, run = 0x08000044
{
S_P_Mem /* Label of start address of .text & .const sections in Int. RAM */
.PIntmem
{
$(LOOP_LIB)
}
/* Add for EMIFS changes into internal RAM */
.emifconf
.nop_delay_sect
E_P_Mem /* Label of end address of .text and .const sections in Int. RAM */
}
/*
* The rest of the code is mapped in flash, however the trampolines
* load address should be consistent with .text.
*/
COMMENT2START
`trampolines load = P_MEM1 , run = S_MEM
COMMENT2END
/*
* The rest of the constants is mapped in flash.
*/
.cinit : {} > P_MEM0 /* Initialization Tables */
/* OMAPS00058957 start */
.pinit : {} > P_MEM1 /* C++ constructors if they exist */
/* OMAPS00058957 end */
.const : {} >> P_MEM0 | P_MEM1 /* Constant Data */
.drp_flash_data : {} > P_MEM1
.flashcnst : {} > P_MEM1
.stackandheap :> S_MEM /* System Stacks, etc... */
{
/* Leave 20 32bit words for register pushes. */
. = align(8);
. += 20 * 4;
/* Stack for abort and/or undefined modes. */
exception_stack = .;
/* Leave 38 32bit words for state saving on exceptions. */
_xdump_buffer = .;
. += 38 * 4;
. = align(8);
/* Beginning of stacks and heap area - 2.75 kbytes (int.s) */
stack_segment = .;
. += 0xB00;
}
.data : {} > S_MEM
.r2dbuffer : {} > D_MEM0 /* This Has to remain in external Memory */
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -