Drop the gateA20() function in the loader as it is unused. All the other

boot loaders that load the loader already handle A20.  In fact, they are
required to do so in order to setup the environment that btxldr expects.
This commit is contained in:
John Baldwin 2006-04-11 20:11:30 +00:00
parent a115c84d58
commit 31062da1b0
5 changed files with 2 additions and 100 deletions

View File

@ -6,7 +6,7 @@ INTERNALLIB=
SRCS= biosacpi.c bioscd.c biosdisk.c biosmem.c biospnp.c \
biospci.c biossmap.c bootinfo.c bootinfo32.c bootinfo64.c \
comconsole.c devicename.c elf32_freebsd.c \
elf64_freebsd.c gatea20.c \
elf64_freebsd.c \
i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
smbios.c time.c vidconsole.c amd64_tramp.S

View File

@ -1,54 +0,0 @@
/*
* $NetBSD: gatea20.c,v 1.2 1997/10/29 00:32:49 fvdl Exp $
*/
/* extracted from freebsd:sys/i386/boot/biosboot/io.c */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <stand.h>
#include <machine/cpufunc.h>
#include <bootstrap.h>
#include "libi386.h"
#define K_RDWR 0x60 /* keyboard data & cmds (read/write) */
#define K_STATUS 0x64 /* keyboard status */
#define K_CMD 0x64 /* keybd ctlr command (write-only) */
#define K_OBUF_FUL 0x01 /* output buffer full */
#define K_IBUF_FUL 0x02 /* input buffer full */
#define KC_CMD_WIN 0xd0 /* read output port */
#define KC_CMD_WOUT 0xd1 /* write output port */
#define KB_A20 0x9f /* enable A20,
reset (!),
enable output buffer full interrupt
enable data line
disable clock line */
/*
* Gate A20 for high memory
*/
static unsigned char x_20 = KB_A20;
void gateA20()
{
__asm("pushfl ; cli");
#ifdef IBM_L40
outb(0x92, 0x2);
#else /* !IBM_L40 */
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);
#endif /* IBM_L40 */
__asm("popfl");
}

View File

@ -104,8 +104,6 @@ void biosacpi_detect(void);
void smbios_detect(void);
void gateA20(void);
int i386_autoload(void);
int bi_getboothowto(char *kargs);

View File

@ -7,7 +7,7 @@ INTERNALLIB=
SRCS= bioscd.c biosdisk.c biosmem.c biospnp.c biospci.c biossmap.c \
bootinfo.c bootinfo32.c comconsole.c devicename.c elf32_freebsd.c \
gatea20.c i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
i386_copy.c i386_module.c nullconsole.c pxe.c pxetramp.s \
time.c vidconsole.c
BOOT_COMCONSOLE_PORT?= 0x238

View File

@ -1,42 +0,0 @@
/*
* $NetBSD: gatea20.c,v 1.2 1997/10/29 00:32:49 fvdl Exp $
*/
/* extracted from freebsd:sys/i386/boot/biosboot/io.c */
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
#include <stand.h>
#include <machine/cpufunc.h>
#include <bootstrap.h>
#include "libi386.h"
#define K_RDWR 0x60 /* keyboard data & cmds (read/write) */
#define K_STATUS 0x64 /* keyboard status */
#define K_CMD 0x64 /* keybd ctlr command (write-only) */
#define K_OBUF_FUL 0x01 /* output buffer full */
#define K_IBUF_FUL 0x02 /* input buffer full */
#define KC_CMD_WIN 0xd0 /* read output port */
#define KC_CMD_WOUT 0xd1 /* write output port */
#define KB_A20 0x9f /* enable A20,
reset (!),
enable output buffer full interrupt
enable data line
disable clock line */
/*
* Gate A20 for high memory
*/
static unsigned char x_20 = KB_A20;
void gateA20()
{
__asm("pushfl ; cli");
outb(0xf2, 0x00);
outb(0xf6, 0x02);
__asm("popfl");
}