I'm using qemu like this: qemu -nographic -kernel /home/john/dev-linux/arch/x86/boot/bzImage \ -append "console=ttyS0" I noticed that I can do a printk in arch/x86/kernel/head64.c right after the call to clear_bss (line 162 in x86_64_start_kernel). I see the output of the printk on the serial console. This seems to be before any uart/console has been initialized. I'm curious how the printk can make it to the serial console. Anyone know why printk is sending output to the serial console this early in the boot process? I would expect that the serial line wouldn't be ready and that qemu would behave like actual hardware.
On Sun, 24 Aug 2014 18:02:29 -0400, John de la Garza said:
I would expect that the serial line wouldn't be ready and that qemu would behave like actual hardware.
Why? QEMU knows it's running as a user process. Do you see anywhere in the documentation that it guarantees emulation of real hardware? (Hint - it's connecting your earlyprintk console to stdout, and as long as it's doing that, there's no reason for it to *not* go the extra step and provide emulation of the UART so you can debug early kernel problems....)
participants (2)
-
John de la Garza -
Valdis.Kletnieks@vt.edu