最近遇到一個在POST過程中,隨意按鍵,有機率性的PS2 internal keyboard不能動的問題,所以為了解決這個問題,在BIOS logo出來時,去發一個keyboard reset給KBC controller。
以下的程式碼就是發keyboard reset給KBC controller
VOID
KeyBoardReset(
VOID
)
{
UINT8 Data;
//
// Clear Output Buffer data
//
Data = IoInput8(0x64);
while (Data & 0x01) {
Data = IoInput8(0x60);
Data = IoInput8(0x64);
}
//
// Disalbe Aux Device
//
IoOutput8 (0x64, 0xA7);
while (Data & 0x02) {
Data = IoInput8(0x64);
}
//
// Disalbe Keyboard
//
IoOutput8 (0x64, 0xAD);
while (Data & 0x02) {
Data = IoInput8(0x64);
}
//
// Reset keyboard.
//
IoOutput8 (0x60, 0xFF);
Data = IoInput8(0x64);
while (!(Data & 0x01)) {
Data = IoInput8(0x64);
}
Data = IoInput8(0x60);
Data = IoInput8(0x64);
while (!(Data & 0x01)) {
Data = IoInput8(0x64);
}
Data = IoInput8(0x60);
}
No comments:
Post a Comment