| /* Linker script for the FPGA implementation of the V850E2 NA85E2C cpu core | |
| (CONFIG_V850E2_FPGA85E2C). */ | |
| MEMORY { | |
| /* Reset vector. */ | |
| RESET : ORIGIN = 0, LENGTH = 0x10 | |
| /* Interrupt vectors. */ | |
| INTV : ORIGIN = 0x10, LENGTH = 0x470 | |
| /* The `window' in RAM were we're allowed to load stuff. */ | |
| RAM_LOW : ORIGIN = 0x480, LENGTH = 0x0005FB80 | |
| /* Some more ram above the window were we can put bss &c. */ | |
| RAM_HIGH : ORIGIN = 0x00060000, LENGTH = 0x000A0000 | |
| /* This is the area visible from the outside world (we can use | |
| this only for uninitialized data). */ | |
| VISIBLE : ORIGIN = 0x00200000, LENGTH = 0x00060000 | |
| } | |
| SECTIONS { | |
| .reset : { | |
| __kram_start = . ; | |
| __intv_start = . ; | |
| *(.intv.reset) /* Reset vector */ | |
| } > RESET | |
| .ram_low : { | |
| __r0_ram = . ; /* Must be near address 0. */ | |
| . = . + 32 ; | |
| TEXT_CONTENTS | |
| DATA_CONTENTS | |
| ROOT_FS_CONTENTS | |
| RAMK_INIT_CONTENTS_NO_END | |
| INITRAMFS_CONTENTS | |
| } > RAM_LOW | |
| /* Where the interrupt vectors are initially loaded. */ | |
| __intv_load_start = . ; | |
| .intv : { | |
| *(.intv.common) /* Vectors common to all v850e proc. */ | |
| *(.intv.mach) /* Machine-specific int. vectors. */ | |
| __intv_end = . ; | |
| } > INTV AT> RAM_LOW | |
| .ram_high : { | |
| /* This is here so that when we free init memory the | |
| load-time copy of the interrupt vectors and any empty | |
| space at the end of the `RAM_LOW' area is freed too. */ | |
| . = ALIGN (4096); | |
| __init_end = . ; | |
| BSS_CONTENTS | |
| __kram_end = . ; | |
| BOOTMAP_CONTENTS | |
| } > RAM_HIGH | |
| .visible : { | |
| _memcons_output = . ; | |
| . = . + 0x8000 ; | |
| _memcons_output_end = . ; | |
| } > VISIBLE | |
| } |