keyboard issues: the following code hangs right now:
void pc_keyboard_reset() { volatile unsigned char regval; /* reset any keyboard interrupts ... */ (void) inb(0x60); /* test loop ... delete this when things seem to work ... */ regval = inb(0x64); display("regval from kb is "); printint(regval); display("\n"); regval &= 4; outb(0xaa, 0x64); while ((inb(0x64) & 1) == 0) ;
display("0x60 has "); printint(inb(0x60)); display("\n");
outb(0x60, 0x64);
/* this test was 2, but it never worked, try 1 */ while((inb(0x64) & 1) == 0) ;
outb(0x61 | regval, 0x60); /* this test was 2, but it never worked, try 1 */ while((inb(0x64) & 1) == 0) ;
} #ifdef SIS630_KEYBOARD void intel_keyboard_on() { unsigned char regval;
regval = intel_conf_readb(0x80000847); regval |= 8; intel_conf_writeb(0x80000847, regval); pc_keyboard_reset(); } #endif
The intel_keyboard_on seems to go ok, but the keyboard reset loops hang on testing the low-order bit. Any ideas here would sure help.
ron
- To unsubscribe: send mail to majordomo@freiburg.linux.de with 'unsubscribe openbios' in the body of the message