[rtems commit] bsp/lpc24xx: New BSP variants (PLX800 on LPC1778)

Sebastian Huber sebh at rtems.org
Fri Jun 15 13:58:31 UTC 2012


Module:    rtems
Branch:    master
Commit:    d40b09d7e8b3922d27f2b75980e950f0610880c2
Changeset: http://git.rtems.org/rtems/commit/?id=d40b09d7e8b3922d27f2b75980e950f0610880c2

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Wed Jun  6 15:03:37 2012 +0200

bsp/lpc24xx: New BSP variants (PLX800 on LPC1778)

---

 c/src/lib/libbsp/arm/lpc24xx/Makefile.am           |    2 +
 c/src/lib/libbsp/arm/lpc24xx/configure.ac          |   20 ++++++-------
 c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in  |    4 +-
 .../arm/lpc24xx/make/custom/lpc17xx_plx800_ram.cfg |    5 +++
 .../lpc24xx/make/custom/lpc17xx_plx800_rom_int.cfg |    5 +++
 .../lpc24xx/startup/linkcmds.lpc17xx_plx800_ram    |   31 ++++++++++++++++++++
 .../startup/linkcmds.lpc17xx_plx800_rom_int        |   31 ++++++++++++++++++++
 7 files changed, 85 insertions(+), 13 deletions(-)

diff --git a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
index 096cf92..275a934 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
@@ -67,6 +67,8 @@ project_lib_DATA += startup/linkcmds
 EXTRA_DIST = 
 EXTRA_DIST += startup/linkcmds.lpc17xx_ea_ram
 EXTRA_DIST += startup/linkcmds.lpc17xx_ea_rom_int
+EXTRA_DIST += startup/linkcmds.lpc17xx_plx800_ram
+EXTRA_DIST += startup/linkcmds.lpc17xx_plx800_rom_int
 EXTRA_DIST += startup/linkcmds.lpc2362
 EXTRA_DIST += startup/linkcmds.lpc23xx_tli800
 EXTRA_DIST += startup/linkcmds.lpc24xx_ea
diff --git a/c/src/lib/libbsp/arm/lpc24xx/configure.ac b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
index 9bdfc4c..29a1fed 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/configure.ac
+++ b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
@@ -32,21 +32,19 @@ RTEMS_BSPOPTS_HELP([LPC24XX_OSCILLATOR_MAIN],[main oscillator frequency in Hz])
 RTEMS_BSPOPTS_SET([LPC24XX_OSCILLATOR_RTC],[*],[32768U])
 RTEMS_BSPOPTS_HELP([LPC24XX_OSCILLATOR_RTC],[RTC oscillator frequency in Hz])
 
-RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc17*],[120000000U])
-#RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc17*],[96000000U])
-#RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc17*],[48000000U])
+RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc17xx_ea*],[120000000U])
 RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc23*],[58982400U])
 RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc24xx_plx800_*],[51612800U])
 RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[*],[72000000U])
 RTEMS_BSPOPTS_HELP([LPC24XX_CCLK],[CPU clock in Hz])
 
-RTEMS_BSPOPTS_SET([LPC24XX_PCLKDIV],[lpc17*],[2U])
+RTEMS_BSPOPTS_SET([LPC24XX_PCLKDIV],[lpc17xx_ea*],[2U])
 RTEMS_BSPOPTS_SET([LPC24XX_PCLKDIV],[*],[1U])
-RTEMS_BSPOPTS_HELP([LPC24XX_PCLKDIV],[peripheral clock divider for default PCLK (PCLK = CCLK / PCLKDIV)])
+RTEMS_BSPOPTS_HELP([LPC24XX_PCLKDIV],[clock divider for default PCLK (PCLK = CCLK / PCLKDIV)])
 
-RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[lpc17*],[2U])
+RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[lpc17xx_ea*],[2U])
 RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[*],[1U])
-RTEMS_BSPOPTS_HELP([LPC24XX_EMCCLKDIV],[peripheral clock divider for default EMCCLK (EMCCLK = CCLK / EMCCLKDIV)])
+RTEMS_BSPOPTS_HELP([LPC24XX_EMCCLKDIV],[clock divider for EMCCLK (EMCCLK = CCLK / EMCCLKDIV)])
 
 RTEMS_BSPOPTS_SET([LPC24XX_UART_BAUD],[*],[115200U])
 RTEMS_BSPOPTS_HELP([LPC24XX_UART_BAUD],[baud for UARTs])
@@ -60,7 +58,7 @@ RTEMS_BSPOPTS_HELP([LPC24XX_EMC_MT48LC4M16A2],[enable Micron MT48LC4M16A2 config
 
 RTEMS_BSPOPTS_HELP([LPC24XX_EMC_W9825G2JB75I],[enable Winbond W9825G2JB75I configuration for EMC])
 
-RTEMS_BSPOPTS_SET([LPC24XX_EMC_IS42S32800D7],[lpc24xx_plx800_rom_*],[1])
+RTEMS_BSPOPTS_SET([LPC24XX_EMC_IS42S32800D7],[*_plx800_rom_*],[1])
 RTEMS_BSPOPTS_HELP([LPC24XX_EMC_IS42S32800D7],[enable ISSI IS42S32800D7 configuration for EMC])
 
 RTEMS_BSPOPTS_SET([LPC24XX_EMC_IS42S32800B],[lpc17xx_ea_rom_*],[1])
@@ -69,7 +67,7 @@ RTEMS_BSPOPTS_HELP([LPC24XX_EMC_IS42S32800B],[enable ISSI IS42S32800B configurat
 RTEMS_BSPOPTS_SET([LPC24XX_EMC_M29W160E],[lpc24xx_ncs_rom_*],[1])
 RTEMS_BSPOPTS_HELP([LPC24XX_EMC_M29W160E],[enable M29W160E configuration for EMC])
 
-RTEMS_BSPOPTS_SET([LPC24XX_EMC_M29W320E70],[lpc24xx_plx800_rom_*],[1])
+RTEMS_BSPOPTS_SET([LPC24XX_EMC_M29W320E70],[*_plx800_rom_*],[1])
 RTEMS_BSPOPTS_HELP([LPC24XX_EMC_M29W320E70],[enable M29W320E70 configuration for EMC])
 
 RTEMS_BSPOPTS_HELP([LPC24XX_EMC_SST39VF3201],[enable SST39VF3201 configuration for EMC])
@@ -80,12 +78,12 @@ RTEMS_BSPOPTS_HELP([LPC24XX_EMC_TEST],[enable tests for EMC])
 RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_CONSOLE],[*],[0])
 RTEMS_BSPOPTS_HELP([LPC24XX_CONFIG_CONSOLE],[configuration for console (UART 0)])
 
-RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_1],[lpc24xx_plx800_*],[0])
+RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_1],[*_plx800_*],[0])
 RTEMS_BSPOPTS_HELP([LPC24XX_CONFIG_UART_1],[configuration for UART 1])
 
 RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_2],[lpc23*],[0])
 RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_2],[lpc24xx_ncs_*],[0])
-RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_2],[lpc24xx_plx800_*],[0])
+RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_2],[*_plx800_*],[0])
 RTEMS_BSPOPTS_HELP([LPC24XX_CONFIG_UART_2],[configuration for UART 2])
 
 RTEMS_BSPOPTS_SET([LPC24XX_CONFIG_UART_3],[lpc23*],[0])
diff --git a/c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in b/c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in
index fb7ecc6..3b40a3d 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in
+++ b/c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in
@@ -42,7 +42,7 @@
 /* configuration for UART 3 */
 #undef LPC24XX_CONFIG_UART_3
 
-/* peripheral clock divider for default EMCCLK (EMCCLK = CCLK / EMCCLKDIV) */
+/* clock divider for EMCCLK (EMCCLK = CCLK / EMCCLKDIV) */
 #undef LPC24XX_EMCCLKDIV
 
 /* enable ISSI IS42S32800B configuration for EMC */
@@ -81,7 +81,7 @@
 /* RTC oscillator frequency in Hz */
 #undef LPC24XX_OSCILLATOR_RTC
 
-/* peripheral clock divider for default PCLK (PCLK = CCLK / PCLKDIV) */
+/* clock divider for default PCLK (PCLK = CCLK / PCLKDIV) */
 #undef LPC24XX_PCLKDIV
 
 /* stop Ethernet controller at start-up to avoid DMA interference */
diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_ram.cfg b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_ram.cfg
new file mode 100644
index 0000000..a3cf1f0
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_ram.cfg
@@ -0,0 +1,5 @@
+#
+#  Config file for LPC17XX (PLX800).
+#
+
+include $(RTEMS_ROOT)/make/custom/lpc17xx.inc
diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_rom_int.cfg b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_rom_int.cfg
new file mode 100644
index 0000000..a3cf1f0
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_rom_int.cfg
@@ -0,0 +1,5 @@
+#
+#  Config file for LPC17XX (PLX800).
+#
+
+include $(RTEMS_ROOT)/make/custom/lpc17xx.inc
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_ram
new file mode 100644
index 0000000..1f9e6b3
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_ram
@@ -0,0 +1,31 @@
+/**
+ * @file
+ *
+ * @brief Memory map for PLX800 (LPC1778).
+ */
+
+MEMORY {
+	ROM_INT : ORIGIN = 0x00000000, LENGTH = 512k
+	RAM_INT : ORIGIN = 0x10000000, LENGTH = 64k
+	RAM_PER : ORIGIN = 0x20000000, LENGTH = 32k
+	ROM_EXT : ORIGIN = 0x80000000, LENGTH = 4M
+	RAM_EXT : ORIGIN = 0xa0000000, LENGTH = 32M
+}
+
+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_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.armv7m
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_rom_int
new file mode 100644
index 0000000..02750e7
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_rom_int
@@ -0,0 +1,31 @@
+/**
+ * @file
+ *
+ * @brief Memory map for PLX800 (LPC1778).
+ */
+
+MEMORY {
+	ROM_INT : ORIGIN = 0x00000000, LENGTH = 512k
+	RAM_INT : ORIGIN = 0x10000000, LENGTH = 64k
+	RAM_PER : ORIGIN = 0x20000000, LENGTH = 32k
+	ROM_EXT : ORIGIN = 0x80000000, LENGTH = 4M
+	RAM_EXT : ORIGIN = 0xa0000000, LENGTH = 32M
+}
+
+REGION_ALIAS ("REGION_START", ROM_INT);
+REGION_ALIAS ("REGION_VECTOR", RAM_INT);
+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_TEXT", RAM_INT);
+REGION_ALIAS ("REGION_FAST_TEXT_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_FAST_DATA", RAM_INT);
+REGION_ALIAS ("REGION_FAST_DATA_LOAD", ROM_INT);
+REGION_ALIAS ("REGION_BSS", RAM_EXT);
+REGION_ALIAS ("REGION_WORK", RAM_EXT);
+REGION_ALIAS ("REGION_STACK", RAM_INT);
+
+INCLUDE linkcmds.armv7m




More information about the vc mailing list