Re: [Etherboot-developers] currticks function
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Fotis A. <fa...@te...> - 2002-07-03 08:54:21
|
>
>
>So occasionally it just times out?
>Hmm. I would really try this with another tftp client and verify that
>this isn't a server bug.
>
>Do you see retransmits from either the client or the server
>
The retransmissions are occured by the tftpd server because the
etherboot does not send an ACK. However, I solved the problem by a
non-formal way. I set a breakpoint to the point that the tftp reads the
nic.packet struct
tr = (struct tftp_t *)&nic.packet[ETH_HLEN];
I realized that even if it waits for a DATA block (or an OACK), the tr
struct gets data from broadcast MAC addresses (in the tftp function).
Thus, the tftp checks in this packet for an OACK or DATA field and it
fails. It is not very clear to me if it is right to this point to find
data with broadcast addresses. So, at the beginning of the tftp function
I reconfigure the cs89x0 chip to process only packets with individual
MAC addresses. Therefore, in the driver I use the
#define DEF_RX_ACCEPT (RX_IA_ACCEPT | RX_BROADCAST_ACCEPT | RX_OK_ACCEPT)
and in the tftp function I use the
#define DEF_RX_ACCEPT_AFTER (RX_IA_ACCEPT | RX_OK_ACCEPT)
to reconfigure the chip, so as all the packet that will be processed
will have as destination only the MAC address of the development board.
The problem solved by I don't thing that this is the right way.
Fotis Andritsopoulos
--
"Whom ever Controls your Perception of Reality Controls You"
|