NetBSD Problem Report #42516
From tsutsui@ceres.dti.ne.jp Thu Dec 24 15:13:16 2009
Return-Path: <tsutsui@ceres.dti.ne.jp>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
by www.NetBSD.org (Postfix) with ESMTP id B5CE263B844
for <gnats-bugs@gnats.NetBSD.org>; Thu, 24 Dec 2009 15:13:16 +0000 (UTC)
Message-Id: <200912241513.nBOFDDgw009628@mirage.ceres.dti.ne.jp>
Date: Fri, 25 Dec 2009 00:13:13 +0900 (JST)
From: tsutsui@ceres.dti.ne.jp
Reply-To: tsutsui@ceres.dti.ne.jp
To: gnats-bugs@gnats.NetBSD.org
Cc: tsutsui@ceres.dti.ne.jp
Subject: floppy on SS20 with 150MHz HyperSPARC doesn't work
X-Send-Pr-Version: 3.95
>Number: 42516
>Category: port-sparc
>Synopsis: floppy on SS20 with 150MHz HyperSPARC doesn't work
>Confidential: no
>Severity: non-critical
>Priority: medium
>Responsible: tsutsui
>State: closed
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Thu Dec 24 15:15:00 +0000 2009
>Closed-Date: Thu Jan 28 13:57:43 +0000 2010
>Last-Modified: Thu Jan 28 13:57:43 +0000 2010
>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
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: port-sparc-maintainer->tsutsui
Responsible-Changed-By: tsutsui@NetBSD.org
Responsible-Changed-When: Sat, 02 Jan 2010 18:16:29 +0900
Responsible-Changed-Why:
I'll handle this myself since no port-sparc maintainer.
State-Changed-From-To: open->analyzed
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Sat, 02 Jan 2010 18:16:29 +0900
State-Changed-Why:
I have a patch, but needs confirmation on non hyperSPARC machines.
From: Izumi Tsutsui <tsutsui@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/42516 CVS commit: src/sys/arch/sparc/sparc
Date: Wed, 13 Jan 2010 12:43:06 +0000
Module Name: src
Committed By: tsutsui
Date: Wed Jan 13 12:43:06 UTC 2010
Modified Files:
src/sys/arch/sparc/sparc: auxreg.h
Log Message:
Explicitly clear AUXIO4M_FTC bit in FTC_FLIP macro used on
pseudo-dma for floppy, as well as AUXIO4C_FTC bit for sun4c.
A comment in the macro says AUXIO4M_FTC bit is auto-clear,
but my two SS20s (including compatible) with 150MHz hyperSPARCs
get data_overrun without it, and no bad side effect on SS5
(works with and without this change).
Closes PR port-sparc/42516, which is the last one of a bunch of
floppy issue on NetBSD/sparc since NetBSD 2.0 days. See
http://mail-index.NetBSD.org/port-sparc/2009/12/20/msg000484.html
for details.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/sparc/sparc/auxreg.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: analyzed->pending-pullups
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Wed, 13 Jan 2010 22:33:59 +0900
State-Changed-Why:
Fix committed, and should be pulled up to netbsd-4 and netbsd-5.
From: Manuel Bouyer <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/42516 CVS commit: [netbsd-5] src
Date: Sat, 23 Jan 2010 17:47:37 +0000
Module Name: src
Committed By: bouyer
Date: Sat Jan 23 17:47:37 UTC 2010
Modified Files:
src/distrib/sparc/miniroot [netbsd-5]: Makefile.inc
src/distrib/sparc/ramdisk [netbsd-5]: dot.profile
src/sys/arch/sparc/dev [netbsd-5]: audioamd.c fd.c
src/sys/arch/sparc/sparc [netbsd-5]: auxreg.h
src/sys/arch/sparc/stand/common [netbsd-5]: promdev.c
Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #1251):
sys/arch/sparc/sparc/auxreg.h: revision 1.13
distrib/sparc/ramdisk/dot.profile: revision 1.20
sys/arch/sparc/dev/audioamd.c: revision 1.25
sys/arch/sparc/dev/fd.c: revision 1.147
sys/arch/sparc/stand/common/promdev.c: revision 1.23
distrib/sparc/miniroot/Makefile.inc: revision 1.16
Build miniroot binaries for sparc with -Os to shrink instfs.tgz
for the second boot floppy which use miniroot objects.
This is workaround for PR install/42146, and ok'ed by mrg@.
Don't try to read disklabel to check FS_RAID on floppy boot since
reopening floppy could cause Data Access Exception later.
Fixes PR port-sparc/42186, ok'ed by mrg@.
Disable "fast trap" handlers which invoke software interrupts
in sparc/amd7930intr.s and sparc/bsd_fdintr.s until they are
rewritten to adapt new MI softint(9) API.
No particular comments on PR port-sparc/42192, but
this fixes timeout problem on floppy access on my SPARCstation 1+.
XXX: floppy support on sun4m seems to have another problem (data overrun).
Use /dev/fd0a rather than /dev/rfd0a to read instfs.tgz image from floppy.
It looks newer (appearred after 1.6) gzip tries to read less than DEV_BSIZE
(to check header?) so we can't use raw device directly.
(note sparc bootfs ramdisk doesn't have dd(1))
Workaround for PR port-sparc/42193, and would also fix PR install/28734.
Explicitly clear AUXIO4M_FTC bit in FTC_FLIP macro used on
pseudo-dma for floppy, as well as AUXIO4C_FTC bit for sun4c.
A comment in the macro says AUXIO4M_FTC bit is auto-clear,
but my two SS20s (including compatible) with 150MHz hyperSPARCs
get data_overrun without it, and no bad side effect on SS5
(works with and without this change).
Closes PR port-sparc/42516, which is the last one of a bunch of
floppy issue on NetBSD/sparc since NetBSD 2.0 days. See
http://mail-index.NetBSD.org/port-sparc/2009/12/20/msg000484.html
for details.
To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.12.34.1 src/distrib/sparc/miniroot/Makefile.inc
cvs rdiff -u -r1.19 -r1.19.4.1 src/distrib/sparc/ramdisk/dot.profile
cvs rdiff -u -r1.23 -r1.23.28.1 src/sys/arch/sparc/dev/audioamd.c
cvs rdiff -u -r1.141 -r1.141.6.1 src/sys/arch/sparc/dev/fd.c
cvs rdiff -u -r1.12 -r1.12.88.1 src/sys/arch/sparc/sparc/auxreg.h
cvs rdiff -u -r1.21 -r1.21.14.1 src/sys/arch/sparc/stand/common/promdev.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
From: Manuel Bouyer <bouyer@netbsd.org>
To: gnats-bugs@gnats.NetBSD.org
Cc:
Subject: PR/42516 CVS commit: [netbsd-4] src
Date: Wed, 27 Jan 2010 20:59:47 +0000
Module Name: src
Committed By: bouyer
Date: Wed Jan 27 20:59:46 UTC 2010
Modified Files:
src/distrib/sparc/ramdisk [netbsd-4]: dot.profile
src/sys/arch/sparc/sparc [netbsd-4]: auxreg.h
src/sys/arch/sparc/stand/common [netbsd-4]: promdev.c
Log Message:
Pull up following revision(s) (requested by tsutsui in ticket #1379):
sys/arch/sparc/sparc/auxreg.h: revision 1.13
distrib/sparc/ramdisk/dot.profile: revision 1.20
sys/arch/sparc/stand/common/promdev.c: revision 1.23
Don't try to read disklabel to check FS_RAID on floppy boot since
reopening floppy could cause Data Access Exception later.
Fixes PR port-sparc/42186, ok'ed by mrg@.
Use /dev/fd0a rather than /dev/rfd0a to read instfs.tgz image from floppy.
It looks newer (appearred after 1.6) gzip tries to read less than DEV_BSIZE
(to check header?) so we can't use raw device directly.
(note sparc bootfs ramdisk doesn't have dd(1))
Workaround for PR port-sparc/42193, and would also fix PR install/28734.
Explicitly clear AUXIO4M_FTC bit in FTC_FLIP macro used on
pseudo-dma for floppy, as well as AUXIO4C_FTC bit for sun4c.
A comment in the macro says AUXIO4M_FTC bit is auto-clear,
but my two SS20s (including compatible) with 150MHz hyperSPARCs
get data_overrun without it, and no bad side effect on SS5
(works with and without this change).
Closes PR port-sparc/42516, which is the last one of a bunch of
floppy issue on NetBSD/sparc since NetBSD 2.0 days. See
http://mail-index.NetBSD.org/port-sparc/2009/12/20/msg000484.html
for details.
To generate a diff of this commit:
cvs rdiff -u -r1.18 -r1.18.16.1 src/distrib/sparc/ramdisk/dot.profile
cvs rdiff -u -r1.12 -r1.12.24.1 src/sys/arch/sparc/sparc/auxreg.h
cvs rdiff -u -r1.20.8.1 -r1.20.8.2 src/sys/arch/sparc/stand/common/promdev.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
State-Changed-From-To: pending-pullups->closed
State-Changed-By: tsutsui@NetBSD.org
State-Changed-When: Thu, 28 Jan 2010 22:57:43 +0900
State-Changed-Why:
Pulled up to netbsd-4 and netbsd-5.
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.