Subject: port-i386/545: [port-i386] Toshiba J3100SX: wdcprobe() fails, and cursor invisible
To: None <gnats-admin@sun-lamp.cs.berkeley.edu>
From: Noriyuki Soda <soda@sra.co.jp>
List: netbsd-bugs
Date: 11/02/1994 08:05:03
>Number: 545
>Category: port-i386
>Synopsis: wdcprobe() fails on boot, so cannot install. cursor invisible.
>Confidential: no
>Severity: critical
>Priority: medium
>Responsible: gnats-admin (GNATS administrator)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Wed Nov 2 08:05:02 1994
>Originator: Noriyuki Soda
>Organization:
Software Research Associates, Inc.
>Release: 1.0
>Environment:
Machine: Toshiba J3100SX (Japanese Version of Toshiba T3100),
386SX 16MHz (no FPU), Memory 10MB, 203MB IDE Disk,
DCGA (640x400) LCD display, CGA mode.
System: NetBSD palm 1.0 NetBSD 1.0 (GENERICAHA) #3: Sun Oct 23 20:58:04 PDT 1994
cgd@sun-lamp.cs.berkeley.edu:/usr/src/sys/arch/i386/compile/GENERICAHA
>Description:
(sorry for my poor English)
1. wdcprobe() fails.
On 386BSD, NetBSD-0.9, NetBSD-0.9a (1993/11/12 version), IDE I/F of this
machine is probed, and BSD works fine.
This was boot message of NetBSD-0.9a.
----------------------------------------------------------------
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wd0 at wdc0 targ 0: 203MB 684 cyl, 16 head, 38 sec (TOSHIBA MK2224FC)
----------------------------------------------------------------
CAUTION: character of "less than" and "greater than" are
replaced to "(" and ")" to work around 'send-pr'
comment treatment.
On NetBSD-1.0 (both kcaha-10, kcbt-10), wdc0 is not probed, so I cannot
install it. This is boot message of NetBSD-1.0.
----------------------------------------------------------------
NetBSD 1.0 (GENERICAHA) #3: Sun Oct 23 20:58:04 PDT 1994
cgd@sun-lamp.cs.berkeley.edu:/usr/src/sys/arch/i386/compile/GENERICAHA
CPU: i386DX (386-class CPU)
real mem = 10354688
avail mem = 8716288
using 152 buffers containing 622592 bytes of memory
pc0 at isa0 port 0x60-0x6f irq 1: color
com0 at isa0 port 0x3f8-0x3ff irq 4: ns82450 or ns16450, no fifo
lpt0 at isa0 port 0x378-0x37f irq 7
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.2MB 80 cyl, 2 head, 15 sec
ie0: unknown AT&T board type code 15
npx0 at isa0 port 0xf0-0xff: using emulator
biomask 40 netmask 12 ttymask 12
changing root device to fd0a
WARNING: no swap space found
----------------------------------------------------------------
After applying following patch, boot message turned into followings.
----------------------------------------------------------------
NetBSD 1.0 (PALM) #3: Tue Nov 1 17:01:44 JST 1994
soda@palm:/usr/src/sys/arch/i386/compile/PALM
CPU: i386DX (386-class CPU)
real mem = 10354688
avail mem = 8716288
using 152 buffers containing 622592 bytes of memory
pc0 at isa0 port 0x60-0x6f irq 1: color
com0 at isa0 port 0x3f8-0x3ff irq 4: ns82450 or ns16450, no fifo
lpt0 at isa0 port 0x378-0x37f irq 7
wdc0: warning: wdcwait() returns 1
wdc0 at isa0 port 0x1f0-0x1f7 irq 14
wd0 at wdc0 drive 0: 203MB 684 cyl, 16 head, 38 sec (TOSHIBA MK2224FC)
fdc0 at isa0 port 0x3f0-0x3f7 irq 6 drq 2
fd0 at fdc0 drive 0: 1.2MB 80 cyl, 2 head, 15 sec
ie0: unknown AT&T board type code 15
npx0 at isa0 port 0xf0-0xff: using emulator
biomask 4040 netmask 12 ttymask 12
changing root device to wd0a
----------------------------------------------------------------
And, NetBSD-1.0 works fine.
2. strange probe message of ie0.
NetBSD-1.0 boot message says
----------------------------------------------------------------
ie0: unknown AT&T board type code 15
----------------------------------------------------------------
But, my machine doesn't have Network I/F.
It doesn't cause problem, just FYI.
3. cursor invisible.
This machine has DCGA (640x400) LCD display, and working on CGA compatible
mode (I think). But, cursor is not displayed on NetBSD-1.0.
On 386BSD, NetBSD-0.9, NetBSD-0.9a, cursor is displayed, but cursor shape
is strange (upper 3/4 of cursor is blinking).
After applying following patch, cursor is displayed normally (lower 1/4 of
cursor is blinking).
>How-To-Repeat:
always
>Fix:
Of course, this is not correct fix, only work around.
If you want to know about detail, please send mail to
soda@sra.co.jp
1. wd.c problem work around:
----------------------------------------------------------------------------
--- 1.1 1994/10/14 14:12:02
+++ wd.c 1994/11/02 13:47:01
@@ -192,6 +192,7 @@
struct isa_attach_args *ia = aux;
struct wd_softc *wd;
u_short iobase;
+ int stat;
wdc->sc_iobase = iobase = ia->ia_iobase;
@@ -217,9 +218,17 @@
wd->sc_dev.dv_parent = (void *)wdc;
/* Execute a controller only command. */
+#ifdef notdef
if (wdcommand(wd, 0, 0, 0, 0, WDCC_DIAGNOSE) != 0 ||
wait_for_unbusy(wdc) != 0)
goto lose;
+#else
+ if (wdcommand(wd, 0, 0, 0, 0, WDCC_DIAGNOSE) != 0)
+ goto lose;
+ if ((stat = wait_for_unbusy(wdc)) != 0)
+ printf("%s: warning: wdcwait() returns %d\n",
+ wdc->sc_dev.dv_xname, stat);
+#endif
free(wd, M_TEMP);
ia->ia_iosize = 8;
----------------------------------------------------------------------------
3. cursor invisible problem work around:
----------------------------------------------------------------------------
--- 1.1 1994/10/17 01:58:27
+++ pccons.c 1994/11/01 07:58:51
@@ -280,10 +280,12 @@
{
register u_short iobase = addr_6845;
+#ifdef notdef
outb(iobase, 10);
outb(iobase+1, cursor_shape>>8);
outb(iobase, 11);
outb(iobase+1, cursor_shape);
+#endif
old_cursor_shape = cursor_shape;
}
@@ -800,10 +802,12 @@
cursor_shape = 0x0012;
#else
/* Extract cursor shape */
+#ifdef notdef
outb(addr_6845, 10);
cursor_shape = inb(addr_6845+1) << 8;
outb(addr_6845, 11);
cursor_shape |= inb(addr_6845+1);
+#endif
/*
* real 6845's, as found on, MDA, Hercules or CGA cards, do
----------------------------------------------------------------------------
P.S.
Now, NetBSD-1.0 works fine on J3100SX, I would like to thank you this
operating system.
--
soda@sra.co.jp Software Research Associates, Inc., Japan
(Noriyuki Soda) software tools and technology group
>Audit-Trail:
>Unformatted: