<!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 (2011-03-28)</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>2011-03-29 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * shared/start/start.S: Default exception handler will result in
        bsp_reset().
        * shared/startup/linkcmds.base: Move unsupported sections into
        read-only section.  Changed barrier sections.
</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.89&r2=text&tr2=1.90&diff_format=h">M</a></td><td width='1%'>1.90</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/start/start.S.diff?r1=text&tr1=1.11&r2=text&tr2=1.12&diff_format=h">M</a></td><td width='1%'>1.12</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.base.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/shared/startup/linkcmds.base</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/ChangeLog:1.89 rtems/c/src/lib/libbsp/arm/ChangeLog:1.90
--- rtems/c/src/lib/libbsp/arm/ChangeLog:1.89   Fri Feb 11 05:49:52 2011
+++ rtems/c/src/lib/libbsp/arm/ChangeLog        Mon Mar 28 03:49:58 2011
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2011-03-29    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * shared/start/start.S: Default exception handler will result in
+       bsp_reset().
+       * shared/startup/linkcmds.base: Move unsupported sections into
+       read-only section.  Changed barrier sections.
+
</font> 2011-02-11        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * shared/abort/abort.c, shared/abort/simple_abort.c:

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.11 rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.12
--- rtems/c/src/lib/libbsp/arm/shared/start/start.S:1.11        Fri Dec  3 03:23:52 2010
+++ rtems/c/src/lib/libbsp/arm/shared/start/start.S     Mon Mar 28 03:49:58 2011
</font><font color='#997700'>@@ -68,31 +68,31 @@
</font> 
 handler_addr_undef:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_swi:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_prefetch:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_abort:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_reserved:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_irq:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 handler_addr_fiq:
 
<font color='#880000'>-   .word   twiddle
</font><font color='#000088'>+      .word   reset
</font> 
 /* Start entry */
 
<font color='#997700'>@@ -184,15 +184,18 @@
</font>   mov     r0, #0
        bl      boot_card
 
<font color='#000088'>+twiddle:
+
</font>   /* Branch to reset function */
        bl      bsp_reset
 
<font color='#880000'>-   SWITCH_FROM_THUMB_TO_ARM
</font><font color='#000088'>+      b       twiddle
</font> 
<font color='#880000'>-   /* Spin forever */
</font><font color='#000088'>+.arm
</font> 
<font color='#880000'>-twiddle:
</font><font color='#000088'>+reset:
</font> 
<font color='#000088'>+   SWITCH_FROM_ARM_TO_THUMB        r0
</font>   b       twiddle
 
 DEFINE_FUNCTION_ARM(bsp_start_memcpy)

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.9 rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.10
--- rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base:1.9 Wed Jan 26 06:21:26 2011
+++ rtems/c/src/lib/libbsp/arm/shared/startup/linkcmds.base     Mon Mar 28 03:49:58 2011
</font><font color='#997700'>@@ -32,8 +32,9 @@
</font> 
 bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64;
 
<font color='#880000'>-bsp_section_vbarrier_align = DEFINED (bsp_section_vbarrier_align) ? bsp_section_vbarrier_align : 1;
</font><font color='#000088'>+bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1;
</font> bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1;
<font color='#000088'>+bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1;
</font> 
 bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8;
 
<font color='#997700'>@@ -102,107 +103,47 @@
</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='#880000'>-   .vbarrier : {
-               . = ALIGN (bsp_section_vbarrier_align);
</font><font color='#000088'>+      .xbarrier : {
+               . = ALIGN (bsp_section_xbarrier_align);
</font>   } > REGION_VECTOR
 
<font color='#880000'>-   .interp : {
</font><font color='#000088'>+      .fast_text : {
+               bsp_section_fast_text_begin = .;
+               *(.bsp_fast_text)
+               bsp_section_fast_text_end = .;
+       } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
+       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;
+
+       .text : {
</font>           bsp_section_text_begin = .;
<font color='#880000'>-           *(.interp)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .note.gnu.build-id : {
-               *(.note.gnu.build-id)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .hash : {
-               *(.hash)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .gnu.hash : {
-               *(.gnu.hash)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .dynsym : {
-               *(.dynsym)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .dynstr : {
-               *(.dynstr)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .gnu.version : {
-               *(.gnu.version)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .gnu.version_d : {
-               *(.gnu.version_d)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .gnu.version_r : {
-               *(.gnu.version_r)
-       } > 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 = .);
-       } > 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 = .);
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .rel.plt : {
-               *(.rel.plt)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .rela.plt : {
-               *(.rela.plt)
</font><font color='#000088'>+              *(.text.unlikely .text.*_unlikely)
+               *(.text .stub .text.* .gnu.linkonce.t.*)
+               /* .gnu.warning sections are handled specially by elf32.em.  */
+               *(.gnu.warning)
+               *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
</font>   } > REGION_TEXT AT > REGION_TEXT_LOAD
        .init : {
                KEEP (*(.init))
        } > REGION_TEXT AT > REGION_TEXT_LOAD
        .fini : {
                KEEP (*(.fini))
<font color='#880000'>-   } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .plt : {
-               *(.plt)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .iplt : {
-               *(.iplt)
-       } > REGION_TEXT AT > REGION_TEXT_LOAD
-       .text : {
-               *(.text.unlikely .text.*_unlikely)
-               *(.text .stub .text.* .gnu.linkonce.t.*)
-               /* .gnu.warning sections are handled specially by elf32.em.  */
-               *(.gnu.warning)
-               *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)
</font>           bsp_section_text_end = .;
        } > REGION_TEXT AT > REGION_TEXT_LOAD
        bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin;
<font color='#880000'>-   bsp_section_text_load_begin = LOADADDR (.interp);
</font><font color='#000088'>+      bsp_section_text_load_begin = LOADADDR (.text);
</font>   bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size;
 
<font color='#880000'>-   .rodata1 : {
</font><font color='#000088'>+      .robarrier : {
+               . = ALIGN (bsp_section_robarrier_align);
+       } > REGION_RODATA
+
+       .rodata : {
</font>           bsp_section_rodata_begin = .;
<font color='#000088'>+           *(.rodata .rodata.* .gnu.linkonce.r.*)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .rodata1 : {
</font>           *(.rodata1)
        } > REGION_RODATA AT > REGION_RODATA_LOAD
        .ARM.extab : {
<font color='#997700'>@@ -276,17 +217,89 @@
</font>   .got : {
                *(.got.plt) *(.igot.plt) *(.got) *(.igot)
        } > REGION_RODATA AT > REGION_RODATA_LOAD
<font color='#880000'>-   .rodata : {
-               /* Special FreeBSD sysctl sections */
-               . = ALIGN (16);
</font><font color='#000088'>+      .interp : {
+               *(.interp)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .note.gnu.build-id : {
+               *(.note.gnu.build-id)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .hash : {
+               *(.hash)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .gnu.hash : {
+               *(.gnu.hash)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .dynsym : {
+               *(.dynsym)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .dynstr : {
+               *(.dynstr)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .gnu.version : {
+               *(.gnu.version)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .gnu.version_d : {
+               *(.gnu.version_d)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .gnu.version_r : {
+               *(.gnu.version_r)
+       } > REGION_RODATA AT > REGION_RODATA_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 = .);
+       } > REGION_RODATA AT > REGION_RODATA_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 = .);
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .rel.plt : {
+               *(.rel.plt)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .rela.plt : {
+               *(.rela.plt)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .plt : {
+               *(.plt)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .iplt : {
+               *(.iplt)
+       } > REGION_RODATA AT > REGION_RODATA_LOAD
+       .robsdsets : {
+               /* Special FreeBSD linker set sections */
</font>           __start_set_sysctl_set = .;
                *(set_sysctl_*);
<font color='#880000'>-           __stop_set_sysctl_set = ABSOLUTE(.);
</font><font color='#000088'>+              __stop_set_sysctl_set = .;
</font>           *(set_domain_*);
                *(set_pseudo_*);
<font color='#880000'>-           _bsd__start_set_sysinit_set = .;
-               *(_bsd_set_sysinit_set);
-               _bsd__stop_set_sysinit_set = .;
</font>           _bsd__start_set_modmetadata_set = .;
                *(_bsd_set_modmetadata_set);
                _bsd__stop_set_modmetadata_set = .;
<font color='#997700'>@@ -294,38 +307,15 @@
</font>           *(_bsd_set_sysctl_set);
                _bsd__stop_set_sysctl_set = .;
 
<font color='#880000'>-           *(.rodata .rodata.* .gnu.linkonce.r.*)
</font>           bsp_section_rodata_end = .;
        } > REGION_RODATA AT > REGION_RODATA_LOAD
        bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin;
<font color='#880000'>-   bsp_section_rodata_load_begin = LOADADDR (.rodata1);
</font><font color='#000088'>+      bsp_section_rodata_load_begin = LOADADDR (.rodata);
</font>   bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size;
 
<font color='#880000'>-   .robarrier : {
-               . = ALIGN (bsp_section_robarrier_align);
-       } > REGION_RODATA
-
-       .data1 : {
-               bsp_section_data_begin = .;
-               *(.data1)
-       } > REGION_DATA AT > REGION_DATA_LOAD
-       .data : {
-               *(.data .data.* .gnu.linkonce.d.*)
-               SORT(CONSTRUCTORS)
-               bsp_section_data_end = .;
-       } > REGION_DATA AT > REGION_DATA_LOAD
-       bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
-       bsp_section_data_load_begin = LOADADDR (.data1);
-       bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
-
-       .fast_text : {
-               bsp_section_fast_text_begin = .;
-               *(.bsp_fast_text)
-               bsp_section_fast_text_end = .;
-       } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD
-       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><font color='#000088'>+      .rwbarrier : {
+               . = ALIGN (bsp_section_rwbarrier_align);
+       } > REGION_DATA
</font> 
        .fast_data : {
                bsp_section_fast_data_begin = .;
<font color='#997700'>@@ -336,6 +326,26 @@
</font>   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 color='#000088'>+   .data : {
+               bsp_section_data_begin = .;
+               *(.data .data.* .gnu.linkonce.d.*)
+               SORT(CONSTRUCTORS)
+       } > REGION_DATA AT > REGION_DATA_LOAD
+       .data1 : {
+               *(.data1)
+       } > REGION_DATA AT > REGION_DATA_LOAD
+       .rwbsdsets : {
+               /* Special FreeBSD linker set sections */
+               _bsd__start_set_sysinit_set = .;
+               *(_bsd_set_sysinit_set);
+               _bsd__stop_set_sysinit_set = .;
+
+               bsp_section_data_end = .;
+       } > REGION_DATA AT > REGION_DATA_LOAD
+       bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin;
+       bsp_section_data_load_begin = LOADADDR (.data);
+       bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size;
+
</font>   .bss : {
                bsp_section_bss_begin = .;
                *(.dynbss)
</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>2011-03-29 Sebastian Huber <sebastian.huber@embedded-brains.de>

        * configure.ac, include/bspopts.h.in: New BSP option
        LPC32XX_SCRATCH_AREA_SIZE.  Disable BSP option
        LPC32XX_DISABLE_READ_ONLY_PROTECTION for all BSPs.
        * include/boot.h: Removed application specific defines.
        * include/nand-mlc.h, misc/nand-mlc.c: Changed configuration layout.
        * include/mmu.h, misc/mmu.c: Documentation.  Bugfix.
        * include/bsp.h, startup/bspstarthooks.c, misc/restart.c,
        startup/linkcmds.lpc32xx_mzx, startup/linkcmds.lpc32xx_mzx_stage_1,
        startup/linkcmds.lpc32xx_mzx_stage_2,
        startup/linkcmds.lpc32xx_phycore: Support for scratch area.  Moved
        code into macros for reusability.
</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.28&r2=text&tr2=1.29&diff_format=h">M</a></td><td width='1%'>1.29</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/configure.ac.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/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/boot.h.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/include/boot.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/bsp.h.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/include/bsp.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/bspopts.h.in.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/include/bspopts.h.in</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/mmu.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/lpc32xx/include/mmu.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/include/nand-mlc.h.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/lpc32xx/include/nand-mlc.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/misc/mmu.c.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/lpc32xx/misc/mmu.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c.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/misc/nand-mlc.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c.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/lpc32xx/misc/restart.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/bspstarthooks.c.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/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_mzx.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_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.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_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.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_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.5&r2=text&tr2=1.6&diff_format=h">M</a></td><td width='1%'>1.6</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.28 rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.29
--- rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog:1.28   Mon Feb 21 06:54:58 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/ChangeLog        Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -1,3 +1,17 @@
</font><font color='#000088'>+2011-03-29    Sebastian Huber <sebastian.huber@embedded-brains.de>
+
+       * configure.ac, include/bspopts.h.in: New BSP option
+       LPC32XX_SCRATCH_AREA_SIZE.  Disable BSP option
+       LPC32XX_DISABLE_READ_ONLY_PROTECTION for all BSPs.
+       * include/boot.h: Removed application specific defines.
+       * include/nand-mlc.h, misc/nand-mlc.c: Changed configuration layout.
+       * include/mmu.h, misc/mmu.c: Documentation.  Bugfix.
+       * include/bsp.h, startup/bspstarthooks.c, misc/restart.c,
+       startup/linkcmds.lpc32xx_mzx, startup/linkcmds.lpc32xx_mzx_stage_1,
+       startup/linkcmds.lpc32xx_mzx_stage_2,
+       startup/linkcmds.lpc32xx_phycore: Support for scratch area.  Moved
+       code into macros for reusability.
+
</font> 2011-02-21        Sebastian Huber <sebastian.huber@embedded-brains.de>
 
        * include/bsp.h, lpc32xx/misc/restart.c: Renamed lpc32xx_restart() in

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.10 rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.11
--- rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac:1.10        Wed Feb  2 08:57:56 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/configure.ac     Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -73,10 +73,12 @@
</font> RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_READ_WRITE_DATA_CACHE],[*],[])
 RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_READ_WRITE_DATA_CACHE],[disable cache for read-write data sections])
 
<font color='#880000'>-RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_READ_ONLY_PROTECTION],[lpc32xx_mzx*],[1])
</font> RTEMS_BSPOPTS_SET([LPC32XX_DISABLE_READ_ONLY_PROTECTION],[*],[])
 RTEMS_BSPOPTS_HELP([LPC32XX_DISABLE_READ_ONLY_PROTECTION],[disable MMU protection of read-only sections])
 
<font color='#000088'>+RTEMS_BSPOPTS_SET([LPC32XX_SCRATCH_AREA_SIZE],[lpc32xx_mzx*],[4096])
+RTEMS_BSPOPTS_HELP([LPC32XX_SCRATCH_AREA_SIZE],[size of scratch area])
+
</font> RTEMS_BSPOPTS_SET([LPC32XX_STOP_GPDMA],[*],[1])
 RTEMS_BSPOPTS_HELP([LPC32XX_STOP_GPDMA],[stop general purpose DMA at start-up to avoid DMA interference])
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/boot.h:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/include/boot.h:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/boot.h:1.1       Wed Jun 23 03:27:56 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/boot.h   Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -55,9 +55,8 @@
</font>  * @{
  */
 
<font color='#880000'>-#define LPC32XX_BOOT_STAGE_1_BLOCK_0 0
-#define LPC32XX_BOOT_STAGE_1_BLOCK_1 1
-#define LPC32XX_BOOT_STAGE_2_BLOCK_0 2
</font><font color='#000088'>+#define LPC32XX_BOOT_BLOCK_0 0
+#define LPC32XX_BOOT_BLOCK_1 1
</font> 
 #define LPC32XX_BOOT_ICR_SP_3AC_8IF 0xf0
 #define LPC32XX_BOOT_ICR_SP_4AC_8IF 0xd2

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/bsp.h:1.7 rtems/c/src/lib/libbsp/arm/lpc32xx/include/bsp.h:1.8
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/bsp.h:1.7        Mon Feb 21 06:54:44 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/bsp.h    Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -135,6 +135,71 @@
</font>  */
 extern uint32_t lpc32xx_magic_zero_size [];
 
<font color='#000088'>+#ifdef LPC32XX_SCRATCH_AREA_SIZE
+  /**
+   * @rief Scratch area.
+   *
+   * The usage is application specific.
+   */
+  extern uint8_t lpc32xx_scratch_area [LPC32XX_SCRATCH_AREA_SIZE];
+#endif
+
+#define LPC32XX_DO_STOP_GPDMA \
+  do { \
+    if ((LPC32XX_DMACLK_CTRL & 0x1) != 0) { \
+      if ((lpc32xx.dma.cfg & LPC_DMA_CFG_EN) != 0) { \
+        int i = 0; \
+        for (i = 0; i < 8; ++i) { \
+          lpc32xx.dma.channels [i].cfg = 0; \
+        } \
+        lpc32xx.dma.cfg &= ~LPC_DMA_CFG_EN; \
+      } \
+      LPC32XX_DMACLK_CTRL = 0; \
+    } \
+  } while (0)
+
+#define LPC32XX_DO_STOP_ETHERNET \
+  do { \
+    if ((LPC32XX_MAC_CLK_CTRL & 0x7) == 0x7) { \
+      lpc32xx.eth.command = 0x38; \
+      lpc32xx.eth.mac1 = 0xcf00; \
+      lpc32xx.eth.mac1 = 0; \
+      LPC32XX_MAC_CLK_CTRL = 0; \
+    } \
+  } while (0)
+
+#define LPC32XX_DO_STOP_USB \
+  do { \
+    if ((LPC32XX_USB_CTRL & 0x010e8000) != 0) { \
+      LPC32XX_OTG_CLK_CTRL = 0; \
+      LPC32XX_USB_CTRL = 0x80000; \
+    } \
+  } while (0)
+
+#define LPC32XX_DO_RESTART(addr) \
+  do { \
+    ARM_SWITCH_REGISTERS; \
+    rtems_interrupt_level level; \
+    uint32_t ctrl = 0; \
+  \
+    rtems_interrupt_disable(level); \
+  \
+    arm_cp15_data_cache_test_and_clean(); \
+    arm_cp15_instruction_cache_invalidate(); \
+  \
+    ctrl = arm_cp15_get_control(); \
+    ctrl &= ~(ARM_CP15_CTRL_I | ARM_CP15_CTRL_C | ARM_CP15_CTRL_M); \
+    arm_cp15_set_control(ctrl); \
+  \
+    __asm__ volatile ( \
+      ARM_SWITCH_TO_ARM \
+      "mov pc, %[addr]\n" \
+      ARM_SWITCH_BACK \
+      : ARM_SWITCH_OUTPUT \
+      : [addr] "r" (addr) \
+    ); \
+  } while (0)
+
</font> /** @} */
 
 /**

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/bspopts.h.in:1.8 rtems/c/src/lib/libbsp/arm/lpc32xx/include/bspopts.h.in:1.9
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/bspopts.h.in:1.8 Thu Dec 16 07:35:06 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/bspopts.h.in     Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -63,6 +63,9 @@
</font> /* peripheral clock in Hz */
 #undef LPC32XX_PERIPH_CLK
 
<font color='#000088'>+/* size of scratch area */
+#undef LPC32XX_SCRATCH_AREA_SIZE
+
</font> /* stop Ethernet controller at start-up to avoid DMA interference */
 #undef LPC32XX_STOP_ETHERNET
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/mmu.h:1.4 rtems/c/src/lib/libbsp/arm/lpc32xx/include/mmu.h:1.5
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/mmu.h:1.4        Thu Dec 16 07:35:06 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/mmu.h    Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -7,12 +7,13 @@
</font>  */
 
 /*
<font color='#880000'>- * Copyright (c) 2009
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
</font><font color='#000088'>+ * Copyright (c) 2009-2011 embedded brains GmbH.  All rights reserved.
+ *
+ *  embedded brains GmbH
+ *  Obere Lagerstr. 30
+ *  82178 Puchheim
+ *  Germany
+ *  <rtems@embedded-brains.de>
</font>  *
  * The license and distribution terms for this file may be
  * found in the file LICENSE in this distribution or at
<font color='#997700'>@@ -55,7 +56,12 @@
</font> #define LPC32XX_MMU_READ_WRITE_CACHED \
   (LPC32XX_MMU_READ_WRITE | ARM_MMU_SECT_C | ARM_MMU_SECT_B)
 
<font color='#880000'>-void lpc32xx_set_translation_table_entries(
</font><font color='#000088'>+/**
+ * @brief Sets the @a section_flags for the address range [@a begin, @a end).
+ *
+ * @return Previous section flags of the first modified entry.
+ */
+uint32_t lpc32xx_set_translation_table_entries(
</font>   const void *begin,
   const void *end,
   uint32_t section_flags

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/include/nand-mlc.h:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/include/nand-mlc.h:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/include/nand-mlc.h:1.2   Thu Oct 14 04:37:18 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/include/nand-mlc.h       Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -181,22 +181,7 @@
</font>  * @brief MLC NAND controller configuration.
  */
 typedef struct {
<font color='#880000'>-  /**
-   * @brief Selects small pages (512 Bytes user data and 16 Bytes spare data)
-   * or large pages (2048 Bytes user data and 64 Bytes spare data).
-   */
-  bool small_pages;
-
-  /**
-   * @brief Selects 3/4 address cycles for small pages/large pages or 4/5
-   * address cycles.
-   */
-  bool many_address_cycles;
-
-  /**
-   * @brief Selects 64 or 128 pages per block in case of large pages.
-   */
-  bool normal_blocks;
</font><font color='#000088'>+  uint32_t flags;
</font> 
   uint32_t block_count;
 
<font color='#997700'>@@ -207,6 +192,23 @@
</font> } lpc32xx_mlc_config;
 
 /**
<font color='#000088'>+ * @brief Selects small pages (512 Bytes user data and 16 Bytes spare data)
+ * or large pages (2048 Bytes user data and 64 Bytes spare data).
+ */
+#define MLC_SMALL_PAGES 0x1U
+
+/**
+ * @Brief Selects 3/4 address cycles for small pages/large pages or 4/5
+ * address cycles.
+ */
+#define MLC_MANY_ADDRESS_CYCLES 0x2U
+
+/**
+ * @brief Selects 64 or 128 pages per block in case of large pages.
+ */
+#define MLC_NORMAL_BLOCKS 0x4U
+
+/**
</font>  * @brief Initializes the MLC NAND controller according to @a cfg.
  */
 void lpc32xx_mlc_init(const lpc32xx_mlc_config *cfg);

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/misc/mmu.c:1.2 rtems/c/src/lib/libbsp/arm/lpc32xx/misc/mmu.c:1.3
--- rtems/c/src/lib/libbsp/arm/lpc32xx/misc/mmu.c:1.2   Thu Dec 16 07:35:06 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/misc/mmu.c       Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -7,7 +7,7 @@
</font>  */
 
 /*
<font color='#880000'>- * Copyright (c) 2010 embedded brains GmbH.  All rights reserved.
</font><font color='#000088'>+ * Copyright (c) 2010-2011 embedded brains GmbH.  All rights reserved.
</font>  *
  *  embedded brains GmbH
  *  Obere Lagerstr. 30
<font color='#997700'>@@ -22,7 +22,26 @@
</font> 
 #include <bsp/mmu.h>
 
<font color='#880000'>-void lpc32xx_set_translation_table_entries(
</font><font color='#000088'>+static uint32_t disable_mmu(void)
+{
+  uint32_t ctrl = 0;
+
+  arm_cp15_data_cache_test_and_clean_and_invalidate();
+
+  ctrl = arm_cp15_get_control();
+  arm_cp15_set_control(ctrl & ~ARM_CP15_CTRL_M);
+
+  arm_cp15_tlb_invalidate();
+
+  return ctrl;
+}
+
+static void restore_mmu_control(uint32_t ctrl)
+{
+  arm_cp15_set_control(ctrl);
+}
+
+uint32_t set_translation_table_entries(
</font>   const void *begin,
   const void *end,
   uint32_t section_flags
<font color='#997700'>@@ -31,9 +50,32 @@
</font>   uint32_t *ttb = arm_cp15_get_translation_table_base();
   uint32_t i = ARM_MMU_SECT_GET_INDEX(begin);
   uint32_t iend = ARM_MMU_SECT_GET_INDEX(ARM_MMU_SECT_MVA_ALIGN_UP(end));
<font color='#000088'>+  uint32_t ctrl = disable_mmu();
+  uint32_t section_flags_of_first_entry = ttb [i];
</font> 
   while (i < iend) {
     ttb [i] = (i << ARM_MMU_SECT_BASE_SHIFT) | section_flags;
     ++i;
   }
<font color='#000088'>+
+  restore_mmu_control(ctrl);
+
+  return section_flags_of_first_entry;
+}
+
+uint32_t lpc32xx_set_translation_table_entries(
+  const void *begin,
+  const void *end,
+  uint32_t section_flags
+)
+{
+  rtems_interrupt_level level;
+  uint32_t section_flags_of_first_entry = 0;
+
+  rtems_interrupt_disable(level);
+  section_flags_of_first_entry =
+    set_translation_table_entries(begin, end, section_flags);
+  rtems_interrupt_enable(level);
+
+  return section_flags_of_first_entry;
</font> }

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c:1.1 rtems/c/src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c:1.2
--- rtems/c/src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c:1.1      Wed Jun 23 03:27:57 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/misc/nand-mlc.c  Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -24,19 +24,30 @@
</font> 
 static volatile lpc32xx_nand_mlc *const mlc = &lpc32xx.nand_mlc;
 
<font color='#880000'>-static bool mlc_small_pages;
-
-static bool mlc_many_address_cycles;
-
-static bool mlc_normal_blocks;
</font><font color='#000088'>+static uint32_t mlc_flags;
</font> 
 static uint32_t mlc_block_count;
 
 static uint32_t mlc_page_count;
 
<font color='#000088'>+static bool mlc_small_pages(void)
+{
+  return (mlc_flags & MLC_SMALL_PAGES) != 0;
+}
+
+static bool mlc_many_address_cycles(void)
+{
+  return (mlc_flags & MLC_MANY_ADDRESS_CYCLES) != 0;
+}
+
+static bool mlc_normal_blocks(void)
+{
+  return (mlc_flags & MLC_NORMAL_BLOCKS) != 0;
+}
+
</font> uint32_t lpc32xx_mlc_page_size(void)
 {
<font color='#880000'>-  if (mlc_small_pages) {
</font><font color='#000088'>+  if (mlc_small_pages()) {
</font>     return 512;
   } else {
     return 2048;
<font color='#997700'>@@ -45,10 +56,10 @@
</font> 
 uint32_t lpc32xx_mlc_pages_per_block(void)
 {
<font color='#880000'>-  if (mlc_small_pages) {
</font><font color='#000088'>+  if (mlc_small_pages()) {
</font>     return 32;
   } else {
<font color='#880000'>-    if (mlc_normal_blocks) {
</font><font color='#000088'>+    if (mlc_normal_blocks()) {
</font>       return 64;
     } else {
       return 128;
<font color='#997700'>@@ -99,23 +110,23 @@
</font> 
 static void mlc_set_block_address(uint32_t block_index)
 {
<font color='#880000'>-  if (mlc_small_pages) {
</font><font color='#000088'>+  if (mlc_small_pages()) {
</font>     mlc->addr = (uint8_t) (block_index << 5);
     mlc->addr = (uint8_t) (block_index >> 3);
<font color='#880000'>-    if (mlc_many_address_cycles) {
</font><font color='#000088'>+    if (mlc_many_address_cycles()) {
</font>       mlc->addr = (uint8_t) (block_index >> 11);
     }
   } else {
<font color='#880000'>-    if (mlc_normal_blocks) {
</font><font color='#000088'>+    if (mlc_normal_blocks()) {
</font>       mlc->addr = (uint8_t) (block_index << 6);
       mlc->addr = (uint8_t) (block_index >> 2);
<font color='#880000'>-      if (mlc_many_address_cycles) {
</font><font color='#000088'>+      if (mlc_many_address_cycles()) {
</font>         mlc->addr = (uint8_t) (block_index >> 10);
       }
     } else {
       mlc->addr = (uint8_t) (block_index << 7);
       mlc->addr = (uint8_t) (block_index >> 1);
<font color='#880000'>-      if (mlc_many_address_cycles) {
</font><font color='#000088'>+      if (mlc_many_address_cycles()) {
</font>         mlc->addr = (uint8_t) (block_index >> 9);
       }
     }
<font color='#997700'>@@ -125,17 +136,17 @@
</font> static void mlc_set_page_address(uint32_t page_index)
 {
   mlc->addr = 0;
<font color='#880000'>-  if (mlc_small_pages) {
</font><font color='#000088'>+  if (mlc_small_pages()) {
</font>     mlc->addr = (uint8_t) page_index;
     mlc->addr = (uint8_t) (page_index >> 8);
<font color='#880000'>-    if (mlc_many_address_cycles) {
</font><font color='#000088'>+    if (mlc_many_address_cycles()) {
</font>       mlc->addr = (uint8_t) (page_index >> 16);
     }
   } else {
     mlc->addr = 0;
     mlc->addr = (uint8_t) page_index;
     mlc->addr = (uint8_t) (page_index >> 8);
<font color='#880000'>-    if (mlc_many_address_cycles) {
</font><font color='#000088'>+    if (mlc_many_address_cycles()) {
</font>       mlc->addr = (uint8_t) (page_index >> 16);
     }
   }
<font color='#997700'>@@ -145,9 +156,7 @@
</font> {
   uint32_t icr = 0;
 
<font color='#880000'>-  mlc_small_pages = cfg->small_pages;
-  mlc_many_address_cycles = cfg->many_address_cycles;
-  mlc_normal_blocks = cfg->normal_blocks;
</font><font color='#000088'>+  mlc_flags = cfg->flags;
</font>   mlc_block_count = cfg->block_count;
   mlc_page_count = cfg->block_count * lpc32xx_mlc_pages_per_block();
 
<font color='#997700'>@@ -159,10 +168,10 @@
</font>   mlc->time = cfg->time;
 
   /* Configuration */
<font color='#880000'>-  if (!mlc_small_pages) {
</font><font color='#000088'>+  if (!mlc_small_pages()) {
</font>     icr |= MLC_ICR_LARGE_PAGES;
   }
<font color='#880000'>-  if (mlc_many_address_cycles) {
</font><font color='#000088'>+  if (mlc_many_address_cycles()) {
</font>     icr |= MLC_ICR_ADDR_WORD_COUNT_4_5;
   }
   mlc_unlock();
<font color='#997700'>@@ -191,7 +200,7 @@
</font> )
 {
   rtems_status_code sc = RTEMS_SUCCESSFUL;
<font color='#880000'>-  size_t small_pages_count = mlc_small_pages ? 1 : MLC_SMALL_PAGES_PER_LARGE_PAGE;
</font><font color='#000088'>+  size_t small_pages_count = mlc_small_pages() ? 1 : MLC_SMALL_PAGES_PER_LARGE_PAGE;
</font>   size_t sp = 0;
   size_t i = 0;
   uint32_t isr = 0;
<font color='#997700'>@@ -202,7 +211,7 @@
</font> 
   mlc_wait_until_ready();
   mlc->cmd = 0x00;
<font color='#880000'>-  if (!mlc_small_pages) {
</font><font color='#000088'>+  if (!mlc_small_pages()) {
</font>     mlc->cmd = 0x30;
   }
   mlc_set_page_address(page_index);
<font color='#997700'>@@ -284,7 +293,7 @@
</font> )
 {
   rtems_status_code sc = RTEMS_IO_ERROR;
<font color='#880000'>-  size_t small_pages_count = mlc_small_pages ? 1 : MLC_SMALL_PAGES_PER_LARGE_PAGE;
</font><font color='#000088'>+  size_t small_pages_count = mlc_small_pages() ? 1 : MLC_SMALL_PAGES_PER_LARGE_PAGE;
</font>   size_t sp = 0;
   size_t i = 0;
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c:1.4 rtems/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c:1.5
--- rtems/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c:1.4       Mon Feb 21 06:54:45 2011
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/misc/restart.c   Mon Mar 28 04:00:00 2011
</font><font color='#997700'>@@ -30,24 +30,5 @@
</font> 
 void bsp_restart(void *addr)
 {
<font color='#880000'>-  ARM_SWITCH_REGISTERS;
-  rtems_interrupt_level level;
-  uint32_t ctrl = 0;
-
-  rtems_interrupt_disable(level);
-
-  arm_cp15_data_cache_test_and_clean();
-  arm_cp15_instruction_cache_invalidate();
-
-  ctrl = arm_cp15_get_control();
-  ctrl &= ~(ARM_CP15_CTRL_I | ARM_CP15_CTRL_C | ARM_CP15_CTRL_M);
-  arm_cp15_set_control(ctrl);
-
-  __asm__ volatile (
-    ARM_SWITCH_TO_ARM
-    "mov pc, %[addr]\n"
-    ARM_SWITCH_BACK
-    : ARM_SWITCH_OUTPUT
-    : [addr] "r" (addr)
-  );
</font><font color='#000088'>+  LPC32XX_DO_RESTART(addr);
</font> }

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.10 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.11
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c:1.10     Fri Dec  3 03:29:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/bspstarthooks.c  Mon Mar 28 04:00:01 2011
</font><font color='#997700'>@@ -73,6 +73,12 @@
</font>       .begin = (uint32_t) bsp_section_fast_data_begin,
       .end = (uint32_t) bsp_section_fast_data_end,
       .flags = LPC32XX_MMU_READ_WRITE_DATA
<font color='#000088'>+#ifdef LPC32XX_SCRATCH_AREA_SIZE
+    }, {
+      .begin = (uint32_t) &lpc32xx_scratch_area [0],
+      .end = (uint32_t) &lpc32xx_scratch_area [LPC32XX_SCRATCH_AREA_SIZE],
+      .flags = LPC32XX_MMU_READ_ONLY_DATA
+#endif
</font>     }, {
       .begin = (uint32_t) bsp_section_start_begin,
       .end = (uint32_t) bsp_section_start_end,
<font color='#997700'>@@ -224,34 +230,15 @@
</font> static void BSP_START_TEXT_SECTION stop_dma_activities(void)
 {
   #ifdef LPC32XX_STOP_GPDMA
<font color='#880000'>-    if ((LPC32XX_DMACLK_CTRL & 0x1) != 0) {
-      if ((lpc32xx.dma.cfg & LPC_DMA_CFG_EN) != 0) {
-        int i = 0;
-
-        for (i = 0; i < 8; ++i) {
-          lpc32xx.dma.channels [i].cfg = 0;
-        }
-
-        lpc32xx.dma.cfg &= ~LPC_DMA_CFG_EN;
-      }
-      LPC32XX_DMACLK_CTRL = 0;
-    }
</font><font color='#000088'>+    LPC32XX_DO_STOP_GPDMA;
</font>   #endif
 
   #ifdef LPC32XX_STOP_ETHERNET
<font color='#880000'>-    if ((LPC32XX_MAC_CLK_CTRL & 0x7) == 0x7) {
-      lpc32xx.eth.command = 0x38;
-      lpc32xx.eth.mac1 = 0xcf00;
-      lpc32xx.eth.mac1 = 0;
-      LPC32XX_MAC_CLK_CTRL = 0;
-    }
</font><font color='#000088'>+    LPC32XX_DO_STOP_ETHERNET;
</font>   #endif
 
   #ifdef LPC32XX_STOP_USB
<font color='#880000'>-    if ((LPC32XX_USB_CTRL & 0x010e8000) != 0) {
-      LPC32XX_OTG_CLK_CTRL = 0;
-      LPC32XX_USB_CTRL = 0x80000;
-    }
</font><font color='#000088'>+    LPC32XX_DO_STOP_USB;
</font>   #endif
 }
 

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx:1.3 Fri Dec  3 04:13:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx     Mon Mar 28 04:00:01 2011
</font><font color='#997700'>@@ -37,7 +37,8 @@
</font> MEMORY {
        RAM_INT : ORIGIN = 0x08000000, LENGTH = 256k
        RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
<font color='#880000'>-   RAM_EXT : ORIGIN = 0x80004000, LENGTH = 32M - 16k /* SDRAM on DYCS0 */
</font><font color='#000088'>+      RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
+       RAM_EXT : ORIGIN = 0x80005000, LENGTH = 32M - 20k /* SDRAM on DYCS0 */
</font>   NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
<font color='#997700'>@@ -57,9 +58,11 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#000088'>+lpc32xx_scratch_area = ORIGIN (RAM_SCRATCH);
+
</font> bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 4096;
 bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
 
<font color='#880000'>-bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1M;
</font><font color='#000088'>+bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
</font> 
 INCLUDE linkcmds.lpc32xx

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1:1.3 Fri Dec  3 04:13:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_1     Mon Mar 28 04:00:01 2011
</font><font color='#997700'>@@ -38,6 +38,7 @@
</font>   RAM_INT : ORIGIN = 0x08000000, LENGTH = 232k
        RAM_VEC : ORIGIN = 0x0803a000, LENGTH = 8k
        RAM_MMU : ORIGIN = 0x0803c000, LENGTH = 16k
<font color='#000088'>+   RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
</font>   NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
<font color='#997700'>@@ -57,6 +58,8 @@
</font> REGION_ALIAS ("REGION_WORK", RAM_INT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#000088'>+lpc32xx_scratch_area = ORIGIN (RAM_SCRATCH);
+
</font> bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 7296;
 
 bsp_vector_table_in_start_section = 1;

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.3 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.4
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2:1.3 Fri Dec  3 04:13:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_mzx_stage_2     Mon Mar 28 04:00:01 2011
</font><font color='#997700'>@@ -35,9 +35,11 @@
</font>  */
 
 MEMORY {
<font color='#880000'>-   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 */
</font><font color='#000088'>+      RAM_INT : ORIGIN = 0x08000000, LENGTH = 240k
+       RAM_FAST : ORIGIN = 0x0803c000, LENGTH = 16k
+       RAM_MMU : ORIGIN = 0x80000000, LENGTH = 16k /* SDRAM on DYCS0 */
+       RAM_SCRATCH : ORIGIN = 0x80004000, LENGTH = 4k /* SDRAM on DYCS0 */
+       RAM_EXT : ORIGIN = 0x81c00000, LENGTH = 4M /* SDRAM on DYCS0 */
</font>   NIRVANA : ORIGIN = 0, LENGTH = 0
 }
 
<font color='#997700'>@@ -49,14 +51,16 @@
</font> REGION_ALIAS ("REGION_RODATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_DATA", RAM_EXT);
 REGION_ALIAS ("REGION_DATA_LOAD", RAM_EXT);
<font color='#880000'>-REGION_ALIAS ("REGION_FAST_TEXT", RAM_EXT);
</font><font color='#000088'>+REGION_ALIAS ("REGION_FAST_TEXT", RAM_FAST);
</font> REGION_ALIAS ("REGION_FAST_TEXT_LOAD", RAM_EXT);
<font color='#880000'>-REGION_ALIAS ("REGION_FAST_DATA", RAM_EXT);
</font><font color='#000088'>+REGION_ALIAS ("REGION_FAST_DATA", RAM_FAST);
</font> REGION_ALIAS ("REGION_FAST_DATA_LOAD", RAM_EXT);
 REGION_ALIAS ("REGION_BSS", RAM_EXT);
 REGION_ALIAS ("REGION_WORK", RAM_EXT);
 REGION_ALIAS ("REGION_STACK", RAM_INT);
 
<font color='#000088'>+lpc32xx_scratch_area = ORIGIN (RAM_SCRATCH);
+
</font> bsp_stack_svc_size = DEFINED (bsp_stack_svc_size) ? bsp_stack_svc_size : 8192;
 
 INCLUDE linkcmds.lpc32xx

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.5 rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.6
--- rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore:1.5     Fri Dec  3 04:13:07 2010
+++ rtems/c/src/lib/libbsp/arm/lpc32xx/startup/linkcmds.lpc32xx_phycore Mon Mar 28 04:00:01 2011
</font><font color='#997700'>@@ -62,6 +62,6 @@
</font> bsp_stack_irq_size = DEFINED (bsp_stack_irq_size) ? bsp_stack_irq_size : 4096;
 bsp_stack_abt_size = DEFINED (bsp_stack_abt_size) ? bsp_stack_abt_size : 1024;
 
<font color='#880000'>-bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1M;
</font><font color='#000088'>+bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1M;
</font> 
 INCLUDE linkcmds.lpc32xx
</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>