svn commit: r200730 - in user/nyan/pc98/sys/boot: common pc98

Takahashi Yoshihiro nyan at FreeBSD.org
Sat Dec 19 13:39:08 UTC 2009


Author: nyan
Date: Sat Dec 19 13:39:07 2009
New Revision: 200730
URL: http://svn.freebsd.org/changeset/base/200730

Log:
  Don't use 15M-16M area on pc98.  It's reserved for some devices.

Modified:
  user/nyan/pc98/sys/boot/common/module.c
  user/nyan/pc98/sys/boot/pc98/Makefile.inc

Modified: user/nyan/pc98/sys/boot/common/module.c
==============================================================================
--- user/nyan/pc98/sys/boot/common/module.c	Sat Dec 19 12:06:12 2009	(r200729)
+++ user/nyan/pc98/sys/boot/common/module.c	Sat Dec 19 13:39:07 2009	(r200730)
@@ -313,6 +313,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) {
@@ -334,6 +337,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 */
@@ -439,6 +450,14 @@ mod_loadkld(const char *kldname, int arg
 	;
 
     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;

Modified: user/nyan/pc98/sys/boot/pc98/Makefile.inc
==============================================================================
--- user/nyan/pc98/sys/boot/pc98/Makefile.inc	Sat Dec 19 12:06:12 2009	(r200729)
+++ user/nyan/pc98/sys/boot/pc98/Makefile.inc	Sat Dec 19 13:39:07 2009	(r200730)
@@ -7,7 +7,7 @@ BINDIR?=	/boot
 LOADER_ADDRESS?=0x100000
 CFLAGS+=	-ffreestanding -mpreferred-stack-boundary=2 \
 		-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 \
-		-Os
+		-Os -DPC98
 LDFLAGS+=	-nostdlib
 
 # BTX components


More information about the svn-src-user mailing list