Works with .gz kernels now
authorweingart <weingart@openbsd.org>
Fri, 11 Apr 1997 19:07:07 +0000 (19:07 +0000)
committerweingart <weingart@openbsd.org>
Fri, 11 Apr 1997 19:07:07 +0000 (19:07 +0000)
sys/arch/i386/stand/Makefile.inc
sys/arch/i386/stand/biosboot/biosboot.S
sys/arch/i386/stand/boot/cmd.c
sys/arch/i386/stand/boot/srt0.S
sys/arch/i386/stand/libsa/exec_i386.c
sys/stand/boot/cmd.c

index c9c7d20..d94df93 100644 (file)
@@ -1,11 +1,11 @@
-#      $OpenBSD: Makefile.inc,v 1.5 1997/04/05 18:56:14 mickey Exp $
+#      $OpenBSD: Makefile.inc,v 1.6 1997/04/11 19:07:07 weingart Exp $
 
 #CPPFLAGS+=-nostdinc -I/sys
 CPPFLAGS+=-Wall -Werror -I. -Imachine
 SACFLAGS+=-Wa,-R -fno-common -fpack-struct -fno-builtin -fomit-frame-pointer
 CPPFLAGS+=-D_STANDALONE
-CPPFLAGS+=-DSAVE_MEMORY
-CPPFLAGS+=-DDEBUG
+# CPPFLAGS+=-DSAVE_MEMORY      /* XXX - Does *NOT* work */
+CPPFLAGS+=-DDEBUG
 # CPPFLAGS+=-DBIOS_DEBUG
 # CPPFLAGS+=-DEXEC_DEBUG
 # CPPFLAGS+=-DALLOC_TRACE
index d417da0..9beb090 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: biosboot.S,v 1.3 1997/03/31 23:06:19 mickey Exp $     */
+/*     $OpenBSD: biosboot.S,v 1.4 1997/04/11 19:09:59 weingart Exp $   */
 
        .file   "bootbios.S"
 
 #define addr32  .byte 0x67
 #define data32  .byte 0x66
 
+/* Better use 32, 48 does not seem to compile */
+#define        BLKCNT  32
+#if 0
 #ifdef DEBUG
 #define        BLKCNT  32
 #else
 #define        BLKCNT  48
 #endif
+#endif
 
 #define BOOTSEG                0x07c0  /* boot loaded here */
 #define BOOTSTACK      0xfffc  /* stack starts here */
index 07b9d25..ea26f0c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cmd.c,v 1.5 1997/04/08 22:48:29 mickey Exp $  */
+/*     $OpenBSD: cmd.c,v 1.6 1997/04/11 19:12:56 weingart Exp $        */
 
 /*
  * Copyright (c) 1997 Michael Shalayeff
@@ -339,6 +339,8 @@ execmd(cmd)
                       version,
 #ifdef DEBUG
                       (debug? "on": "off"),
+#else
+                               "not present",
 #endif
                       cmd->bootdev, cmd->cwd, cmd->image,
                       cmd->addr, cmd->timeout);
index 7f79ba0..88d8125 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: srt0.S,v 1.5 1997/04/07 01:26:00 weingart Exp $       */
+/*     $OpenBSD: srt0.S,v 1.6 1997/04/11 19:12:58 weingart Exp $       */
 /*     $NetBSD: srt0.c,v 1.3 1994/10/27 04:21:59 cgd Exp $     */
 
 /*-
@@ -105,6 +105,7 @@ __rtt:
        movw    $0x1234, %ax
        movw    %ax, 0x472      # warm boot
 
+       /* Try to use the KBD to reboot system */
        movl    $0xfe, %eax
        movl    $0x64, %edx
        outb    %al, %dx
@@ -125,8 +126,16 @@ __rtt:
        movl    $0xb8000, %ebx
        movl    $0x07310731, (%ebx)
 #endif
+
+       /* Try to cause a tripple fault... */
        lidt    _Idtr_reset
+       xorl    %eax, %eax
+       divl    %eax, %eax
+
+       /* Again... */
        int $0x8
+
+       /* Again... */
        movl    $0, %esp        # segment violation
        ret
 
index f829a22..908a9dd 100644 (file)
@@ -1,5 +1,5 @@
 
-/* $OpenBSD: exec_i386.c,v 1.5 1997/04/09 08:39:36 mickey Exp $ */
+/* $OpenBSD: exec_i386.c,v 1.6 1997/04/11 19:14:18 weingart Exp $ */
 
 #include <sys/param.h>
 #include <sys/exec.h>
@@ -7,19 +7,23 @@
 #include <libsa.h>
 
 #include <biosdev.h>
+
 int startprog(void *, void *);
 static int bootdev;
 
+#define round_to_size(x) (((int)(x) + sizeof(int) - 1) & ~(sizeof(int) - 1))
+
+
 void
 machdep_start(startaddr, howto, loadaddr, ssym, esym)
        char *startaddr, *loadaddr, *ssym, *esym;
        int howto;
 {
        static int argv[9];
-       struct exec *x;
-
 
 #ifdef DEBUG
+       struct exec *x;
+
        x = (void *)loadaddr;
        printf("exec {\n");
        printf("  a_midmag = %lx\n", x->a_midmag);
@@ -55,7 +59,7 @@ machdep_start(startaddr, howto, loadaddr, ssym, esym)
        argv[1] = howto;
        argv[2] = bootdev;
        argv[3] = (int)ssym;
-       argv[4] = (int)esym;
+       argv[4] = (int)round_to_size(esym);
        argv[5] = (int)startaddr;
        argv[6] = 0;
        argv[7] = cnvmem;
index 07b9d25..ea26f0c 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cmd.c,v 1.5 1997/04/08 22:48:29 mickey Exp $  */
+/*     $OpenBSD: cmd.c,v 1.6 1997/04/11 19:12:56 weingart Exp $        */
 
 /*
  * Copyright (c) 1997 Michael Shalayeff
@@ -339,6 +339,8 @@ execmd(cmd)
                       version,
 #ifdef DEBUG
                       (debug? "on": "off"),
+#else
+                               "not present",
 #endif
                       cmd->bootdev, cmd->cwd, cmd->image,
                       cmd->addr, cmd->timeout);