Index: sysutils/grub/Makefile =================================================================== RCS file: /e/cvsync/cvsync/pkgsrc/sysutils/grub/Makefile,v retrieving revision 1.48 diff -u -a -r1.48 Makefile --- sysutils/grub/Makefile 7 Oct 2007 18:00:55 -0000 1.48 +++ sysutils/grub/Makefile 20 Feb 2008 06:48:28 -0000 @@ -1,7 +1,7 @@ # $NetBSD: Makefile,v 1.48 2007/10/07 18:00:55 xtraeme Exp $ DISTNAME= grub-0.97 -PKGREVISION= 8 +PKGREVISION= 9 CATEGORIES= sysutils MASTER_SITES= ftp://alpha.gnu.org/gnu/grub/ Index: sysutils/grub/distinfo =================================================================== RCS file: /e/cvsync/cvsync/pkgsrc/sysutils/grub/distinfo,v retrieving revision 1.22 diff -u -a -r1.22 distinfo --- sysutils/grub/distinfo 25 Jun 2007 13:05:56 -0000 1.22 +++ sysutils/grub/distinfo 20 Feb 2008 12:00:14 -0000 @@ -16,3 +16,4 @@ SHA1 (patch-ak) = 8e67eb603e639ca47536cb191e7e29ec48b95642 SHA1 (patch-al) = 58761e867ff182ad46c42b15575395ba8c38fbd6 SHA1 (patch-am) = d848f67f7f21fa076751d14bd3235ae7351be1b7 +SHA1 (patch-an) = dc188f9f2cc2940d50edad94476fc0e949bc4a71 Index: sysutils/grub/patches/patch-an =================================================================== RCS file: sysutils/grub/patches/patch-an diff -N sysutils/grub/patches/patch-an --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ sysutils/grub/patches/patch-an 20 Feb 2008 11:59:55 -0000 @@ -0,0 +1,68 @@ +diff -u -r grub-0.97/stage2/asm.S grub-0.97-new/stage2/asm.S +--- grub-0.97/stage2/asm.S 2004-06-19 16:55:22.000000000 +0000 ++++ ./stage2/asm.S 2006-05-19 10:56:12.000000000 +0000 +@@ -1651,7 +1651,29 @@ + jnz 3f + ret + +-3: /* use keyboard controller */ ++3: /* ++ * try to switch gateA20 using PORT92, the "Fast A20 and Init" ++ * register ++ */ ++ mov $0x92, %dx ++ inb %dx, %al ++ /* skip the port92 code if it's unimplemented (read returns 0xff) */ ++ cmpb $0xff, %al ++ jz 6f ++ ++ /* set or clear bit1, the ALT_A20_GATE bit */ ++ movb 4(%esp), %ah ++ testb %ah, %ah ++ jz 4f ++ orb $2, %al ++ jmp 5f ++4: and $0xfd, %al ++ ++ /* clear the INIT_NOW bit; don't accidently reset the machine */ ++5: and $0xfe, %al ++ outb %al, %dx ++ ++6: /* use keyboard controller */ + pushl %eax + + call gloop1 +@@ -1661,9 +1683,12 @@ + + gloopint1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloopint1_done + andb $K_IBUF_FUL, %al + jnz gloopint1 + ++gloopint1_done: + movb $KB_OUTPUT_MASK, %al + cmpb $0, 0x8(%esp) + jz gdoit +@@ -1684,6 +1709,8 @@ + + gloop1: + inb $K_STATUS ++ cmpb $0xff, %al ++ jz gloop2ret + andb $K_IBUF_FUL, %al + jnz gloop1 + +@@ -1991,6 +2018,11 @@ + ENTRY(console_getkey) + push %ebp + ++wait_for_key: ++ call EXT_C(console_checkkey) ++ incl %eax ++ jz wait_for_key ++ + call EXT_C(prot_to_real) + .code16 +