Re: floppy disk controller broken

2009-02-11 Thread John Baldwin
On Thursday 18 September 2008 3:53:06 am Michel Talon wrote:
> On Wed, Sep 17, 2008 at 05:13:39PM -0400, John Baldwin wrote:
> > On Wednesday 17 September 2008 11:04:33 am Michel Talon wrote:
> > > Hello,
> > > 
> > > when testing FreeBSD-7.1-BETA i discovered that the floppy disk
> > > controller doesn't work correctly. Trying to format a floppy (perhaps
> > > with bad blocks) i get:
> > > Processing fdformat: ioctl(FD_FORM): Device not configured
> > > instead of the normal E letter. I then checked the same problem is
> > > present on FreeBSD-6.3 and it has been reported by Beech Rintoul (*) in 
> > > 2006! Of course the floppy disk driver is particularly messy, but 
> > > this is not pretty.
> > > 
> > > (*) i386/103862: Error with fdformat
> > 
> > It looks like the ioctl to format a track used to never report failures 
from 
> > the controller.  The newer driver does.  What I've done with fdformat is 
to 
> > make it just ignore the errors in userland instead.  Try this:
> > 
> > Index: fdformat.c
> > ===
> > --- fdformat.c  (revision 183112)
> > +++ fdformat.c  (working copy)
> > @@ -75,8 +75,7 @@
> > f.fd_formb_secno(i) = il[i+1];
> > f.fd_formb_secsize(i) = secsize;
> > }
> > -   if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
> > -   err(EX_OSERR, "ioctl(FD_FORM)");
> > +   (void)ioctl(fd, FD_FORM, (caddr_t)&f);
> >  }
> >  
> >  static int
> > 
> > 
> > -- 
> > John Baldwin
> 
> This doesn't work any more. This time i get 
> niobe# fdformat fd0
> Format 1440K floppy `/dev/fd0'? (y/n): y
> Processing  done.
> 
> where only the first E takes some time to be printed, and all subsequent
> ones are printed instantaneously, that is all other formatting is not
> tried. In principle the formatting process must try each of the
> "sectors" in turn, and can come up with a series of V and F.
> 
> Moreover, trying to write to the floppy:
> niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
> dd: /dev/fd0: Input/output error
> 5+0 records in
> 4+0 records out
> 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
> 
> I don't expect such result. Traditionnally writing works, while reading
> may fail. Here reading fails with incoherent messages:
> dd: /dev/fd0: Device not configured
> 3+0 records in
> 3+0 records out
> 1536 bytes transferred in 2.595216 secs (592 bytes/sec)
> repeated a large number of times. But nothing in dmesg, contrary to the
> tradition which showed the defective sectors.
> 
> In conclusion i am under the impression that the in kernel driver is
> severely botched. Of course nobody uses floppies any more, but this is
> quite ugly.

There are actually changes to the floppy driver in HEAD that I think address 
this.  I don't recall if they were MFC'd to 7.

-- 
John Baldwin
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "freebsd-stable-unsubscr...@freebsd.org"


Re: floppy disk controller broken

2008-09-21 Thread Torfinn Ingolfsen
On Sun, 21 Sep 2008 06:45:29 -0700
Jeremy Chadwick <[EMAIL PROTECTED]> wrote:

> Remove "device udbp" from your kernel configuration and try again.
> The problem with bulk pipes is somewhat well-known at this point.

This machine have a GENERIC kernel:
[EMAIL PROTECTED] uname -a
FreeBSD kg-work2.kg4.no 7.0-STABLE FreeBSD 7.0-STABLE #0: Mon Jul 21 20:40:31 
CEST 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC  i386

And it seems like udbp is commented out in GENERIC:
[EMAIL PROTECTED] grep udbp /sys/i386/conf/GENERIC
#device udbp# USB Double Bulk Pipe devices

So it might be something else. usb controller / chipset, or whatever.
BTW, for completeness, this machine is a Dell OptiPlex SX270[1].

References:
1) http://tingox.googlepages.com/sx270
-- 
Regards,
Torfinn Ingolfsen
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-21 Thread Torfinn Ingolfsen
On Sun, 21 Sep 2008 12:44:03 +0200
Torfinn Ingolfsen <[EMAIL PROTECTED]> wrote:

> I will try ufdformat on a different machine now.

Ok, on a different machine[1], it works without problems:
[EMAIL PROTECTED] uname -a
FreeBSD kg-i82.kg4.no 7.0-STABLE FreeBSD 7.0-STABLE #3: Wed May 28 15:59:38 
CEST 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/I81K  i386
[EMAIL PROTECTED] ./ufdformat da0
Geometry: 80 cyl 2 heads 18 secpercyl 512 bytespersec
current: 2880 blocks, 512 bytes-per-block formatted
0: 2880 blocks, 512 bytes-per-block 
1: 1232 blocks, 1024 bytes-per-block 
2: 2400 blocks, 512 bytes-per-block 
Format 1440K floppy `da0'? (y/n): y
Processing  done.

Why it didn't work on the first machine[2] I don't know.

References:
1) http://tingox.googlepages.com/i81k
2) http://tingox.googlepages.com/sx270
-- 
Regards, 
Torfinn Ingolfsen
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-21 Thread Jeremy Chadwick
On Sun, Sep 21, 2008 at 12:44:03PM +0200, Torfinn Ingolfsen wrote:
> On Thu, 18 Sep 2008 23:33:40 +0100
> "Bruce M. Simpson" <[EMAIL PROTECTED]> wrote:
> 
> > Someone was going to pick this up, finish it off, and commit it, but
> > I haven't heard back from them: 
> > http://people.freebsd.org/~bms/dump/tools/ufdformat/
> 
> It compiled fine on FreeBSD 7.0-stable:
> [EMAIL PROTECTED] uname -a
> FreeBSD kg-work2.kg4.no 7.0-STABLE FreeBSD 7.0-STABLE #0: Mon Jul 21
> 20:40:31 CEST 2008
> [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC  i386
> 
> But when I tried to use, it printed two 'V''s and then seemed to be
> doing nothing.
> 
> In /var/log/messages I got these:
> Sep 21 12:09:35 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT
> Sep 21 12:09:40 kg-work2 kernel: umass0: CBI bulk-in stall clear failed, 
> TIMEOUT
> Sep 21 12:09:45 kg-work2 kernel: umass0: CBI bulk-out stall clear failed, 
> TIMEOUT
> Sep 21 12:11:55 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT
> Sep 21 12:13:00 kg-work2 kernel: umass0: CBI bulk-in stall clear failed, 
> TIMEOUT
> Sep 21 12:14:05 kg-work2 kernel: umass0: CBI bulk-out stall clear failed, 
> TIMEOUT
> Sep 21 12:16:15 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT

Remove "device udbp" from your kernel configuration and try again.  The
problem with bulk pipes is somewhat well-known at this point.

-- 
| Jeremy Chadwickjdc at parodius.com |
| Parodius Networking   http://www.parodius.com/ |
| UNIX Systems Administrator  Mountain View, CA, USA |
| Making life hard for others since 1977.  PGP: 4BD6C0CB |

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-21 Thread Torfinn Ingolfsen
On Thu, 18 Sep 2008 23:33:40 +0100
"Bruce M. Simpson" <[EMAIL PROTECTED]> wrote:

> Someone was going to pick this up, finish it off, and commit it, but
> I haven't heard back from them: 
> http://people.freebsd.org/~bms/dump/tools/ufdformat/

It compiled fine on FreeBSD 7.0-stable:
[EMAIL PROTECTED] uname -a
FreeBSD kg-work2.kg4.no 7.0-STABLE FreeBSD 7.0-STABLE #0: Mon Jul 21
20:40:31 CEST 2008
[EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC  i386

But when I tried to use, it printed two 'V''s and then seemed to be
doing nothing.

In /var/log/messages I got these:
Sep 21 12:09:35 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT
Sep 21 12:09:40 kg-work2 kernel: umass0: CBI bulk-in stall clear failed, TIMEOUT
Sep 21 12:09:45 kg-work2 kernel: umass0: CBI bulk-out stall clear failed, 
TIMEOUT
Sep 21 12:11:55 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT
Sep 21 12:13:00 kg-work2 kernel: umass0: CBI bulk-in stall clear failed, TIMEOUT
Sep 21 12:14:05 kg-work2 kernel: umass0: CBI bulk-out stall clear failed, 
TIMEOUT
Sep 21 12:16:15 kg-work2 kernel: umass0: CBI reset failed, TIMEOUT

The funny thing is - that situation seemed to vlock commands from executing,
or the terminals from printing outrput.
I had several terminal windows up, and a ssh session from another machine. 
I could type a command, but nothing would happen after I pressed enter.
Switching workspaces in X and switching vty's  worked fine.
In the end, I had to yank the floppy (which panicked the machine as expected).
The floppy I used was this one:
Sep 21 11:45:58 kg-work2 root: Unknown USB device: vendor 0x0644 product 0x 
bus uhub1
Sep 21 11:45:59 kg-work2 kernel: umass0:  on uhub1
Sep 21 11:45:59 kg-work2 kernel: da0 at umass-sim0 bus 0 target 0 lun 0
Sep 21 11:45:59 kg-work2 kernel: da0:  Removable Direct 
Access SCSI-0 device 
Sep 21 11:45:59 kg-work2 kernel: da0: 1.000MB/s transfers

I will try ufdformat on a different machine now.
-- 
Regards,
Torfinn Ingolfsen
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-19 Thread Jeremy Chadwick
On Fri, Sep 19, 2008 at 11:55:05AM +0200, Oliver Fromme wrote:
> Michel Talon wrote:
>  > Oliver Fromme wrote:
>  > > Michel Talon wrote:
>  > > > Moreover, trying to write to the floppy:
>  > > > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
>  > > > dd: /dev/fd0: Input/output error
>  > > > 5+0 records in
>  > > > 4+0 records out
>  > > > 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
>  > > > 
>  > > > I don't expect such result. Traditionnally writing works, while reading
>  > > > may fail.
>  > > 
>  > > Maybe I misunderstand what you're saying, but ...
>  > > When I try to write to a floppy that has *not* been
>  > > successfully formatted, I very much expect to get
>  > > Input/output error.  Anything else would be a bug.
>  > 
>  > The floppy has certainly be formatted, in the past. Perhaps i
>  > remember badly, i have not used floppies since years, but
>  > in this case the behavior with Windows, Linux and ancient FreeBSD
>  > was that you could write to the floppy, but could encounter errors
>  > while reading.
> 
> Since you mentioned "ancient" FreeBSD, I assume that was
> using buffered block devices, when FreeBSD still supported
> them?

That sounds right -- again, if my memory hasn't failed me...

> Nowadays /dev/fd0 is a character device which is
> unbuffered, i.e. your dd(1) command goes straight to the
> disk, and if the drive reports an error (typically sync
> mark not found if the floppy is unformatted), it goes back
> up to dd(1) immediately and you get Input/output error.

Ah ha!  Evolution has occurred.  Thanks for educating me.  :-)

-- 
| Jeremy Chadwickjdc at parodius.com |
| Parodius Networking   http://www.parodius.com/ |
| UNIX Systems Administrator  Mountain View, CA, USA |
| Making life hard for others since 1977.  PGP: 4BD6C0CB |

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-19 Thread Oliver Fromme
Michel Talon wrote:
 > Oliver Fromme wrote:
 > > Michel Talon wrote:
 > > > Moreover, trying to write to the floppy:
 > > > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
 > > > dd: /dev/fd0: Input/output error
 > > > 5+0 records in
 > > > 4+0 records out
 > > > 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
 > > > 
 > > > I don't expect such result. Traditionnally writing works, while reading
 > > > may fail.
 > > 
 > > Maybe I misunderstand what you're saying, but ...
 > > When I try to write to a floppy that has *not* been
 > > successfully formatted, I very much expect to get
 > > Input/output error.  Anything else would be a bug.
 > 
 > The floppy has certainly be formatted, in the past. Perhaps i
 > remember badly, i have not used floppies since years, but
 > in this case the behavior with Windows, Linux and ancient FreeBSD
 > was that you could write to the floppy, but could encounter errors
 > while reading.

Since you mentioned "ancient" FreeBSD, I assume that was
using buffered block devices, when FreeBSD still supported
them?  Nowadays /dev/fd0 is a character device which is
unbuffered, i.e. your dd(1) command goes straight to the
disk, and if the drive reports an error (typically sync
mark not found if the floppy is unformatted), it goes back
up to dd(1) immediately and you get Input/output error.

Best regards
   Oliver

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

"We will perhaps eventually be writing only small modules which are identi-
fied by name as they are used to build larger ones, so that devices like
indentation, rather than delimiters, might become feasible for expressing
local structure in the source language." -- Donald E. Knuth, 1974
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-18 Thread Bruce M. Simpson

You could try formatting the floppy in a USB drive.

Someone was going to pick this up, finish it off, and commit it, but I 
haven't heard back from them: 
http://people.freebsd.org/~bms/dump/tools/ufdformat/




___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-18 Thread Jeremy Chadwick
On Thu, Sep 18, 2008 at 08:32:50PM +0200, Michel Talon wrote:
> On Thu, Sep 18, 2008 at 06:18:45PM +0200, Oliver Fromme wrote:
> > Michel Talon wrote:
> >  > John Baldwin wrote:
> >  > > It looks like the ioctl to format a track used to never report 
> > failures from 
> >  > > the controller.  The newer driver does.  What I've done with fdformat 
> > is to 
> >  > > make it just ignore the errors in userland instead.  Try this:
> >  > > 
> >  > > Index: fdformat.c
> >  > > ===
> >  > > --- fdformat.c(revision 183112)
> >  > > +++ fdformat.c(working copy)
> >  > > @@ -75,8 +75,7 @@
> >  > >   f.fd_formb_secno(i) = il[i+1];
> >  > >   f.fd_formb_secsize(i) = secsize;
> >  > >   }
> >  > > - if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
> >  > > - err(EX_OSERR, "ioctl(FD_FORM)");
> >  > > + (void)ioctl(fd, FD_FORM, (caddr_t)&f);
> >  > >  }
> >  > >  
> >  > >  static int
> >  > 
> >  > This doesn't work any more. This time i get 
> >  > niobe# fdformat fd0
> >  > Format 1440K floppy `/dev/fd0'? (y/n): y
> >  > Processing  done.
> >  > 
> >  > where only the first E takes some time to be printed, and all subsequent
> >  > ones are printed instantaneously, that is all other formatting is not
> >  > tried. In principle the formatting process must try each of the
> >  > "sectors" in turn, and can come up with a series of V and F.
> >  > 
> >  > Moreover, trying to write to the floppy:
> >  > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
> >  > dd: /dev/fd0: Input/output error
> >  > 5+0 records in
> >  > 4+0 records out
> >  > 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
> >  > 
> >  > I don't expect such result. Traditionnally writing works, while reading
> >  > may fail.
> > 
> > Maybe I misunderstand what you're saying, but ...
> > When I try to write to a floppy that has *not* been
> > successfully formatted, I very much expect to get
> > Input/output error.  Anything else would be a bug.
> > 
> > Best regards
> >Oliver
> 
> The floppy has certainly be formatted, in the past. Perhaps i
> remember badly, i have not used floppies since years, but
> in this case the behavior with Windows, Linux and ancient FreeBSD
> was that you could write to the floppy, but could encounter errors
> while reading. Using dd conv=noerror allowed to recover the valid part.
> Under Windows you could very well use floppies partly damaged with
> bad blocks or tracks. Here the driver seems to bail out at the first
> error, so that the above commands run much faster than they should,
> a few seconds, while something of the order of a minute should be
> more realistic. 

I swore in older FreeBSD (2.x days?) there was a command which was
actually used for dealing with bad sectors on floppy disks.  I might
be thinking of badsect(8), can't remember...

-- 
| Jeremy Chadwickjdc at parodius.com |
| Parodius Networking   http://www.parodius.com/ |
| UNIX Systems Administrator  Mountain View, CA, USA |
| Making life hard for others since 1977.  PGP: 4BD6C0CB |

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-18 Thread Michel Talon
On Thu, Sep 18, 2008 at 06:18:45PM +0200, Oliver Fromme wrote:
> Michel Talon wrote:
>  > John Baldwin wrote:
>  > > It looks like the ioctl to format a track used to never report failures 
> from 
>  > > the controller.  The newer driver does.  What I've done with fdformat is 
> to 
>  > > make it just ignore the errors in userland instead.  Try this:
>  > > 
>  > > Index: fdformat.c
>  > > ===
>  > > --- fdformat.c(revision 183112)
>  > > +++ fdformat.c(working copy)
>  > > @@ -75,8 +75,7 @@
>  > >   f.fd_formb_secno(i) = il[i+1];
>  > >   f.fd_formb_secsize(i) = secsize;
>  > >   }
>  > > - if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
>  > > - err(EX_OSERR, "ioctl(FD_FORM)");
>  > > + (void)ioctl(fd, FD_FORM, (caddr_t)&f);
>  > >  }
>  > >  
>  > >  static int
>  > 
>  > This doesn't work any more. This time i get 
>  > niobe# fdformat fd0
>  > Format 1440K floppy `/dev/fd0'? (y/n): y
>  > Processing  done.
>  > 
>  > where only the first E takes some time to be printed, and all subsequent
>  > ones are printed instantaneously, that is all other formatting is not
>  > tried. In principle the formatting process must try each of the
>  > "sectors" in turn, and can come up with a series of V and F.
>  > 
>  > Moreover, trying to write to the floppy:
>  > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
>  > dd: /dev/fd0: Input/output error
>  > 5+0 records in
>  > 4+0 records out
>  > 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
>  > 
>  > I don't expect such result. Traditionnally writing works, while reading
>  > may fail.
> 
> Maybe I misunderstand what you're saying, but ...
> When I try to write to a floppy that has *not* been
> successfully formatted, I very much expect to get
> Input/output error.  Anything else would be a bug.
> 
> Best regards
>Oliver

The floppy has certainly be formatted, in the past. Perhaps i
remember badly, i have not used floppies since years, but
in this case the behavior with Windows, Linux and ancient FreeBSD
was that you could write to the floppy, but could encounter errors
while reading. Using dd conv=noerror allowed to recover the valid part.
Under Windows you could very well use floppies partly damaged with
bad blocks or tracks. Here the driver seems to bail out at the first
error, so that the above commands run much faster than they should,
a few seconds, while something of the order of a minute should be
more realistic. 


-- 

Michel TALON

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-18 Thread Oliver Fromme
Michel Talon wrote:
 > John Baldwin wrote:
 > > It looks like the ioctl to format a track used to never report failures 
 > > from 
 > > the controller.  The newer driver does.  What I've done with fdformat is 
 > > to 
 > > make it just ignore the errors in userland instead.  Try this:
 > > 
 > > Index: fdformat.c
 > > ===
 > > --- fdformat.c(revision 183112)
 > > +++ fdformat.c(working copy)
 > > @@ -75,8 +75,7 @@
 > >   f.fd_formb_secno(i) = il[i+1];
 > >   f.fd_formb_secsize(i) = secsize;
 > >   }
 > > - if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
 > > - err(EX_OSERR, "ioctl(FD_FORM)");
 > > + (void)ioctl(fd, FD_FORM, (caddr_t)&f);
 > >  }
 > >  
 > >  static int
 > 
 > This doesn't work any more. This time i get 
 > niobe# fdformat fd0
 > Format 1440K floppy `/dev/fd0'? (y/n): y
 > Processing  done.
 > 
 > where only the first E takes some time to be printed, and all subsequent
 > ones are printed instantaneously, that is all other formatting is not
 > tried. In principle the formatting process must try each of the
 > "sectors" in turn, and can come up with a series of V and F.
 > 
 > Moreover, trying to write to the floppy:
 > niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
 > dd: /dev/fd0: Input/output error
 > 5+0 records in
 > 4+0 records out
 > 2048 bytes transferred in 4.054404 secs (505 bytes/sec)
 > 
 > I don't expect such result. Traditionnally writing works, while reading
 > may fail.

Maybe I misunderstand what you're saying, but ...
When I try to write to a floppy that has *not* been
successfully formatted, I very much expect to get
Input/output error.  Anything else would be a bug.

Best regards
   Oliver

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart

FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd

"The most important decision in [programming] language design
concerns what is to be left out."  --  Niklaus Wirth
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-18 Thread Michel Talon
On Wed, Sep 17, 2008 at 05:13:39PM -0400, John Baldwin wrote:
> On Wednesday 17 September 2008 11:04:33 am Michel Talon wrote:
> > Hello,
> > 
> > when testing FreeBSD-7.1-BETA i discovered that the floppy disk
> > controller doesn't work correctly. Trying to format a floppy (perhaps
> > with bad blocks) i get:
> > Processing fdformat: ioctl(FD_FORM): Device not configured
> > instead of the normal E letter. I then checked the same problem is
> > present on FreeBSD-6.3 and it has been reported by Beech Rintoul (*) in 
> > 2006! Of course the floppy disk driver is particularly messy, but 
> > this is not pretty.
> > 
> > (*) i386/103862: Error with fdformat
> 
> It looks like the ioctl to format a track used to never report failures from 
> the controller.  The newer driver does.  What I've done with fdformat is to 
> make it just ignore the errors in userland instead.  Try this:
> 
> Index: fdformat.c
> ===
> --- fdformat.c(revision 183112)
> +++ fdformat.c(working copy)
> @@ -75,8 +75,7 @@
>   f.fd_formb_secno(i) = il[i+1];
>   f.fd_formb_secsize(i) = secsize;
>   }
> - if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
> - err(EX_OSERR, "ioctl(FD_FORM)");
> + (void)ioctl(fd, FD_FORM, (caddr_t)&f);
>  }
>  
>  static int
> 
> 
> -- 
> John Baldwin

This doesn't work any more. This time i get 
niobe# fdformat fd0
Format 1440K floppy `/dev/fd0'? (y/n): y
Processing  done.

where only the first E takes some time to be printed, and all subsequent
ones are printed instantaneously, that is all other formatting is not
tried. In principle the formatting process must try each of the
"sectors" in turn, and can come up with a series of V and F.

Moreover, trying to write to the floppy:
niobe# dd if=/dev/zero of=/dev/fd0 conv=noerror
dd: /dev/fd0: Input/output error
5+0 records in
4+0 records out
2048 bytes transferred in 4.054404 secs (505 bytes/sec)

I don't expect such result. Traditionnally writing works, while reading
may fail. Here reading fails with incoherent messages:
dd: /dev/fd0: Device not configured
3+0 records in
3+0 records out
1536 bytes transferred in 2.595216 secs (592 bytes/sec)
repeated a large number of times. But nothing in dmesg, contrary to the
tradition which showed the defective sectors.

In conclusion i am under the impression that the in kernel driver is
severely botched. Of course nobody uses floppies any more, but this is
quite ugly.



-- 

Michel TALON

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


Re: floppy disk controller broken

2008-09-17 Thread John Baldwin
On Wednesday 17 September 2008 11:04:33 am Michel Talon wrote:
> Hello,
> 
> when testing FreeBSD-7.1-BETA i discovered that the floppy disk
> controller doesn't work correctly. Trying to format a floppy (perhaps
> with bad blocks) i get:
> Processing fdformat: ioctl(FD_FORM): Device not configured
> instead of the normal E letter. I then checked the same problem is
> present on FreeBSD-6.3 and it has been reported by Beech Rintoul (*) in 
> 2006! Of course the floppy disk driver is particularly messy, but 
> this is not pretty.
> 
> (*) i386/103862: Error with fdformat

It looks like the ioctl to format a track used to never report failures from 
the controller.  The newer driver does.  What I've done with fdformat is to 
make it just ignore the errors in userland instead.  Try this:

Index: fdformat.c
===
--- fdformat.c  (revision 183112)
+++ fdformat.c  (working copy)
@@ -75,8 +75,7 @@
f.fd_formb_secno(i) = il[i+1];
f.fd_formb_secsize(i) = secsize;
}
-   if(ioctl(fd, FD_FORM, (caddr_t)&f) < 0)
-   err(EX_OSERR, "ioctl(FD_FORM)");
+   (void)ioctl(fd, FD_FORM, (caddr_t)&f);
 }
 
 static int


-- 
John Baldwin
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"


floppy disk controller broken

2008-09-17 Thread Michel Talon
Hello,

when testing FreeBSD-7.1-BETA i discovered that the floppy disk
controller doesn't work correctly. Trying to format a floppy (perhaps
with bad blocks) i get:
Processing fdformat: ioctl(FD_FORM): Device not configured
instead of the normal E letter. I then checked the same problem is
present on FreeBSD-6.3 and it has been reported by Beech Rintoul (*) in 
2006! Of course the floppy disk driver is particularly messy, but 
this is not pretty.

(*) i386/103862: Error with fdformat

-- 

Michel TALON

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"