summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoerg Wunsch <joerg@FreeBSD.org>1997-10-19 13:15:26 +0000
committerJoerg Wunsch <joerg@FreeBSD.org>1997-10-19 13:15:26 +0000
commit30d8d5d9ae9fd4cd81b5d99b68c3eb6f7e06fe03 (patch)
treef3d004bb54ec5439b83829710b7453115e6a8754
parent1abb184f19bd4932ac212c2669af5cfe076f9d31 (diff)
Notes
-rw-r--r--release/sysinstall/help/hardware.hlp13
-rw-r--r--share/man/man4/man4.i386/fdc.411
-rw-r--r--sys/i386/isa/fd.c17
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;