CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2009/08/25 13:16:36
Modified files: sys/arch/amd64/amd64: wscons_machdep.c sys/arch/i386/i386: wscons_machdep.c sys/dev/ic : pckbc.c sys/dev/pckbc : pckbd.c Log message: Legacy-free PC hardware do not have a real PS/2 keyboard controller, but rather have the USB HCI emulate it during boot, while legacy mode is enabled. This causes pckbd0 to attach as the console device, but is lost as soon as the USB HCI driver attaches. The disappearance of the emulated PS/2 controller can however be detected in pckbc(4) - which is supposed to attach after [eou]hci(4), with the controller refusing to ack commands and replying ``please resend'' instead. In that case, the kernel will now no longer attach pckbd, and will perform a new console input device selection, allowing the (real) usb keyboard to become the console. Thanks to krw@ for countless tests on legacy-free hardware; also tested on more conventional hardware by naddy@ and I. Only amd64 and i386 platforms are affected by this change.