Date: Sat, 20 Jul 1996 16:01:07 +0200 From: Marcus John <marcus.john@wiesbaden.netsurf.de> To: freebsd-questions@freebsd.org Subject: 3C589 on Cirrus PCMCIA bridge CL6729 Message-ID: <31F0E6A3.157E@wiesbaden.netsurf.de>
next in thread | raw e-mail | index | archive | help
I hope you're the expert I need!
(other experts are also welcome)
' cuz Nate Williams (you!) wrote:
> Hot diggity dog! Glad to hear it. The if_ep driver is generally
> 'better' than the if_zp driver since I've been the only one bringing
> over bug-fixes to the if_zp driver, and I haven't been very dedicated to
> the task. In any case, if_zp will be gone by the time 2.2 is released
> when we have the ability to install via the PC-CARD stuff.
>
> Nate
I'm messing around with a quite modern notebook,
which has a Cirrus PCMCIA
bridge (type CL 6729) attached on it's PCI-bus.
After fiddling around with
the base stuff, like moving the PCMCIA base address
from 0x3e0 to 0x3000 and
reducing MAX_SLOTS to 2 (system hangs otherwise
when probing for cards), I'm
totally confused by now.
First approach was to get a 3C589-C working with
the zp-driver and leaving out
the pcic- and crd-stuff. My result is that the
zp-driver does attach to the card
if-and-only-if I user io=0x300 and irq=10, but no
frames appear on the wire
(proof by another FreeBSD-box with bpf). In
contrast to you mails with michael butler
the ep-driver does NOT recognize the 3C589 at all!
So how did he do it?
Second approach was to try 2.2-SNAP960501 with
pcic- and crd-drivers. Again 50%
success. I get messages when cards are inserted and
removed, but now drivers can be
bound. OK, I'm aware of that the zp-driver can only
be used standalone. Therefore I
used a NE-2000 compatible PC-card, but again no
driver bound. (btw this NE-2000
compatible card works fine, if I run the
DOS-enabler first and do a soft-reboot to
FreeBSD afterwards - no pcic/crd-stuff neeeded).
So my questions are:
- Am I doing something completely wrong or is it
just the wierd hardware?
- Why is the Cirrus brigde not properly decoded by
the boot code, even though
the boot code should be able to recognize this
type?
- Which approach shall I further investigate to get
this *!!* PC-card stuff working
either wih the 3C589 or th NE-2000 compat.?
(3C589 would be more interesting,
because of the higher rates of the 16-bit
interface)
- Where can I find the nep-driver, which is used in
the sample configuration
of /etc/pccard.conf? Is it still state of the
art?
- What configuration entries are needed in my
kernel and pccard.conf?
To make this a little bit easier here are:
*
* Verbose dmseg of the pcic/crd-kernel:
*
* (slight overflow due to my -add-ons- )
Calibrating clock(s) relative to mc146818A clock
... i586 clock: 120282360 Hz, i8254
clock: 1193308 Hz
CLK_USE_I8254_CALIBRATION not specified - using
default frequency
CLK_USE_I586_CALIBRATION not specified - using old
calibration method
i586 clock: 0 Hz
CPU: Pentium (120.26-MHz 586-class CPU)
Origin = "GenuineIntel" Id = 0x526 Stepping=6
Features=0x1bf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8>
real memory = 25165824 (24576K bytes)
FreeBSD Kernel Configuration Utility - Version 1.0
Type "help" for help or "visual" to go to the
visual
configuration interface (requires MGA/VGA display
or
serial terminal capable of displaying ANSI
graphics).
config> ls
Device port irq drq iomem iosize
unit flags enabled
fdc0 0x3f0 6 2 0x0 0 0
0x0 Yes
wdc0 0x1f0 14 -1 0x0 0 0
0x0 Yes
wdc1 0x170 15 -1 0x0 0 1
0x0Yes
sc0 0x60 1 -1 0x0 0 0
0x0 Yes
sio0 0x3f8 4 -1 0x0 0 0
0x0 Yes
sio1 0x2f8 3 -1 0x0 0 1
0x0 Yes
lpt0 0xffffffff 7 -1 0x0 0 0
0x0 Yes
psm0 0x60 12 -1 0x0 0 0
0x0 Yes
ed0 0x320 11 -1 0xd8000 0 0
0x0 No
ep0 0x300 11 -1 0x0 0 0
0x0 Yes
zp0 0x300 11 -1 0xd0000 0 0
0x0 No
npx0 0xf0 13 -1 0x0 0 0
0x0 Yes
apm0 0x0 -1 -1 0x0 0 0
0x0 Yes
config> en ed0
config> q
avail memory = 22675456 (22144K bytes)
BIOS Geometries:
0:02903f3f 0..656=657 cylinders, 0..63=64 heads,
1..63=63 sectors
1:03feff00 0..1022=1023 cylinders, 0..255=256
heads, 1..0=0 sectors
2:03fdfe3f 0..1021=1022 cylinders, 0..254=255
heads, 1..63=63 sectors
3:01fe0100 0..510=511 cylinders, 0..1=2 heads,
1..0=0 sectors
0 accounted for
PC-Card Cirrus Logic PD672X (5 mem & 2 I/O windows)
<===== Addl. debug by me
pcic: controller irq 10
* Check for a card in this
slot.
setb (sp, PCIC_POWER, PCIC_PCPWRE|
PCIC_DISRST);
} else {
slotp->laststate =
slotp->state = filled;
pccard_event(sp->slotp,
card_inserted);
}
*/
if (pcic_irq > 0)
putb(sp, PCIC_STAT_INT,
(pcic_irq << 4) | 0xF);
* Check for a card in this
slot.
setb (sp, PCIC_POWER, PCIC_PCPWRE|
PCIC_DISRST);
if ((getb (sp, PCIC_STATUS) &
PCIC_CD) != PCIC_CD) {
slotp->laststate =
slotp->state = empty;
}
*/
if (pcic_irq > 0)
putb(sp, PCIC_STAT_INT,
(pcic_irq << 4) | 0xF);
}
if (validslots)
timeout(pcictimeout,0,hz/2);
<==== End of my stuff
pcibus_setup(1): mode 1 addr port (0x0cf8)
is 0x80009070
pcibus_setup(1a): mode1res=0x80000000
(0x80000000)
pcibus_check: device 0 is there (id=e8911060)
Probing for devices on PCI bus 0:
configuration mode 1 allows 32 devices.
chip0 <generic PCI bridge (vendor=1060 device=e891
subclass=0)> rev 176 on pci0:0
vga0 <VGA-compatible display device> rev 0 on
pci0:17
mapreg[10] type=0 addr=c0000000
size=800000.
chip1 <generic PCI bridge (vendor=1060 device=e886
subclass=1)> rev 178 on pci0:18:0
pci0:18:1: UMC, device=0x673a, class=storage (ide)
[no driver assigned]
chip2 <generic PCI bridge (vendor=1013 device=1100
subclass=5)> rev 254 int a irq ??
on pci0:23
mapreg[10] type=1 addr=00003000 size=0004.
pci0: uses 8388608 bytes of memory from c0000000
upto c07fffff.
pci0: uses 4 bytes of I/O space from 3000 upto
3003.
Probing for devices on the ISA bus:
sc0 at 0x60-0x6f irq 1 on motherboard
sc0: VGA color <16 virtual consoles, flags=0x0>
pccard driver ed added
ed0 not found at 0x320
pccard driver sio added
sio0 at 0x3f8-0x3ff irq 4 on isa
sio0: type 16550A
sio1 at 0x2f8-0x2ff irq 3 on isa
sio1: type 16550A
lpt0 at 0x278-0x27f irq 7 on isa
lpt0: Interrupt-driven port
lp0: TCP/IP capable interface
psm0 at 0x60-0x63 irq 12 on motherboard
fdc0 at 0x3f0-0x3f7 irq 6 drq 2 on isa
fdc0: NEC 72065B
fd0: 1.44MB 3.5in
wdc0 at 0x1f0-0x1f7 irq 14 on isa
wdc0: unit 0 (wd0): <TOSHIBA MK2720FC>
wd0: 1295MB (2654064 sectors), 2633 cyls, 16 heads,
63 S/T, 512 B/S
wdc1 at 0x170-0x177 irq 15 on isa
wdc1: unit 0 (atapi): <TOSHIBA CD-ROM
XM-1302B/2865>, removable, intr, iordis
wcd0: 689Kb/sec, 128Kb cache, audio play, 255
volume levels, ejectable tray
wcd0: no disc inside, unlocked
ep0 not found at 0x300
zp0: disabled, not probed.
npx0 on motherboard
npx0: INT 16 interface
apm0 on isa
apm: found APM BIOS version 53.14
imasks: bio c000c040, tty c003109a, net c003109a
Card inserted, slot 0
<=== NE-2000 in Slot
wd0s2: type 0x6, start 63, end = 717695, size
717633 : OK
wd0s3: type 0xa5, start 717696, end = 1290239, size
572544 : OK
wd0s4: type 0x63, start 1290240, end = 2653055,
size 1362816 : OK
Slot 0, unfielded interrupt (0)
type = 0 type_str=PCCARD isa16bit=1 memsize=16384
id_msize=16384
nic_addr = 320 ether=0:0:0:0:0:0
ed_probe_pccard: possible failure
....................dead :-(
Return IRQ=11
stray irq 11
Card removed, slot 0
Card inserted, slot 0
*
* Outpout of scanpci:
*
dracula[root-ttyp0/root]> scanpci
PCI says configuration type 1
PCI probing configuration type 1
pci bus 0x0 cardnum 0x00, vendor 0x1060 device
0xe891
UMC Device unknown
STATUS 0xe200 COMMAND 0x0006
CLASS 0x06 0x00 0x00 REVISION 0xb0
pci bus 0x0 cardnum 0x11, vendor 0x102c device
0x00dc
CT Device unknown
STATUS 0x0280 COMMAND 0x01c3
CLASS 0x03 0x00 0x00 REVISION 0x00
BASE0 0xc0000000 addr 0xc0000000 MEM
BASEROM 0x0c000000 addr 0x0c000000
not-decode-enabled
pci bus 0x0 cardnum 0x12, vendor 0x1060 device
0xe886
UMC Device unknown
STATUS 0x0200 COMMAND 0x000f
CLASS 0x06 0x01 0x00 REVISION 0xb2
BIST 0x00 HEADER 0x80 LATENCY 0x00 CACHE
0x00
pci bus 0x0 cardnum 0x17, vendor 0x1013 device
0x1100
Cirrus Logic CL 6729
STATUS 0x8400 COMMAND 0x01c3
CLASS 0x06 0x05 0x00 REVISION 0xfe
BASE0 0x00003001 addr 0x00003000 I/O
MAX_LAT 0x00 MIN_GNT 0x00 INT_PIN 0x01
INT_LINE 0xff
PCI probing configuration type 2
*
* CIS-dump of the 3C589
*
Configuration data for card in slot 1
Tuple #1, code = 0x1 (Common memory descriptor),
length = 2
000: 00 ff
Common memory device information:
Device number 1, type No device,
WPS = OFF
Speed = No speed, Memory block size
= reserved, 32 units
Tuple #2, code = 0x17 (Attribute memory
descriptor), length = 3
000: 43 02 ff
Attribute memory device information:
Device number 1, type EEPROM, WPS =
OFF
Speed = 150nS, Memory block size =
8Kb, 1 units
Tuple #3, code = 0x20 (Manufacturer ID), length = 4
000: 01 01 89 05
PCMCIA ID = 0x101, OEM ID = 0x589
Tuple #4, code = 0x21 (Functional ID), length = 2
000: 06 00
Network/LAN adapter
Tuple #5, code = 0x15 (Version 1 info), length = 57
000: 04 01 33 43 6f 6d 20 43 6f 72 70 6f 72 61
74 69
010: 6f 6e 00 33 43 35 38 39 00 54 50 2f 42 4e
43 20
020: 4c 41 4e 20 43 61 72 64 20 56 65 72 2e 20
32 61
030: 00 30 30 30 30 30 32 00 ff
Version = 4.1, Manuf = [3Com
Corporation],card vers = [3C589]
Addit. info = [TP/BNC LAN Card Ver.
2a],[000002]
Tuple #6, code = 0x1a (Configuration map), length =
6
000: 02 03 00 00 01 03
Reg len = 3, config register addr =
0x10000, last config = 0x3
Registers: XX------
Tuple #7, code = 0x1b (Configuration entry), length
= 15
000: c1 01 1d 71 55 35 55 54 e0 72 5d 64 30 ff
ff
Config index = 0x1(default)
Interface byte = 0x1 (I/O)
Vcc pwr:
Nominal operating supply voltage: 5
x 1V
Max current average over 1 second:
3 x 10mA
Max current average over 10 ms: 5 x
10mA
Power down supply current: 5 x 1mA
Wait scale Speed = 7.0 x 100 ns
RDY/BSY scale Speed = 7.0 x 100 ns
Card decodes 18 address lines, full 8/16
Bit I/O
IRQ modes: Level, Pulse
IRQs: IOCK 1 4 5 6 8 10 11 12 14
Tuple #8, code = 0x1b (Configuration entry), length
= 7
000: 03 01 71 55 26 26 54
Config index = 0x3
Vcc pwr:
Nominal operating supply voltage: 5
x 1V
Max current average over 1 second:
2 x 100mA
Max current average over 10 ms: 2 x
100mA
Power down supply current: 5 x 1mA
Tuple #9, code = 0x19 (JEDEC descr for attribute
memory), length = 3
000: 00 00 ff
Tuple #10, code = 0x14 (No link), length = 0
Tuple #11, code = 0x10 (Checksum), length = 5
000: 89 ff 80 00 00
Checksum from offset -119, length 128,
value is 0x0
Tuple #12, code = 0xff (Terminator), length = 218
000: 00 03 00 00 00 00 00 00 43 32 20 54 45 41
4d 2d
010: 45 61 72 6c 20 41 6c 64 72 69 64 67 65 2c
20 52
020: 65 78 20 41 6c 6c 65 72 73 2c 20 52 75 73
73 65
030: 6c 6c 20 43 68 61 6e 67 2c 20 44 61 76 69
64 20
040: 43 68 69 68 2c 20 48 65 72 6d 61 6e 20 4c
61 6f
050: 2c 20 47 65 6e 65 20 4c 69 6e 2c 20 4c 69
61 6e
060: 67 20 4c 69 6e 2c 20 48 69 65 6e 20 4e 67
75 79
070: 65 6e 2c 20 4b 61 70 20 53 6f 68 2c 20 47
61 72
080: 79 20 57 61 6e 67 00 ff ff ff ff ff ff ff
ff ff
090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff
0a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff
0b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff
0c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff
0d0: ff ff ff ff ff ff ff ff ff ff
2 slots found
*
* CIS-dump of the NE-2000 compat.
*
Configuration data for card in slot 0
Tuple #1, code = 0x1 (Common memory descriptor),
length = 2
000: dc ff
Common memory device information:
Device number 1, type Function
specific, WPS = ON
Speed = 100nS, Memory block size =
reserved, 32 units
Tuple #2, code = 0x21 (Functional ID), length = 2
000: 06 01
Network/LAN adapter - POST initialize
Tuple #3, code = 0x15 (Version 1 info), length = 54
000: 04 01 52 50 54 49 00 45 50 34 30 31 20 45
74 68
010: 65 72 6e 65 74 20 4e 45 32 30 30 30 20 43
6f 6d
020: 70 61 74 69 62 6c 65 00 43 49 53 56 31 30
30 95
030: 10 30 53 4c 00 ff
Version = 4.1, Manuf = [RPTI],card vers =
[EP401 Ethernet NE2000 Compatible]
Addit. info = [CISV1000x95^P0SL],[ÿ]
Tuple #4, code = 0x1a (Configuration map), length =
5
000: 01 23 f8 03 03
Reg len = 2, config register addr = 0x3f8,
last config = 0x23
Registers: XX------
Tuple #5, code = 0x1b (Configuration entry), length
= 24
000: e0 81 1e 3f 55 c5 4b 5d 1e 36 56 01 8e 7d
fc 2c
010: ca 60 00 03 1f 30 3c 9e
Config index = 0x20(default)
Interface byte = 0x81 (I/O) wait signal
supported
Vcc pwr:
Nominal operating supply voltage: 5
x 1V
Minimum operating supply voltage: 4
x 1V, ext = 0x4b
Maximum operating supply voltage:
5.5 x 1V
Continuous supply current: 1.5 x
100mA
Max current average over 1 second:
3 x 100mA
Max current average over 10 ms: 5 x
100mA
Vpp pwr:
Nominal operating supply voltage:
1.2 x 10V, ext = 0x7d
Wait scale Speed = 2.0 x 10 us
Card decodes 12 address lines, 8 Bit I/O
only
IRQ modes: Level
IRQ level = 12
Tuple #6, code = 0x1b (Configuration entry), length
= 7
000: 21 08 ca 60 20 03 1f
Config index = 0x21
Card decodes 10 address lines, limited 8/16
Bit I/O
I/O address # 1: block start =
0x320 block length = 0x20
Tuple #7, code = 0x1b (Configuration entry), length
= 7
000: 22 08 ca 60 40 03 1f
Config index = 0x22
Card decodes 10 address lines, limited 8/16
Bit I/O
I/O address # 1: block start =
0x340 block length = 0x20
Tuple #8, code = 0x1b (Configuration entry), length
= 7
000: 23 08 ca 60 60 03 1f
Config index = 0x23
Card decodes 10 address lines, limited 8/16
Bit I/O
I/O address # 1: block start =
0x360 block length = 0x20
Tuple #9, code = 0x14 (No link), length = 0
Tuple #10, code = 0xff (Terminator), length = 0
2 slots found
Many thanks for your time and effort!!!!
marcus.john@wiesbaden.netsurf.de
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31F0E6A3.157E>
