[U-Boot] Trying to understand ARM926EJS/start.S

Wolfgang Denk
2010-10-30T20:12:46Z

Dear Reinhard Meyer,

In message <4CCC709F.20306@emk-elektronik.de> you wrote:
>
> > Neither do I -- if you think of Alexander's issue, I think it is not related to BSS initialization.
>
> No, since everything works fine here (though I cannot confirm BSS gets cleared,
> maybe none of the code active here assumes cleared BSS:) ), but I am sure ALL
> code and vars is really accessed at the final, high end RAM location. I filled
> all RAM upto 2MB below the end with garbage and nothing crashed and u-boot
> still behaved proper.

Well, if you like then just make an experiment and replace the

mov r2, #0x00000000 /* clear */

by something like

mov r2, #0xA5A5A5A5 /* clear */

and watch your system go kaboom...

> Alexander's issue cannot be related to a general u-boot problem, it must be
> SoC or board specific or handling specific. As to what we can only speculate.
>
> I can only advise again to check for static vars that are used before relocation
> (which need not lead to a crash), but their values will be lost during
> relocation. This made timers fail here because clock frequencies calculated
> in timer init before relocation and stored in static vars were gone after
> relocation.

That would most likely be driver stuff, which is shared with other
boards, so thse should show similar issues.

My bet is on errors in the initial RAM setup - like unaligned intial
stack (which would also explain the bogus RAM sizes printed, with the
hex numbers not even corresponding to the decimal decoding), and/or
tool chain issues (I've seen way too many optimizer bugs in GCC >= 4.3
lately).

> Oh, and u-boot did not work here when compiled with gcc 4.4.5 - I almost forgot
> about that... I think I even mentioned that in some message a while ago, but I
> can't find it right now.

I'm neither surprised nor amused.

Best regards,

Wolfgang Denk

--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
I have often regretted my speech, never my silence.