Skip site navigation (1)Skip section navigation (2)
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>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?63posc$6c2>