Hi all,
I've written an interface for ethernet packet reception and here is how i've done that.
unsigned char ucMACBuffers[NUM_BUFFERS][MAX_PACKET_SIZE] __attribute__((aligned(4))); [is the receiver buffer = ucMACBuffers[8][1518]]
emac_rx_bd rx_descriptor[NUM_RX_DESCRIPTORS] __attribute__((aligned(4)));
Driver initialize:
Then i have a RxDescriptor initialization function where i have initialized the rx_descriptor structure(*next, buffer pointer, buffer offset, flag packet length)
Upon initialization i called the EMACRxHdrDescPtrWrite function. So the buffer has been assigned with memory and descriptor initialized(Also broadcast and multicast reception is enabled).
Receiver Handler:
Upon receiving a broadcast or a multicast frame, i dont see the buffers getting updated.
To cross check the proper assignment of bufferpointer in Rx descriptors and reciever handler, I manually assigned random values in the buffer during initialization and checked. The values of the buffer were passed into the Receiver Handler.
So, the descriptor and buffer initialization is done properly, but the problem is with the receive buffers not getting updated. What could be the problem ?
Regards
Peter