- Timestamp:
- 03/28/11 08:49:58 (13 years ago)
- Branches:
- 4.11, 5, master
- Children:
- f437107
- Parents:
- 2e031c64
- Location:
- c/src/lib/libbsp/arm
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
c/src/lib/libbsp/arm/ChangeLog
r2e031c64 r305234f7 1 2011-03-29 Sebastian Huber <sebastian.huber@embedded-brains.de> 2 3 * shared/start/start.S: Default exception handler will result in 4 bsp_reset(). 5 * shared/startup/linkcmds.base: Move unsupported sections into 6 read-only section. Changed barrier sections. 7 1 8 2011-02-11 Ralf Corsépius <ralf.corsepius@rtems.org> 2 9 -
c/src/lib/libbsp/arm/shared/start/start.S
r2e031c64 r305234f7 69 69 handler_addr_undef: 70 70 71 .word twiddle71 .word reset 72 72 73 73 handler_addr_swi: 74 74 75 .word twiddle75 .word reset 76 76 77 77 handler_addr_prefetch: 78 78 79 .word twiddle79 .word reset 80 80 81 81 handler_addr_abort: 82 82 83 .word twiddle83 .word reset 84 84 85 85 handler_addr_reserved: 86 86 87 .word twiddle87 .word reset 88 88 89 89 handler_addr_irq: 90 90 91 .word twiddle91 .word reset 92 92 93 93 handler_addr_fiq: 94 94 95 .word twiddle95 .word reset 96 96 97 97 /* Start entry */ … … 185 185 bl boot_card 186 186 187 twiddle: 188 187 189 /* Branch to reset function */ 188 190 bl bsp_reset 189 191 190 SWITCH_FROM_THUMB_TO_ARM 191 192 /* Spin forever */ 193 194 twiddle: 195 192 b twiddle 193 194 .arm 195 196 reset: 197 198 SWITCH_FROM_ARM_TO_THUMB r0 196 199 b twiddle 197 200 -
c/src/lib/libbsp/arm/shared/startup/linkcmds.base
r2e031c64 r305234f7 33 33 bsp_vector_table_size = DEFINED (bsp_vector_table_size) ? bsp_vector_table_size : 64; 34 34 35 bsp_section_ vbarrier_align = DEFINED (bsp_section_vbarrier_align) ? bsp_section_vbarrier_align : 1;35 bsp_section_xbarrier_align = DEFINED (bsp_section_xbarrier_align) ? bsp_section_xbarrier_align : 1; 36 36 bsp_section_robarrier_align = DEFINED (bsp_section_robarrier_align) ? bsp_section_robarrier_align : 1; 37 bsp_section_rwbarrier_align = DEFINED (bsp_section_rwbarrier_align) ? bsp_section_rwbarrier_align : 1; 37 38 38 39 bsp_stack_align = DEFINED (bsp_stack_align) ? bsp_stack_align : 8; … … 103 104 bsp_vector_table_end = bsp_vector_table_begin + bsp_vector_table_size; 104 105 105 . vbarrier : {106 . = ALIGN (bsp_section_ vbarrier_align);106 .xbarrier : { 107 . = ALIGN (bsp_section_xbarrier_align); 107 108 } > REGION_VECTOR 108 109 109 .interp : { 110 .fast_text : { 111 bsp_section_fast_text_begin = .; 112 *(.bsp_fast_text) 113 bsp_section_fast_text_end = .; 114 } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD 115 bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin; 116 bsp_section_fast_text_load_begin = LOADADDR (.fast_text); 117 bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size; 118 119 .text : { 110 120 bsp_section_text_begin = .; 111 *(.interp) 112 } > REGION_TEXT AT > REGION_TEXT_LOAD 113 .note.gnu.build-id : { 114 *(.note.gnu.build-id) 115 } > REGION_TEXT AT > REGION_TEXT_LOAD 116 .hash : { 117 *(.hash) 118 } > REGION_TEXT AT > REGION_TEXT_LOAD 119 .gnu.hash : { 120 *(.gnu.hash) 121 } > REGION_TEXT AT > REGION_TEXT_LOAD 122 .dynsym : { 123 *(.dynsym) 124 } > REGION_TEXT AT > REGION_TEXT_LOAD 125 .dynstr : { 126 *(.dynstr) 127 } > REGION_TEXT AT > REGION_TEXT_LOAD 128 .gnu.version : { 129 *(.gnu.version) 130 } > REGION_TEXT AT > REGION_TEXT_LOAD 131 .gnu.version_d : { 132 *(.gnu.version_d) 133 } > REGION_TEXT AT > REGION_TEXT_LOAD 134 .gnu.version_r : { 135 *(.gnu.version_r) 136 } > REGION_TEXT AT > REGION_TEXT_LOAD 137 .rel.dyn : { 138 *(.rel.init) 139 *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) 140 *(.rel.fini) 141 *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) 142 *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) 143 *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) 144 *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) 145 *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) 146 *(.rel.ctors) 147 *(.rel.dtors) 148 *(.rel.got) 149 *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) 150 PROVIDE_HIDDEN (__rel_iplt_start = .); 151 *(.rel.iplt) 152 PROVIDE_HIDDEN (__rel_iplt_end = .); 153 PROVIDE_HIDDEN (__rela_iplt_start = .); 154 PROVIDE_HIDDEN (__rela_iplt_end = .); 155 } > REGION_TEXT AT > REGION_TEXT_LOAD 156 .rela.dyn : { 157 *(.rela.init) 158 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) 159 *(.rela.fini) 160 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) 161 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) 162 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) 163 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) 164 *(.rela.ctors) 165 *(.rela.dtors) 166 *(.rela.got) 167 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) 168 PROVIDE_HIDDEN (__rel_iplt_start = .); 169 PROVIDE_HIDDEN (__rel_iplt_end = .); 170 PROVIDE_HIDDEN (__rela_iplt_start = .); 171 *(.rela.iplt) 172 PROVIDE_HIDDEN (__rela_iplt_end = .); 173 } > REGION_TEXT AT > REGION_TEXT_LOAD 174 .rel.plt : { 175 *(.rel.plt) 176 } > REGION_TEXT AT > REGION_TEXT_LOAD 177 .rela.plt : { 178 *(.rela.plt) 121 *(.text.unlikely .text.*_unlikely) 122 *(.text .stub .text.* .gnu.linkonce.t.*) 123 /* .gnu.warning sections are handled specially by elf32.em. */ 124 *(.gnu.warning) 125 *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) 179 126 } > REGION_TEXT AT > REGION_TEXT_LOAD 180 127 .init : { … … 183 130 .fini : { 184 131 KEEP (*(.fini)) 185 } > REGION_TEXT AT > REGION_TEXT_LOAD186 .plt : {187 *(.plt)188 } > REGION_TEXT AT > REGION_TEXT_LOAD189 .iplt : {190 *(.iplt)191 } > REGION_TEXT AT > REGION_TEXT_LOAD192 .text : {193 *(.text.unlikely .text.*_unlikely)194 *(.text .stub .text.* .gnu.linkonce.t.*)195 /* .gnu.warning sections are handled specially by elf32.em. */196 *(.gnu.warning)197 *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx)198 132 bsp_section_text_end = .; 199 133 } > REGION_TEXT AT > REGION_TEXT_LOAD 200 134 bsp_section_text_size = bsp_section_text_end - bsp_section_text_begin; 201 bsp_section_text_load_begin = LOADADDR (. interp);135 bsp_section_text_load_begin = LOADADDR (.text); 202 136 bsp_section_text_load_end = bsp_section_text_load_begin + bsp_section_text_size; 203 137 138 .robarrier : { 139 . = ALIGN (bsp_section_robarrier_align); 140 } > REGION_RODATA 141 142 .rodata : { 143 bsp_section_rodata_begin = .; 144 *(.rodata .rodata.* .gnu.linkonce.r.*) 145 } > REGION_RODATA AT > REGION_RODATA_LOAD 204 146 .rodata1 : { 205 bsp_section_rodata_begin = .;206 147 *(.rodata1) 207 148 } > REGION_RODATA AT > REGION_RODATA_LOAD … … 277 218 *(.got.plt) *(.igot.plt) *(.got) *(.igot) 278 219 } > REGION_RODATA AT > REGION_RODATA_LOAD 279 .rodata : { 280 /* Special FreeBSD sysctl sections */ 281 . = ALIGN (16); 220 .interp : { 221 *(.interp) 222 } > REGION_RODATA AT > REGION_RODATA_LOAD 223 .note.gnu.build-id : { 224 *(.note.gnu.build-id) 225 } > REGION_RODATA AT > REGION_RODATA_LOAD 226 .hash : { 227 *(.hash) 228 } > REGION_RODATA AT > REGION_RODATA_LOAD 229 .gnu.hash : { 230 *(.gnu.hash) 231 } > REGION_RODATA AT > REGION_RODATA_LOAD 232 .dynsym : { 233 *(.dynsym) 234 } > REGION_RODATA AT > REGION_RODATA_LOAD 235 .dynstr : { 236 *(.dynstr) 237 } > REGION_RODATA AT > REGION_RODATA_LOAD 238 .gnu.version : { 239 *(.gnu.version) 240 } > REGION_RODATA AT > REGION_RODATA_LOAD 241 .gnu.version_d : { 242 *(.gnu.version_d) 243 } > REGION_RODATA AT > REGION_RODATA_LOAD 244 .gnu.version_r : { 245 *(.gnu.version_r) 246 } > REGION_RODATA AT > REGION_RODATA_LOAD 247 .rel.dyn : { 248 *(.rel.init) 249 *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) 250 *(.rel.fini) 251 *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) 252 *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) 253 *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) 254 *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) 255 *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) 256 *(.rel.ctors) 257 *(.rel.dtors) 258 *(.rel.got) 259 *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) 260 PROVIDE_HIDDEN (__rel_iplt_start = .); 261 *(.rel.iplt) 262 PROVIDE_HIDDEN (__rel_iplt_end = .); 263 PROVIDE_HIDDEN (__rela_iplt_start = .); 264 PROVIDE_HIDDEN (__rela_iplt_end = .); 265 } > REGION_RODATA AT > REGION_RODATA_LOAD 266 .rela.dyn : { 267 *(.rela.init) 268 *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) 269 *(.rela.fini) 270 *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) 271 *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) 272 *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) 273 *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) 274 *(.rela.ctors) 275 *(.rela.dtors) 276 *(.rela.got) 277 *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) 278 PROVIDE_HIDDEN (__rel_iplt_start = .); 279 PROVIDE_HIDDEN (__rel_iplt_end = .); 280 PROVIDE_HIDDEN (__rela_iplt_start = .); 281 *(.rela.iplt) 282 PROVIDE_HIDDEN (__rela_iplt_end = .); 283 } > REGION_RODATA AT > REGION_RODATA_LOAD 284 .rel.plt : { 285 *(.rel.plt) 286 } > REGION_RODATA AT > REGION_RODATA_LOAD 287 .rela.plt : { 288 *(.rela.plt) 289 } > REGION_RODATA AT > REGION_RODATA_LOAD 290 .plt : { 291 *(.plt) 292 } > REGION_RODATA AT > REGION_RODATA_LOAD 293 .iplt : { 294 *(.iplt) 295 } > REGION_RODATA AT > REGION_RODATA_LOAD 296 .robsdsets : { 297 /* Special FreeBSD linker set sections */ 282 298 __start_set_sysctl_set = .; 283 299 *(set_sysctl_*); 284 __stop_set_sysctl_set = ABSOLUTE(.);300 __stop_set_sysctl_set = .; 285 301 *(set_domain_*); 286 302 *(set_pseudo_*); 287 _bsd__start_set_sysinit_set = .;288 *(_bsd_set_sysinit_set);289 _bsd__stop_set_sysinit_set = .;290 303 _bsd__start_set_modmetadata_set = .; 291 304 *(_bsd_set_modmetadata_set); … … 295 308 _bsd__stop_set_sysctl_set = .; 296 309 297 *(.rodata .rodata.* .gnu.linkonce.r.*)298 310 bsp_section_rodata_end = .; 299 311 } > REGION_RODATA AT > REGION_RODATA_LOAD 300 312 bsp_section_rodata_size = bsp_section_rodata_end - bsp_section_rodata_begin; 301 bsp_section_rodata_load_begin = LOADADDR (.rodata 1);313 bsp_section_rodata_load_begin = LOADADDR (.rodata); 302 314 bsp_section_rodata_load_end = bsp_section_rodata_load_begin + bsp_section_rodata_size; 303 315 304 .robarrier : { 305 . = ALIGN (bsp_section_robarrier_align); 306 } > REGION_RODATA 307 308 .data1 : { 309 bsp_section_data_begin = .; 310 *(.data1) 311 } > REGION_DATA AT > REGION_DATA_LOAD 312 .data : { 313 *(.data .data.* .gnu.linkonce.d.*) 314 SORT(CONSTRUCTORS) 315 bsp_section_data_end = .; 316 } > REGION_DATA AT > REGION_DATA_LOAD 317 bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin; 318 bsp_section_data_load_begin = LOADADDR (.data1); 319 bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size; 320 321 .fast_text : { 322 bsp_section_fast_text_begin = .; 323 *(.bsp_fast_text) 324 bsp_section_fast_text_end = .; 325 } > REGION_FAST_TEXT AT > REGION_FAST_TEXT_LOAD 326 bsp_section_fast_text_size = bsp_section_fast_text_end - bsp_section_fast_text_begin; 327 bsp_section_fast_text_load_begin = LOADADDR (.fast_text); 328 bsp_section_fast_text_load_end = bsp_section_fast_text_load_begin + bsp_section_fast_text_size; 316 .rwbarrier : { 317 . = ALIGN (bsp_section_rwbarrier_align); 318 } > REGION_DATA 329 319 330 320 .fast_data : { … … 336 326 bsp_section_fast_data_load_begin = LOADADDR (.fast_data); 337 327 bsp_section_fast_data_load_end = bsp_section_fast_data_load_begin + bsp_section_fast_data_size; 328 329 .data : { 330 bsp_section_data_begin = .; 331 *(.data .data.* .gnu.linkonce.d.*) 332 SORT(CONSTRUCTORS) 333 } > REGION_DATA AT > REGION_DATA_LOAD 334 .data1 : { 335 *(.data1) 336 } > REGION_DATA AT > REGION_DATA_LOAD 337 .rwbsdsets : { 338 /* Special FreeBSD linker set sections */ 339 _bsd__start_set_sysinit_set = .; 340 *(_bsd_set_sysinit_set); 341 _bsd__stop_set_sysinit_set = .; 342 343 bsp_section_data_end = .; 344 } > REGION_DATA AT > REGION_DATA_LOAD 345 bsp_section_data_size = bsp_section_data_end - bsp_section_data_begin; 346 bsp_section_data_load_begin = LOADADDR (.data); 347 bsp_section_data_load_end = bsp_section_data_load_begin + bsp_section_data_size; 338 348 339 349 .bss : {
Note: See TracChangeset
for help on using the changeset viewer.