Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 19 Jul 2003 09:25:39 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Bruce Evans <bde@zeta.org.au>
Cc:        freebsd-current@freebsd.org
Subject:   Re: cyclades isa card not recognized on 5-current ?
Message-ID:  <Pine.BSF.4.53.0307190706260.45284@e0-0.zab2.int.zabbadoz.net>
In-Reply-To: <20030719142755.I25432@gamplex.bde.org>
References:  <Pine.BSF.4.53.0307171729270.15332@e0-0.zab2.int.zabbadoz.net> <Pine.BSF.4.53.0307182140240.45284@e0-0.zab2.int.zabbadoz.net> <20030719142755.I25432@gamplex.bde.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 19 Jul 2003, Bruce Evans wrote:

Hi,

> > firmware_version always is 0xff.
>
> This usually means that the maddr is wrong or that the hardware is not
> there for some other reason.  A normal hex dump of cyclades isa memory
> looks something like this
> (output from "dd if=/dev/mem bs=1 iseek=0xd4000 count=0x2000 | hd"):

thanks. useful hint. going to see what I can do with this information.


> Values at even offsets are always repeated at the next (odd) offset.
>
> CD1400_GFRCR is at offset 0x80 (contents 0x46 in the above).
>
> > If I give another maddr in hints file than dip switches are set to
> > kernel aborts somwhere in sioprobe(dev) and will reboot so I assume
> > maddr really is set correct (also verified with cyclades manual
> > y_30.pdf again).
>
> The abort is a bit unusual since the cyclades probe is not very invasive.

yeah. aehm and if we are with it. Is it really correct  that 0xc0000
and 0xd4000 have the same dip settings ? This is the case according to
ftp://ftp.cyclades.de/pub/cyclades/cyclom-y/doc/y_30.pdf (english)
Though I also tried other addresses as said I hink this might be an
error in the table ?


> > There is a "Rev 5" oder 5.0 on the card.
>
> I think mine is much older (model 8Yb).

Everything interesting I can find on the card:

CYCLOM-8Yo Rev 5.00
(c) 1995 Cyclades Corporation

25 Mhz FOX
2x CL-CD1400-10PC-G, 48360-208BC, 9535-B
CY7C371, -66JC  9537, CYP 119265,+, U178Y100(*)

and on the back:
MTI-Y, 94V-0, 0196
and a barcode with CYC0013184


> Did you say that it worked under old versions of FreeBSD?

no, I got the card from someone who no longer had a use for it.
Don't know which OS he had been running.

I only have one 4-STABLE maschine which is up 24-7-365 and another 5.0
notebook. So not much chance to test it in another machine with an
older FreeBSD version.


OK some more investigation done:

a) silly me also tried addresses that where in the middle of
orm0: <Option ROMs> at iomem 0xc8000-0xcbfff,0xc0000-0xc7fff on isa0
these where the panics on startup. Cannot reproduce them with addresses
outside of this range. Must have missed this the first time I checked
free resources :(

b) set maddr and dips to 0xd8000 and now getting (see marked areas):

e0-0# dd if=/dev/mem bs=1 iseek=0xd8000 count=0x2000 | hd
00000000  00 00 00 00 00 00 00 00  00 00 81 81 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000080  00 00 00 00 61 61 61 61  61 61 00 00 41 41 41 41  |....aaaaaa..AAAA|
00000090  40 40 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |@@..............|
000000a0  61 61 00 00 61 61 61 61  61 61 81 81 41 41 40 40  |aa..aaaaaa..AA@@|
000000b0  40 40 00 00 40 40 00 00  00 00 00 00 00 00 40 40  |@@..@@........@@|
000000c0  40 40 40 40 00 00 00 00  ff ff ff ff ff ff 00 00  |@@@@............|
000000d0  c0 c0 08 08 10 10 18 18  a8 a8 a8 a8 a0 a0 a8 a8  |................|
000000e0  54 54 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |TT..............|
000000f0  00 00 00 00 08 08 08 08  08 08 08 08 00 00 00 00  |................|
00000100  00 00 00 00 00 00 00 00  00 00 81 81 00 00 00 00  |................|
00000110  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000180  00 00 00 00 61 61 61 61  61 61 00 00 41 41 41 41  |....aaaaaa..AAAA|
00000190  40 40 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |@@..............|
000001a0  61 61 00 00 61 61 61 61  61 61 81 81 41 41 40 40  |aa..aaaaaa..AA@@|
000001b0  40 40 00 00 40 40 00 00  00 00 00 00 00 00 40 40  |@@..@@........@@|
000001c0  40 40 40 40 00 00 00 00  ff ff ff ff ff ff 00 00  |@@@@............|
000001d0  c0 c0 08 08 10 10 18 18  a8 a8 a8 a8 a0 a0 a8 a8  |................|
000001e0  54 54 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |TT..............|
000001f0  00 00 00 00 08 08 08 08  08 08 08 08 00 00 00 00  |................|
00000200  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
::-->
00000400  00 00 00 00 00 00 00 00  22 22 00 00 00 00 00 00  |........""......|
00000410  00 00 00 00 00 00 00 00  00 00 26 26 00 00 00 00  |..........&&....|
00000420  00 00 34 34 00 00 00 00  00 00 00 00 00 00 a0 a0  |..44............|
00000430  00 00 26 26 00 00 00 00  00 00 00 00 00 00 00 00  |..&&............|
00000440  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000480  46 46 00 00 00 00 00 00  00 00 00 00 00 00 47 47  |FF............GG|
::<--

00000490  00 00 00 00 00 00 00 00  00 00 00 00 83 83 00 00  |................|
000004a0  34 34 22 22 00 00 00 00  00 00 00 00 00 00 00 00  |44""............|
000004b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000004c0  26 00 00 26 00 26 46 00  0e 0e 42 42 00 00 00 00  |&..&.&F...BB....|
000004d0  c0 c0 0b 0b 10 10 18 18  a8 a0 a0 a0 a0 a0 a8 a8  |................|
000004e0  54 54 00 00 41 41 06 3e  04 84 08 08 01 01 89 81  |TT..AA.>........|
000004f0  41 41 41 41 00 00 38 18  01 19 02 22 ff ff bd bc  |AAAA..8...."....|

::-->
00000500  00 00 00 00 00 00 00 00  22 22 00 00 00 00 00 00  |........""......|
00000510  00 00 00 00 00 00 00 00  00 00 26 26 00 00 00 00  |..........&&....|
00000520  00 00 34 34 00 00 00 00  00 00 00 00 00 00 a0 a0  |..44............|
00000530  00 00 26 26 00 00 00 00  00 00 00 00 00 00 00 00  |..&&............|
00000540  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000580  46 46 00 00 00 00 00 00  00 00 00 00 00 00 47 47  |FF............GG|
::<--

00000590  00 00 00 00 00 00 00 00  00 00 00 00 82 82 00 00  |................|
000005a0  34 34 22 22 00 00 00 00  00 00 00 00 00 00 00 00  |44""............|
000005b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
000005c0  00 00 00 00 00 00 00 00  10 10 44 44 00 00 00 00  |..........DD....|
000005d0  c0 c0 09 09 10 10 18 18  a0 a0 a0 a0 a0 a0 a8 a8  |................|
000005e0  54 54 00 00 41 41 35 2c  04 24 08 08 81 a1 81 81  |TT..AA5,.$......|
000005f0  41 41 41 41 18 98 08 18  01 01 0a 02 ff ff 6d 6d  |AAAA..........mm|
00000600  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001c00  01 01 01 01 01 01 01 01  01 01 01 01 01 01 01 01  |................|
8192+0 records in
8192+0 records out
*
8192 bytes transferred in 0.169570 secs (48310 bytes/sec)
00001d00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001e00  79 79 79 79 79 79 79 79  79 79 79 79 79 79 79 79  |yyyyyyyyyyyyyyyy|
*
00001f00  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00002000


So the first signature seems to be at cy_chip_offset 0x400 but as
	if ((firmware_version & 0xf0) == 0x40) {
doesn't match the first 200 we also break out of the outer loop and
will not try offset 0x400 :

                /*
                 * Anything in the 0x40-0x4F range is fine.
                 * If one CD1400 is bad then we don't support higher
                 * numbered good ones on this board.
                 */
TRACE
                if ((firmware_version & 0xf0) != 0x40) {
TRACE
                        break;
                }



so I tried setting hint.cy.0.maddr to 0xd8400 and (including some
debugging lines - stripped most) got:

...
pmtimer0 on isa0
return (cyu) = 1
cy0 at iomem 0xd8400-0xda3ff irq 11 on isa0
return (cyu) = 1
cy0: driver is using old-style compatibility shims
...


Looks like I got at least four of the eight ports now:

bz@e0-0:~> ls -l /dev/ttyc0*
crw-------    1 root     wheel     48,   0 Jul 19 09:08 /dev/ttyc00
crw-------    1 root     wheel     48,   1 Jul 19 09:08 /dev/ttyc01
crw-------    1 root     wheel     48,   2 Jul 19 09:08 /dev/ttyc02
crw-------    1 root     wheel     48,   3 Jul 19 09:08 /dev/ttyc03


So any more ideas ? Any ideas on how to get the second four ?

Looks like I need to change the
static  int     cy_chip_offset[] = {
        0x0000, 0x0400, 0x0800, 0x0c00, 0x0200, 0x0600, 0x0a00, 0x0e00,
};

to have a 0x0100 at second but I do not like patching drivers if I can
avoid.

-- 
Greetings

Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT
56 69 73 69 74				http://www.zabbadoz.net/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.53.0307190706260.45284>