On Fri, Dec 20, 2019 at 10:33:02PM -0700, Bobby Johnson wrote:
> Any clues how I could test further?
The laptop I had hang after printing the enry point. To debug
I moved a reset function around to find the final line that is
executed before the hang.
#include <machine/pio.h>
void
cpu_reset(void)
{
outb(0x64, 0xfe);
for (volatile long i = 0; i < 100000000; i++);
outb(0x64, 0xfe);
for (volatile long i = 0; i < 100000000; i++);
for (;;)
continue;
}
As your machine reboots for unknown reason, you have to do it the
other way around. Move an endless loop before the instruction that
causes the reboot to identify the problematic code.
void
cpu_hang(void)
{
for (;;)
continue;
}
The problem may be in the boot loader or after jumping into the
kernel before printing anything. The reset/hang debugging works
for both.
Good luck,
bluhm