Date: 5 Nov 1997 12:30:04 GMT From: nnd@itfs.nsk.su To: hackers@freebsd.org Subject: Re: Cyclades :( Message-ID: <63posc$6c2@news.itfs.nsk.su> References: <199711011653.IAA03064@implode.root.com>
index | next in thread | previous in thread | raw e-mail
David Greenman <dg@root.com> wrote:
> > Driver's text inspection shows that there is ONLY ONE
> >significant difference with 'standard FreeBSD's' cy-driver:
> >(this is a 'diff -bu' result for /sys/i386/isa/cy.c version
> >1.55 of 1997/09/21)
> >
> >--- cy.c.ORIG Sat Nov 1 13:33:19 1997
> >+++ cy.c Sat Nov 1 13:36:55 1997
> >@@ -410,7 +404,7 @@
> > #endif
> >
> > static int cy_chip_offset[] = {
> >- 0x0000, 0x0200, 0x0400, 0x0600, 0x0100, 0x0300, 0x0500, 0x0700,
> >+ 0x0000, 0x0400, 0x0800, 0x0c00, 0x0200, 0x0600, 0x0a00, 0x0e00
> > };
> > static int cy_nr_cd1400s[NCY];
> > static int cy_total_devices;
> >
> >
> > Can someone with Cyclom-8/16YeP (and problems ;-)
> >test this patch ? I myself can not test it because my only ONE
> >Cyclom-16YeP now busily serves 12 modems on Linux box.
> >
> > Partial "correctnes proof" for this patch can be found
> >in (working) Linux 'cy' (or 'cz') driver which uses the same
> >chip_offset addresses as in "patched" driver, but not as in
> >original FreeBSD's 'cy' driver.
> If you look at the cy_inb/cy_outb functions in cyreg.h, you'll see that
> the offset is adjusted (shifted left by one bit) for the PCI card, making
> the appropriate adjustment. The above change (which has the left shift built
> in to the numbers) would effectively double this shift. What I'm saying is
> that unless I'm really missing something, the patch can't be correct.
I still can not test proposed patch with my only one
Cyclom-16YeP, so I spend some time and find the 'correctness proof'
for this patch in CVS/commitlogs ;-)
First - exerpt from CVS/CVSROOT/commitlogs/sys:
>bde 1997/09/02 18:50:25 PDT
>
> Modified files:
> sys/i386/isa cy.c
> Log:
> Cleaned up revs 1.36-1.40 (mainly disordered declarations, non-bogus
> indentation (it is supposed to be bogus to match sio.c), and long lines).
>
> Revision Changes Path
> 1.53 +147 -121 src/sys/i386/isa/cy.c
Second - exerpt from cvs ... diff -u -r1.52 -r1.53 src/sys/i386/isa/cy.c
>@@ -404,20 +406,13 @@
> static u_int cy_timeouts;
> #endif
>
>+static int cy_chip_offset[] = {
>+ 0x0000, 0x0200, 0x0400, 0x0600, 0x0100, 0x0300, 0x0500, 0x0700,
>+};
> static int cy_nr_cd1400s[NCY];
> static int cy_total_devices;
> #undef RxFifoThreshold
> static int volatile RxFifoThreshold = (CD1400_RX_FIFO_SIZE / 2);
>-static int cy_chip_offset[] = {
>- 0x0000,
>- 0x0400,
>- 0x0800,
>- 0x0c00,
>- 0x0200,
>- 0x0600,
>- 0x0a00,
>- 0x0e00
>-};
>
> static int
> sioprobe(dev)
Here you can see (unexplained in the commitlog)
"division by 2" operation on the 'cy_chip_offset' array
elements.
Either Bruce Evans can explain his patch or
we can revert this part of it (i.e. cy_chip_offset array
values "division by 2").
More over - the diffs which can be found on the
Cyclades ftp site for FreeBSD-2.1.[56] and serves to add
PCI support for previous version of 'cy' driver contains
the same declaration for cy_chip_offset array as in
FreeBSD's rev. 1.52 of src/sys/i386/isa/cy.c.
N.Dudorov
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?63posc$6c2>
