While debugging some Etherboot (http://www.slug.org.au/etherboot/) tulip code, I noticed that when using LNE100TX and MX98715 cards, there seemed to be a very long delay (10 seconds) when getting their DHCP/BOOTP information from the server, while the FA310TX (LC82C168) cards got the same information in a small fraction of a second. I tracked the source of the delay down to this code sequence in ntulip_reset: /* Start Tx */ outl(inl(ioaddr + CSR6) | 0x00002000, ioaddr + CSR6); /* immediate transmit demand */ outl(0, ioaddr + CSR1); to = currticks() + TICKS_PER_SEC; while ((txd.status & 0x80000000) && (currticks() < to)) /* wait */ ; Essentially, we turn on the transmitter, force an immediate transmission demand to process the setup packet, and then wait for the packet status to clear or for 1 second to elapse. What I noticed with MX98715 and LNE100TX (LC82C115) cards was that they didn't transmit the first BOOTP request. This is true of the Linux driver as well -- The cards seem to take far longer than other cards to get BOOTP/DHCP information from the server, because even though the driver thinks it is transmitting the first packet, it never actually gets out of the card, so after 10 seconds (in the case of Etherboot) the packet is retransmitted, and responded to instantly. I found that by changing the above code to add an arbitrary 1 second delay after starting the transmitter, the first BOOTP request was not dropped, and it saved 9 seconds in the network booting sequence. /* Start Tx */ outl(inl(ioaddr + CSR6) | 0x00002000, ioaddr + CSR6); /* immediate transmit demand */ outl(0, ioaddr + CSR1); /* 1 second delay inserted to allow some cards to process the setup packet */ to = currticks() + TICKS_PER_SEC; while (currticks() < to) /* wait */ ; to = currticks() + TICKS_PER_SEC; while ((txd.status & 0x80000000) && (currticks() < to)) /* wait */ ; QUESTIONS: Is anyone else seeing this delay with LNE100TX, MX98715 or other tulip-based cards (brand names like LinkSys, Lite-ON, SOHOWare)? If you are currently using the ntulip.c driver for Etherboot, could you download the ntulip-0.75b6 from http://www.thinguin.org/ to see if you get faster boot times with this beta version? Thanks and Regards, Marty --- Name: Martin D. Connor US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA Voice: (617) 491-6935, Fax: (617) 491-7046 Email: mdc@thinguin.org Web: http://www.thinguin.org/ =========================================================================== This Mail was sent to netboot mailing list by: Marty Connor <mdc@thinguin.org> To get help about this list, send a mail with 'help' as the only string in it's body to majordomo@baghira.han.de. If you have problems with this list, send a mail to netboot-owner@baghira.han.de.
For requests or suggestions regarding this mailing list archive please write to netboot@gkminix.han.de.