make the code which decodes the MAKEBOOTDEV()-style boot device

(as passed by the pre-1.3 bootloader) optional
This commit is contained in:
drochner 1999-10-25 17:26:05 +00:00
parent 0bd36d187b
commit 7a63478423
3 changed files with 24 additions and 7 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: files.i386,v 1.139 1999/10/15 06:10:38 haya Exp $
# $NetBSD: files.i386,v 1.140 1999/10/25 17:26:05 drochner Exp $
#
# new style config file for i386 architecture
#
@ -34,6 +34,9 @@ defopt DUMMY_NOPS
# X server support in console drivers
defopt opt_xserver.h XSERVER XSERVER_DDB
# understand boot device passed by pre-1.3 bootblocks
defopt COMPAT_OLDBOOT
file arch/i386/i386/autoconf.c
file arch/i386/i386/conf.c
file arch/i386/i386/db_dbgreg.s ddb

View File

@ -1,4 +1,4 @@
/* $NetBSD: autoconf.c,v 1.42 1999/10/18 19:37:28 fvdl Exp $ */
/* $NetBSD: autoconf.c,v 1.43 1999/10/25 17:26:07 drochner Exp $ */
/*-
* Copyright (c) 1990 The Regents of the University of California.
@ -46,13 +46,18 @@
* devices are determined (from possibilities mentioned in ioconf.c),
* and the drivers are initialized.
*/
#include "opt_compat_oldboot.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/buf.h>
#include <sys/dkstat.h>
#include <sys/disklabel.h>
#include <sys/conf.h>
#ifdef COMPAT_OLDBOOT
#include <sys/reboot.h>
#endif
#include <sys/device.h>
#include <sys/malloc.h>
#include <sys/vnode.h>
@ -232,8 +237,9 @@ matchbiosdisks()
}
}
#ifdef COMPAT_OLDBOOT
u_long bootdev = 0; /* should be dev_t, but not until 32 bits */
#endif
struct device *booted_device;
/*
@ -325,8 +331,10 @@ findroot(devpp, partp)
{
struct btinfo_bootdisk *bid;
struct device *dv;
#ifdef COMPAT_OLDBOOT
int i, majdev, unit, part;
char buf[32];
#endif
/*
* Default to "not found."
@ -409,6 +417,7 @@ found:
return;
}
#ifdef COMPAT_OLDBOOT
#if 0
printf("howto %x bootdev %x ", boothowto, bootdev);
#endif
@ -435,6 +444,7 @@ found:
return;
}
}
#endif
}
#include "pci.h"

View File

@ -1,4 +1,4 @@
/* $NetBSD: locore.s,v 1.213 1999/09/17 19:59:43 thorpej Exp $ */
/* $NetBSD: locore.s,v 1.214 1999/10/25 17:26:06 drochner Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -83,6 +83,7 @@
#include "opt_compat_linux.h"
#include "opt_compat_ibcs2.h"
#include "opt_compat_svr4.h"
#include "opt_compat_oldboot.h"
#include "npx.h"
#include "assym.h"
@ -216,7 +217,9 @@
.globl _C_LABEL(cpuid_level),_C_LABEL(cpu_feature)
.globl _C_LABEL(esym),_C_LABEL(boothowto)
.globl _C_LABEL(bootinfo),_C_LABEL(atdevbase)
#ifdef COMPAT_OLDBOOT
.globl _C_LABEL(bootdev)
#endif
.globl _C_LABEL(proc0paddr),_C_LABEL(curpcb),_C_LABEL(PTDpaddr)
.globl _C_LABEL(biosbasemem),_C_LABEL(biosextmem)
.globl _C_LABEL(gdt)
@ -262,14 +265,15 @@ tmpstk:
start: movw $0x1234,0x472 # warm boot
/*
* Load parameters from stack (howto, bootdev, unit, bootinfo, esym).
* note: (%esp) is return address of boot
* (If we want to hold onto /boot, it's physical %esp up to _end.)
* Load parameters from stack
* (howto, [bootdev], bootinfo, esym, basemem, extmem).
*/
movl 4(%esp),%eax
movl %eax,RELOC(boothowto)
#ifdef COMPAT_OLDBOOT
movl 8(%esp),%eax
movl %eax,RELOC(bootdev)
#endif
movl 12(%esp),%eax
testl %eax, %eax