
hi wolfgang,
El Tue, Dec 08, 2009 at 09:33:18PM +0100 Wolfgang Denk ha dit:
In message 20091208151358.GD31886@darwin you wrote:
i am starting to look at this issue and it seems i need some more guidance:
before relocating U-Boot to RAM for ARM920T processors a jump to the label *lowlevel_init* is performed, where RAM timings are supposed to be set up. in the patch i sent these operations are performed in assembly and you asked me to rewrite them in C.
i'm relativly new to low-level setup, so i apologize if the following question sounds plain stupid to you: is C really available at this point? if my interpretation of the code in cpu/arm920t/start.S is correct, C code starts at start_armboot, after relocation of U-Boot. and after that point i'd think it's to late to change RAM timings as U-Boot is running from RAM.
After relocation we have a full-blown, "normal" C runtime environment. Before that, you can use C as well, if you mind the restrictions (like data and bss not being available/writable yet, no real stack, etc.).
could you please give some advice to clear my confusion and maybe provide a pointer to a board/cpu which handles low-level setup in the intended way?
If you check theinit code in cpu/arm920t/start.S you will notice that one of the really early things it does is calling coloured_LED_init() and red_LED_on(). Note that these functions are implemented in C.
thanks a lot for your explications and for providing an example
best regards