| /* 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 |
| } |