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

Wolfgang Denk wd at denx.de
Wed Jun 9 01:45:12 CEST 2004


Dear Markus,

in message <200405041112.56047.maillist at 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

-- 
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Q: What do you get when you cross an ethernet with an income statement?
A: A local area networth.




More information about the U-Boot mailing list