summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-06 15:03:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-06-15 15:59:33 +0200
commitd40b09d7e8b3922d27f2b75980e950f0610880c2 (patch)
treef61fd441cea529d0b85bab93dfdbf0953c8ee413
parent7329f55d8f7a025af623ad9cb30ab37694295653 (diff)
downloadrtems-d40b09d7e8b3922d27f2b75980e950f0610880c2.tar.bz2
bsp/lpc24xx: New BSP variants (PLX800 on LPC1778)
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/Makefile.am2
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/configure.ac20
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/include/bspopts.h.in4
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_ram.cfg5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc17xx_plx800_rom_int.cfg5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_ram31
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc17xx_plx800_rom_int31
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 096cf92141..275a934a09 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 9bdfc4c717..29a1fedfbd 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 fb7ecc6caf..3b40a3d889 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 0000000000..a3cf1f0816
--- /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 0000000000..a3cf1f0816
--- /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 0000000000..1f9e6b3048
--- /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 0000000000..02750e7a60
--- /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