summaryrefslogtreecommitdiffstats
path: root/sys/boot/i386/gptboot
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1999-01-10 13:29:52 +0000
committerpeter <peter@FreeBSD.org>1999-01-10 13:29:52 +0000
commit6f74dc01b4fb3d0b3688762c7347a90d768ac105 (patch)
tree72fe2078f53b363b03cfd5afa79c1ee34bdfe527 /sys/boot/i386/gptboot
parentb0b895bf981495c394ce2e954d19e487be93372a (diff)
downloadFreeBSD-src-6f74dc01b4fb3d0b3688762c7347a90d768ac105.zip
FreeBSD-src-6f74dc01b4fb3d0b3688762c7347a90d768ac105.tar.gz
Damn, I thought I had committed this already, but it seems not.
Move the relocated boot1 and arg transfer space from 0x600/0x800 to 0x700/0x900. In theory this should make no difference, apart from the fact that Buslogic controllers happen to use a few bytes at 0x600 for some sort of scratch space for it's int 0x13 hook (!!!), causing the machine to crash badly when the boot2 code makes it's callbacks into boot1 for disk IO. Submitted by: Robert Nordier <rnordier@freebsd.org>
Diffstat (limited to 'sys/boot/i386/gptboot')
-rw-r--r--sys/boot/i386/gptboot/gptboot.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/boot/i386/gptboot/gptboot.c b/sys/boot/i386/gptboot/gptboot.c
index a561db9..07bad96 100644
--- a/sys/boot/i386/gptboot/gptboot.c
+++ b/sys/boot/i386/gptboot/gptboot.c
@@ -14,7 +14,7 @@
*/
/*
- * $Id: boot2.c,v 1.15 1998/11/08 18:29:29 rnordier Exp $
+ * $Id: boot2.c,v 1.16 1998/11/08 18:37:28 rnordier Exp $
*/
#include <sys/param.h>
@@ -55,7 +55,7 @@
#define PATH_KERNEL "/kernel"
#define PATH_HELP "boot.help"
-#define ARGS 0x800
+#define ARGS 0x900
#define NOPT 11
#define BSIZEMAX 8192
#define NDEV 5
@@ -736,7 +736,7 @@ drvread(void *buf, unsigned lba, unsigned nblk)
printf("%c\b", c = c << 8 | c >> 24);
v86.ctl = V86_ADDR | V86_CALLF | V86_FLAGS;
- v86.addr = 0x604;
+ v86.addr = 0x704; /* call to xread in boot1 */
v86.es = VTOPSEG(buf);
v86.eax = lba;
v86.ebx = VTOPOFF(buf);
OpenPOWER on IntegriCloud