Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Sep 2004 05:23:54 -0700 (PDT)
From:      Rostislav Krasny <rosti_bsd@yahoo.com>
To:        freebsd-current@freebsd.org
Subject:   new fdc(4) and new fdcontrol(8) behavior (5.3-BETA5)
Message-ID:  <20040921122354.73480.qmail@web14827.mail.yahoo.com>

next in thread | raw e-mail | index | archive | help
Hello. My hardware is based on a 430TX chipset. After switching to
5.3-BETA5 from 5.3-BETA4 I've discovered several behavior changes of
new fdc(4) and new fdcontrol(8) on my system.

1. I/O ports changed.

dmesg fragment from 5.3-BETA4 (verbose):

fdc0: <Enhanced floppy controller (i82077, NE72065 or clone)> at port
0x3f7,0x3f0-0x3f5 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0


dmesg fragment from 5.3-BETA5 (verbose):

fdc0: ic_type 90 part_id 80
fdc0: <Enhanced floppy controller> at port 0x3f0-0x3f5 irq 6 drq 2 on
isa0
fdc0: ic_type 90 part_id 80
fdc0: [MPSAFE]
fdc0: [FAST]
fd0: <1440-KB 3.5" drive> on fdc0 drive 0


Quote of "Intel(R) 82371AB PCI-TO-ISA/IDE Xcelerator (PIIX4) Datasheet"
(page 219):

11.3.5.6. Device 5: Floppy Disk Drive

Device 5 monitors accesses to Floppy Drive Controller or GPI14.

Device 5 System Events:
 - PCI accesses to IO addresses for the floppy drive, selectable below.
   This can cause idle, burst, or global standby timer reloads, IO trap
   SMI#, or forwarding of the cycle from PCI to ISA.
 - DACK2# assertion if enabled (see below). This can cause only idle,
   burst, and global standby timer reloads.
 - Assertion of GPI14. The polarity of active signal (high or low) is
   selectable. This can cause idle, burst, or global standby timer
   reloads.

Device 5 Address Ranges:
	Floppy Drive:			3F0–3F5h, 3F7h or [FDC_MON_EN]
					370–375h, 377h    [FDC_DEC_SEL]
Device 5 Idle Timer:
	Resolution: 1 second
	Count: 5 bit			[IDL_CNTB]
GPI Enable: [GPI_EN_DEV5]
	GPI Polarity Select:		[GPI_POL_DEV5]
DACK2# Enable: [RES_EN_DEV5]
Device 5 ISA Forwarding Enable:		[EIO_EN_DEV5]
Device 5 Idle Timer Reload:		[IDL_EN_DEV5]
Global Standby Timer Reload:		[GRLD_EN_DEV5]
Burst Timer Reload:			[BRLD_EN_DEV5]
	Fast or Slow Burst Select:	[BRLD_SEL_DEV5]
Idle Timer Expiration SMI#:		[IDL_EN_DEV5] [IDL_STS_DEV5]
Trap SMI#:				[TRP_EN_DEV5] [TRP_STS_DEV5]

You can download the whole document by following URL:
ftp://download.intel.com/design/intarch/datashts/29056201.pdf

Why the 3F7h port isn't used by new fdc(4) on my system? Is it a
hardware detection bug?


2. fdcontrol cannot access /dev/fd0 when there is no diskette inserted

When no diskette is inserted then running 'fdcontrol [anyflag]
/dev/fd0' produce following error message:

fdcontrol: open(/dev/fd0): Device not configured

When any formatted diskette is inserted it works without such an error.
For example:

# fdcontrol -F -v /dev/fd0
/dev/fd0: 1440 KB media type
        Format:         18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm,+auto
        Sector size:    512
        Sectors/track:  18
        Heads/cylinder: 2
        Cylinders/disk: 80
        Transfer rate:  500 kbps
        Sector gap:     27
        Format gap:     108
        Interleave:     1
        Side offset:    0
        Flags           <MFM,AUTO>

I don't have any non-formatted diskette to check how it works in that
case. Any time 'fdcontrol [anyflag] /dev/fd0' is running the floppy
drive is activated, i.e. the LED of the drive is alight and its heads
are moving for some period of time.

Thereagainst in 5.3-BETA4 fdcontrol(8) works the same when the diskette
is inserted and when it isn't. For example:

# fdcontrol -F -v /dev/fd0
/dev/fd0: 1440 KB media type
        Format:         18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm
        Sector size:    512
        Sectors/track:  18
        Heads/cylinder: 2
        Cylinders/disk: 80
        Transfer rate:  500 kbps
        Sector gap:     27
        Format gap:     108
        Interleave:     1
        Side offset:    0
        Flags           <MFM>

What is inspected behavior of fdcontrol(8) in 5.3-BETA5? Isn't its
current behavior buggy? Is it concerned with 3F7h port that is not used
on my system by the new fdc(4) driver?


3. Minors

New fdcontrol(8) have new '-a' flag and '-d dbg' flag was removed. But
both the manual page and the usage output of fdcontrol(8) wasn't
changed. Also fdcontrol(8) prints a new 'AUTO' device flag that is not
documented in the manual page too. Is it corresponded to FDOPT_AUTOSEL
flag from fdc(4) manual page? According to that manual page
FDOPT_AUTOSEL is read-only but I can disable 'AUTO' by running
'fdcontrol -s 18,512,0xff,0x1b,80,500,2,0x6c,1,0,+mfm,-auto /dev/fd0'.
BTW disabling 'AUTO' doesn't prevent the "Device not configured" error
described above.


		
_______________________________
Do you Yahoo!?
Express yourself with Y! Messenger! Free. Download now. 
http://messenger.yahoo.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040921122354.73480.qmail>