fpga85e2c.ld 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /* Linker script for the FPGA implementation of the V850E2 NA85E2C cpu core
  2. (CONFIG_V850E2_FPGA85E2C). */
  3. MEMORY {
  4. /* Reset vector. */
  5. RESET : ORIGIN = 0, LENGTH = 0x10
  6. /* Interrupt vectors. */
  7. INTV : ORIGIN = 0x10, LENGTH = 0x470
  8. /* The `window' in RAM were we're allowed to load stuff. */
  9. RAM_LOW : ORIGIN = 0x480, LENGTH = 0x0005FB80
  10. /* Some more ram above the window were we can put bss &c. */
  11. RAM_HIGH : ORIGIN = 0x00060000, LENGTH = 0x000A0000
  12. /* This is the area visible from the outside world (we can use
  13. this only for uninitialized data). */
  14. VISIBLE : ORIGIN = 0x00200000, LENGTH = 0x00060000
  15. }
  16. SECTIONS {
  17. .reset : {
  18. __kram_start = . ;
  19. __intv_start = . ;
  20. *(.intv.reset) /* Reset vector */
  21. } > RESET
  22. .ram_low : {
  23. __r0_ram = . ; /* Must be near address 0. */
  24. . = . + 32 ;
  25. TEXT_CONTENTS
  26. DATA_CONTENTS
  27. ROOT_FS_CONTENTS
  28. RAMK_INIT_CONTENTS_NO_END
  29. INITRAMFS_CONTENTS
  30. } > RAM_LOW
  31. /* Where the interrupt vectors are initially loaded. */
  32. __intv_load_start = . ;
  33. .intv : {
  34. *(.intv.common) /* Vectors common to all v850e proc. */
  35. *(.intv.mach) /* Machine-specific int. vectors. */
  36. __intv_end = . ;
  37. } > INTV AT> RAM_LOW
  38. .ram_high : {
  39. /* This is here so that when we free init memory the
  40. load-time copy of the interrupt vectors and any empty
  41. space at the end of the `RAM_LOW' area is freed too. */
  42. . = ALIGN (4096);
  43. __init_end = . ;
  44. BSS_CONTENTS
  45. __kram_end = . ;
  46. BOOTMAP_CONTENTS
  47. } > RAM_HIGH
  48. .visible : {
  49. _memcons_output = . ;
  50. . = . + 0x8000 ;
  51. _memcons_output_end = . ;
  52. } > VISIBLE
  53. }