
Glenson Muthedan glenson@gmx.de schreibt:
Thank you guys for your kind help. My SDRAM initialization was not correct. Now, having done some changes, everything seems to work smoothly except one line in devices_init() in the file common/devices.c
The execution stops at the line gd->flags |= GD_FLG_DEVINIT; /* device initialization done */
Then, sometimes a "prefetch abort" occurs, sometimes it just hangs.
Hi Glenson,
does it happen immediately at that line, or did you add any debug output?
As soon as GD_FLG_DEVINIT is set, the output functions (puts, printf, ...) will search for the output device in a lookup table, which unfortunately has not yet been initialized at that point (the lookup table is initialized in console_init_r() which is called *after* devices_init() has completed).
Perhaps the line "gd->flags |= GD_FLG_DEVINIT;" should better be moved to console_init_r() ?
Cheers Anders