Subject: Sun keyboard and wscons
To: None <port-sparc64@netbsd.org>
From: Michael <macallan18@earthlink.net>
List: port-sparc64
Date: 01/23/2005 22:29:54
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello,

as I wrote before, the Sun kbd driver and wskbd don't work well 
together - for some reason wssunkbd_enable() is never called. Calling 
it in kbd_wskbd_attach() allowed it to work ( although somewhat quirky 
) on my Ultra 10, but on an Ultra 1 is hangs. I tracked it down to 
kbd_sun_drain_tx() - it's supposed to wait until output to the keyboard 
finishes which apparently never happens. Adding a bail counter and 
exiting the waiting loop after - say - 1000 iterations allows the whole 
thing to boot but the keyboard isn't really functional. Setting LEDs 
works, some keys produce output but that's it.

Here's the kernel output:

NetBSD 2.99.14 (ABSINTHE) #22: Sun Jan 23 22:13:07 CST 2005
         ml@Absinthe.:/data/src/sys/arch/sparc64/compile/ABSINTHE
total memory = 256 MB
avail memory = 242 MB
bootpath: /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0
mainbus0 (root): SUNW,Ultra-1: hostid 807b87ac
cpu0 at mainbus0: SUNW,UltraSPARC @ 167.001 MHz, version 0 FPU
cpu0: 32K instruction (32 b/l), 16K data (32 b/l), 512K external (64 
b/l)
timer0 at mainbus0 addr 0xfffc7c00 irq vectors 7f0 and 7f1
sbus0 at mainbus0 addr 0xfffcc000: clock = 25 MHz
DVMA map: ff800000 to ffffe000
IOTSB: 20434000 to 20436000
audiocs0 at sbus0 slot 13 offset 0xc000000 vector 24 ipl 8: CS4231A
audio0 at audiocs0: full duplex
auxio0 at sbus0 slot 15 offset 0x1900000
flashprom at sbus0 slot 15 offset 0x0 not configured
SUNW,fdtwo at sbus0 slot 15 offset 0x1400000 vector 29 ipl 11 not 
configured
clock0 at sbus0 slot 15 offset 0x1200000: mk48t59
zs0 at sbus0 slot 15 offset 0x1100000 vector 28 ipl 12 softpri 6
zstty0 at zs0 channel 0
zstty1 at zs0 channel 1
zs1 at sbus0 slot 15 offset 0x1000000 vector 28 ipl 12 softpri 6
zstty2 at zs1 channel 0 (console input)
kbd0 at zstty2 (console input)
wskbd0 at kbd0: console keyboard
zstty3 at zs1 channel 1
ms0 at zstty3
wsmouse0 at ms0 mux 0
sc at sbus0 slot 15 offset 0x1300000 not configured
SUNW,pll at sbus0 slot 15 offset 0x1304000 not configured
dma0 at sbus0 slot 14 offset 0x8400000: DMA rev 2
esp0 at dma0 slot 14 offset 0x8800000 vector 20 ipl 3: ESP200, 40MHz, 
SCSI ID 7
scsibus0 at esp0: 8 targets, 8 luns per target
ledma0 at sbus0 slot 14 offset 0x8400010: DMA rev 2
le0 at ledma0 slot 14 offset 0x8c00000 vector 21 ipl 6: address 
xx:xx:xx:xx:xx:xx
le0: 8 receive buffers, 2 transmit buffers
bpp0 at sbus0 slot 14 offset 0xc800000 vector 22 ipl 2: DMA rev 2
cgsix0 at sbus0 slot 1 offset 0x0 vector 5 ipl 5: SUNW,501-2325, 1152 x 
900, rev
  11 (console) pixels: 1ff10000000
wsdisplay0 at cgsix0 kbdmux 1: console (std, sun emulation), using 
wskbd0
wsmux1: connecting to wsdisplay0
pcons at mainbus0 not configured
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 0 lun 0: <SEAGATE, ST34501WCSUN4.2G, 0558> disk 
fixed
sd0: 4094 MB, 3882 cyl, 16 head, 135 sec, 512 bytes/sect x 8385121 
sectors
sd0: sync (100.00ns offset 15), 8-bit (10.000MB/s) transfers
sd1 at scsibus0 target 1 lun 0: <SEAGATE, ST34501WCSUN4.2G, 0558> disk 
fixed
sd1: 4094 MB, 3882 cyl, 16 head, 135 sec, 512 bytes/sect x 8385121 
sectors
sd1: sync (100.00ns offset 15), 8-bit (10.000MB/s) transfers

console output via wsdisplay works after some hacking but kbd makes 
trouble. Any ideas?

have fun
Michael
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iQEVAwUBQfRrsspnzkX8Yg2nAQJQRwf/UeMvuiXj/a5k6ayVwgmYaToafHZ4w27Z
+X6/CoVJz1l9x7sURFH0xUjSuz8ueTwgjmKO8PEX5D5bpu8INEK0Z549MnsUTddo
JSnlpQdfhg6lE8syMHaVzXBilGhsOgh+ZUZPWLydpgbaO8ST9PdMR/IPJ1sfZ7BD
XQa3O7DdBi7V2x5T+x5/7YUcKT3w9iCYoKdPw2tnEWeqP2A/qXrE/oTYJ6Rki22Q
7vK1kpree/ey3WZuIdtF9M+HKn3Gnc+kWGbb53IotsuLWmaN+phZxLdy/mBIucrl
wRl4ElmhD50dpruzDavfpVCJso6WvWnXIxzUGPjLjdONzwcwJW/xYA==
=8L2d
-----END PGP SIGNATURE-----