On Wed, 30 Mar 2005, krishna wrote:
Hi all,
How can one debug kernel before there is no printk mechanism in kernel.
Regards,
Krishna Chaitanya
Write directly to screen memory at 0x000b8000, or write to the
RS-232C UART while polling the TX buf empty bit, or just write
bits that mean something to you out the printer port.
Screen - memory is 16-bit words with the high-word being
an attibute byte. FYI 0x07 is a good B&W byte. You can
initialize a pointer to it as:
unsigned short *screen = 0xc00b8000; Since low memory
is always mapped, the above cheat will work. The 0xc0000000
is PAGE_OFFSET.
An early '486 was brought up into a 32-bit protected-mode
(non linux) operating system using these debugging methods.
The first time I got to see some symbol written to the
screen in protected-mode marked the start of a week-end-
long party. Have fun!