<!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>