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:
parent
a115c84d58
commit
31062da1b0
@ -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
|
||||
|
||||
|
@ -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");
|
||||
}
|
@ -104,8 +104,6 @@ void biosacpi_detect(void);
|
||||
|
||||
void smbios_detect(void);
|
||||
|
||||
void gateA20(void);
|
||||
|
||||
int i386_autoload(void);
|
||||
|
||||
int bi_getboothowto(char *kargs);
|
||||
|
@ -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
|
||||
|
@ -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");
|
||||
}
|
Loading…
Reference in New Issue
Block a user