Hi list! I'm trying to make my PCMCIA ethernet card (3C589D-TP) to work, but with no luck. At boot time I get: CIS is too long -- truncating pccard1: Card has no functions! cbb1: PC Card card activation failed
I've tried to google this problem on the web, but no solutions found, so I've decided to look at source of pccard. The origin of my problem comes from src/sys/dev/pccard/pccard_cis.c. I'm not expert in C, but the code I see in this file seems to be strange: --------------- CODE ------------- .................... #define PCCARD_CIS_SIZE 4096 .................... .................... int pccard_scan_cis(device_t bus, device_t dev, pccard_scan_t fct, void *arg) { .................... struct pccard_tuple tuple; .................... .................... tuple.memt = rman_get_bustag(res); tuple.memh = rman_get_bushandle(res); tuple.ptr = 0; DPRINTF(("cis mem map 0x%x (resource: 0x%lx)\n", (unsigned int) tuple.memh, rman_get_start(res))); tuple.mult = 2; .................... .................... if (tuple.mult * tuple.ptr >= PCCARD_CIS_SIZE - 1 - 32 /* ad hoc value */ ) { printf("CIS is too long -- truncating\n"); tuple.code = CISTPL_END; } else { /* get the tuple code */ tuple.code = pccard_cis_read_1(&tuple, tuple.ptr); } --------------- END OF CODE ------------- The strange thing is this: if (tuple.mult * tuple.ptr >= PCCARD_CIS_SIZE-1- 32) >From the code we have this values: tuple.mult=2 tuple.ptr=0 PCCARD_CIS_SIZE=4096 So we will always get to the "CIS is too long -- truncating" piece of code: if (0*2 >= 4096-1-32). Can this be the cause of problems? Please someone tell me I'm wrong. Thanks in advance, Sorry for my English, Taras Kopets _______________________________________________ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"