Re: 2.6 kernel won't reboot on AMD system - 8042 problem?

From: David N. Welton
Date: Thu Aug 05 2004 - 07:58:44 EST


[ Please CC replies to me. ]

David N. Welton wrote:

Before you hit reply or erase, no, I'm not talking about the machine not
getting past the BIOS check complaining that there is no keyboard present.

Kernel 2.6.7

model name : AMD Athlon(tm) XP 2400+

motherboard: http://www.ecsusa.com/products/km400-m2.html

... not sure what else might be useful... apci=off added to boot
options. Preemptive kernel.

In any case, the machine in question does not reboot. I traced the
problem down to the mach_reboot but it doesn't get past those assembly
instructions. Things do seem to work alright if a keyboard is
installed. Otherwise, the machine just sits there, no longer responsive
to pings or anything else.

....

any ideas on what parts of the kernel to look at in order to determine
what is causing this? I need to fix it, and I don't know where to start looking.

By putting a series of 'crashme/reboot' calls into the kernel, I narrowed a possibl cause of it down to this bit of code in drivers/input/serio.c:753

/*
* Write CTR back.
*/

if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
printk(KERN_ERR "i8042.c: Can't write CTR while initializing i8042.\n");
return -1;
}

If I do the reboot instructions before this, it reboots fine. Afterwards, and it just sits there, no reboot.

Any ideas what to think/look for/do?

Sascha, to see if your problem is the same as mine, you might try putting this bit of code before the above call:

{
static struct
{
unsigned short size __attribute__ ((packed));
unsigned long long * base __attribute__ ((packed));
} no_idt = { 0, 0 };

/* That didn't work - force a triple fault.. */
__asm__ __volatile__("lidt %0": :"m" (no_idt));
__asm__ __volatile__("int3");
}

It will cause your machine to reboot before it's even finished booting, so don't do it with your only available kernel!

Thanks,
--
David N. Welton
davidw@xxxxxxxxxxx
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/