smartfusion2_relocate_to_external_ram.sct 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. ;*******************************************************************************
  2. ; (c) Copyright 2015 Microsemi SoC Products Group. All rights reserved.
  3. ; SmartFusion2 scatter file for relocating code to external RAM.
  4. ;
  5. ; SVN $Revision: 7419 $
  6. ; SVN $Date: 2015-05-15 16:50:21 +0100 (Fri, 15 May 2015) $
  7. ;
  8. ; * Some current (April 2015) dev kit memory map possibilities are
  9. ; * --Type-------Device-----------address start---address end----size---Dbus--RAM IC-------SF2--Comment---------------
  10. ; * --eNVM-------M2S010-----------0x60000000------0x6007FFFF-----256KB---------------------010------------------------
  11. ; * --eNVM-------M2S090-----------0x60000000------0x6007FFFF-----512KB---------------------090------------------------
  12. ; * --eSRAM------M2Sxxx-----------0x20000000------0x2000FFFF-----64KB----------------------xxx--All have same amount--
  13. ; * --eSRAM------M2Sxxx-----------0x20000000------0x20013FFF-----80KB----------------------xxx--If ECC/SECDED not used
  14. ; * --Fabric-----M2S010-----------0x30000000------0x6007FFFF-----400Kb---------------------010--note-K bits-----------
  15. ; * --Fabric-----M2S090-----------0x30000000------0x6007FFFF-----2074Kb--------------------090--note-K bits-----------
  16. ; * --LPDDR------STARTER-KIT------0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----050------------------------
  17. ; * --LPDDR------484-STARTER-KIT--0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16-----010------------------------
  18. ; * --LPDDR------SEC-EVAL-KIT-----0xA0000000------0xA3FFFFFF-----64MB---16--MT46H32M16LF---090--Security eval kit-----
  19. ; * --DDR3-------ADevKit----------0xA0000000------0xBFFFFFFF-----1GB----32--MT41K256M8DA---150------------------------
  20. ; * --Some older physical memory map possibilities are
  21. ; * --Type-------location---------address start---address end----size---Dbus---RAM IC------SF2--Comment--------------
  22. ; * --LPDDR------EVAL KIT---------0xA0000000------0xA3FFFFFF-----64MB-=-16--MT46H32M16LF---025--Eval Kit--------------
  23. ; * --DDR3-------DevKit-----------0xA0000000------0xAFFFFFFF-----512MB--16--MT41K256M8DA---050------------------------
  24. ;
  25. ; Example linker scripts use lowest practicl values so will work accross dev kits
  26. ; eNVM=256KB eRAM=64KB External memory = 64MB
  27. FLASH_LOAD 0x60000000 0x40000
  28. {
  29. ; All code required on start-up located here before relocation has occured
  30. ER_RO 0x60000000 0x40000
  31. {
  32. *.o (RESET, +First)
  33. *(InRoot$$Sections)
  34. startup_m2sxxx.o
  35. system_m2sxxx.o
  36. sys_config.o
  37. low_level_init.o
  38. sys_config_SERDESIF_?.o
  39. mscc_post_hw_cfg_init.o
  40. ecc_error_handler.o
  41. }
  42. ; MDDR_RAM 0xA0000000 0x4000000
  43. ; -MDDR is mapped to address space from 0 on startup
  44. ; This allows the use of cache which is restriced to this area.
  45. ; Code is copied to RAM_EXEC space on startup by boot code.
  46. RAM_EXEC 0x00000000 0x00040000
  47. {
  48. .ANY (+RO)
  49. }
  50. ; Heap size is defined in startup_m2sxxx.s
  51. ; Heap will be added after RW data in ER_RW unless explicitly
  52. ; allocated a meemory region in .sct file
  53. ; Stack size is defined in startup_m2sxxx.s
  54. ; Stack will be added after heap in ER_RW unless explicitly
  55. ; allocated a memory region in .sct file as is the case below
  56. STACKS 0x20000000 UNINIT
  57. {
  58. startup_m2sxxx.o (STACK)
  59. }
  60. ; All internal RAM has been allocatd to the stack
  61. ; INTERNAL_RAM 0x20008000 0x10000
  62. ; {
  63. ; .ANY (+RW +ZI)
  64. ; }
  65. ; MDDR_RAM 0xA0000000 0x4000000 So use top half of this for RW data
  66. ; Bottom half has been assigned to R only code already
  67. ER_RW 0xA2000000 0x2000000
  68. {
  69. .ANY (+RW +ZI)
  70. }
  71. }