On Thu, 2009-06-25 at 14:27 +0800, Johnny Hung wrote: > 2009/6/25 Benjamin Herrenschmidt <benh@xxxxxxxxxxxxxxxxxxx>: > > > >> Before the console is set up, the printk data is formatted > >> and put into the kernel log buffer, but not sent to any console. > >> Any messages printk'ed before that are buffered but do not > >> appear. When the console is initialized, then all buffered > >> messages are sent to the console, and subsequent printks cause > >> the message to go to the log buffer, but then immediately > >> get sent from there to the console. > >> > >> Under certain conditions you can examine the log buffer of > >> a kernel that failed to initialize it's console, after a > >> warm reset of the machine, using the firmware memory dump > >> command. > > > > On ppc, we have tricks to display things earlier :-) > > > > We can initialize the serial ports way before console_setup() (and we do > > in most cases) and we use what we call the "udbg" console until the real > > one takes over. The "udbg" console is a very small layer which outputs > > via a provided "putc" routine. Platforms can provide their own here, we > > have a collection of standard ones for legacy UARTs (it should be > > automatically setup in that case by the code in legacy_serial), Apple > > ESCCs, etc... We even have compile time options that allow that stuff to > > be initialized before start_kernel... > > Thank you. This is what I described and want to understand. The > arch/powerpc/kernel/legacy_serial.c > do find_legacy_serial_ports then take a default serial port by using > open firmware device tree > information. The find_legacy_serial_ports() called form setup_arch but > I don't know who call > setup_arch (setup_32.c)function. Can you give me a hint ? Thanks in advanced. setup_arch() is called from start_kernel() in init/main.c cheers
Attachment:
signature.asc
Description: This is a digitally signed message part