2.6 kernel won't reboot on AMD system - 8042 problem?
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 5 lines · James Lamanna
Without having a USB keyboard plugged in, and having DEBUG #defined, can you post the command printks?
I suspect that David posted the printks as his machine was starting up. What we really need to look at is what happens on shutdown and if one of those commands hangs for some reason.
Without keyboard:
drivers/input/serio/i8042.c: 60 -> i8042 (command) [357624]
drivers/input/serio/i8042.c: 9a -> i8042 (parameter) [357624]
With keyboard:
drivers/input/serio/i8042.c: ff -> i8042 (kbd-data) [33392]
drivers/input/serio/i8042.c: fa <- i8042 (interrupt, kbd, 1) [33464]
drivers/input/serio/i8042.c: aa <- i8042 (interrupt, kbd, 1) [33841]
drivers/input/serio/i8042.c: 60 -> i8042 (command) [33976]
drivers/input/serio/i8042.c: 65 -> i8042 (parameter) [33976]
The shutdown sequence is not hanging, though, as far as I can tell. You can triple fault the machine immediately after the first WCTR command during initialization (triple fault reboots it just fine just before the same command) and it doesn't cause a reboot, and yet it's no longer executing instructions from the kernel (or at least not printk's or anything meaningful). I don't think it's the parameters that it's passing to the WCTR command either, because if you look in the previous batch of printk's, it's putting back in exactly what it got out.
Signature · 2 lines
David N. Welton [email protected]
Quoted 1 line · David N. Welton
The shutdown sequence is not hanging, though, as far as I can tell.
Yes, I think I pointed out before, that not any code of the kernel, but the hardware itself hangs during the reboot.
Quoted 8 lines
You can triple fault the machine immediately after the first WCTR command during initialization (triple fault reboots it just fine just before the same command) and it doesn't cause a reboot, and yet it's no longer executing instructions from the kernel (or at least not printk's or anything meaningful). I don't think it's the parameters that it's passing to the WCTR command either, because if you look in the previous batch of printk's, it's putting back in exactly what it got out.
Right, in fact the problem occures from the first writing to the i8042 register. When you comment out all of the lines sending a "I8042_CMD_CTL_WCTR" from i8042.c the resulting kernel will reboot under al conditions (at least it does here) -- but unfortunatly that renders the local Keyboard unusable...
Putting only one of them back in, (for example the one in i8042_activate_port(), which brings the keyboard back to life) the reboot hangs again.
Big question: how was the initialisation of the PS/2 ports managed in 2.4.x? Ther seems to be no similar code to i8042.c in it[0], and all I have found till now is a bunch ob obscure jump-rables in arch/i386/kernel/setup.c ...
cheers
sascha
[0] In fact, the only code mentioning the i8042 in 2.4 is related to HP HIL devices...
Signature · 2 lines
Sascha Wilde : "Lies, was ich meine, nicht, was ich schreibe."
: (Urs Traenkner in de.alt.admin)Quoted 8 lines · Sascha Wilde
On Mon, Aug 09, 2004 at 10:28:45AM +0200, David N. Welton wrote:
Big question: how was the initialisation of the PS/2 ports managed in 2.4.x? Ther seems to be no similar code to
i8042.cin it[0], and all I have found till now is a bunch ob obscure jump-rables inarch/i386/kernel/setup.c...
Look at drivers/char/pc_keyb.c
That's where the 2.4.x initialization takes place it seems.
It's pretty generic, but it looks like some of the commands are similar in initialize_kbd() - constants are in include/linux/pc_keyb.h
Pretty much all PC hardware has a i8042-like controller, so I think that file is the generic PC keyboard startup for i8042-like devices.
Looks like 2.6.x abstracted this a little farther through the serio layer, so at initialization, the system tries to assign a particular driver to the serio ports it finds (there are drivers for AT, i8042 (and variants), etc..)
Signature · 1 line
James Lamanna