TI E2E Community
Digital Signal Processors (DSP)
OMAP-L13x, AM1x and C674x Processors Forum
Was anybody able to run OMAP L137 BSL "emac_loopback" examples successfully?
I cannot run the following OMAP L137 BSL examples:
Was anybody able to run the examples successfully?
They should work, we have not heard of any issues. If you see any issues, please contact Spectrum Digital.
I would recommend looking at the following posts too
Don't forget to verify answers to your forum questions by using the green "Verify Answer" button.
Mukul, thank you for responding my question. I used an external loopback plug and the code didn’t work. I have also contacted Spectrum Digital the other day and they said it’s a hardware problem with EVM board. I’m not sure since I suspect it’s a code problem with the I2C switch. The I2C address used for writing the I2C switch in the example (0x5F) don’t match those in the technical reference (0x5D) and Micrel Switch manual (0xBE). However, I couldn’t get a confirmation from Spectrum Digital which one is the right one.
Therefore, I modified the example to run an EMAC local loopback (without I2C switch). It seems like RX worked in promiscuous mode, which is related to unmatched EMAC address. But I have no clue where I did wrong. Could you take a look?
The code is to loop back one 64-byte packet with fixed priority TX queue. The data packet was able to be transmitted from TX Ch7. However, it can only be received at RX Ch0, and only when RXCAFEN bit of RXMBPENABLE register was set (Receive Copy All Frames Enable Bit). Meanwhile, both RXMCASTFRAMES and TXMCASTFRAMES registers became 1 after code execution, though RXMULTEN bit of RXMBPENABLE register was cleared.
The EMAC address was configured by the following codes:
/* Use Fixed Priority - Use Ch 7 Only (highest priority) */
/* Duplicate the same MAC address across all unused channels */
EMAC_MACINDEX = 0x00;
EMAC_MACADDRHI = 0x000e9902; // From EVM lable, needs to be written only the first time
EMAC_MACADDRLO = 0xff57;
EMAC_MACINDEX = 0x01;
EMAC_MACINDEX = 0x02;
EMAC_MACINDEX = 0x03;
EMAC_MACINDEX = 0x04;
EMAC_MACINDEX = 0x05;
EMAC_MACINDEX = 0x06;
EMAC_MACINDEX = 0x07;
/* 10. Setup the RX( M )ulticast ( B )roadcast ( P )romiscuous channel */
EMAC_RXMBPENABLE = 0x0200000; //RXCAFEN =1 for the code to work
/* 15. Prepare receive by writing a pointer to the head of the receive buffer descriptor list to RXnHDP. */
EMAC_MACSRCADDRHI = 0x000e9902; /* bytes 2-5 */
EMAC_MACSRCADDRLO = 0xff57; /* bytes 0,1 */
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.