Index: sys/dev/isa/fd.c =================================================================== RCS file: /cvsroot/src/sys/dev/isa/fd.c,v retrieving revision 1.84 diff -u -p -r1.84 fd.c --- sys/dev/isa/fd.c 11 Apr 2008 19:16:44 -0000 1.84 +++ sys/dev/isa/fd.c 11 Apr 2008 22:06:38 -0000 @@ -204,6 +204,7 @@ const struct fd_type fd_types[] = { { 9,2,18,2,0xff,0xdf,0x2a,0x50,80,1440,1,FDC_250KBPS,0xf6,1, "720KB" }, /* 3.5 inch 720kB diskette */ { 9,2,18,2,0xff,0xdf,0x23,0x50,80,1440,1,FDC_300KBPS,0xf6,1, "720KB/x" }, /* 720kB in 1.2MB drive */ { 9,2,18,2,0xff,0xdf,0x2a,0x50,40, 720,2,FDC_250KBPS,0xf6,1, "360KB/x" }, /* 360kB in 720kB drive */ + { 36,2,72,2,0xff,0xaf,0x1b,0x54,80,5760,1,FDC_500KBPS,0xf6,1, "2.88MB" }, /* 2.88MB diskette */ }; #endif /* defined(atari) */ @@ -641,7 +642,17 @@ fd_nvtotype(const char *fdc, int nvramin { int type; - type = (drive == 0 ? nvraminfo : nvraminfo << 4) & 0xf0; + switch (drive) { + case 0: + case 1: + type = nvraminfo; + break; + + default: + type = (nvraminfo << 4) & 0xf0; + break; + } + switch (type) { case NVRAM_DISKETTE_NONE: return NULL; @@ -649,7 +660,7 @@ fd_nvtotype(const char *fdc, int nvramin return &fd_types[1]; case NVRAM_DISKETTE_TYPE5: case NVRAM_DISKETTE_TYPE6: - /* XXX We really ought to handle 2.88MB format. */ + return &fd_types[7]; /* 2.88M */ case NVRAM_DISKETTE_144M: #if NMCA > 0 if (MCA_system)