Subject: Issue with /usr/src/sys/arch/i386/stand/lib/gatea20.c
To: NetBSD-current <current-users@NetBSD.org>
From: Marcin Jessa <lists@yazzy.org>
List: current-users
Date: 06/21/2005 15:50:37
Hi.
I have WRAP boards which do not have a keyboard controller.
The system stops up when booting those boards becouse of that.
It seems like the /usr/src/sys/arch/i386/stand/lib/gatea20.c file is the one responsible for that.
Would someone knowledgable take a look at the file and maybe fix that part?
This is what Dani Irinchev wrote once to the current list and Jukka Salmi (this fix solves the problem):
> Hi Jukka,
> Actually I got it running. It stops in the gateA20() function and is
related
> to the lack of a keyboard controller. I modified the finction gateA20 in
the
> file /usr/src/sys/arch/i386/stand/lib/gatea20.c to look like:
>
> void gateA20()
> {
> __asm("pushfl ; cli");
> /*
> * Not all systems enable A20 via the keyboard controller.
> * * IBM PS/2 L40
> * * AMD Elan SC520-based systems
> */
> /*
> if (
> #ifdef SUPPORT_PS2
> biosmca_ps2model == 0xf82 ||
> #endif
>
> 0) {
> outb(0x92, 0x2);
> } else {
> while (inb(K_STATUS) & K_IBUF_FUL);
> while (inb(K_STATUS) & K_OBUF_FUL)
> (void)inb(K_RDWR);
>
> outb(K_CMD, KC_CMD_WOUT);
> delay(100);
> while (inb(K_STATUS) & K_IBUF_FUL);
> outb(K_RDWR, x_20);
> delay(100);
> while (inb(K_STATUS) & K_IBUF_FUL);
> }
> */
> outb(0x92, 0x2);
> __asm("popfl");
> }
>
> Basically commented out most of it. Then you should run make in the
> /usr/src/sys/arch/i386/stand/boot directory and copy boot from
> /usr/src/sys/arch/i386/stand/boot/biosboot to your / directory.
> Cheers, Dani