cvs commit: src/sys/dev/fdc fdc_isa.c

Poul-Henning Kamp phk at phk.freebsd.dk
Wed Sep 29 00:59:50 PDT 2004


In message <20040929074552.GA909 at freebsd3.cimlogic.com.au>, John Birrell writes:
>On Wed, Sep 29, 2004 at 09:17:18AM +0200, Poul-Henning Kamp wrote:
>> +
>> +       printf("Contents of fdc_data at start of fdc_attach:\n");
>> +       printf("  portt=0x%0x   porth=0x%0x   stst=0x%0x   stsh=0x%0x\n",
>> +           fdc->portt, fdc->porth, fdc->stst, fdc->stsh);
>> +       printf("  ctlt=0x%0x    ctlh=0x%0x\n", fdc->ctlt, fdc->ctlh);
>> +       printf("  port_off=0x%0x    ctl_off=0x%0x    sts_off=0x%0x\n",
>> +           fdc->port_off, fdc->ctl_off, fdc->sts_off);
>> +
>
>fdc0: <floppy drive controller> port 0x3f7,0x3f0-0x3f5 irq 6 drq 2 on acpi0
>Contents of fdc_data at start of fdc_attach:
>  portt=0x0   porth=0x3f0   stst=0x0   stsh=0x3f0
>  ctlt=0x0    ctlh=0x3f7
>  port_off=0x0    ctl_off=0x0    sts_off=0x0
>fdc0: [FAST]
>fd0: <1440-KB 3.5" drive> on fdc0 drive 0

OK, that looks all right.

My best guess right now is that your DRIVECHANGE line doesn't work.  If you let
the boot proceed and set the debugflags to 0x40, can you try to see if it
discovers when you insert and remove a disk ?  You need to access the drive
before it will find out, so something like:

	(empty drive)
	dd if=/dev/fd0 count=1 of=/dev/null
	(insert floppy)
	dd if=/dev/fd0 count=1 of=/dev/null
	(remove floppy)
	dd if=/dev/fd0 count=1 of=/dev/null
	(insert floppy)
	dd if=/dev/fd0 count=1 of=/dev/null
	(remove floppy)
	(insert floppy)
	dd if=/dev/fd0 count=1 of=/dev/null

Should tell us.

(BTW, Warner:  Shouldn't this:

	static u_int8_t
	fdsts_rd(struct fdc_data *fdc)
	{
		
		return bus_space_read_1(fdc->portt, fdc->porth, FDSTS+fdc->port_off);
	}

be changed to:

	static u_int8_t
	fdsts_rd(struct fdc_data *fdc)
	{
		
		return bus_space_read_1(fdc->stst, fdc->stsh, FDSTS+fdc->sts_off);
	}

)

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the cvs-src mailing list