
Dear Gary Jennejohn,
In message 20081021114543.1c44ff03@ernst.jennejohn.org you wrote:
By the time the problem arises we're already running out of RAM.
So maybe you can describe exactly what happens, and when?
I think the real problem is that console_init_r() is called too early. If it were called *after* eth_initialize() then there would be no difficulties.
AFAICT moving console_init_r() shouldn't present any problems, since until its invocation U-Boot will simply use the serial interface.
I am not so sure. Moving things around not as trivial as it may seem, as we have all kinds of configurations with LCD display, modem support etc.
I can't imagine that waiting a few milliseconds longer to switch to whatever console the user has set in the environment would present a problem.
It's not the millisecondsa, but the sequence that may matter.
This has the following advantages a) nc has been initialized and can be used as a console, if so desired b) any hardware initializations, such as SPI or I2C, which may be required to initialize an ethernet device have already happened c) the ethernet device is already initialized and ready to go d) no need to split up setting gd->flags
And it has the disadvantage that you have to re-test on some 500+ boards if anything breaks.
It isn't clear to me whether the architecture-specific libs have custodians. Does anyone know?
What is not clear about that? Do we have custodians for architecture specific files? Yes, we do. So whay do you doubt that the libs fall into their responsibility, too?
Best regards,
Wolfgang Denk