<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-12-03)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * preinstall.am, shared/lpc/include/lpc-i2s.h,
        shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
        files.
        * Makefile.am: Added header and linker command files intended to be
        used by every ARM BSP.
        * shared/startup/linkcmds.base: Support for EABI and ARM ELF standard.
        * shared/include/linker-symbols.h: Update due to linker command file
        changes.
        * shared/start/start.S, shared/include/start.h: Renamed entry symbol
        from start to _start to avoid namespace conflicts.  Update due to
        linker command file changes.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/ChangeLog.diff?r1=text&tr1=1.82&r2=text&tr2=1.83&diff_format=h">M</a></td><td width='1%'>1.83</td><td width='100%'>c/src/lib/libbsp/arm/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/Makefile.am.diff?r1=text&tr1=1.14&r2=text&tr2=1.15&diff_format=h">M</a></td><td width='1%'>1.15</td><td width='100%'>c/src/lib/libbsp/arm/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/preinstall.am?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/preinstall.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>c/src/lib/libbsp/arm/shared/include/linker-symbols.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/include/start.h.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>c/src/lib/libbsp/arm/shared/include/start.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/start/start.S.diff?r1=text&tr1=1.10&r2=text&tr2=1.11&diff_format=h">M</a></td><td width='1%'>1.11</td><td width='100%'>c/src/lib/libbsp/arm/shared/start/start.S</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>c/src/lib/libbsp/arm/shared/startup/linkcmds.base</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.82 rtems/c/src/lib/libbsp/arm/ChangeLog:1.83
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.82   Tue Nov 23 10:01:09 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog        Fri Dec  3 03:23:51 2010
</font><font color='#997700'>@@ -1,3 +1,17 @@
</font><font color='#000088'>+2010-12-03    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * preinstall.am, shared/lpc/include/lpc-i2s.h,
+       shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
+       files.
+       * Makefile.am: Added header and linker command files intended to be
+       used by every ARM BSP.
+       * shared/startup/linkcmds.base: Support for EABI and ARM ELF standard.
+       * shared/include/linker-symbols.h: Update due to linker command file
+       changes.
+       * shared/start/start.S, shared/include/start.h: Renamed entry symbol
+       from start to _start to avoid namespace conflicts.  Update due to
+       linker command file changes.
+
</font> 2010-11-23        Gedare Bloom <giddyup44@yahoo.com>
 
        PR 1719/cpukit

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/Makefile.am:1.14 rtems/c/src/lib/libbsp/arm/Makefile.am:1.15
--- rtems/c/src/lib/libbsp/arm/Makefile.am:1.14 Fri Apr 30 08:21:08 2010
+++ rtems/c/src/lib/libbsp/arm/Makefile.am      Fri Dec  3 03:23:51 2010
</font><font color='#997700'>@@ -9,6 +9,13 @@
</font> ## added but it is present in the source tree.
 SUBDIRS = @RTEMS_BSP_FAMILY@
 
<font color='#000088'>+include_bspdir = $(includedir)/bsp
+include_bsp_HEADERS = shared/include/linker-symbols.h
+
+dist_project_lib_DATA = shared/startup/linkcmds.base
+dist_project_lib_DATA += shared/startup/linkcmds.armv4
+dist_project_lib_DATA += shared/startup/linkcmds.armv7
+
</font> EXTRA_DIST =
 
 # comm
<font color='#997700'>@@ -18,5 +25,6 @@
</font> # abort
 EXTRA_DIST += shared/abort/simple_abort.c
 
<font color='#000088'>+include $(srcdir)/preinstall.am
</font> include $(top_srcdir)/../../../automake/subdirs.am
 include $(top_srcdir)/../../../automake/local.am

<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/preinstall.am:1.1
--- /dev/null   Fri Dec  3 04:10:50 2010
+++ rtems/c/src/lib/libbsp/arm/preinstall.am    Fri Dec  3 03:23:51 2010
</font><font color='#997700'>@@ -0,0 +1,41 @@
</font><font color='#000088'>+## Automatically generated by ampolish3 - Do not edit
+
+if AMPOLISH3
+$(srcdir)/preinstall.am: Makefile.am
+       $(AMPOLISH3) $(srcdir)/Makefile.am > $(srcdir)/preinstall.am
+endif
+
+PREINSTALL_DIRS =
+DISTCLEANFILES = $(PREINSTALL_DIRS)
+
+all-am: $(PREINSTALL_FILES)
+
+PREINSTALL_FILES =
+CLEANFILES = $(PREINSTALL_FILES)
+
+$(PROJECT_LIB)/$(dirstamp):
+       @$(MKDIR_P) $(PROJECT_LIB)
+       @: > $(PROJECT_LIB)/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_LIB)/$(dirstamp)
+
+$(PROJECT_INCLUDE)/bsp/$(dirstamp):
+       @$(MKDIR_P) $(PROJECT_INCLUDE)/bsp
+       @: > $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+PREINSTALL_DIRS += $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+
+$(PROJECT_INCLUDE)/bsp/linker-symbols.h: shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
+
+$(PROJECT_LIB)/linkcmds.base: shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
+
+$(PROJECT_LIB)/linkcmds.armv4: shared/startup/linkcmds.armv4 $(PROJECT_LIB)/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.armv4
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.armv4
+
+$(PROJECT_LIB)/linkcmds.armv7: shared/startup/linkcmds.armv7 $(PROJECT_LIB)/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.armv7
+PREINSTALL_FILES += $(PROJECT_LIB)/linkcmds.armv7
+
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.6 rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.7
--- rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h:1.6      Mon Jun 21 07:28:36 2010
+++ rtems/c/src/lib/libbsp/arm/shared/include/linker-symbols.h  Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -74,21 +74,31 @@
</font> LINKER_SYMBOL(bsp_section_text_end)
 LINKER_SYMBOL(bsp_section_text_size)
 LINKER_SYMBOL(bsp_section_text_load_begin)
<font color='#000088'>+LINKER_SYMBOL(bsp_section_text_load_end)
</font> 
 LINKER_SYMBOL(bsp_section_rodata_begin)
 LINKER_SYMBOL(bsp_section_rodata_end)
 LINKER_SYMBOL(bsp_section_rodata_size)
 LINKER_SYMBOL(bsp_section_rodata_load_begin)
<font color='#000088'>+LINKER_SYMBOL(bsp_section_rodata_load_end)
</font> 
 LINKER_SYMBOL(bsp_section_data_begin)
 LINKER_SYMBOL(bsp_section_data_end)
 LINKER_SYMBOL(bsp_section_data_size)
 LINKER_SYMBOL(bsp_section_data_load_begin)
<font color='#000088'>+LINKER_SYMBOL(bsp_section_data_load_end)
</font> 
<font color='#880000'>-LINKER_SYMBOL(bsp_section_fast_begin)
-LINKER_SYMBOL(bsp_section_fast_end)
-LINKER_SYMBOL(bsp_section_fast_size)
-LINKER_SYMBOL(bsp_section_fast_load_begin)
</font><font color='#000088'>+LINKER_SYMBOL(bsp_section_fast_text_begin)
+LINKER_SYMBOL(bsp_section_fast_text_end)
+LINKER_SYMBOL(bsp_section_fast_text_size)
+LINKER_SYMBOL(bsp_section_fast_text_load_begin)
+LINKER_SYMBOL(bsp_section_fast_text_load_end)
+
+LINKER_SYMBOL(bsp_section_fast_data_begin)
+LINKER_SYMBOL(bsp_section_fast_data_end)
+LINKER_SYMBOL(bsp_section_fast_data_size)
+LINKER_SYMBOL(bsp_section_fast_data_load_begin)
+LINKER_SYMBOL(bsp_section_fast_data_load_end)
</font> 
 LINKER_SYMBOL(bsp_section_bss_begin)
 LINKER_SYMBOL(bsp_section_bss_end)
<font color='#997700'>@@ -106,6 +116,10 @@
</font> LINKER_SYMBOL(bsp_vector_table_end)
 LINKER_SYMBOL(bsp_vector_table_size)
 
<font color='#000088'>+#define BSP_FAST_TEXT_SECTION __attribute__((section(".bsp_fast_text")))
+
+#define BSP_FAST_DATA_SECTION __attribute__((section(".bsp_fast_data")))
+
</font> /** @} */
 
 #ifdef __cplusplus

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.4 rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.5
--- rtems/c/src/lib/libbsp/arm/shared/include/start.h:1.4       Thu May 20 09:32:03 2010
+++ rtems/c/src/lib/libbsp/arm/shared/include/start.h   Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -38,14 +38,14 @@
</font>  * @{
  */
 
<font color='#880000'>-#define BSP_START_SECTION __attribute__((section(".bsp_start")))
</font><font color='#000088'>+#define BSP_START_TEXT_SECTION __attribute__((section(".bsp_start_text")))
</font> 
 #define BSP_START_DATA_SECTION __attribute__((section(".bsp_start_data")))
 
 /**
 * @brief System start entry.
 */
<font color='#880000'>-void start(void);
</font><font color='#000088'>+void _start(void);
</font> 
 /**
 * @brief Start entry hook 0.

<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h:1.1
--- /dev/null   Fri Dec  3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/lpc/include/lpc-i2s.h     Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -0,0 +1,131 @@
</font><font color='#000088'>+/**
+ * @file
+ *
+ * @ingroup lpc_i2s
+ *
+ * @brief I2S API.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef LIBBSP_ARM_SHARED_LPC_I2S_H
+#define LIBBSP_ARM_SHARED_LPC_I2S_H
+
+#include <bsp/utility.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup lpc_dma I2S Support
+ *
+ * @ingroup lpc
+ *
+ * @brief I2S support.
+ *
+ * @{
+ */
+
+/**
+ * @brief I2S control block.
+ */
+typedef struct {
+  uint32_t dao;
+  uint32_t dai;
+  uint32_t txfifo;
+  uint32_t rxfifo;
+  uint32_t state;
+  uint32_t dma [2];
+  uint32_t irq;
+  uint32_t txrate;
+  uint32_t rxrate;
+} lpc_i2s;
+
+/**
+ * @name I2S Digital Audio Input and Output
+ *
+ * @{
+ */
+
+#define I2S_DAIO_WORDWIDTH(val) BSP_FLD32(val, 0, 1)
+#define I2S_DAIO_MONO BSP_BIT32(2)
+#define I2S_DAIO_STOP BSP_BIT32(3)
+#define I2S_DAIO_RESET BSP_BIT32(4)
+#define I2S_DAIO_WS_SEL BSP_BIT32(5)
+#define I2S_DAIO_WS_HALFPERIOD(val) BSP_FLD32(val, 6, 14)
+#define I2S_DAIO_MUTE BSP_BIT32(15)
+
+/** @} */
+
+/**
+ * @name I2S Status Feedback
+ *
+ * @{
+ */
+
+#define I2S_STATE_IRQ BSP_BIT32(0)
+#define I2S_STATE_DMAREQ_0 BSP_BIT32(1)
+#define I2S_STATE_DMAREQ_1 BSP_BIT32(2)
+#define I2S_STATE_RX_LEVEL_GET(reg) BSP_FLD32GET(reg, 8, 11)
+#define I2S_STATE_TX_LEVEL_GET(reg) BSP_FLD32GET(reg, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S DMA Configuration
+ *
+ * @{
+ */
+
+#define I2S_DMA_RX_ENABLE BSP_BIT32(0)
+#define I2S_DMA_TX_ENABLE BSP_BIT32(1)
+#define I2S_DMA_RX_DEPTH(val) BSP_FLD32(val, 8, 11)
+#define I2S_DMA_TX_DEPTH(val) BSP_FLD32(val, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S Interrupt Request Control
+ *
+ * @{
+ */
+
+#define I2S_IRQ_RX BSP_BIT32(0)
+#define I2S_IRQ_TX BSP_BIT32(1)
+#define I2S_IRQ_RX_DEPTH(val) BSP_FLD32(val, 8, 11)
+#define I2S_IRQ_TX_DEPTH(val) BSP_FLD32(val, 16, 19)
+
+/** @} */
+
+/**
+ * @name I2S Transmit and Receive Clock Rate
+ *
+ * @{
+ */
+
+#define LPC24XX_I2S_RATE(val) BSP_FLD32(val, 0, 9)
+#define LPC32XX_I2S_RATE_X_DIVIDER BSP_FLD32(val, 0, 7)
+#define LPC32XX_I2S_RATE_Y_DIVIDER BSP_FLD32(val, 8, 15)
+
+/** @} */
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_SHARED_LPC_I2S_H */
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.10 rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.11
--- rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.10        Tue Nov 23 10:01:09 2010
+++ rtems/c/src/lib/libbsp/arm/shared/start/start.S     Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -32,10 +32,10 @@
</font> 
 /* Global symbols */
 
<font color='#880000'>-.globl start
</font><font color='#000088'>+.globl _start
</font> .globl bsp_start_memcpy
 
<font color='#880000'>-.section ".bsp_start", "ax"
</font><font color='#000088'>+.section ".bsp_start_text", "ax"
</font> 
 .arm
 
<font color='#997700'>@@ -63,7 +63,7 @@
</font> #ifdef BSP_START_RESET_VECTOR
        .word   BSP_START_RESET_VECTOR
 #else
<font color='#880000'>-   .word   start
</font><font color='#000088'>+      .word   _start
</font> #endif
 
 handler_addr_undef:
<font color='#997700'>@@ -96,7 +96,7 @@
</font> 
 /* Start entry */
 
<font color='#880000'>-start:
</font><font color='#000088'>+_start:
</font> 
        /*
         * We do not save the context since we do not return to the boot

<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4:1.1
--- /dev/null   Fri Dec  3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv4    Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -0,0 +1,38 @@
</font><font color='#000088'>+/**
+ * @file
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief Linker command file for ARMv4T architecture.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 128;
+bsp_stack_abt_size = ALIGN (bsp_stack_abt_size, bsp_stack_align);
+
+bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 128;
+bsp_stack_fiq_size = ALIGN (bsp_stack_fiq_size, bsp_stack_align);
+
+bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 512;
+bsp_stack_irq_size = ALIGN (bsp_stack_irq_size, bsp_stack_align);
+
+bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 512;
+bsp_stack_svc_size = ALIGN (bsp_stack_svc_size, bsp_stack_align);
+
+bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 128;
+bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);
+
+INCLUDE linkcmds.base
</font>
<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7:1.1
--- /dev/null   Fri Dec  3 04:10:51 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.armv7    Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -0,0 +1,26 @@
</font><font color='#000088'>+/**
+ * @file
+ *
+ * @ingroup bsp_linker
+ *
+ * @brief Linker command file for ARMv7 architecture.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 4096;
+bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+
+INCLUDE linkcmds.base
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.6 rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7
--- rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.6 Wed Jun 23 03:04:00 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base     Fri Dec  3 03:23:52 2010
</font><font color='#997700'>@@ -7,98 +7,72 @@
</font>  */
 
 /*
<font color='#880000'>- * Copyright (c) 2008
- * Embedded Brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * rtems@embedded-brains.de
</font><font color='#000088'>+ * Copyright (c) 2008-2010 embedded brains GmbH.  All rights reserved.
</font>  *
<font color='#880000'>- * The license and distribution terms for this file may be found in the file
- * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
</font><font color='#000088'>+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
</font>  */
 
 OUTPUT_FORMAT ("elf32-littlearm", "elf32-bigarm", "elf32-littlearm")
 
 OUTPUT_ARCH (arm)
 
<font color='#880000'>-ENTRY (start)
-
-bsp_vector_table_size = 64;
</font><font color='#000088'>+ENTRY (_start)
</font> 
 /*
<font color='#880000'>- * BSP: Global symbols that may be defined externally
</font><font color='#000088'>+ * Global symbols that may be defined externally
</font>  */
 
<font color='#880000'>-bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 4;
-
-bsp_section_align = DEFINED (bsp_section_align) ? bsp_section_align : 32;
-
-bsp_section_start_end_align = DEFINED (bsp_section_start_end_align) ? bsp_section_start_end_align : bsp_section_align;
-bsp_section_vector_end_align = DEFINED (bsp_section_vector_end_align) ? bsp_section_vector_end_align : bsp_section_align;
-bsp_section_text_end_align = DEFINED (bsp_section_text_end_align) ? bsp_section_text_end_align : bsp_section_align;
-bsp_section_rodata_end_align = DEFINED (bsp_section_rodata_end_align) ? bsp_section_rodata_end_align : bsp_section_align;
-bsp_section_data_end_align = DEFINED (bsp_section_data_end_align) ? bsp_section_data_end_align : bsp_section_align;
-bsp_section_fast_end_align = DEFINED (bsp_section_fast_end_align) ? bsp_section_fast_end_align : bsp_section_align;
-bsp_section_bss_end_align = DEFINED (bsp_section_bss_end_align) ? bsp_section_bss_end_align : bsp_section_align;
</font><font color='#000088'>+bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
</font> 
 bsp_section_vbarrier_align = DEFINED (bsp_section_vbarrier_align) ? bsp_section_vbarrier_align : 1;
 bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
 
<font color='#880000'>-bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 128;
</font><font color='#000088'>+bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;
+
+bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 0;
</font> bsp_stack_abt_size = ALIGN (bsp_stack_abt_size, bsp_stack_align);
 
<font color='#880000'>-bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 128;
</font><font color='#000088'>+bsp_stack_fiq_size = DEFINED (bsp_stack_fiq_size) ? bsp_stack_fiq_size : 0;
</font> bsp_stack_fiq_size = ALIGN (bsp_stack_fiq_size, bsp_stack_align);
 
<font color='#880000'>-bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 512;
</font><font color='#000088'>+bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 0;
</font> bsp_stack_irq_size = ALIGN (bsp_stack_irq_size, bsp_stack_align);
 
<font color='#880000'>-bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 512;
</font><font color='#000088'>+bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 0;
</font> bsp_stack_svc_size = ALIGN (bsp_stack_svc_size, bsp_stack_align);
 
<font color='#880000'>-bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 128;
</font><font color='#000088'>+bsp_stack_und_size = DEFINED (bsp_stack_und_size) ? bsp_stack_und_size : 0;
</font> bsp_stack_und_size = ALIGN (bsp_stack_und_size, bsp_stack_align);
 
<font color='#000088'>+bsp_stack_main_size = DEFINED (bsp_stack_main_size) ? bsp_stack_main_size : 0;
+bsp_stack_main_size = ALIGN (bsp_stack_main_size, bsp_stack_align);
+
+/* FIXME: This should go away when LD is fixed */
+bsp_section_align = DEFINED (bsp_section_align) ? bsp_section_align : 32;
+
</font> SECTIONS {
        .start : {
<font color='#880000'>-           /*
-                * BSP: Begin of start section
-                */
</font>           bsp_section_start_begin = .;
<font color='#880000'>-
-               /*
-                * BSP: System startup entry
-                */
-               KEEP (*(.bsp_start))
</font><font color='#000088'>+              KEEP (*(.bsp_start_text))
</font>           KEEP (*(.bsp_start_data))
<font color='#880000'>-
-               . = ALIGN (bsp_section_start_end_align);
-
-               /*
-                * BSP: End of start section
-                */
</font><font color='#000088'>+              . = ALIGN (bsp_section_align);
</font>           bsp_section_start_end = .;
        } > REGION_START AT > REGION_START
<font color='#880000'>-
</font>   bsp_section_start_size = bsp_section_start_end - bsp_section_start_begin;
 
        .vector : {
<font color='#880000'>-           /*
-                * BSP: Begin of vector section
-                */
</font>           bsp_section_vector_begin = .;
 
<font color='#880000'>-           /*
-                * BSP: Reserve space for the the exception vector table and
-                * the pointers to the default exceptions handlers.
-                */
</font>           . = . + DEFINED (bsp_vector_table_in_start_section) ? 0 : bsp_vector_table_size;
 
<font color='#880000'>-           /*
-                * BSP: Reserve space for mode stacks
-                */
-
</font>           . = ALIGN (bsp_stack_align);
 
                bsp_stack_abt_begin = .;
<font color='#997700'>@@ -121,21 +95,15 @@
</font>           . = . + bsp_stack_und_size;
                bsp_stack_und_end = .;
 
<font color='#880000'>-           /*
-                * BSP: Special vector data
-                */
-               *(.bsp_vector)
-
-               . = ALIGN (bsp_section_vector_end_align);
</font><font color='#000088'>+              bsp_stack_main_begin = .;
+               . = . + bsp_stack_main_size;
+               bsp_stack_main_end = .;
</font> 
<font color='#880000'>-           /*
-                * BSP: End of vector section
-                */
</font><font color='#000088'>+              *(.bsp_vector)
+               . = ALIGN (bsp_section_align);
</font>           bsp_section_vector_end = .;
        } > REGION_VECTOR AT > REGION_VECTOR
<font color='#880000'>-
</font>   bsp_section_vector_size = bsp_section_vector_end - bsp_section_vector_begin;
<font color='#880000'>-
</font>   bsp_vector_table_begin = DEFINED (bsp_vector_table_in_start_section) ? bsp_section_start_begin : bsp_section_vector_begin;
        bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size;
 
<font color='#997700'>@@ -143,108 +111,164 @@
</font>           . = ALIGN (bsp_section_vbarrier_align);
        } > REGION_VECTOR
 
<font color='#880000'>-   .text : {
-               /*
-                * BSP: Begin of text section
-                */
</font><font color='#000088'>+      .interp : {
</font>           bsp_section_text_begin = .;
<font color='#880000'>-
-               /*
-                * BSP: Moved into .text from .init
-                */
</font><font color='#000088'>+              *(.interp)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .note.gnu.build-id : {
+               *(.note.gnu.build-id)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .hash : {
+               *(.hash)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .gnu.hash : {
+               *(.gnu.hash)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .dynsym : {
+               *(.dynsym)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .dynstr : {
+               *(.dynstr)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .gnu.version : {
+               *(.gnu.version)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .gnu.version_d : {
+               *(.gnu.version_d)
+               . = ALIGN (bsp_section_align);
+       }
+       > REGION_TEXT AT > REGION_TEXT_LOAD
+       .gnu.version_r : {
+               *(.gnu.version_r)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .rel.dyn : {
+               *(.rel.init)
+               *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
+               *(.rel.fini)
+               *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
+               *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*)
+               *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
+               *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
+               *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
+               *(.rel.ctors)
+               *(.rel.dtors)
+               *(.rel.got)
+               *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
+               PROVIDE_HIDDEN (__rel_iplt_start = .);
+               *(.rel.iplt)
+               PROVIDE_HIDDEN (__rel_iplt_end = .);
+               PROVIDE_HIDDEN (__rela_iplt_start = .);
+               PROVIDE_HIDDEN (__rela_iplt_end = .);
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .rela.dyn : {
+               *(.rela.init)
+               *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
+               *(.rela.fini)
+               *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
+               *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
+               *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
+               *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
+               *(.rela.ctors)
+               *(.rela.dtors)
+               *(.rela.got)
+               *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
+               PROVIDE_HIDDEN (__rel_iplt_start = .);
+               PROVIDE_HIDDEN (__rel_iplt_end = .);
+               PROVIDE_HIDDEN (__rela_iplt_start = .);
+               *(.rela.iplt)
+               PROVIDE_HIDDEN (__rela_iplt_end = .);
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .rel.plt : {
+               *(.rel.plt)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .rela.plt : {
+               *(.rela.plt)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .init : {
</font>           KEEP (*(.init))
<font color='#880000'>-
</font><font color='#000088'>+              . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .fini : {
+               KEEP (*(.fini))
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .plt : {
+               *(.plt)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .iplt : {
+               *(.iplt)
+               . = ALIGN (bsp_section_align);
+       } > REGION_TEXT AT > REGION_TEXT_LOAD
+       .text : {
+               *(.text.unlikely .text.*_unlikely)
</font>           *(.text .stub .text.* .gnu.linkonce.t.*)
<font color='#880000'>-           KEEP (*(.text.*personality*))
</font>           /* .gnu.warning sections are handled specially by elf32.em.  */
                *(.gnu.warning)
<font color='#880000'>-
-               /*
-                * BSP: Magic ARM stuff
-                */
-               *(.ARM.*)
-               *(.glue_7)
-               *(.glue_7t)
-               *(.vfp11_veneer)
-<span style="background-color: #FF0000">               </span>
-               /*
-                * BSP: Special FreeBSD sysctl sections
-                */
-               . = ALIGN (16);
-               __start_set_sysctl_set = .;
-               *(set_sysctl_*);
-               __stop_set_sysctl_set = ABSOLUTE(.);
-               *(set_domain_*);
-               *(set_pseudo_*);
-
-               /*
-                * BSP: Moved into .text from .*
-                */
-               *(.eh_frame_hdr)
-
-               /*
-                * BSP: Required by cpukit/score/src/threadhandler.c
-                */
-               PROVIDE (_fini = .);
-
-               /*
-                * BSP: Moved into .text from .fini
-                */
-               KEEP (*(.fini))
-
-               . = ALIGN (bsp_section_text_end_align);
-
-               /*
-                * BSP: End of text section
-                */
</font><font color='#000088'>+              *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
+               . = ALIGN (bsp_section_align);
</font>           bsp_section_text_end = .;
        } > REGION_TEXT AT > REGION_TEXT_LOAD
<font color='#880000'>-
</font>   bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
<font color='#000088'>+   bsp_section_text_load_begin = LOADADDR (.interp);
+       bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
</font> 
<font color='#880000'>-   bsp_section_text_load_begin = LOADADDR (.text);
-
-       .rodata : {
-               /*
-                * BSP: Begin of rodata section
-                */
</font><font color='#000088'>+      .rodata1 : {
</font>           bsp_section_rodata_begin = .;
<font color='#880000'>-
-               __start_set_modmetadata_set = .;
-               *(set_modmetadata_set);
-               __stop_set_modmetadata_set = .;
-
-               /*
-                * BSP: Moved into .rodata from .*
-                */
-               *(.rodata .rodata.* .gnu.linkonce.r.*)
</font>           *(.rodata1)
<font color='#880000'>-
-               . = ALIGN (bsp_section_rodata_end_align);
-
-               /*
-                * BSP: End of rodata section
-                */
-               bsp_section_rodata_end = .;
</font><font color='#000088'>+              . = ALIGN (bsp_section_align);
</font>   } > REGION_RODATA AT > REGION_RODATA_LOAD
<font color='#880000'>-
-       bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
-
-       bsp_section_rodata_load_begin = LOADADDR (.rodata);
-
-       .robarrier : {
-               . = ALIGN (bsp_section_robarrier_align);
-       } > REGION_RODATA
-
-       .data : {
-               /*
-                * BSP: Begin of data section
-                */
-               bsp_section_data_begin = .;
-
-               /*
-                * BSP: Moved into .data from .ctors
-                */
</font><font color='#000088'>+      .ARM.extab : {
+               *(.ARM.extab* .gnu.linkonce.armextab.*)
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .ARM.exidx : {
+               __exidx_start = .;
+               *(.ARM.exidx* .gnu.linkonce.armexidx.*)
+               __exidx_end = .;
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .eh_frame : {
+               KEEP (*(.eh_frame))
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .gcc_except_table : {
+               *(.gcc_except_table .gcc_except_table.*)
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .preinit_array : {
+               PROVIDE_HIDDEN (__preinit_array_start = .);
+               KEEP (*(.preinit_array))
+               PROVIDE_HIDDEN (__preinit_array_end = .);
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .init_array : {
+               PROVIDE_HIDDEN (__init_array_start = .);
+               KEEP (*(SORT(.init_array.*)))
+               KEEP (*(.init_array))
+               PROVIDE_HIDDEN (__init_array_end = .);
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .fini_array : {
+               PROVIDE_HIDDEN (__fini_array_start = .);
+               KEEP (*(.fini_array))
+               KEEP (*(SORT(.fini_array.*)))
+               PROVIDE_HIDDEN (__fini_array_end = .);
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .ctors : {
</font>           /* gcc uses crtbegin.o to find the start of
                   the constructors, so we make sure it is
                   first.  Because this is a wildcard, it
<font color='#997700'>@@ -263,119 +287,137 @@
</font>           KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors))
                KEEP (*(SORT(.ctors.*)))
                KEEP (*(.ctors))
<font color='#880000'>-
-               /*
-                * BSP: Moved into .data from .dtors
-                */
</font><font color='#000088'>+              . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .dtors : {
</font>           KEEP (*crtbegin.o(.dtors))
                KEEP (*crtbegin?.o(.dtors))
                KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors))
                KEEP (*(SORT(.dtors.*)))
                KEEP (*(.dtors))
<font color='#880000'>-
-               /*
-                * BSP: Moved into .data from .*
-                */
-               *(.data1)
-               KEEP (*(.eh_frame))
-               *(.gcc_except_table .gcc_except_table.*)
</font><font color='#000088'>+              . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .data.rel.ro : {
+               *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*)
+               *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*)
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .jcr : {
</font>           KEEP (*(.jcr))
<font color='#000088'>+           . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .dynamic : {
+               *(.dynamic)
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .got : {
+               *(.got.plt) *(.igot.plt) *(.got) *(.igot)
+               . = ALIGN (bsp_section_align);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .rodata : {
+               /* Special FreeBSD sysctl sections */
+               . = ALIGN (16);
+               __start_set_sysctl_set = .;
+               *(set_sysctl_*);
+               __stop_set_sysctl_set = ABSOLUTE(.);
+               *(set_domain_*);
+               *(set_pseudo_*);
+               _bsd__start_set_sysinit_set = .;
+               *(_bsd_set_sysinit_set);
+               _bsd__stop_set_sysinit_set = .;
+               _bsd__start_set_modmetadata_set = .;
+               *(_bsd_set_modmetadata_set);
+               _bsd__stop_set_modmetadata_set = .;
+               _bsd__start_set_sysctl_set = .;
+               *(_bsd_set_sysctl_set);
+               _bsd__stop_set_sysctl_set = .;
</font> 
<font color='#880000'>-           *(.data .data.* .gnu.linkonce.d.*)
-               KEEP (*(.gnu.linkonce.d.*personality*))
-               SORT(CONSTRUCTORS)
</font><font color='#000088'>+              *(.rodata .rodata.* .gnu.linkonce.r.*)
+               . = ALIGN (bsp_section_align);
+               bsp_section_rodata_end = .;
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
+       bsp_section_rodata_load_begin = LOADADDR (.rodata1);
+       bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
</font> 
<font color='#880000'>-           . = ALIGN (bsp_section_data_end_align);
</font><font color='#000088'>+      .robarrier : {
+               . = ALIGN (bsp_section_robarrier_align);
+       } > REGION_RODATA
</font> 
<font color='#880000'>-           /*
-                * BSP: End of data section
-                */
</font><font color='#000088'>+      .data1 : {
+               bsp_section_data_begin = .;
+               *(.data1)
+               . = ALIGN (bsp_section_align);
+       } > REGION_DATA AT > REGION_DATA_LOAD
+       .data : {
+               *(.data .data.* .gnu.linkonce.d.*)
+               SORT(CONSTRUCTORS)
+               . = ALIGN (bsp_section_align);
</font>           bsp_section_data_end = .;
        } > REGION_DATA AT > REGION_DATA_LOAD
<font color='#880000'>-
</font>   bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
<font color='#000088'>+   bsp_section_data_load_begin = LOADADDR (.data1);
+       bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
</font> 
<font color='#880000'>-   bsp_section_data_load_begin = LOADADDR (.data);
-
-       .fast : {
-               bsp_section_fast_begin = .;
-
-               *(.bsp_fast)
-
-               . = ALIGN (bsp_section_fast_end_align);
-
-               bsp_section_fast_end = .;
</font><font color='#000088'>+      .fast_text : {
+               bsp_section_fast_text_begin = .;
+               *(.bsp_fast_text)
+               . = ALIGN (bsp_section_align);
+               bsp_section_fast_text_end = .;
</font>   } > REGION_FAST AT > REGION_FAST_LOAD
<font color='#880000'>-
-       bsp_section_fast_size = bsp_section_fast_end - bsp_section_fast_begin;
-
-       bsp_section_fast_load_begin = LOADADDR (.fast);
</font><font color='#000088'>+      bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
+       bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
+       bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
+
+       .fast_data : {
+               bsp_section_fast_data_begin = .;
+               *(.bsp_fast_data)
+               . = ALIGN (bsp_section_align);
+               bsp_section_fast_data_end = .;
+       } > REGION_FAST AT > REGION_FAST_LOAD
+       bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
+       bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
+       bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
</font> 
        .bss : {
<font color='#880000'>-           /*
-                * BSP: Begin of bss section
-                */
</font>           bsp_section_bss_begin = .;
<font color='#880000'>-
-               *(COMMON)
</font>           *(.dynbss)
                *(.bss .bss.* .gnu.linkonce.b.*)
<font color='#880000'>-
-               . = ALIGN (bsp_section_bss_end_align);
-
-               /*
-                * BSP: End of bss section
-                */
</font><font color='#000088'>+              *(COMMON)
+               . = ALIGN (bsp_section_align);
</font>           bsp_section_bss_end = .;
        } > REGION_BSS AT > REGION_BSS
<font color='#880000'>-
</font>   bsp_section_bss_size = bsp_section_bss_end - bsp_section_bss_begin;
 
        .work : {
                /*
<font color='#880000'>-            * BSP: Begin of work section.  The work section will occupy
-                * the remaining REGION_WORK region and contains the RTEMS work
-                * space and heap.
</font><font color='#000088'>+               * The work section will occupy the remaining REGION_WORK region and
+                * contains the RTEMS work space and heap.
</font>            */
                bsp_section_work_begin = .;
<font color='#880000'>-
</font>           . += ORIGIN (REGION_WORK) + LENGTH (REGION_WORK) - ABSOLUTE (.);
<font color='#880000'>-
-               /*
-                * BSP: End of work section
-                */
</font>           bsp_section_work_end = .;
        } > REGION_WORK AT > REGION_WORK
<font color='#880000'>-
</font>   bsp_section_work_size = bsp_section_work_end - bsp_section_work_begin;
 
        .stack : {
                /*
<font color='#880000'>-            * BSP: Begin of stack section.  The stack section will occupy
-                * the remaining REGION_STACK region and may contain the task
-                * stacks.  Depending on the region distribution this section
-                * may be of zero size.
</font><font color='#000088'>+               * The stack section will occupy the remaining REGION_STACK region and may
+                * contain the task stacks.  Depending on the region distribution this
+                * section may be of zero size.
</font>            */
                bsp_section_stack_begin = .;
<font color='#880000'>-
</font>           . += ORIGIN (REGION_STACK) + LENGTH (REGION_STACK) - ABSOLUTE (.);
<font color='#880000'>-
-               /*
-                * BSP: End of stack section
-                */
</font>           bsp_section_stack_end = .;
        } > REGION_STACK AT > REGION_STACK
<font color='#880000'>-
</font>   bsp_section_stack_size = bsp_section_stack_end - bsp_section_stack_begin;
 
<font color='#880000'>-   /*
-        * BSP: External symbols (FIXME)
-        */
</font><font color='#000088'>+      /* FIXME */
</font>   RamBase = ORIGIN (REGION_WORK);
        RamSize = LENGTH (REGION_WORK);
        WorkAreaBase = bsp_section_work_begin;
        HeapSize = 0;
<font color='#880000'>-<span style="background-color: #FF0000">   </span>
</font><font color='#000088'>+
</font>   /* Stabs debugging sections.  */
        .stab          0 : { *(.stab) }
        .stabstr       0 : { *(.stabstr) }
<font color='#997700'>@@ -412,16 +454,10 @@
</font>   /* DWARF 3 */
        .debug_pubtypes 0 : { *(.debug_pubtypes) }
        .debug_ranges   0 : { *(.debug_ranges) }
<font color='#880000'>-   .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) }
-
-       /DISCARD/ : {
-               *(.note.GNU-stack) *(.gnu_debuglink)
-       }
</font><font color='#000088'>+      .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) KEEP (*(.gnu.attributes)) }
+       .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }
+       /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) }
</font> 
<font color='#880000'>-   /*
-        * BSP: Catch all unknown sections
-        */
-       .nirvana : {
-               *(*)
-       } > NIRVANA
</font><font color='#000088'>+      /* Catch all unknown sections */
+       .nirvana : { *(*) } > NIRVANA
</font> }
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * include/lpc32xx.h: Added I2S module.
        * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
        startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx,
        startup/linkcmds.lpc32xx_mzx_stage_1,
        startup/linkcmds.lpc32xx_mzx_stage_2,
        startup/linkcmds.lpc32xx_phycore: Update due to linker command file
        changes.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog.diff?r1=text&tr1=1.20&r2=text&tr2=1.21&diff_format=h">M</a></td><td width='1%'>1.21</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am.diff?r1=text&tr1=1.8&r2=text&tr2=1.9&diff_format=h">M</a></td><td width='1%'>1.9</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/bsp_specs</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h.diff?r1=text&tr1=1.10&r2=text&tr2=1.11&diff_format=h">M</a></td><td width='1%'>1.11</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/preinstall.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.20 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.21
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.20   Fri Nov 12 07:29:14 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog        Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -1,3 +1,13 @@
</font><font color='#000088'>+2010-12-03    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * include/lpc32xx.h: Added I2S module.
+       * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
+       startup/linkcmds.lpc32xx, startup/linkcmds.lpc32xx_mzx,
+       startup/linkcmds.lpc32xx_mzx_stage_1,
+       startup/linkcmds.lpc32xx_mzx_stage_2,
+       startup/linkcmds.lpc32xx_phycore: Update due to linker command file
+       changes.
+
</font> 2010-11-12        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * rtc/rtc-config.c: Fixed type.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.8 rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.9
--- rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am:1.8  Thu Oct 21 08:58:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/Makefile.am      Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -35,10 +35,10 @@
</font> include_bsp_HEADERS += ../../shared/include/stackalloc.h
 include_bsp_HEADERS += ../../shared/include/uart-output-char.h
 include_bsp_HEADERS += ../../shared/tod.h
<font color='#880000'>-include_bsp_HEADERS += ../shared/include/linker-symbols.h
</font> include_bsp_HEADERS += ../shared/include/start.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-dma.h
<font color='#000088'>+include_bsp_HEADERS += ../shared/lpc/include/lpc-i2s.h
</font> include_bsp_HEADERS += include/irq.h
 include_bsp_HEADERS += include/mmu.h
 include_bsp_HEADERS += include/lpc32xx.h
<font color='#997700'>@@ -64,7 +64,6 @@
</font> 
 project_lib_DATA += startup/linkcmds
 project_lib_DATA += startup/linkcmds.lpc32xx
<font color='#880000'>-project_lib_DATA += ../shared/startup/linkcmds.base
</font> 
 EXTRA_DIST = startup/linkcmds.lpc32xx_phycore \
        startup/linkcmds.lpc32xx_mzx_stage_1 \

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs:1.1    Tue Dec 15 09:20:47 2009
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/bsp_specs        Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -4,7 +4,7 @@
</font> 
 *startfile:
 %{!qrtems: %(old_startfile)} \
<font color='#880000'>-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e start}}
</font><font color='#000088'>+%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
</font> 
 *link:
 %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.10 rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.11
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h:1.10   Thu Oct 14 04:37:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/lpc32xx.h        Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -27,6 +27,7 @@
</font> #include <bsp/utility.h>
 #include <bsp/lpc-timer.h>
 #include <bsp/lpc-dma.h>
<font color='#000088'>+#include <bsp/lpc-i2s.h>
</font> 
 /**
  * @defgroup lpc32xx_reg Register Definitions
<font color='#997700'>@@ -232,9 +233,6 @@
</font> } lpc32xx_spi;
 
 typedef struct {
<font color='#880000'>-} lpc32xx_i2s;
-
-typedef struct {
</font> } lpc32xx_sd_card;
 
 typedef struct {
<font color='#997700'>@@ -501,12 +499,12 @@
</font>   uint32_t reserved_3 [LPC32XX_RESERVED(0x2008c000, 0x20090000, lpc32xx_ssp)];
   lpc32xx_spi spi_2;
   uint32_t reserved_4 [LPC32XX_RESERVED(0x20090000, 0x20094000, lpc32xx_spi)];
<font color='#880000'>-  lpc32xx_i2s i2s_0;
-  uint32_t reserved_5 [LPC32XX_RESERVED(0x20094000, 0x20098000, lpc32xx_i2s)];
</font><font color='#000088'>+  lpc_i2s i2s_0;
+  uint32_t reserved_5 [LPC32XX_RESERVED(0x20094000, 0x20098000, lpc_i2s)];
</font>   lpc32xx_sd_card sd_card;
   uint32_t reserved_6 [LPC32XX_RESERVED(0x20098000, 0x2009c000, lpc32xx_sd_card)];
<font color='#880000'>-  lpc32xx_i2s i2s_1;
-  uint32_t reserved_7 [LPC32XX_RESERVED(0x2009c000, 0x200a8000, lpc32xx_i2s)];
</font><font color='#000088'>+  lpc_i2s i2s_1;
+  uint32_t reserved_7 [LPC32XX_RESERVED(0x2009c000, 0x200a8000, lpc_i2s)];
</font>   lpc32xx_nand_mlc nand_mlc;
   uint32_t reserved_8 [LPC32XX_RESERVED(0x200a8000, 0x31000000, lpc32xx_nand_mlc)];
   lpc_dma dma;

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.7 rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.8
--- rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am:1.7        Thu Oct 21 08:58:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/preinstall.am    Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -86,10 +86,6 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tod.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tod.h
 
<font color='#880000'>-$(PROJECT_INCLUDE)/bsp/linker-symbols.h: ../shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-
</font> $(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h
<font color='#997700'>@@ -102,6 +98,10 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-dma.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-dma.h
 
<font color='#000088'>+$(PROJECT_INCLUDE)/bsp/lpc-i2s.h: ../shared/lpc/include/lpc-i2s.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+
</font> $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
<font color='#997700'>@@ -158,7 +158,3 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.lpc32xx
 TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.lpc32xx
 
<font color='#880000'>-$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
-       $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
-TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
-
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.9 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.10
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.9      Tue Sep 28 09:38:26 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c  Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -44,7 +44,7 @@
</font> 
 LINKER_SYMBOL(lpc32xx_translation_table_base);
 
<font color='#880000'>-static void BSP_START_SECTION clear_bss(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION clear_bss(void)
</font> {
   const int *end = (const int *) bsp_section_bss_end;
   int *out = (int *) bsp_section_bss_begin;
<font color='#997700'>@@ -66,6 +66,14 @@
</font>   static const BSP_START_DATA_SECTION lpc32xx_mmu_config
     lpc32xx_mmu_config_table [] = {
     {
<font color='#000088'>+      .begin = (uint32_t) bsp_section_fast_text_begin,
+      .end = (uint32_t) bsp_section_fast_text_end,
+      .flags = LPC32XX_MMU_CODE
+    }, {
+      .begin = (uint32_t) bsp_section_fast_data_begin,
+      .end = (uint32_t) bsp_section_fast_data_end,
+      .flags = LPC32XX_MMU_READ_WRITE_DATA
+    }, {
</font>       .begin = (uint32_t) bsp_section_start_begin,
       .end = (uint32_t) bsp_section_start_end,
       .flags = LPC32XX_MMU_CODE
<font color='#997700'>@@ -86,10 +94,6 @@
</font>       .end = (uint32_t) bsp_section_data_end,
       .flags = LPC32XX_MMU_READ_WRITE_DATA
     }, {
<font color='#880000'>-      .begin = (uint32_t) bsp_section_fast_begin,
-      .end = (uint32_t) bsp_section_fast_end,
-      .flags = LPC32XX_MMU_CODE
-    }, {
</font>       .begin = (uint32_t) bsp_section_bss_begin,
       .end = (uint32_t) bsp_section_bss_end,
       .flags = LPC32XX_MMU_READ_WRITE_DATA
<font color='#997700'>@@ -124,7 +128,7 @@
</font>     }
   };
 
<font color='#880000'>-  static void BSP_START_SECTION set_translation_table_entries(
</font><font color='#000088'>+  static void BSP_START_TEXT_SECTION set_translation_table_entries(
</font>     uint32_t *ttb,
     const lpc32xx_mmu_config *config
   )
<font color='#997700'>@@ -141,7 +145,7 @@
</font>     }
   }
 
<font color='#880000'>-  static void BSP_START_SECTION
</font><font color='#000088'>+  static void BSP_START_TEXT_SECTION
</font>     setup_translation_table_and_enable_mmu(uint32_t ctrl)
   {
     uint32_t const dac =
<font color='#997700'>@@ -169,7 +173,7 @@
</font>   }
 #endif
 
<font color='#880000'>-static void BSP_START_SECTION setup_mmu_and_cache(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION setup_mmu_and_cache(void)
</font> {
   uint32_t ctrl = 0;
 
<font color='#997700'>@@ -192,7 +196,7 @@
</font>   #error "unexpected main oscillator frequency"
 #endif
 
<font color='#880000'>-static void BSP_START_SECTION setup_pll(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION setup_pll(void)
</font> {
   uint32_t pwr_ctrl = LPC32XX_PWR_CTRL;
 
<font color='#997700'>@@ -211,13 +215,13 @@
</font>   }
 }
 
<font color='#880000'>-void BSP_START_SECTION bsp_start_hook_0(void)
</font><font color='#000088'>+void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
</font> {
   setup_pll();
   setup_mmu_and_cache();
 }
 
<font color='#880000'>-static void BSP_START_SECTION stop_dma_activities(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION stop_dma_activities(void)
</font> {
   #ifdef LPC32XX_STOP_GPDMA
     if ((LPC32XX_DMACLK_CTRL & 0x1) != 0) {
<font color='#997700'>@@ -251,7 +255,7 @@
</font>   #endif
 }
 
<font color='#880000'>-static void BSP_START_SECTION setup_uarts(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION setup_uarts(void)
</font> {
   uint32_t uartclk_ctrl = 0;
 
<font color='#997700'>@@ -286,7 +290,7 @@
</font>   #endif
 }
 
<font color='#880000'>-static void BSP_START_SECTION setup_timer(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION setup_timer(void)
</font> {
   volatile lpc_timer *timer = LPC32XX_STANDARD_TIMER;
 
<font color='#997700'>@@ -301,7 +305,7 @@
</font>   timer->tcr = LPC_TIMER_TCR_EN;
 }
 
<font color='#880000'>-void BSP_START_SECTION bsp_start_hook_1(void)
</font><font color='#000088'>+void BSP_START_TEXT_SECTION bsp_start_hook_1(void)
</font> {
   stop_dma_activities();
   setup_uarts();
<font color='#997700'>@@ -331,12 +335,20 @@
</font>     (size_t) bsp_section_data_size
   );
 
<font color='#880000'>-  /* Copy .fast section */
</font><font color='#000088'>+  /* Copy .fast_text section */
+  arm_cp15_instruction_cache_invalidate();
+  bsp_start_memcpy(
+    (int *) bsp_section_fast_text_begin,
+    (const int *) bsp_section_fast_text_load_begin,
+    (size_t) bsp_section_fast_text_size
+  );
+
+  /* Copy .fast_data section */
</font>   arm_cp15_instruction_cache_invalidate();
   bsp_start_memcpy(
<font color='#880000'>-    (int *) bsp_section_fast_begin,
-    (const int *) bsp_section_fast_load_begin,
-    (size_t) bsp_section_fast_size
</font><font color='#000088'>+    (int *) bsp_section_fast_data_begin,
+    (const int *) bsp_section_fast_data_load_begin,
+    (size_t) bsp_section_fast_data_size
</font>   );
 
   /* Clear .bss section */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx:1.1     Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -14,4 +14,4 @@
</font> lpc32xx_magic_zero_end = 0x07000000;
 lpc32xx_magic_zero_size = lpc32xx_magic_zero_end - lpc32xx_magic_zero_end;
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx     Fri Dec  3 03:29:07 2010
</font><font color='#997700'>@@ -35,10 +35,10 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
-        RAM_MMU (AIW) : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
-        RAM_EXT (AIW) : ORIGIN = 0x80004000, LENGTH = 32M - 16k /* SDRAM on DYCS0 */
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+       RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
+       RAM_EXT : ORIGIN = 0x80004000, LENGTH = 32M - 16k /* SDRAM on DYCS0 */
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_EXT);

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1     Fri Dec  3 03:29:08 2010
</font><font color='#997700'>@@ -35,10 +35,10 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 232k
-        RAM_VEC (AIW) : ORIGIN = 0x0803a000, LENGTH = 8k
-        RAM_MMU (AIW) : ORIGIN = 0x0803c000, LENGTH = 16k
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT : ORIGIN = 0x08000000, LENGTH = 232k
+       RAM_VEC : ORIGIN = 0x0803a000, LENGTH = 8k
+       RAM_MMU : ORIGIN = 0x0803c000, LENGTH = 16k
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_INT);

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.1 Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2     Fri Dec  3 03:29:08 2010
</font><font color='#997700'>@@ -35,10 +35,10 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
-        RAM_MMU (AIW) : ORIGIN = 0x81c00000, LENGTH = 16k /* SDRAM on DYCS0 */
-        RAM_EXT (AIW) : ORIGIN = 0x81c04000, LENGTH = 4M - 16k /* SDRAM on DYCS0 */
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+       RAM_MMU : ORIGIN = 0x81c00000, LENGTH = 16k /* SDRAM on DYCS0 */
+       RAM_EXT : ORIGIN = 0x81c04000, LENGTH = 4M - 16k /* SDRAM on DYCS0 */
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_EXT);

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.3     Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore Fri Dec  3 03:29:08 2010
</font><font color='#997700'>@@ -36,11 +36,11 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x08000000, LENGTH = 256k
-        RAM_MMU (AIW) : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
-        RAM_EXT (AIW) : ORIGIN = 0x80004000, LENGTH = 64M - 16k /* SDRAM on DYCS0 */
-        ROM_EXT (RX) : ORIGIN = 0xe0000000, LENGTH = 2M /* NOR flash on CS0 */
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
+       RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
+       RAM_EXT : ORIGIN = 0x80004000, LENGTH = 64M - 16k /* SDRAM on DYCS0 */
+       ROM_EXT : ORIGIN = 0xe0000000, LENGTH = 2M /* NOR flash on CS0 */
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_EXT);
</pre>
<p> </p>
<a name='cs3'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * include/lcd.h, misc/lcd.c: New files.
        * misc/io.c, include/io.h: Documentation, bug fixes, more
        configurations.
        * include/lpc24xx.h: Added DAC and I2S.
        * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
        startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
        startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
        startup/linkcmds.lpc24xx_ncs_rom_ext,
        startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
        file changes.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog.diff?r1=text&tr1=1.58&r2=text&tr2=1.59&diff_format=h">M</a></td><td width='1%'>1.59</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am.diff?r1=text&tr1=1.29&r2=text&tr2=1.30&diff_format=h">M</a></td><td width='1%'>1.30</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/bsp_specs</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/include/io.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/include/lcd.h?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/lpc24xx/include/lcd.h</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h.diff?r1=text&tr1=1.12&r2=text&tr2=1.13&diff_format=h">M</a></td><td width='1%'>1.13</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/misc/io.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am.diff?r1=text&tr1=1.19&r2=text&tr2=1.20&diff_format=h">M</a></td><td width='1%'>1.20</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/preinstall.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int.diff?r1=text&tr1=1.2&r2=text&tr2=1.3&diff_format=h">M</a></td><td width='1%'>1.3</td><td width='100%'>c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.58 rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.59
--- rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog:1.58   Fri Nov 12 07:45:33 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/ChangeLog        Fri Dec  3 03:56:47 2010
</font><font color='#997700'>@@ -1,3 +1,16 @@
</font><font color='#000088'>+2010-12-03    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * include/lcd.h, misc/lcd.c: New files.
+       * misc/io.c, include/io.h: Documentation, bug fixes, more
+       configurations.
+       * include/lpc24xx.h: Added DAC and I2S.
+       * Makefile.am, bsp_specs, preinstall.am, startup/bspstarthooks.c,
+       startup/linkcmds.lpc2362, startup/linkcmds.lpc23xx_tli800,
+       startup/linkcmds.lpc24xx_ea, startup/linkcmds.lpc24xx_ncs_ram,
+       startup/linkcmds.lpc24xx_ncs_rom_ext,
+       startup/linkcmds.lpc24xx_ncs_rom_int: Update due to linker command
+       file changes.
+
</font> 2010-11-12        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * misc/system-clocks.c: Use define instead of function call to allow

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.29 rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.30
--- rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am:1.29 Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/Makefile.am      Fri Dec  3 03:56:47 2010
</font><font color='#997700'>@@ -34,9 +34,9 @@
</font> include_bsp_HEADERS += ../../shared/include/stackalloc.h
 include_bsp_HEADERS += ../../shared/include/uart-output-char.h
 include_bsp_HEADERS += ../../shared/tod.h
<font color='#880000'>-include_bsp_HEADERS += ../shared/include/linker-symbols.h
</font> include_bsp_HEADERS += ../shared/include/start.h
 include_bsp_HEADERS += ../shared/lpc/include/lpc-timer.h
<font color='#000088'>+include_bsp_HEADERS += ../shared/lpc/include/lpc-i2s.h
</font> include_bsp_HEADERS += include/irq.h
 include_bsp_HEADERS += include/lpc24xx.h
 include_bsp_HEADERS += include/system-clocks.h
<font color='#997700'>@@ -44,6 +44,7 @@
</font> include_bsp_HEADERS += include/dma.h
 include_bsp_HEADERS += include/i2c.h
 include_bsp_HEADERS += include/io.h
<font color='#000088'>+include_bsp_HEADERS += include/lcd.h
</font> include_bsp_HEADERS += include/lpc-clock-config.h
 include_bsp_HEADERS += include/lpc-ethernet-config.h
 
<font color='#997700'>@@ -62,7 +63,6 @@
</font> project_lib_DATA = start.$(OBJEXT)
 
 project_lib_DATA += startup/linkcmds
<font color='#880000'>-project_lib_DATA += ../shared/startup/linkcmds.base
</font> EXTRA_DIST = startup/linkcmds.lpc24xx_ea
 EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_int
 EXTRA_DIST += startup/linkcmds.lpc24xx_ncs_rom_ext
<font color='#997700'>@@ -123,6 +123,7 @@
</font>   misc/dma-copy.c \
        misc/bspidle.c \
        misc/io.c \
<font color='#000088'>+   misc/lcd.c \
</font>   misc/timer.c
 
 # SSP

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs:1.2    Thu Dec  4 14:30:17 2008
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/bsp_specs        Fri Dec  3 03:56:47 2010
</font><font color='#997700'>@@ -4,7 +4,7 @@
</font> 
 *startfile:
 %{!qrtems: %(old_startfile)} \
<font color='#880000'>-%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e start}}
</font><font color='#000088'>+%{!nostdlib: %{qrtems: start.o%s crti.o%s crtbegin.o%s -e _start}}
</font> 
 *link:
 %{!qrtems: %(old_link)} %{qrtems: -dc -dp -N}

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h:1.3 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/io.h     Fri Dec  3 03:56:47 2010
</font><font color='#997700'>@@ -37,6 +37,65 @@
</font>  *
  * @brief Input and output module.
  *
<font color='#000088'>+ * <table>
+ *   <tr><th>Module</th><th>Configuration</th><th>First Pin</th><th>Last Pin</th></tr>
+ *   <tr><td>UART 0</td><td>0</td><td>P0.2</td><td>P0.3</td></tr>
+ *   <tr><td rowspan=3>UART 1</td><td>0</td><td>P0.15</td><td>P0.16</td></tr>
+ *   <tr><td>1</td><td>P2.0</td><td>P2.1</td></tr>
+ *   <tr><td>2</td><td>P3.16</td><td>P3.17</td></tr>
+ *   <tr><td rowspan=3>UART 2</td><td>0</td><td>P0.10</td><td>P0.11</td></tr>
+ *   <tr><td>1</td><td>P2.8</td><td>P2.9</td></tr>
+ *   <tr><td>2</td><td>P4.22</td><td>P4.23</td></tr>
+ *   <tr><td rowspan=3>UART 3</td><td>0</td><td>P0.0</td><td>P0.1</td></tr>
+ *   <tr><td>1</td><td>P0.25</td><td>P0.26</td></tr>
+ *   <tr><td>2</td><td>P4.28</td><td>P4.29</td></tr>
+ *   <tr><td rowspan=5>ETHERNET</td><td>0</td><td>P1.0</td><td>P1.17</td></tr>
+ *   <tr><td rowspan=4>1</td><td>P1.0</td><td>P1.1</td></tr>
+ *   <tr><td>P1.4</td><td>P1.4</td></tr>
+ *   <tr><td>P1.8</td><td>P1.10</td></tr>
+ *   <tr><td>P1.14</td><td>P1.17</td></tr>
+ *   <tr><td rowspan=4>ADC</td><td>0</td><td>P0.12</td><td>P0.13</td></tr>
+ *   <tr><td>1</td><td>P0.23</td><td>P0.25</td></tr>
+ *   <tr><td rowspan=2>2</td><td>P0.26</td><td>P0.26</td></tr>
+ *   <tr><td>P1.30</td><td>P1.31</td></tr>
+ *   <tr><td>I2C 0</td><td>0</td><td>P0.27</td><td>P0.28</td></tr>
+ *   <tr><td rowspan=3>I2C 1</td><td>0</td><td>P0.0</td><td>P0.1</td></tr>
+ *   <tr><td>1</td><td>P0.19</td><td>P0.20</td></tr>
+ *   <tr><td>2</td><td>P2.14</td><td>P2.15</td></tr>
+ *   <tr><td rowspan=3>I2C 2</td><td>0</td><td>P0.10</td><td>P0.11</td></tr>
+ *   <tr><td>1</td><td>P2.30</td><td>P2.31</td></tr>
+ *   <tr><td>2</td><td>P4.20</td><td>P4.21</td></tr>
+ *   <tr><td rowspan=3>I2S</td><td>0</td><td>P0.4</td><td>P0.9</td></tr>
+ *   <tr><td rowspan=2>1</td><td>P0.23</td><td>P0.25</td></tr>
+ *   <tr><td>P2.11</td><td>P2.13</td></tr>
+ *   <tr><td rowspan=5>SSP 0</td><td>0</td><td>P0.15</td><td>P0.18</td></tr>
+ *   <tr><td rowspan=2>1</td><td>P1.20</td><td>P0.21</td></tr>
+ *   <tr><td>P1.23</td><td>P0.24</td></tr>
+ *   <tr><td rowspan=2>2</td><td>P2.22</td><td>P2.23</td></tr>
+ *   <tr><td>P2.26</td><td>P2.27</td></tr>
+ *   <tr><td rowspan=5>SSP 1</td><td>0</td><td>P0.6</td><td>P0.9</td></tr>
+ *   <tr><td rowspan=3>1</td><td>P0.12</td><td>P0.13</td></tr>
+ *   <tr><td>P0.14</td><td>P0.14</td></tr>
+ *   <tr><td>P1.31</td><td>P1.31</td></tr>
+ *   <tr><td>2</td><td>P4.20</td><td>P4.23</td></tr>
+ *   <tr><td rowspan=2>USB</td><td rowspan=2>0</td><td>P0.29</td><td>P0.30</td></tr>
+ *   <tr><td>P1.19</td><td>P1.19</td></tr>
+ *   <tr><td>SPI</td><td>0</td><td>P0.15</td><td>P0.18</td></tr>
+ *   <tr><td>PWM 1</td><td>0</td><td>P2.0</td><td>P2.0</td></tr>
+ *   <tr><td rowspan=11>LCD</td><td rowspan=6>0</td><td>P0.4</td><td>P0.9</td></tr>
+ *   <tr><td>P1.20</td><td>P1.29</td></tr>
+ *   <tr><td>P2.0</td><td>P2.3</td></tr>
+ *   <tr><td>P2.5</td><td>P2.9</td></tr>
+ *   <tr><td>P2.12</td><td>P2.13</td></tr>
+ *   <tr><td>P4.28</td><td>P4.29</td></tr>
+ *   <tr><td rowspan=5>1</td><td>P1.20</td><td>P1.29</td></tr>
+ *   <tr><td>P2.0</td><td>P2.3</td></tr>
+ *   <tr><td>P2.5</td><td>P2.9</td></tr>
+ *   <tr><td>P2.12</td><td>P2.13</td></tr>
+ *   <tr><td>P4.28</td><td>P4.29</td></tr>
+ *   <tr><td>DAC</td><td>0</td><td>P0.26</td><td>P0.26</td></tr>
+ * </table>
+ *
</font>  * @{
  */
 
<font color='#997700'>@@ -123,11 +182,28 @@
</font>   lpc24xx_module module
 );
 
<font color='#000088'>+/**
+ * @brief Applies the configuration with index @a config for the @a module.
+ *
+ * The pin mode will not be altered.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid module or configuration.
+ */
</font> rtems_status_code lpc24xx_io_config(
   lpc24xx_module module,
   unsigned config
 );
 
<font color='#000088'>+/**
+ * @brief Releases the configuration with index @a config for the @a module.
+ *
+ * The pins are set to general purpose IO function.  The pin mode will not be
+ * altered.
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_INVALID_ID Invalid module or configuration.
+ */
</font> rtems_status_code lpc24xx_io_release(
   lpc24xx_module module,
   unsigned config

<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/lpc24xx/include/lcd.h:1.1
--- /dev/null   Fri Dec  3 04:10:53 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/lcd.h    Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -0,0 +1,77 @@
</font><font color='#000088'>+/**
+ * @file
+ *
+ * @ingroup lpc24xx_lcd
+ *
+ * @brief LCD support.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef LIBBSP_ARM_LPC24XX_LCD_H
+#define LIBBSP_ARM_LPC24XX_LCD_H
+
+#include <rtems.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @defgroup lpc_dma LCD Support
+ *
+ * @ingroup lpc24xx
+ *
+ * @brief LCD support.
+ *
+ * @{
+ */
+
+typedef enum {
+  LCD_MODE_STN_4_BIT = 0,
+  LCD_MODE_STN_8_BIT,
+  LCD_MODE_STN_DUAL_PANEL_4_BIT,
+  LCD_MODE_STN_DUAL_PANEL_8_BIT,
+  LCD_MODE_TFT_12_BIT_4_4_4,
+  LCD_MODE_TFT_16_BIT_5_6_5,
+  LCD_MODE_TFT_16_BIT_1_5_5_5,
+  LCD_MODE_TFT_24_BIT,
+  LCD_MODE_DISABLED
+} lpc24xx_lcd_mode;
+
+/**
+ * @brief Set the LCD @a mode.
+ *
+ * The pins are configured according to the @a pin_config.
+ *
+ * @see lpc24xx_io_config() and lpc24xx_io_release().
+ *
+ * @retval RTEMS_SUCCESSFUL Successful operation.
+ * @retval RTEMS_IO_ERROR Invalid mode.
+ */
+rtems_status_code lpc24xx_lcd_set_mode(
+  lpc24xx_lcd_mode mode,
+  unsigned pin_config
+);
+
+lpc24xx_lcd_mode lpc24xx_lcd_current_mode(void);
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_ARM_LPC24XX_LCD_H */
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.12 rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.13
--- rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h:1.12   Thu Oct 14 04:34:06 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/include/lpc24xx.h        Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -22,6 +22,8 @@
</font> #define LIBBSP_ARM_LPC24XX_LPC24XX_H
 
 #include <stdint.h>
<font color='#000088'>+#include <bsp/utility.h>
+#include <bsp/lpc-i2s.h>
</font> 
 /**
  * @defgroup lpc24xx_regs Register Definitions
<font color='#997700'>@@ -1980,6 +1982,16 @@
</font> #define PCONP_ETHERNET (1U << 30)
 #define PCONP_USB (1U << 31)
 
<font color='#000088'>+/* I2S */
+
+static volatile lpc_i2s *const lpc24xx_i2s = (lpc_i2s *) I2S_BASE_ADDR;
+
+/* DAC */
+
+#define DAC_STEPS 1024
+#define DAC_VALUE(val) BSP_FLD32(val, 6, 15)
+#define DAC_BIAS BSP_BIT32(16)
+
</font> /** @} */
 
 #endif /* LIBBSP_ARM_LPC24XX_LPC24XX_H */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.7 rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.8
--- rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c:1.7    Thu Oct 14 01:52:46 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/io.c        Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -53,7 +53,7 @@
</font>   unsigned pin_function : 3;
 } lpc24xx_io_entry;
 
<font color='#880000'>-typedef void (*lpc24xx_io_iterate_routine)(unsigned /* pin */, unsigned /* function */);
</font><font color='#000088'>+typedef void (*lpc24xx_io_iterate_routine)(unsigned pin, unsigned function);
</font> 
 static const lpc24xx_io_entry lpc24xx_io_config_table [] = {
   /* UART */
<font color='#997700'>@@ -78,6 +78,8 @@
</font>   /* ADC */
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 0, 0, 12, 0, 13, LPC24XX_IO_ALTERNATE_2),
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 1, 0, 23, 0, 25, LPC24XX_IO_ALTERNATE_0),
<font color='#000088'>+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 2, 0, 26, 0, 26, LPC24XX_IO_ALTERNATE_0),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_ADC, 2, 1, 30, 1, 31, LPC24XX_IO_ALTERNATE_2),
</font> 
   /* I2C */
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_0, 0, 0, 27, 0, 28, LPC24XX_IO_ALTERNATE_0),
<font color='#997700'>@@ -88,6 +90,11 @@
</font>   LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_2, 1, 2, 30, 2, 31, LPC24XX_IO_ALTERNATE_2),
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2C_2, 2, 4, 20, 4, 21, LPC24XX_IO_ALTERNATE_1),
 
<font color='#000088'>+  /* I2S */
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 0, 0, 4, 0, 9, LPC24XX_IO_ALTERNATE_0),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 1, 0, 23, 0, 25, LPC24XX_IO_ALTERNATE_1),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_I2S, 1, 2, 11, 2, 13, LPC24XX_IO_ALTERNATE_2),
+
</font>   /* SSP */
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 0, 0, 15, 0, 18, LPC24XX_IO_ALTERNATE_1),
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_SSP_0, 1, 1, 20, 0, 21, LPC24XX_IO_ALTERNATE_2),
<font color='#997700'>@@ -117,6 +124,14 @@
</font>   LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 2, 5, 2, 9, LPC24XX_IO_ALTERNATE_2),
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 2, 12, 2, 13, LPC24XX_IO_ALTERNATE_0),
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 0, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_1),
<font color='#000088'>+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 1, 20, 1, 29, LPC24XX_IO_ALTERNATE_0),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 0, 2, 3, LPC24XX_IO_ALTERNATE_2),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 5, 2, 9, LPC24XX_IO_ALTERNATE_2),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 2, 12, 2, 13, LPC24XX_IO_ALTERNATE_0),
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_LCD, 1, 4, 28, 4, 29, LPC24XX_IO_ALTERNATE_1),
+
+  /* DAC */
+  LPC24XX_IO_ENTRY(LPC24XX_MODULE_DAC, 0, 0, 26, 0, 26, LPC24XX_IO_ALTERNATE_1),
</font> 
   /* Terminate */
   LPC24XX_IO_ENTRY(LPC24XX_MODULE_COUNT, 0, 0, 0, 0, 0, 0)
<font color='#997700'>@@ -128,7 +143,7 @@
</font>   lpc24xx_io_iterate_routine routine
 )
 {
<font color='#880000'>-  rtems_status_code sc = RTEMS_INVALID_ID;
</font><font color='#000088'>+  rtems_status_code sc = RTEMS_SUCCESSFUL;
</font>   const lpc24xx_io_entry *e = &lpc24xx_io_config_table [0];
 
   while (e->module != LPC24XX_MODULE_COUNT) {
<font color='#997700'>@@ -156,17 +171,14 @@
</font>   rtems_interrupt_level level;
   unsigned select = LPC24XX_IO_SELECT(pin);
   unsigned shift = LPC24XX_IO_SELECT_SHIFT(pin);
<font color='#000088'>+  unsigned mask = LPC24XX_IO_SELECT_MASK << shift;
+  unsigned pinsel = 0;
</font> 
   rtems_interrupt_disable(level);
<font color='#880000'>-
-  LPC24XX_PINSEL [select] =
-    (LPC24XX_PINSEL [select] & ~(LPC24XX_IO_SELECT_MASK << shift))
-      | ((function & LPC24XX_IO_SELECT_MASK) << shift);
-
-  rtems_interrupt_flash(level);
-
-  LPC24XX_PINMODE [select] &= ~(LPC24XX_IO_SELECT_MASK << shift);
-
</font><font color='#000088'>+  pinsel = LPC24XX_PINSEL [select];
+  pinsel &= ~mask;
+  pinsel |= (function & LPC24XX_IO_SELECT_MASK) << shift;
+  LPC24XX_PINSEL [select] = pinsel;
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#997700'>@@ -175,10 +187,10 @@
</font>   rtems_interrupt_level level;
   unsigned select = LPC24XX_IO_SELECT(pin);
   unsigned shift = LPC24XX_IO_SELECT_SHIFT(pin);
<font color='#000088'>+  unsigned mask = LPC24XX_IO_SELECT_MASK << shift;
</font> 
   rtems_interrupt_disable(level);
<font color='#880000'>-  LPC24XX_PINSEL [select] =
-    (LPC24XX_PINSEL [select] & ~(LPC24XX_IO_SELECT_MASK << shift));
</font><font color='#000088'>+  LPC24XX_PINSEL [select] &= ~mask;
</font>   rtems_interrupt_enable(level);
 }
 
<font color='#997700'>@@ -277,7 +289,7 @@
</font>   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2C_1, 1, 1, 19),
   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2C_2, 1, 1, 26),
   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_I2S, 1, 1, 27),
<font color='#880000'>-  LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_LCD, 1, 1, 20),
</font><font color='#000088'>+  LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_LCD, 1, 0, 20),
</font>   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_MCI, 1, 1, 28),
   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PCB, 0, 1, 18),
   LPC24XX_MODULE_ENTRY(LPC24XX_MODULE_PWM_0, 1, 1, 5),

<font color='#006600'>diff -u /dev/null rtems/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c:1.1
--- /dev/null   Fri Dec  3 04:10:53 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/misc/lcd.c       Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -0,0 +1,103 @@
</font><font color='#000088'>+/**
+ * @file
+ *
+ * @ingroup lpc24xx_lcd
+ *
+ * @brief LCD support.
+ */
+
+/*
+ * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#include <assert.h>
+
+#include <bsp/lpc24xx.h>
+#include <bsp/io.h>
+#include <bsp/lcd.h>
+#include <bsp/utility.h>
+#include <bsp/system-clocks.h>
+
+#define LCD_ENABLE BSP_BIT32(0)
+
+rtems_status_code lpc24xx_lcd_set_mode(lpc24xx_lcd_mode mode, unsigned pin_config)
+{
+  rtems_status_code sc = RTEMS_SUCCESSFUL;
+  bool enable = false;
+
+  switch (mode) {
+    case LCD_MODE_STN_4_BIT:
+    case LCD_MODE_STN_8_BIT:
+    case LCD_MODE_STN_DUAL_PANEL_4_BIT:
+    case LCD_MODE_STN_DUAL_PANEL_8_BIT:
+    case LCD_MODE_TFT_12_BIT_4_4_4:
+    case LCD_MODE_TFT_16_BIT_5_6_5:
+    case LCD_MODE_TFT_16_BIT_1_5_5_5:
+    case LCD_MODE_TFT_24_BIT:
+      enable = true;
+      break;
+    case LCD_MODE_DISABLED:
+      enable = false;
+      break;
+    default:
+      sc = RTEMS_IO_ERROR;
+      break;
+  }
+
+  if (sc == RTEMS_SUCCESSFUL) {
+    if (enable) {
+      sc = lpc24xx_module_enable(LPC24XX_MODULE_LCD, LPC24XX_MODULE_PCLK_DEFAULT);
+      assert(sc == RTEMS_SUCCESSFUL);
+
+      PINSEL11 = BSP_FLD32(mode, 1, 3) | LCD_ENABLE;
+
+      sc = lpc24xx_io_config(LPC24XX_MODULE_LCD, pin_config);
+      assert(sc == RTEMS_SUCCESSFUL);
+    } else {
+      if (lpc24xx_lcd_current_mode() != LCD_MODE_DISABLED) {
+        uint32_t lcd_ctrl = LCD_CTRL;
+
+        /* Disable power */
+        lcd_ctrl &= ~BSP_BIT32(11);
+        LCD_CTRL = lcd_ctrl;
+
+        lpc24xx_micro_seconds_delay(100000);
+
+        /* Disable all signals */
+        lcd_ctrl &= ~BSP_BIT32(0);
+        LCD_CTRL = lcd_ctrl;
+      }
+
+      sc = lpc24xx_io_release(LPC24XX_MODULE_LCD, pin_config);
+      assert(sc == RTEMS_SUCCESSFUL);
+
+      PINSEL11 = 0;
+
+      sc = lpc24xx_module_disable(LPC24XX_MODULE_LCD);
+      assert(sc == RTEMS_SUCCESSFUL);
+    }
+  }
+
+  return sc;
+}
+
+lpc24xx_lcd_mode lpc24xx_lcd_current_mode(void)
+{
+  uint32_t pinsel11 = PINSEL11;
+
+  if ((PCONP & BSP_BIT32(20)) != 0 && (pinsel11 & LCD_ENABLE) != 0) {
+    return BSP_FLD32GET(pinsel11, 1, 3);
+  } else {
+    return LCD_MODE_DISABLED;
+  }
+}
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.19 rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.20
--- rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am:1.19       Thu May 20 08:10:56 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/preinstall.am    Fri Dec  3 03:56:47 2010
</font><font color='#997700'>@@ -82,10 +82,6 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/tod.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/tod.h
 
<font color='#880000'>-$(PROJECT_INCLUDE)/bsp/linker-symbols.h: ../shared/include/linker-symbols.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
-       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/linker-symbols.h
-
</font> $(PROJECT_INCLUDE)/bsp/start.h: ../shared/include/start.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/start.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/start.h
<font color='#997700'>@@ -94,6 +90,10 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-timer.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-timer.h
 
<font color='#000088'>+$(PROJECT_INCLUDE)/bsp/lpc-i2s.h: ../shared/lpc/include/lpc-i2s.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-i2s.h
+
</font> $(PROJECT_INCLUDE)/bsp/irq.h: include/irq.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/irq.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/irq.h
<font color='#997700'>@@ -122,6 +122,10 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/io.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/io.h
 
<font color='#000088'>+$(PROJECT_INCLUDE)/bsp/lcd.h: include/lcd.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
+       $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lcd.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lcd.h
+
</font> $(PROJECT_INCLUDE)/bsp/lpc-clock-config.h: include/lpc-clock-config.h $(PROJECT_INCLUDE)/bsp/$(dirstamp)
        $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/bsp/lpc-clock-config.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/bsp/lpc-clock-config.h
<font color='#997700'>@@ -146,7 +150,3 @@
</font>   $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds
 TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds
 
<font color='#880000'>-$(PROJECT_LIB)/linkcmds.base: ../shared/startup/linkcmds.base $(PROJECT_LIB)/$(dirstamp)
-       $(INSTALL_DATA) $< $(PROJECT_LIB)/linkcmds.base
-TMPINSTALL_FILES += $(PROJECT_LIB)/linkcmds.base
-
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.6 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.7
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c:1.6      Thu May 20 09:33:16 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/bspstarthooks.c  Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -31,7 +31,7 @@
</font> #endif
 
 #ifdef LPC24XX_EMC_MICRON
<font color='#880000'>-  static void BSP_START_SECTION lpc24xx_ram_test_32(void)
</font><font color='#000088'>+  static void BSP_START_TEXT_SECTION lpc24xx_ram_test_32(void)
</font>   {
     #ifdef LPC24XX_EMC_TEST
       int *begin = (int *) 0xa0000000;
<font color='#997700'>@@ -55,7 +55,7 @@
</font>     #endif
   }
 
<font color='#880000'>-  static void BSP_START_SECTION lpc24xx_cpu_delay(
</font><font color='#000088'>+  static void BSP_START_TEXT_SECTION lpc24xx_cpu_delay(
</font>     unsigned ticks
   )
   {
<font color='#997700'>@@ -73,7 +73,7 @@
</font> /**
  * @brief EMC initialization hook 0.
  */
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_init_emc_0(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_init_emc_0(void)
</font> {
   #ifdef LPC24XX_EMC_NUMONYX
     /*
<font color='#997700'>@@ -137,7 +137,7 @@
</font> /**
  * @brief EMC initialization hook 1.
  */
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_init_emc_1(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_init_emc_1(void)
</font> {
   #ifdef LPC24XX_EMC_INIT
     /* Use normal memory map */
<font color='#997700'>@@ -242,7 +242,7 @@
</font>   #endif
 }
 
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_pll_config(
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_pll_config(
</font>   uint32_t val
 )
 {
<font color='#997700'>@@ -265,7 +265,7 @@
</font>  * @param cclksel Selects the divide value for creating the CPU clock (CCLK)
  * from the PLL output.
  */
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_set_pll(
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_set_pll(
</font>   unsigned clksrc,
   unsigned nsel,
   unsigned msel,
<font color='#997700'>@@ -321,7 +321,7 @@
</font>   lpc24xx_pll_config(PLLCON_PLLE | PLLCON_PLLC);
 }
 
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_init_pll(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_init_pll(void)
</font> {
   /* Enable main oscillator */
   if ((SCS & 0x40) == 0) {
<font color='#997700'>@@ -341,7 +341,7 @@
</font>   #endif
 }
 
<font color='#880000'>-static void BSP_START_SECTION lpc24xx_clear_bss(void)
</font><font color='#000088'>+static void BSP_START_TEXT_SECTION lpc24xx_clear_bss(void)
</font> {
   const int *end = (const int *) bsp_section_bss_end;
   int *out = (int *) bsp_section_bss_begin;
<font color='#997700'>@@ -353,7 +353,7 @@
</font>   }
 }
 
<font color='#880000'>-void BSP_START_SECTION bsp_start_hook_0(void)
</font><font color='#000088'>+void BSP_START_TEXT_SECTION bsp_start_hook_0(void)
</font> {
   /* Initialize PLL */
   lpc24xx_init_pll();
<font color='#997700'>@@ -362,7 +362,7 @@
</font>   lpc24xx_init_emc_0();
 }
 
<font color='#880000'>-void BSP_START_SECTION bsp_start_hook_1(void)
</font><font color='#000088'>+void BSP_START_TEXT_SECTION bsp_start_hook_1(void)
</font> {
   /* Re-map interrupt vectors to internal RAM */
   MEMMAP = SET_MEMMAP_MAP(MEMMAP, 2);
<font color='#997700'>@@ -442,11 +442,18 @@
</font>     (size_t) bsp_section_data_size
   );
 
<font color='#880000'>-  /* Copy .fast section */
</font><font color='#000088'>+  /* Copy .fast_text section */
</font>   bsp_start_memcpy(
<font color='#880000'>-    (int *) bsp_section_fast_begin,
-    (const int *) bsp_section_fast_load_begin,
-    (size_t) bsp_section_fast_size
</font><font color='#000088'>+    (int *) bsp_section_fast_text_begin,
+    (const int *) bsp_section_fast_text_load_begin,
+    (size_t) bsp_section_fast_text_size
+  );
+
+  /* Copy .fast_data section */
+  bsp_start_memcpy(
+    (int *) bsp_section_fast_data_begin,
+    (const int *) bsp_section_fast_data_load_begin,
+    (size_t) bsp_section_fast_data_size
</font>   );
 
   /* Clear .bss section */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.3 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.4
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362:1.3     Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc2362 Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -35,11 +35,11 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
-        RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
-        RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
-        ROM_INT (RX)  : ORIGIN = 0x00000000, LENGTH = 128k
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+       RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
+       RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
+       ROM_INT (RX)  : ORIGIN = 0x00000000, LENGTH = 128k
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", ROM_INT);
<font color='#997700'>@@ -64,4 +64,4 @@
</font> lpc24xx_region_heap_1_size = LENGTH (RAM_USB);
 lpc24xx_region_heap_1_end = lpc24xx_region_heap_1_begin + lpc24xx_region_heap_1_size;
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.1 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.2
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800:1.1      Wed Jun 23 03:11:28 2010
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc23xx_tli800  Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -37,13 +37,13 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
-        RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
-        RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
-        ROM_BOOT (RX) : ORIGIN = 0x00000000, LENGTH = 4k
-        ROM_CFG (RX)  : ORIGIN = 0x00001000, LENGTH = 4k
-        ROM_INT (RX)  : ORIGIN = 0x00002000, LENGTH = 120k
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 32k
+       RAM_USB (AIW) : ORIGIN = 0x7fd00000, LENGTH = 8k
+       RAM_ETH (AIW) : ORIGIN = 0x7fe00000, LENGTH = 16k
+       ROM_BOOT (RX) : ORIGIN = 0x00000000, LENGTH = 4k
+       ROM_CFG (RX)  : ORIGIN = 0x00001000, LENGTH = 4k
+       ROM_INT (RX)  : ORIGIN = 0x00002000, LENGTH = 120k
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", ROM_BOOT);
<font color='#997700'>@@ -68,4 +68,4 @@
</font> lpc24xx_region_heap_1_size = LENGTH (RAM_USB);
 lpc24xx_region_heap_1_end = lpc24xx_region_heap_1_begin + lpc24xx_region_heap_1_size;
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea:1.2  Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ea      Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -34,9 +34,9 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
-        RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+       RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 32M
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_EXT);
<font color='#997700'>@@ -53,4 +53,4 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram:1.2     Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_ram Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -34,9 +34,9 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-        RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
-        RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
-        NIRVANA : ORIGIN = 0, LENGTH = 0
</font><font color='#000088'>+      RAM_INT (AIW) : ORIGIN = 0x40000000, LENGTH = 64k
+       RAM_EXT (AIW) : ORIGIN = 0xa0000000, LENGTH = 8M
+       NIRVANA : ORIGIN = 0, LENGTH = 0
</font> }
 
 REGION_ALIAS ("REGION_START", RAM_EXT);
<font color='#997700'>@@ -53,4 +53,4 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_ext     Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -57,4 +57,4 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.2 rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.3
--- rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int:1.2 Tue Dec 15 09:20:46 2009
+++ rtems/c/src/lib/libbsp/arm/lpc24xx/startup/linkcmds.lpc24xx_ncs_rom_int     Fri Dec  3 03:56:48 2010
</font><font color='#997700'>@@ -36,11 +36,11 @@
</font> 
 
 MEMORY {
<font color='#880000'>-        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
</font><font color='#000088'>+      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
</font> }
 
 REGION_ALIAS ("REGION_START", ROM_INT);
<font color='#997700'>@@ -57,4 +57,4 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#880000'>-INCLUDE linkcmds.base
</font><font color='#000088'>+INCLUDE linkcmds.armv4
</font></pre>
<p> </p>
<a name='cs4'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>sh</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-12-03 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * shared/startup/linkcmds.base: Split up fast region.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/ChangeLog.diff?r1=text&tr1=1.83&r2=text&tr2=1.84&diff_format=h">M</a></td><td width='1%'>1.84</td><td width='100%'>c/src/lib/libbsp/arm/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>c/src/lib/libbsp/arm/shared/startup/linkcmds.base</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.83 rtems/c/src/lib/libbsp/arm/ChangeLog:1.84
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.83   Fri Dec  3 03:23:51 2010
+++ rtems/c/src/lib/libbsp/arm/ChangeLog        Fri Dec  3 04:09:59 2010
</font><font color='#997700'>@@ -1,5 +1,9 @@
</font> 2010-12-03        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
<font color='#000088'>+   * shared/startup/linkcmds.base: Split up fast region.
+
+2010-12-03     Sebastian Huber <sebastian.huber@embedded-brains.de>
+
</font>   * preinstall.am, shared/lpc/include/lpc-i2s.h,
        shared/startup/linkcmds.armv4, shared/startup/linkcmds.armv7: New
        files.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7 rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.8
--- rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.7 Fri Dec  3 03:23:52 2010
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base     Fri Dec  3 04:09:59 2010
</font><font color='#997700'>@@ -364,7 +364,7 @@
</font>           *(.bsp_fast_text)
                . = ALIGN (bsp_section_align);
                bsp_section_fast_text_end = .;
<font color='#880000'>-   } > REGION_FAST AT > REGION_FAST_LOAD
</font><font color='#000088'>+      } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
</font>   bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin;
        bsp_section_fast_text_load_begin = LOADADDR (.fast_text);
        bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size;
<font color='#997700'>@@ -374,7 +374,7 @@
</font>           *(.bsp_fast_data)
                . = ALIGN (bsp_section_align);
                bsp_section_fast_data_end = .;
<font color='#880000'>-   } > REGION_FAST AT > REGION_FAST_LOAD
</font><font color='#000088'>+      } > REGION_FAST_DATA AT > REGION_FAST_DATA_LOAD
</font>   bsp_section_fast_data_size = bsp_section_fast_data_end - bsp_section_fast_data_begin;
        bsp_section_fast_data_load_begin = LOADADDR (.fast_data);
        bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size;
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>