diff options
author | nyan <nyan@FreeBSD.org> | 2009-12-31 12:17:38 +0000 |
---|---|---|
committer | nyan <nyan@FreeBSD.org> | 2009-12-31 12:17:38 +0000 |
commit | 0a4c3bb56fc9095d9ea28c80b65f9b3ff2bd3dd7 (patch) | |
tree | 54832b668a3e92a7b5cb6e60466ddc2880144af8 | |
parent | b0893959b01cee764be74e3129c8344958da41c8 (diff) | |
download | FreeBSD-src-0a4c3bb56fc9095d9ea28c80b65f9b3ff2bd3dd7.zip FreeBSD-src-0a4c3bb56fc9095d9ea28c80b65f9b3ff2bd3dd7.tar.gz |
Don't use 15M-16M area on pc98. It's reserved for some devices.
MFC after: 2 week
-rw-r--r-- | sys/boot/common/module.c | 19 | ||||
-rw-r--r-- | sys/boot/pc98/Makefile.inc | 2 |
2 files changed, 20 insertions, 1 deletions
diff --git a/sys/boot/common/module.c b/sys/boot/common/module.c index 098e39a..18ba1b5 100644 --- a/sys/boot/common/module.c +++ b/sys/boot/common/module.c @@ -351,6 +351,9 @@ file_loadraw(char *type, char *name) char *cp; int fd, got; vm_offset_t laddr; +#ifdef PC98 + struct stat st; +#endif /* We can't load first */ if ((file_findfile(NULL, NULL)) == NULL) { @@ -372,6 +375,14 @@ file_loadraw(char *type, char *name) return(CMD_ERROR); } +#ifdef PC98 + /* We cannot use 15M-16M area on pc98. */ + if (loadaddr < 0x1000000 && + fstat(fd, &st) == 0 && + (st.st_size == -1 || loadaddr + st.st_size > 0xf00000)) + loadaddr = 0x1000000; +#endif + laddr = loadaddr; for (;;) { /* read in 4k chunks; size is not really important */ @@ -477,6 +488,14 @@ mod_loadkld(const char *kldname, int argc, char *argv[]) ; do { +#ifdef PC98 + /* We cannot use 15M-16M area on pc98. */ + struct stat st; + if (loadaddr < 0x1000000 && + stat(filename, &st) == 0 && + (st.st_size == -1 || loadaddr + st.st_size > 0xf00000)) + loadaddr = 0x1000000; +#endif err = file_load(filename, loadaddr, &fp); if (err) break; diff --git a/sys/boot/pc98/Makefile.inc b/sys/boot/pc98/Makefile.inc index 54d4431..641fbca8 100644 --- a/sys/boot/pc98/Makefile.inc +++ b/sys/boot/pc98/Makefile.inc @@ -7,7 +7,7 @@ BINDIR?= /boot LOADER_ADDRESS?=0x200000 CFLAGS+= -ffreestanding -mpreferred-stack-boundary=2 \ -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 \ - -Os + -Os -DPC98 LDFLAGS+= -nostdlib # BTX components |