Well, that worked partway. Now each card is sharing MACs across 4 ports.
Example:

cas0 at pci3 dev 0 function 0 "NS Saturn" rev 0x30: apic 5 int 5, address
00:03:ba:da:fa:6a
cas1 at pci3 dev 1 function 0 "NS Saturn" rev 0x30: apic 5 int 15, address
00:03:ba:da:fa:6a
cas2 at pci4 dev 2 function 0 "NS Saturn" rev 0x30: apic 5 int 13, address
00:03:ba:da:fa:6a
cas3 at pci4 dev 3 function 0 "NS Saturn" rev 0x30: apic 5 int 14, address
00:03:ba:da:fa:6a
cas4 at pci6 dev 0 function 0 "NS Saturn" rev 0x30: apic 5 int 6, address
00:03:ba:95:80:e9
cas5 at pci6 dev 1 function 0 "NS Saturn" rev 0x30: apic 5 int 14, address
00:03:ba:95:80:e9
cas6 at pci7 dev 2 function 0 "NS Saturn" rev 0x30: apic 5 int 15, address
00:03:ba:95:80:e9
cas7 at pci7 dev 3 function 0 "NS Saturn" rev 0x30: apic 5 int 13, address
00:03:ba:95:80:e9

On Wed, May 16, 2012 at 3:43 PM, Brad Smith <b...@comstyle.com> wrote:

> On Wed, May 16, 2012 at 03:14:12PM -0600, James Shaw wrote:
> > I posted this issue on daemonforums.org and they sent me to this
> address..
> > So here it goes.
> >
> > I have a pair of Sun Cassini Quad Port Gigabit cards in an i386 box. The
> > issue is that the MAC address is not being found on any of the cas ports.
> > I'll attach the dmesg to this email for a description of the system. For
> > now, here's a sample of the issue:
>
>
> See if this helps..
>
> Index: if_cas.c
> ===================================================================
> RCS file: /home/cvs/src/sys/dev/pci/if_cas.c,v
> retrieving revision 1.30
> diff -u -p -r1.30 if_cas.c
> --- if_cas.c    19 May 2010 15:27:35 -0000      1.30
> +++ if_cas.c    17 Jul 2010 16:24:41 -0000
> @@ -173,6 +173,11 @@ static const u_int8_t cas_promdat[] = {
>        PCI_VENDOR_SUN & 0xff, PCI_VENDOR_SUN >> 8,
>        PCI_PRODUCT_SUN_CASSINI & 0xff, PCI_PRODUCT_SUN_CASSINI >> 8
>  };
> +static const u_int8_t cas_promdat_ns[] = {
> +       'P', 'C', 'I', 'R',
> +       PCI_VENDOR_NS & 0xff, PCI_VENDOR_NS >> 8,
> +       PCI_PRODUCT_NS_SATURN & 0xff, PCI_PRODUCT_NS_SATURN >> 8
> +};
>
>  static const u_int8_t cas_promdat2[] = {
>        0x18, 0x00,                     /* structure length */
> @@ -212,7 +217,8 @@ cas_pci_enaddr(struct cas_softc *sc, str
>                goto fail;
>
>        bus_space_read_region_1(romt, romh, dataoff, buf, sizeof(buf));
> -       if (bcmp(buf, cas_promdat, sizeof(cas_promdat)) ||
> +       if ((bcmp(buf, cas_promdat, sizeof(cas_promdat)) &&
> +            bcmp(buf, cas_promdat_ns, sizeof(cas_promdat_ns))) ||
>            bcmp(buf + PROMDATA_DATA2, cas_promdat2, sizeof(cas_promdat2)))
>                goto fail;
>
>
>
> > ppb0 at pci1 dev 2 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci2 at ppb0 bus 8
> > ppb1 at pci2 dev 0 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci3 at ppb1 bus 10
> > cas0 at pci3 dev 0 function 0 "NS Saturn" rev 0x30: apic 5 int 5,
> > address 00:00:00:00:00:00
> > gentbi0 at cas0 phy 0: Generic ten-bit interface, rev. 0
> > cas1 at pci3 dev 1 function 0 "NS Saturn" rev 0x30: apic 5 int 15,
> > address 00:00:00:00:00:00
> > gentbi1 at cas1 phy 0: Generic ten-bit interface, rev. 0
> > ppb2 at pci2 dev 4 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci4 at ppb2 bus 9
> > cas2 at pci4 dev 2 function 0 "NS Saturn" rev 0x30: apic 5 int 13,
> > address 00:00:00:00:00:00
> > gentbi2 at cas2 phy 0: Generic ten-bit interface, rev. 0
> > cas3 at pci4 dev 3 function 0 "NS Saturn" rev 0x30: apic 5 int 14,
> > address 00:00:00:00:00:00
> > gentbi3 at cas3 phy 0: Generic ten-bit interface, rev. 0
> > ppb3 at pci1 dev 3 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci5 at ppb3 bus 5
> > ppb4 at pci5 dev 0 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci6 at ppb4 bus 7
> > cas4 at pci6 dev 0 function 0 "NS Saturn" rev 0x30: apic 5 int 6,
> > address 00:00:00:00:00:00
> > gentbi4 at cas4 phy 0: Generic ten-bit interface, rev. 0
> > cas5 at pci6 dev 1 function 0 "NS Saturn" rev 0x30: apic 5 int 14,
> > address 00:00:00:00:00:00
> > gentbi5 at cas5 phy 0: Generic ten-bit interface, rev. 0
> > ppb5 at pci5 dev 4 function 0 "Intel 21154AE/BE PCI-PCI" rev 0x00
> > pci7 at ppb5 bus 6
> > cas6 at pci7 dev 2 function 0 "NS Saturn" rev 0x30: apic 5 int 15,
> > address 00:00:00:00:00:00
> > gentbi6 at cas6 phy 0: Generic ten-bit interface, rev. 0
> > cas7 at pci7 dev 3 function 0 "NS Saturn" rev 0x30: apic 5 int 13,
> > address 00:00:00:00:00:00
> > gentbi7 at cas7 phy 0: Generic ten-bit interface, rev. 0
> >
> >
> > I did not have this issue with FreeBSD or Gentoo. I was wondering if
> there
> > is a bug in the cas* driver for i386.
>
> There is.
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>


--

Reply via email to