diff options
| author | Joerg Wunsch <joerg@FreeBSD.org> | 1997-10-19 13:15:26 +0000 |
|---|---|---|
| committer | Joerg Wunsch <joerg@FreeBSD.org> | 1997-10-19 13:15:26 +0000 |
| commit | 30d8d5d9ae9fd4cd81b5d99b68c3eb6f7e06fe03 (patch) | |
| tree | f3d004bb54ec5439b83829710b7453115e6a8754 | |
| parent | 1abb184f19bd4932ac212c2669af5cfe076f9d31 (diff) | |
Notes
| -rw-r--r-- | release/sysinstall/help/hardware.hlp | 13 | ||||
| -rw-r--r-- | share/man/man4/man4.i386/fdc.4 | 11 | ||||
| -rw-r--r-- | sys/i386/isa/fd.c | 17 |
3 files changed, 36 insertions, 5 deletions
diff --git a/release/sysinstall/help/hardware.hlp b/release/sysinstall/help/hardware.hlp index 8edc44f72985..7f3f9976f5f9 100644 --- a/release/sysinstall/help/hardware.hlp +++ b/release/sysinstall/help/hardware.hlp @@ -1,4 +1,4 @@ -Hardware Documentation Guide: $Id: hardware.hlp,v 1.9.2.21 1997/10/17 02:29:46 jkh Exp $ +Hardware Documentation Guide: $Id: hardware.hlp,v 1.9.2.22 1997/10/17 06:39:12 msmith Exp $ Contents last changed: March 27th, 1997 @@ -499,6 +499,17 @@ A: Yes, it is. There's a workaround available now and it is enabled automatically if this chip is used on your system. For the details refer to the manual page of the disk driver (man 4 wd). + +Q: On a Compaq Aero notebook, I get the message "No floppy devices found! + Please check ..." when trying to install from floppy. + +A: With Compaq being always a little different from other systems, they + do not announce their floppy drive in the CMOS RAM of an Aero notebook. + Therefore, the floppy disk driver assumes there is no drive configured. + Go to the UserConfig screen, and set the Flags value of the fdc0 device + to 0x1. This pretends the existance of the first floppy drive (as a + 1.44 MB drive) to the driver without asking the CMOS at all. + Q: When I go to boot my Intel AL440LX ("Atlanta") -based system from the hard disk the first time, it stops with a "Read Error" message. diff --git a/share/man/man4/man4.i386/fdc.4 b/share/man/man4/man4.i386/fdc.4 index 2bf004d6f632..86bf954d12dc 100644 --- a/share/man/man4/man4.i386/fdc.4 +++ b/share/man/man4/man4.i386/fdc.4 @@ -24,7 +24,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $Id: fdc.4,v 1.8 1997/02/22 13:25:23 peter Exp $ +.\" $Id: fdc.4,v 1.4.2.2 1997/02/28 03:26:50 mpp Exp $ .\" .Dd August 31, 1994 .Dt FDC 4 i386 @@ -34,7 +34,7 @@ .Nd PC architecture floppy disk controller driver .Sh SYNOPSIS -.Cd "controller fdc0 at isa? port" \&"IO_FD1\&" bio irq 6 drq 2 vector fdintr +.Cd "controller fdc0 at isa? port" \&"IO_FD1\&" bio "flags 0x1" "irq 6" "drq 2" "vector fdintr" .Cd "disk fd0 at fdc0 drive 0 .Cd "disk fd1 at fdc0 drive 1 .Pp @@ -48,6 +48,13 @@ In /dev for each floppy device a number of minor devices are present. The indicate the size of the floppy disk (so: 720kB, 1440kB etc). The latter are used for formatting disks using fdformat or for accessing different density disks in multidensity drive. Example: 720kB disk in a 1.44Mb drive. +.Pp +Normally, the driver will ask the system's CMOS memory to obtain the +floppy drive configuration. Some machines do not store any form of a +configuration value in their CMOS. Use the flags value +.Ql 0x1 +to pretend a 1.44 MB floppy drive as the first unit, without asking the +CMOS for it. .Sh FILES .Bl -tag -width Pa -compact .It /dev/fd* diff --git a/sys/i386/isa/fd.c b/sys/i386/isa/fd.c index dc50c5ea3635..55934a35d3df 100644 --- a/sys/i386/isa/fd.c +++ b/sys/i386/isa/fd.c @@ -43,7 +43,7 @@ * SUCH DAMAGE. * * from: @(#)fd.c 7.4 (Berkeley) 5/25/91 - * $Id: fd.c,v 1.92.2.3 1996/12/21 18:33:43 bde Exp $ + * $Id: fd.c,v 1.92.2.4 1997/10/05 21:00:33 joerg Exp $ * */ @@ -90,6 +90,12 @@ /* misuse a flag to identify format operation */ #define B_FORMAT B_XXX +/* configuration flags */ +#define FDC_PRETEND_D0 (1 << 0) /* pretend drive 0 to be there */ + +/* internally used only, not really from CMOS: */ +#define RTCFDT_144M_PRETENDED 0x1000 + /* * this biotab field doubles as a field for the physical unit number * on the controller @@ -549,7 +555,10 @@ fdattach(struct isa_device *dev) fdsu = fdup->id_physid; /* look up what bios thinks we have */ switch (fdu) { - case 0: fdt = (rtcin(RTC_FDISKETTE) & 0xf0); + case 0: if (dev->id_flags & FDC_PRETEND_D0) + fdt = RTCFDT_144M | RTCFDT_144M_PRETENDED; + else + fdt = (rtcin(RTC_FDISKETTE) & 0xf0); break; case 1: fdt = ((rtcin(RTC_FDISKETTE) << 4) & 0xf0); break; @@ -682,6 +691,10 @@ fdattach(struct isa_device *dev) printf("1.2MB 5.25in\n"); fd->type = FD_1200; break; + case RTCFDT_144M | RTCFDT_144M_PRETENDED: + printf("config-pretended "); + fdt = RTCFDT_144M; + /* fallthrough */ case RTCFDT_144M: printf("1.44MB 3.5in\n"); fd->type = FD_1440; |
