Add over 32GB disk support on pc98 (userland part).
Submitted by: Hirokazu WATANABE
This commit is contained in:
parent
a855c5b2ce
commit
eb3dd13248
@ -40,7 +40,11 @@ Sanitize_Bios_Geom(struct disk *disk)
|
||||
if (disk->bios_cyl > 1024)
|
||||
#endif
|
||||
sane = 0;
|
||||
#ifdef PC98
|
||||
if (disk->bios_hd >= 256)
|
||||
#else
|
||||
if (disk->bios_hd > 16)
|
||||
#endif
|
||||
sane = 0;
|
||||
#ifdef PC98
|
||||
if (disk->bios_sect >= 256)
|
||||
@ -68,8 +72,8 @@ Sanitize_Bios_Geom(struct disk *disk)
|
||||
return;
|
||||
|
||||
/* Hmm, try harder... */
|
||||
#ifdef PC98
|
||||
/* Assume standard SCSI parameter */
|
||||
#ifdef PC98
|
||||
disk->bios_sect = 128;
|
||||
disk->bios_hd = 8;
|
||||
#else
|
||||
@ -77,6 +81,25 @@ Sanitize_Bios_Geom(struct disk *disk)
|
||||
#endif
|
||||
disk->bios_cyl = disk->chunks->size /
|
||||
(disk->bios_sect * disk->bios_hd);
|
||||
|
||||
#ifdef PC98
|
||||
if (disk->bios_cyl < 65536)
|
||||
return;
|
||||
|
||||
/* Assume UIDE-133/98-A Challenger BIOS 0.9821C parameter */
|
||||
disk->bios_sect = 255;
|
||||
disk->bios_hd = 16;
|
||||
disk->bios_cyl = disk->chunks->size /
|
||||
(disk->bios_sect * disk->bios_hd);
|
||||
|
||||
if (disk->bios_cyl < 65536)
|
||||
return;
|
||||
|
||||
/* BIG-na-Drive? */
|
||||
disk->bios_hd = 255;
|
||||
disk->bios_cyl = disk->chunks->size /
|
||||
(disk->bios_sect * disk->bios_hd);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -120,7 +120,7 @@ print_chunks(Disk *d, int u)
|
||||
for (i = 0; chunk_info[i]; i++)
|
||||
Total += chunk_info[i]->size;
|
||||
#ifdef PC98
|
||||
if (d->bios_cyl >= 65536 || d->bios_hd > 16 || d->bios_sect >= 256) {
|
||||
if (d->bios_cyl >= 65536 || d->bios_hd > 256 || d->bios_sect >= 256) {
|
||||
#else
|
||||
if (d->bios_cyl > 65536 || d->bios_hd > 256 || d->bios_sect >= 64) {
|
||||
#endif
|
||||
|
@ -120,7 +120,7 @@ print_chunks(Disk *d, int u)
|
||||
for (i = 0; chunk_info[i]; i++)
|
||||
Total += chunk_info[i]->size;
|
||||
#ifdef PC98
|
||||
if (d->bios_cyl >= 65536 || d->bios_hd > 16 || d->bios_sect >= 256) {
|
||||
if (d->bios_cyl >= 65536 || d->bios_hd > 256 || d->bios_sect >= 256) {
|
||||
#else
|
||||
if (d->bios_cyl > 65536 || d->bios_hd > 256 || d->bios_sect >= 64) {
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user