summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorrnordier <rnordier@FreeBSD.org>1998-10-27 20:19:24 +0000
committerrnordier <rnordier@FreeBSD.org>1998-10-27 20:19:24 +0000
commit25598ad6e0d817e2c59245243b16516d1369b924 (patch)
treee78e8f7dba641f782c74aab9856a2ac718034583 /sys
parentb845950ce73ad092e7f34a40eff470655b7f7d20 (diff)
downloadFreeBSD-src-25598ad6e0d817e2c59245243b16516d1369b924.zip
FreeBSD-src-25598ad6e0d817e2c59245243b16516d1369b924.tar.gz
Avoid interruptions while talking to keyboard controller.
Diffstat (limited to 'sys')
-rw-r--r--sys/boot/i386/boot2/boot1.S12
-rw-r--r--sys/boot/i386/boot2/boot1.s12
2 files changed, 14 insertions, 10 deletions
diff --git a/sys/boot/i386/boot2/boot1.S b/sys/boot/i386/boot2/boot1.S
index 8b408ce..a919d2e 100644
--- a/sys/boot/i386/boot2/boot1.S
+++ b/sys/boot/i386/boot2/boot1.S
@@ -13,7 +13,7 @@
# purpose.
#
-# $Id: boot1.s,v 1.1.1.1 1998/10/12 21:16:26 rnordier Exp $
+# $Id: boot1.s,v 1.2 1998/10/13 21:35:42 rnordier Exp $
.set MEM_REL,0x600 # Relocation address
.set MEM_ARG,0x800 # Arguments
@@ -109,16 +109,18 @@ main.5: movwrm(_dx,MEM_ARG) # Save args
# Enable A20
-seta20: inb $0x64,%al # Get status
+seta20: cli # Disable interrupts
+seta20.1: inb $0x64,%al # Get status
testb $0x2,%al # Busy?
- jnz seta20 # Yes
+ jnz seta20.1 # Yes
movb $0xd1,%al # Command: Write
outb %al,$0x64 # output port
-seta20.1: inb $0x64,%al # Get status
+seta20.2: inb $0x64,%al # Get status
testb $0x2,%al # Busy?
- jnz seta20.1 # Yes
+ jnz seta20.2 # Yes
movb $0xdf,%al # Enable
outb %al,$0x60 # A20
+ sti # Enable interrupts
ret # To caller
# Read from disk
diff --git a/sys/boot/i386/boot2/boot1.s b/sys/boot/i386/boot2/boot1.s
index 8b408ce..a919d2e 100644
--- a/sys/boot/i386/boot2/boot1.s
+++ b/sys/boot/i386/boot2/boot1.s
@@ -13,7 +13,7 @@
# purpose.
#
-# $Id: boot1.s,v 1.1.1.1 1998/10/12 21:16:26 rnordier Exp $
+# $Id: boot1.s,v 1.2 1998/10/13 21:35:42 rnordier Exp $
.set MEM_REL,0x600 # Relocation address
.set MEM_ARG,0x800 # Arguments
@@ -109,16 +109,18 @@ main.5: movwrm(_dx,MEM_ARG) # Save args
# Enable A20
-seta20: inb $0x64,%al # Get status
+seta20: cli # Disable interrupts
+seta20.1: inb $0x64,%al # Get status
testb $0x2,%al # Busy?
- jnz seta20 # Yes
+ jnz seta20.1 # Yes
movb $0xd1,%al # Command: Write
outb %al,$0x64 # output port
-seta20.1: inb $0x64,%al # Get status
+seta20.2: inb $0x64,%al # Get status
testb $0x2,%al # Busy?
- jnz seta20.1 # Yes
+ jnz seta20.2 # Yes
movb $0xdf,%al # Enable
outb %al,$0x60 # A20
+ sti # Enable interrupts
ret # To caller
# Read from disk
OpenPOWER on IntegriCloud