This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Upgrade from LL to NIMU problem

Other Parts Discussed in Thread: OMAPL138

I am trying to upgrade some legacy code from the old LL packet interface to the new NIMU interface.  I can successfully run everything on the 2.20 NDK (the last NDK to officially support DSP/BIOS 5) when I use the LL packet interface.  We are running on the C6416 and are interfacing to a SMSC 9221 MAC/PHY.


To upgrade to the NIMU interface I grabbed the files C:\ti\nsp_1_10_02_09\packages\ti\drv\omapl138\eth_nimu.[c/h], and removed the library that contains the llpacket.c file.  This seems to work well because I can use our existing low level driver with the HwPktxxx functions.  I did add the following code to our low level driver:

#ifdef _INCLUDE_NIMU_CODE
        PBMQ_enq( &pPDI->PBMQ_rx, hPktRx );
#else
        PBMQ_enq( &PBMQ_rx, hPktRx );
#endif

In this arrangement everything compiles, and the processor responds to pings and arps.  However, any attempt to push a packet out of the processor fails.  I can trace a TCP syn packet through the stack, see the TCP syn/ack packet leave the stack and go to our low level driver, and get pushed to the external MAC/PHY.  But I never see the packet in wireshark.  This also seems to effect ARPs that are generated by the stack, but not ARP replies.

Is there something I am missing in the interface change?  Is there a subtle change in the way the size/offset of the packet is represented in the PBM object that would cause my MAC/PHY to silently reject the packet, or for the receiving MAC/PHY to reject that packet so that Wireshark never sees it?

P.S. It might be useful to note that I am generating a pcap file in the processor so that I can pull it out and look at it in wireshark.  When I generate a file while using the LL driver interface, things look great.  When I generate the file using the NIMU driver interface, wireshark complains that all of the ethernet CRCs on outbound packets are wrong.  I would sort of expect this since the MAC/PHY calculates and add that, but I am not sure why wireshark only complains in the one case.  That is one of the reasons that I feel like there may be some subtle size issue with the NIMU interface.