diff options
Diffstat (limited to 'firmware/target/arm/imx31/crt0.S')
-rw-r--r-- | firmware/target/arm/imx31/crt0.S | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/firmware/target/arm/imx31/crt0.S b/firmware/target/arm/imx31/crt0.S index d241fcb8ae..53e18c17df 100644 --- a/firmware/target/arm/imx31/crt0.S +++ b/firmware/target/arm/imx31/crt0.S | |||
@@ -231,20 +231,18 @@ remap_end: | |||
231 | bhi 1b | 231 | bhi 1b |
232 | #endif /* BOOTLOADER */ | 232 | #endif /* BOOTLOADER */ |
233 | 233 | ||
234 | #ifndef BOOTLOADER | 234 | #ifdef HAVE_INIT_ATTR |
235 | /* Copy discardable SDMA code - loaded in the stack section | 235 | /* copy init data to codec buffer */ |
236 | * and so must be done first. Destination is the plugin buffer | 236 | /* must be done before bss is zeroed */ |
237 | * which is safe when SDMA init takes place just after kernel | 237 | ldr r4, =_initcopy |
238 | * init. */ | 238 | ldr r3, =_initend |
239 | ldr r4, =_sdmacodecopy | 239 | ldr r2, =_initstart |
240 | ldr r3, =_sdmacodeend | ||
241 | ldr r2, =_sdmacodestart | ||
242 | 1: | 240 | 1: |
243 | cmp r3, r2 | 241 | cmp r3, r2 |
244 | ldrhi r5, [r4], #4 | 242 | ldrhi r5, [r4], #4 |
245 | strhi r5, [r2], #4 | 243 | strhi r5, [r2], #4 |
246 | bhi 1b | 244 | bhi 1b |
247 | #endif /* BOOTLOADER */ | 245 | #endif /* HAVE_INIT_ATTR */ |
248 | 246 | ||
249 | /* Initialise bss and ncbss sections to zero */ | 247 | /* Initialise bss and ncbss sections to zero */ |
250 | ldr r2, =_edata | 248 | ldr r2, =_edata |