Lines Matching full:srom
41 Digital Semiconductor SROM Specification. The driver currently
44 DC21040 (no SROM)
56 SMC9332 (w/new SROM)
150 The SMC9332 card has a non-compliant SROM which needs fixing - I have
151 patched this driver to detect it because the SROM format used complies
159 I have added SROM decoding routines to make this driver work with any
160 card that supports the Digital Semiconductor SROM spec. This will help
165 (with the latest SROM complying with the SROM spec V3: their first was
191 Where SROM media detection is used and full duplex is specified in the
192 SROM, the feature is ignored unless lp->params.fdx is set at compile
196 autonegotiation feature in the SROM autoconf code, this detection will
224 correct in relation to what the adapter SROM says it has. There's no way
329 0.5 30-Jan-97 Added SROM decoding functions.
333 Added multi-MAC, one SROM feature from discussion
336 Added attempt to use an SMC9332 with broken SROM.
339 0.51 13-Feb-97 Added endian fixes for the SROM accesses from
361 Fix multi-MAC, one SROM, to work with 2114x chips:
389 case where a 21140 under SROM control uses, e.g. AUI
395 when using SROM control from problem report by
425 0.544 8-May-99 Fix for buggy SROM in Motorola embedded boards using
428 0.545 28-Nov-99 Further Moto SROM bug fix from
512 u_char *gep; /* Start of GEP sequence block in SROM */
513 u_char *rst; /* Start of reset sequence in SROM */
555 ** Define special SROM detection cases
566 ** SROM Repair definitions. If a broken SROM is detected a card may
730 ** SROM Structure
839 struct de4x5_srom srom; /* A copy of the SROM */ member
842 bool useSROM; /* For non-DEC card use SROM */
847 int defMedium; /* SROM default medium */
850 int infoleaf_offset; /* SROM infoleaf for controller */
851 s32 infoblock_csr6; /* csr6 value in SROM infoblock */
864 ** To get around certain poxy cards that don't provide an SROM
866 ** chip's address. I'll assume there's not a bad SROM iff:
1032 ** List the SROM infoleaf functions and chipsets
1047 ** List the SROM info block functions
1243 /* Initialise the SROM pointers if possible */ in de4x5_hw_init()
2118 ** SROM, so that in multiport cards that have one SROM shared between multiple
2119 ** DECchips, we can find the base SROM irrespective of the BIOS scan direction.
2163 /* Search for a valid SROM attached to this DECchip */ in srom_search()
2166 j += (u_char) *((u_char *)&lp->srom + SROM_HWADD + i); in srom_search()
2173 last.addr[i] = (u_char)*((u_char *)&lp->srom + SROM_HWADD + i); in srom_search()
2235 /* Search for an SROM on this bus */ in de4x5_pci_probe()
2924 ** When autonegotiation is working, the ANS part searches the SROM for
3193 ** The early return avoids a media state / SROM media space clash.
3257 printk("%s: Bad media code [%d] detected in SROM!\n", dev->name, in srom_map_media()
3335 if (!lp->useSROM) { /* Already done if by SROM, else dc2104[01] */ in test_media()
3915 } else { /* Search for a DEC name in the SROM */ in PCI_signature()
3916 int tmp = *((char *)&lp->srom + 19) * 3; in PCI_signature()
3917 strncpy(name, (char *)&lp->srom + 26 + tmp, 8); in PCI_signature()
3944 ** the DC21040, else read the SROM for the other chips.
3945 ** The SROM may not be present in a multi-MAC card, so first read the
3947 ** immediately with the prior srom contents intact (the h/w address will
3962 } else { /* Read new srom */ in DevicePresent()
3964 __le16 *p = (__le16 *)((char *)&lp->srom + SROM_HWADD); in DevicePresent()
3975 p = (__le16 *)&lp->srom; in DevicePresent()
3980 de4x5_dbg_srom(&lp->srom); in DevicePresent()
4022 ** For the bad status case and no SROM, then add one to the previous
4050 dev->dev_addr[i] = (u_char) lp->srom.ieee_addr[i]; i++; in get_hw_addr()
4051 dev->dev_addr[i] = (u_char) lp->srom.ieee_addr[i]; i++; in get_hw_addr()
4053 dev->dev_addr[i] = *((u_char *)&lp->srom + i); i++; in get_hw_addr()
4054 dev->dev_addr[i] = *((u_char *)&lp->srom + i); i++; in get_hw_addr()
4118 if (!memcmp(&lp->srom, &enet_det[i], 3) && in de4x5_bad_srom()
4119 !memcmp((char *)&lp->srom+0x10, &enet_det[i], 3)) { in de4x5_bad_srom()
4139 memset((char *)&lp->srom, 0, sizeof(struct de4x5_srom)); in srom_repair()
4140 memcpy(lp->srom.ieee_addr, (char *)dev->dev_addr, ETH_ALEN); in srom_repair()
4141 memcpy(lp->srom.info, (char *)&srom_repair_info[SMC-1], 100); in srom_repair()
4189 if ((*(u_short *)lp->srom.sub_vendor_id == 0x00c0) && in an_exception()
4190 (*(u_short *)lp->srom.sub_system_id == 0x95e0)) { in an_exception()
4198 ** SROM Read
4307 printk("%s: Cannot find correct chipset for SROM decoding!\n", in srom_infoleaf_info()
4315 count = *((u_char *)&lp->srom + 19); in srom_infoleaf_info()
4316 p = (u_char *)&lp->srom + 26; in srom_infoleaf_info()
4324 printk("%s: Cannot find correct PCI device [%d] for SROM decoding!\n", in srom_infoleaf_info()
4346 u_char *p = (u_char *)&lp->srom + lp->infoleaf_offset; in srom_init()
4411 ** unless I implement the DC21041 SROM functions. There's no need
4425 u_char *p = (u_char *)&lp->srom + lp->infoleaf_offset; in dc21140_infoleaf()
4463 u_char *p = (u_char *)&lp->srom + lp->infoleaf_offset; in dc21142_infoleaf()
4498 u_char *p = (u_char *)&lp->srom + lp->infoleaf_offset; in dc21143_infoleaf()
4966 ** The SROM spec forces us to search addresses [1-31 0]. Bummer.
5324 printk("SROM version: %02x\n", (u_char)(p->version)); in de4x5_dbg_srom()