Bump boot block revision to 1.9 by a dummy edit on disk.c and:
>From: bde@kralizec.zeta.org.au (Bruce Evans) Subject: cache botch in bootstrap Date: Sun, 20 Feb 94 18:14:35 +1100 The cache in the bootstrap loader didn't allow for the device changing. This caused surprisingly little trouble - the cache is only for a single track (or part of a track), and the first access to a new device is always for an early sector, so there is no problem unless the last access to the old device was for an early sector. I saw the problem on a system with BSD on wd1 and no label on wd0. Everything worked if the the device name wd(1,a) was specified before the default of wd(0,a) was tried, but when the default was tried, it failed on the first sector because there was no label, and then the first sector on wd0 was always used instead of the first sector on wd1, so there was apparently no label on wd1 either. Bruce
This commit is contained in:
parent
97687d1b3d
commit
9ad564373e
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, [92/04/03 16:51:14 rvb]
|
||||
* $Id: boot.c,v 1.7 1993/10/15 12:33:03 rgrimes Exp $
|
||||
* $Id: boot.c,v 1.8 1993/10/16 19:11:31 rgrimes Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ int drive;
|
||||
ouraddr,
|
||||
argv[7] = memsize(0),
|
||||
argv[8] = memsize(1),
|
||||
"$Revision: 1.7 $");
|
||||
"$Revision: 1.9 $");
|
||||
printf("use hd(1,a)/386bsd to boot sd0 when wd0 is also installed\n");
|
||||
gateA20();
|
||||
loadstart:
|
||||
|
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, Revision 2.2 92/04/04 11:35:49 rpd
|
||||
* $Id$
|
||||
* $Id: disk.c,v 1.3 1993/10/16 19:11:34 rgrimes Exp $
|
||||
*/
|
||||
|
||||
#include "boot.h"
|
||||
@ -166,13 +166,14 @@ devread()
|
||||
*/
|
||||
#define RA_SECTORS 18
|
||||
static char ra_buf[RA_SECTORS * BPS];
|
||||
static int ra_dev;
|
||||
static int ra_end;
|
||||
static int ra_first;
|
||||
|
||||
Bread(dosdev,sector)
|
||||
int dosdev,sector;
|
||||
{
|
||||
if (sector < ra_first || sector >= ra_end)
|
||||
if (dosdev != ra_dev || sector < ra_first || sector >= ra_end)
|
||||
{
|
||||
int cyl, head, sec, nsec;
|
||||
|
||||
@ -192,6 +193,7 @@ Bread(dosdev,sector)
|
||||
twiddle();
|
||||
}
|
||||
}
|
||||
ra_dev = dosdev;
|
||||
ra_first = sector;
|
||||
ra_end = sector + nsec;
|
||||
}
|
||||
|
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, [92/04/03 16:51:14 rvb]
|
||||
* $Id: boot.c,v 1.7 1993/10/15 12:33:03 rgrimes Exp $
|
||||
* $Id: boot.c,v 1.8 1993/10/16 19:11:31 rgrimes Exp $
|
||||
*/
|
||||
|
||||
|
||||
@ -76,7 +76,7 @@ int drive;
|
||||
ouraddr,
|
||||
argv[7] = memsize(0),
|
||||
argv[8] = memsize(1),
|
||||
"$Revision: 1.7 $");
|
||||
"$Revision: 1.9 $");
|
||||
printf("use hd(1,a)/386bsd to boot sd0 when wd0 is also installed\n");
|
||||
gateA20();
|
||||
loadstart:
|
||||
|
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, Revision 2.2 92/04/04 11:35:49 rpd
|
||||
* $Id$
|
||||
* $Id: disk.c,v 1.3 1993/10/16 19:11:34 rgrimes Exp $
|
||||
*/
|
||||
|
||||
#include "boot.h"
|
||||
@ -166,13 +166,14 @@ devread()
|
||||
*/
|
||||
#define RA_SECTORS 18
|
||||
static char ra_buf[RA_SECTORS * BPS];
|
||||
static int ra_dev;
|
||||
static int ra_end;
|
||||
static int ra_first;
|
||||
|
||||
Bread(dosdev,sector)
|
||||
int dosdev,sector;
|
||||
{
|
||||
if (sector < ra_first || sector >= ra_end)
|
||||
if (dosdev != ra_dev || sector < ra_first || sector >= ra_end)
|
||||
{
|
||||
int cyl, head, sec, nsec;
|
||||
|
||||
@ -192,6 +193,7 @@ Bread(dosdev,sector)
|
||||
twiddle();
|
||||
}
|
||||
}
|
||||
ra_dev = dosdev;
|
||||
ra_first = sector;
|
||||
ra_end = sector + nsec;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user