summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-08-10 18:35:27 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-08-12 19:08:37 +0200
commit6cdc090ff0574a87fbfb17a7095d64583fc9c669 (patch)
treecec33014b94076af64e4daa23c9b22c562ec0c83
parentarm: Add support for FPv4-SP floating point unit (diff)
downloadrtems-6cdc090ff0574a87fbfb17a7095d64583fc9c669.tar.bz2
bsp/lpc24xx: Add LPC40XX variants
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/Makefile.am27
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/configure.ac12
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc11
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_ram.cfg5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_rom_int.cfg5
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/preinstall.am56
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_ram1
-rw-r--r--c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_rom_int1
8 files changed, 99 insertions, 19 deletions
diff --git a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
index 3b5c94fbc0..b2fdd5f3be 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/Makefile.am
@@ -66,19 +66,20 @@ libbspstart_a_SOURCES = ../shared/start/start.S
project_lib_DATA = start.$(OBJEXT)
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
-EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_ram
-EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_ext
-EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_int
-EXTRA_DIST += startup/linkcmds.lpc24xx_plx800_ram
-EXTRA_DIST += startup/linkcmds.lpc24xx_plx800_rom_int
+project_lib_DATA += startup/linkcmds.lpc17xx_ea_ram
+project_lib_DATA += startup/linkcmds.lpc17xx_ea_rom_int
+project_lib_DATA += startup/linkcmds.lpc17xx_plx800_ram
+project_lib_DATA += startup/linkcmds.lpc17xx_plx800_rom_int
+project_lib_DATA += startup/linkcmds.lpc2362
+project_lib_DATA += startup/linkcmds.lpc23xx_tli800
+project_lib_DATA += startup/linkcmds.lpc24xx_ea
+project_lib_DATA += startup/linkcmds.lpc24xx_ncs_ram
+project_lib_DATA += startup/linkcmds.lpc24xx_ncs_rom_ext
+project_lib_DATA += startup/linkcmds.lpc24xx_ncs_rom_int
+project_lib_DATA += startup/linkcmds.lpc24xx_plx800_ram
+project_lib_DATA += startup/linkcmds.lpc24xx_plx800_rom_int
+project_lib_DATA += startup/linkcmds.lpc40xx_ea_ram
+project_lib_DATA += startup/linkcmds.lpc40xx_ea_rom_int
###############################################################################
# LibBSP #
diff --git a/c/src/lib/libbsp/arm/lpc24xx/configure.ac b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
index 737501f553..e3747d5c2e 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/configure.ac
+++ b/c/src/lib/libbsp/arm/lpc24xx/configure.ac
@@ -28,17 +28,17 @@ 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],[lpc17xx_ea*],[96000000U])
+RTEMS_BSPOPTS_SET([LPC24XX_CCLK],[lpc17xx_ea* | lpc40xx_ea*],[96000000U])
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],[lpc17xx_ea*],[2U])
+RTEMS_BSPOPTS_SET([LPC24XX_PCLKDIV],[lpc17xx_ea* | lpc40xx_ea*],[2U])
RTEMS_BSPOPTS_SET([LPC24XX_PCLKDIV],[*],[1U])
RTEMS_BSPOPTS_HELP([LPC24XX_PCLKDIV],[clock divider for default PCLK (PCLK = CCLK / PCLKDIV)])
-RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[lpc17xx_ea*],[2U])
+RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[lpc17xx_ea* | lpc40xx_ea*],[2U])
RTEMS_BSPOPTS_SET([LPC24XX_EMCCLKDIV],[*],[1U])
RTEMS_BSPOPTS_HELP([LPC24XX_EMCCLKDIV],[clock divider for EMCCLK (EMCCLK = CCLK / EMCCLKDIV)])
@@ -60,7 +60,7 @@ RTEMS_BSPOPTS_HELP([LPC24XX_EMC_W9825G2JB75I],[enable Winbond W9825G2JB75I confi
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])
+RTEMS_BSPOPTS_SET([LPC24XX_EMC_IS42S32800B],[lpc17xx_ea_rom_* | lpc40xx_ea_rom_*],[1])
RTEMS_BSPOPTS_HELP([LPC24XX_EMC_IS42S32800B],[enable ISSI IS42S32800B configuration for EMC])
RTEMS_BSPOPTS_SET([LPC24XX_EMC_M29W160E],[lpc24xx_ncs_rom_*],[1])
@@ -112,14 +112,14 @@ RTEMS_BSPOPTS_SET([LPC24XX_STOP_USB],[lpc23*],[])
RTEMS_BSPOPTS_SET([LPC24XX_STOP_USB],[*],[1])
RTEMS_BSPOPTS_HELP([LPC24XX_STOP_USB],[stop USB controller at start-up to avoid DMA interference])
-RTEMS_BSPOPTS_SET([LPC_DMA_CHANNEL_COUNT],[lpc17*],[8])
+RTEMS_BSPOPTS_SET([LPC_DMA_CHANNEL_COUNT],[lpc17* | lpc40*],[8])
RTEMS_BSPOPTS_SET([LPC_DMA_CHANNEL_COUNT],[*],[2])
RTEMS_BSPOPTS_HELP([LPC_DMA_CHANNEL_COUNT],[DMA channel count])
RTEMS_BSPOPTS_SET([BSP_START_RESET_VECTOR],[lpc24xx_ncs_rom_ext],[0x80000040])
RTEMS_BSPOPTS_HELP([BSP_START_RESET_VECTOR],[reset vector address for BSP start])
-RTEMS_BSPOPTS_SET([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[lpc17xx_ea*],[(0x2f << 1)])
+RTEMS_BSPOPTS_SET([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[lpc17xx_ea* | lpc40xx_ea*],[(0x2f << 1)])
RTEMS_BSPOPTS_HELP([BSP_USB_OTG_TRANSCEIVER_I2C_ADDR],[USB OTG transceiver I2C address used by USB stack])
RTEMS_BSP_CLEANUP_OPTIONS(0, 1)
diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc
new file mode 100644
index 0000000000..2c921dbc2d
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx.inc
@@ -0,0 +1,11 @@
+#
+# Config file for LPC40XX.
+#
+
+include $(RTEMS_ROOT)/make/custom/default.cfg
+
+RTEMS_CPU = arm
+
+CPU_CFLAGS = -mthumb -march=armv7-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mtune=cortex-m4
+
+CFLAGS_OPTIMIZE_V = -O2 -g
diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_ram.cfg b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_ram.cfg
new file mode 100644
index 0000000000..4c4eb4d360
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_ram.cfg
@@ -0,0 +1,5 @@
+#
+# Config file for LPC40XX OEM Board from Embedded Artists.
+#
+
+include $(RTEMS_ROOT)/make/custom/lpc40xx.inc
diff --git a/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_rom_int.cfg b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_rom_int.cfg
new file mode 100644
index 0000000000..4c4eb4d360
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/make/custom/lpc40xx_ea_rom_int.cfg
@@ -0,0 +1,5 @@
+#
+# Config file for LPC40XX OEM Board from Embedded Artists.
+#
+
+include $(RTEMS_ROOT)/make/custom/lpc40xx.inc
diff --git a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
index a022b0242d..3bf67a6da3 100644
--- a/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
+++ b/c/src/lib/libbsp/arm/lpc24xx/preinstall.am
@@ -173,3 +173,59 @@ $(PROJECT_LIB)/linkcmds: startup/linkcmds $(PROJECT_LIB)/$(dirstamp)
$(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds
+$(PROJECT_LIB)/linkcmds.lpc17xx_ea_ram: startup/linkcmds.lpc17xx_ea_ram $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc17xx_ea_ram
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc17xx_ea_ram
+
+$(PROJECT_LIB)/linkcmds.lpc17xx_ea_rom_int: startup/linkcmds.lpc17xx_ea_rom_int $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc17xx_ea_rom_int
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc17xx_ea_rom_int
+
+$(PROJECT_LIB)/linkcmds.lpc17xx_plx800_ram: startup/linkcmds.lpc17xx_plx800_ram $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc17xx_plx800_ram
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc17xx_plx800_ram
+
+$(PROJECT_LIB)/linkcmds.lpc17xx_plx800_rom_int: startup/linkcmds.lpc17xx_plx800_rom_int $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc17xx_plx800_rom_int
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc17xx_plx800_rom_int
+
+$(PROJECT_LIB)/linkcmds.lpc2362: startup/linkcmds.lpc2362 $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc2362
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc2362
+
+$(PROJECT_LIB)/linkcmds.lpc23xx_tli800: startup/linkcmds.lpc23xx_tli800 $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc23xx_tli800
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc23xx_tli800
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_ea: startup/linkcmds.lpc24xx_ea $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_ea
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_ea
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_ncs_ram: startup/linkcmds.lpc24xx_ncs_ram $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_ram
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_ram
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_ext: startup/linkcmds.lpc24xx_ncs_rom_ext $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_ext
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_ext
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_int: startup/linkcmds.lpc24xx_ncs_rom_int $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_int
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_ncs_rom_int
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_plx800_ram: startup/linkcmds.lpc24xx_plx800_ram $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_plx800_ram
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_plx800_ram
+
+$(PROJECT_LIB)/linkcmds.lpc24xx_plx800_rom_int: startup/linkcmds.lpc24xx_plx800_rom_int $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc24xx_plx800_rom_int
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc24xx_plx800_rom_int
+
+$(PROJECT_LIB)/linkcmds.lpc40xx_ea_ram: startup/linkcmds.lpc40xx_ea_ram $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc40xx_ea_ram
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc40xx_ea_ram
+
+$(PROJECT_LIB)/linkcmds.lpc40xx_ea_rom_int: startup/linkcmds.lpc40xx_ea_rom_int $(PROJECT_LIB)/$(dirstamp)
+ $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc40xx_ea_rom_int
+TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc40xx_ea_rom_int
+
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_ram b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_ram
new file mode 100644
index 0000000000..d4535963cb
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_ram
@@ -0,0 +1 @@
+INCLUDE linkcmds.lpc17xx_ea_ram
diff --git a/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_rom_int b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_rom_int
new file mode 100644
index 0000000000..612f4916d3
--- /dev/null
+++ b/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc40xx_ea_rom_int
@@ -0,0 +1 @@
+INCLUDE linkcmds.lpc17xx_ea_rom_int