[U-Boot-Users] BSS initialization wrong on ARM??

Hi folks,
on the smdk2410 I found out that the BSS segment is initialized at offset 0x4 and not with offset 0x0, leaving the first entry undefined (in my case timer_load_val), at least with gcc-3.3. Cause of pain is arm920t/start.S:clear_bss
clear_bss: ldr r0, _bss_start /* find start of bss segment */ add r0, r0, #4 /* start at first byte of bss */ ldr r1, _bss_end /* stop here */
I think the add has to be removed. This also seems to be the case on arm720t and arm926ejs.
Bye,

Dear Markus,
in message 200405041112.56047.maillist@fsforth.de you wrote:
on the smdk2410 I found out that the BSS segment is initialized at offset 0x4 and not with offset 0x0, leaving the first entry undefined (in my case timer_load_val), at least with gcc-3.3. Cause of pain is arm920t/start.S:clear_bss
I think you are right. Thanks for pointing out.
clear_bss: ldr r0, _bss_start /* find start of bss segment */ add r0, r0, #4 /* start at first byte of bss */ ldr r1, _bss_end /* stop here */
I think the add has to be removed. This also seems to be the case on arm720t and arm926ejs.
Actually _all_ ARM systems are affected - except s3c44b0 which doesn't clear BSS at all?
Andrea, am I missing something, or is the clear_bss code missing in your port for the s3c44b0 processor?
Best regards,
Wolfgang Denk
participants (2)
-
Markus Pietrek
-
Wolfgang Denk