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. > > --