summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/lpc24xx/startup
diff options
context:
space:
mode:
authorThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-10-05 10:33:31 +0000
committerThomas Doerfler <Thomas.Doerfler@embedded-brains.de>2009-10-05 10:33:31 +0000
commit2c4d98748c365e26285bdc4620d42b43e0b09be8 (patch)
treedb90358429044374573d699573f0ff56998def1f /c/src/lib/libbsp/arm/lpc24xx/startup
parentrenamed lpc24xx BSPs (diff)
downloadrtems-2c4d98748c365e26285bdc4620d42b43e0b09be8.tar.bz2
renamed lpc24xx BSPs, reorganized linkcmds
Diffstat (limited to 'c/src/lib/libbsp/arm/lpc24xx/startup')
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds35
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc247855
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs56
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs_ram55
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea56
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram56
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext60
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int60
8 files changed, 233 insertions, 200 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds
index 165c9bca22..cab8310661 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds
@@ -1,34 +1,3 @@
-/**
- * @file
- *
- * LPC2478 (QVGA Base Board from Embedded Artists).
- */
-
-/*
- * WARNING: This is likely not what you want. You need Binutils with the
- * REGION_ALIAS feature and the version in the comment below. This is only to
- * provide linkable tests.
- */
-
-MEMORY {
- REGION_START (AIW) : ORIGIN = 0x100000, LENGTH = 0x100000
- REGION_VECTOR (AIW) : ORIGIN = 0x200000, LENGTH = 0x100000
- REGION_TEXT (AIW) : ORIGIN = 0x300000, LENGTH = 0x100000
- REGION_TEXT_LOAD (AIW) : ORIGIN = 0x400000, LENGTH = 0x100000
- REGION_RODATA (AIW) : ORIGIN = 0x500000, LENGTH = 0x100000
- REGION_RODATA_LOAD (AIW) : ORIGIN = 0x600000, LENGTH = 0x100000
- REGION_DATA (AIW) : ORIGIN = 0x700000, LENGTH = 0x100000
- REGION_DATA_LOAD (AIW) : ORIGIN = 0x800000, LENGTH = 0x100000
- REGION_FAST (AIW) : ORIGIN = 0x900000, LENGTH = 0x100000
- REGION_FAST_LOAD (AIW) : ORIGIN = 0xa00000, LENGTH = 0x100000
- REGION_BSS (AIW) : ORIGIN = 0xb00000, LENGTH = 0x100000
- REGION_WORK (AIW) : ORIGIN = 0xc00000, LENGTH = 0x100000
- REGION_STACK (AIW) : ORIGIN = 0xd00000, LENGTH = 0x100000
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-/*
-
MEMORY {
RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
@@ -44,11 +13,9 @@ REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
REGION_ALIAS ("REGION_DATA", RAM_EXT);
REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_INT);
+REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
REGION_ALIAS ("REGION_BSS", RAM_EXT);
REGION_ALIAS ("REGION_WORK", RAM_EXT);
REGION_ALIAS ("REGION_STACK", RAM_INT);
-*/
-
INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478 b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478
deleted file mode 100644
index 568c29ecb5..0000000000
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @file
- *
- * LPC2478 (QVGA Base Board from Embedded Artists).
- */
-
-/*
- * WARNING: This is likely not what you want. You need Binutils with the
- * REGION_ALIAS feature and the version in the comment below. This is only to
- * provide linkable tests.
- */
-
-MEMORY {
- REGION_START (AIW) : ORIGIN = 0x100000, LENGTH = 0x100000
- REGION_VECTOR (AIW) : ORIGIN = 0x200000, LENGTH = 0x100000
- REGION_TEXT (AIW) : ORIGIN = 0x300000, LENGTH = 0x100000
- REGION_TEXT_LOAD (AIW) : ORIGIN = 0x400000, LENGTH = 0x100000
- REGION_RODATA (AIW) : ORIGIN = 0x500000, LENGTH = 0x100000
- REGION_RODATA_LOAD (AIW) : ORIGIN = 0x600000, LENGTH = 0x100000
- REGION_DATA (AIW) : ORIGIN = 0x700000, LENGTH = 0x100000
- REGION_DATA_LOAD (AIW) : ORIGIN = 0x800000, LENGTH = 0x100000
- REGION_FAST (AIW) : ORIGIN = 0x900000, LENGTH = 0x100000
- REGION_FAST_LOAD (AIW) : ORIGIN = 0xa00000, LENGTH = 0x100000
- REGION_BSS (AIW) : ORIGIN = 0xb00000, LENGTH = 0x100000
- REGION_WORK (AIW) : ORIGIN = 0xc00000, LENGTH = 0x100000
- REGION_STACK (AIW) : ORIGIN = 0xd00000, LENGTH = 0x100000
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-/*
-
-MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
- RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
- ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-REGION_ALIAS ("REGION_START", RAM_EXT);
-REGION_ALIAS ("REGION_VECTOR", RAM_INT);
-REGION_ALIAS ("REGION_TEXT", RAM_EXT);
-REGION_ALIAS ("REGION_TEXT_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_RODATA", RAM_EXT);
-REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_DATA", RAM_EXT);
-REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_INT);
-REGION_ALIAS ("REGION_BSS", RAM_EXT);
-REGION_ALIAS ("REGION_WORK", RAM_EXT);
-REGION_ALIAS ("REGION_STACK", RAM_INT);
-
-*/
-
-INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs
deleted file mode 100644
index 41b7a3c41f..0000000000
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * @file
- *
- * LPC2478 (NCS, bootloader configuration).
- */
-
-/*
- * WARNING: This is likely not what you want. You need Binutils with the
- * REGION_ALIAS feature and the version in the comment below. This is only to
- * provide linkable tests.
- */
-
-MEMORY {
- REGION_START (AIW) : ORIGIN = 0x100000, LENGTH = 0x100000
- REGION_VECTOR (AIW) : ORIGIN = 0x200000, LENGTH = 0x100000
- REGION_TEXT (AIW) : ORIGIN = 0x300000, LENGTH = 0x100000
- REGION_TEXT_LOAD (AIW) : ORIGIN = 0x400000, LENGTH = 0x100000
- REGION_RODATA (AIW) : ORIGIN = 0x500000, LENGTH = 0x100000
- REGION_RODATA_LOAD (AIW) : ORIGIN = 0x600000, LENGTH = 0x100000
- REGION_DATA (AIW) : ORIGIN = 0x700000, LENGTH = 0x100000
- REGION_DATA_LOAD (AIW) : ORIGIN = 0x800000, LENGTH = 0x100000
- REGION_FAST (AIW) : ORIGIN = 0x900000, LENGTH = 0x100000
- REGION_FAST_LOAD (AIW) : ORIGIN = 0xa00000, LENGTH = 0x100000
- REGION_BSS (AIW) : ORIGIN = 0xb00000, LENGTH = 0x100000
- REGION_WORK (AIW) : ORIGIN = 0xc00000, LENGTH = 0x100000
- REGION_STACK (AIW) : ORIGIN = 0xd00000, LENGTH = 0x100000
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-/*
-
-MEMORY {
- RAM_VEC (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
- RAM_INT (AIW) : ORIGIN = 0x40008000, LENGTH = 32k
- RAM_EXT (AIW) : ORIGIN = 0xa0c00000, LENGTH = 4M
- ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-REGION_ALIAS ("REGION_START", ROM_INT);
-REGION_ALIAS ("REGION_VECTOR", RAM_VEC);
-REGION_ALIAS ("REGION_TEXT", ROM_INT);
-REGION_ALIAS ("REGION_TEXT_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_RODATA", ROM_INT);
-REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_DATA", RAM_EXT);
-REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_INT);
-REGION_ALIAS ("REGION_BSS", RAM_EXT);
-REGION_ALIAS ("REGION_WORK", RAM_EXT);
-REGION_ALIAS ("REGION_STACK", RAM_INT);
-
-*/
-
-INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs_ram
deleted file mode 100644
index 31351b23d4..0000000000
--- a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2478_ncs_ram
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * @file
- *
- * LPC2478 (NCS, code and data in external RAM).
- */
-
-/*
- * WARNING: This is likely not what you want. You need Binutils with the
- * REGION_ALIAS feature and the version in the comment below. This is only to
- * provide linkable tests.
- */
-
-MEMORY {
- REGION_START (AIW) : ORIGIN = 0x100000, LENGTH = 0x100000
- REGION_VECTOR (AIW) : ORIGIN = 0x200000, LENGTH = 0x100000
- REGION_TEXT (AIW) : ORIGIN = 0x300000, LENGTH = 0x100000
- REGION_TEXT_LOAD (AIW) : ORIGIN = 0x400000, LENGTH = 0x100000
- REGION_RODATA (AIW) : ORIGIN = 0x500000, LENGTH = 0x100000
- REGION_RODATA_LOAD (AIW) : ORIGIN = 0x600000, LENGTH = 0x100000
- REGION_DATA (AIW) : ORIGIN = 0x700000, LENGTH = 0x100000
- REGION_DATA_LOAD (AIW) : ORIGIN = 0x800000, LENGTH = 0x100000
- REGION_FAST (AIW) : ORIGIN = 0x900000, LENGTH = 0x100000
- REGION_FAST_LOAD (AIW) : ORIGIN = 0xa00000, LENGTH = 0x100000
- REGION_BSS (AIW) : ORIGIN = 0xb00000, LENGTH = 0x100000
- REGION_WORK (AIW) : ORIGIN = 0xc00000, LENGTH = 0x100000
- REGION_STACK (AIW) : ORIGIN = 0xd00000, LENGTH = 0x100000
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-/*
-
-MEMORY {
- RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
- RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 16M
- ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
- NIRVANA : ORIGIN = 0, LENGTH = 0
-}
-
-REGION_ALIAS ("REGION_START", RAM_EXT);
-REGION_ALIAS ("REGION_VECTOR", RAM_INT);
-REGION_ALIAS ("REGION_TEXT", RAM_EXT);
-REGION_ALIAS ("REGION_TEXT_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_RODATA", RAM_EXT);
-REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_DATA", RAM_EXT);
-REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
-REGION_ALIAS ("REGION_FAST", RAM_INT);
-REGION_ALIAS ("REGION_FAST_LOAD", RAM_INT);
-REGION_ALIAS ("REGION_BSS", RAM_EXT);
-REGION_ALIAS ("REGION_WORK", RAM_EXT);
-REGION_ALIAS ("REGION_STACK", RAM_INT);
-
-*/
-
-INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
new file mode 100644
index 0000000000..ca6b52a4fe
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea
@@ -0,0 +1,56 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_linker_ea
+ *
+ * @brief Memory map.
+ */
+
+/**
+ * @defgroup lpc24xx_linker_ea QVGA Base Board Memory Map
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief QVGA Base Board from Embedded Artists (LPC2478) memory map.
+ *
+ * <table>
+ * <tr><th>Region Name</th><th>Region Begin</th><th>Region Size</th></tr>
+ * <tr><td>RAM_INT</td><td>0x40000000</td><td>64k</td></tr>
+ * <tr><td>RAM_EXT</td><td>0xa0000000</td><td>32M</td></tr>
+ * </table>
+ *
+ * <table>
+ * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
+ * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
+ * <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.data</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.fast</td><td>RAM_INT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.bss</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.work</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.stack</td><td>RAM_INT</td><td></td></tr>
+ * </table>
+ */
+
+MEMORY {
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+ RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
+ NIRVANA : ORIGIN = 0, LENGTH = 0
+}
+
+REGION_ALIAS ("REGION_START", RAM_EXT);
+REGION_ALIAS ("REGION_VECTOR", RAM_INT);
+REGION_ALIAS ("REGION_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_RODATA", RAM_EXT);
+REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST", RAM_INT);
+REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
new file mode 100644
index 0000000000..5322c7a725
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram
@@ -0,0 +1,56 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_linker_ncs_ram
+ *
+ * @brief Memory map.
+ */
+
+/**
+ * @defgroup lpc24xx_linker_ncs_ram NCS Application Memory Map
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief NCS application memory map.
+ *
+ * <table>
+ * <tr><th>Region Name</th><th>Region Begin</th><th>Region Size</th></tr>
+ * <tr><td>RAM_INT</td><td>0x40000000</td><td>64k</td></tr>
+ * <tr><td>RAM_EXT</td><td>0xa0000000</td><td>8M</td></tr>
+ * </table>
+ *
+ * <table>
+ * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
+ * <tr><td>.start</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
+ * <tr><td>.text</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.rodata</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.data</td><td>RAM_EXT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.fast</td><td>RAM_INT</td><td>RAM_EXT</td></tr>
+ * <tr><td>.bss</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.work</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.stack</td><td>RAM_INT</td><td></td></tr>
+ * </table>
+ */
+
+MEMORY {
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+ RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
+ NIRVANA : ORIGIN = 0, LENGTH = 0
+}
+
+REGION_ALIAS ("REGION_START", RAM_EXT);
+REGION_ALIAS ("REGION_VECTOR", RAM_INT);
+REGION_ALIAS ("REGION_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_RODATA", RAM_EXT);
+REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST", RAM_INT);
+REGION_ALIAS ("REGION_FAST_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
new file mode 100644
index 0000000000..f4518090d4
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext
@@ -0,0 +1,60 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_linker_ncs_rom_ext
+ *
+ * @brief Memory map.
+ */
+
+/**
+ * @defgroup lpc24xx_linker_ncs_rom_ext NCS Bootloader (LPC2470) Memory Map
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief NCS bootloader (LPC2470) memory map.
+ *
+ * <table>
+ * <tr><th>Region Name</th><th>Region Begin</th><th>Region Size</th></tr>
+ * <tr><td>RAM_INT</td><td>0x40000000</td><td>64k</td></tr>
+ * <tr><td>RAM_EXT</td><td>0xa0400000</td><td>4M</td></tr>
+ * <tr><td>ROM_BOOT</td><td>0x81000000</td><td>16k</td></tr>
+ * <tr><td>ROM_EXT</td><td>0x81010000</td><td>2M - 64k</td></tr>
+ * </table>
+ *
+ * <table>
+ * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
+ * <tr><td>.start</td><td>ROM_BOOT</td><td>ROM_BOOT</td></tr>
+ * <tr><td>.vector</td><td>RAM_INT</td><td></td></tr>
+ * <tr><td>.text</td><td>RAM_EXT</td><td>ROM_EXT</td></tr>
+ * <tr><td>.rodata</td><td>RAM_EXT</td><td>ROM_EXT</td></tr>
+ * <tr><td>.data</td><td>RAM_EXT</td><td>ROM_EXT</td></tr>
+ * <tr><td>.fast</td><td>RAM_INT</td><td>ROM_BOOT</td></tr>
+ * <tr><td>.bss</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.work</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.stack</td><td>RAM_INT</td><td></td></tr>
+ * </table>
+ */
+
+MEMORY {
+ RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+ RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
+ ROM_BOOT (RX) : ORIGIN = 0x81000000, LENGTH = 16k
+ ROM_EXT (RX) : ORIGIN = 0x81010000, LENGTH = 2M - 64k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
+}
+
+REGION_ALIAS ("REGION_START", ROM_BOOT);
+REGION_ALIAS ("REGION_VECTOR", RAM_INT);
+REGION_ALIAS ("REGION_TEXT", RAM_EXT);
+REGION_ALIAS ("REGION_TEXT_LOAD", ROM_EXT);
+REGION_ALIAS ("REGION_RODATA", RAM_EXT);
+REGION_ALIAS ("REGION_RODATA_LOAD", ROM_EXT);
+REGION_ALIAS ("REGION_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_DATA_LOAD", ROM_EXT);
+REGION_ALIAS ("REGION_FAST", RAM_INT);
+REGION_ALIAS ("REGION_FAST_LOAD", ROM_BOOT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.base
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
new file mode 100644
index 0000000000..a46145d333
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int
@@ -0,0 +1,60 @@
+/**
+ * @file
+ *
+ * @ingroup lpc24xx_linker_ncs_rom_int
+ *
+ * @brief Memory map.
+ */
+
+/**
+ * @defgroup lpc24xx_linker_ncs_rom_int NCS Bootloader (LPC2478) Memory Map
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief NCS bootloader (LPC2478) memory map.
+ *
+ * <table>
+ * <tr><th>Region Name</th><th>Region Begin</th><th>Region Size</th></tr>
+ * <tr><td>RAM_VEC</td><td>0x40000000</td><td>32k</td></tr>
+ * <tr><td>RAM_INT</td><td>0x40008000</td><td>32k</td></tr>
+ * <tr><td>RAM_EXT</td><td>0xa0400000</td><td>4M</td></tr>
+ * <tr><td>ROM_INT</td><td>0x00000000</td><td>512k - 8k</td></tr>
+ * </table>
+ *
+ * <table>
+ * <tr><th>Section Name</th><th>Section Runtime Region</th><th>Section Load Region</th></tr>
+ * <tr><td>.start</td><td>ROM_INT</td><td>ROM_INT</td></tr>
+ * <tr><td>.vector</td><td>RAM_VEC</td><td></td></tr>
+ * <tr><td>.text</td><td>ROM_INT</td><td>ROM_INT</td></tr>
+ * <tr><td>.rodata</td><td>ROM_INT</td><td>ROM_INT</td></tr>
+ * <tr><td>.data</td><td>RAM_EXT</td><td>ROM_INT</td></tr>
+ * <tr><td>.fast</td><td>RAM_INT</td><td>ROM_INT</td></tr>
+ * <tr><td>.bss</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.work</td><td>RAM_EXT</td><td></td></tr>
+ * <tr><td>.stack</td><td>RAM_INT</td><td></td></tr>
+ */
+
+
+MEMORY {
+ RAM_VEC (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+ RAM_INT (AIW) : ORIGIN = 0x40008000, LENGTH = 32k
+ RAM_EXT (AIW) : ORIGIN = 0xa0400000, LENGTH = 4M
+ ROM_INT (RX) : ORIGIN = 0x00000000, LENGTH = 512k - 8k
+ NIRVANA : ORIGIN = 0, LENGTH = 0
+}
+
+REGION_ALIAS ("REGION_START", ROM_INT);
+REGION_ALIAS ("REGION_VECTOR", RAM_VEC);
+REGION_ALIAS ("REGION_TEXT", ROM_INT);
+REGION_ALIAS ("REGION_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_RODATA", ROM_INT);
+REGION_ALIAS ("REGION_RODATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_DATA", RAM_EXT);
+REGION_ALIAS ("REGION_DATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST", RAM_INT);
+REGION_ALIAS ("REGION_FAST_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.base