NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
port-sparc/42516: floppy on SS20 with 150MHz HyperSPARC doesn't work
>Number: 42516
>Category: port-sparc
>Synopsis: floppy on SS20 with 150MHz HyperSPARC doesn't work
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: port-sparc-maintainer
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Dec 24 15:15:00 +0000 2009
>Originator: Izumi Tsutsui
>Release: NetBSD 5.99.22
>Organization:
>Environment:
System: NetBSD/sparc
Architecture: sparc
Machine: sparc
On these two SS20s:
>> mainbus0 (root): PFU,S-4/20A: hostid 72xxxxxx
>> cpu0 at mainbus0: RT620/625 @ 150 MHz, on-chip FPU
>> mainbus0 (root): SUNW,SPARCstation-20: hostid 72xxxxxx
>> cpu0 at mainbus0: mid 8: RT620/625 @ 150 MHz, on-chip FPU
>Description:
Reading floppies on the above machines causes data overrun errors:
---
fd0a: hard error reading fsbn 0
fd0: controller status: state 17 (st0 70<abnrml,seek_cmplt,drv_chck> cyl 0)
---
More verbose FD_DEBUG says:
---
fdstrategy: b_blkno 0 b_bcount 512 blkno 0 cylin 0
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 2)
blkno 0 nblks 1 nstat 7 tc 0
fdc: 9 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 10 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 11 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 12 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 13 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 14 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc: 15 -> threshold
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdcstate: doio: read drive 0 track 0 head 0 sec 0 nblks 1
fd0: read failed: state 7 (st0 0x40<abnrml> st1 0x10<data_overrun> st2 0x0 cyl
0 head 0 sec 1)
blkno 0 nblks 1 nstat 7 tc 512
fdc reset
fd0: recalibrate failed: state 17 (st0 0x70<abnrml,seek_cmplt,drv_chck> cyl 0)
fd0a: hard error reading fsbn 0
fd0: controller status: state 17 (st0 0x70<abnrml,seek_cmplt,drv_chck> cyl 0)
---
>How-To-Repeat:
Try to read floppy on 150MHz HyperSPARC SS20 machines.
>Fix:
The following patch seems to fix the problem.
Note Solaris has a patch for 150MHz HyperSPARC:
http://sunsolve.sun.com/search/document.do?assetkey=1-21-107389-01-1
"SunOS 5.6: fd floppy won't work after upgrading to 150MHZ hyperSPARC"
but I don't know if it's the same problem with this PR.
Index: sparc/auxreg.h
===================================================================
RCS file: /cvsroot/src/sys/arch/sparc/sparc/auxreg.h,v
retrieving revision 1.12
diff -u -r1.12 auxreg.h
--- sparc/auxreg.h 16 Nov 2005 03:00:23 -0000 1.12
+++ sparc/auxreg.h 20 Dec 2009 03:26:26 -0000
@@ -105,6 +105,9 @@
if (CPU_ISSUN4M) { \
/* AUXIO4M_FTC bit is auto-clear */ \
*AUXIO4M_REG = auxio_regval | AUXIO4M_FTC; \
+ /* XXX we need to clear it on hyperSPARC SS20 */ \
+ DELAY(10); \
+ *AUXIO4M_REG = auxio_regval; \
} else { \
auxio_regval |= AUXIO4C_FTC; \
*AUXIO4C_REG = auxio_regval; \
---
Izumi Tsutsui
Home |
Main Index |
Thread Index |
Old Index