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.

Was anybody able to run OMAP L137 BSL "emac_loopback" examples successfully?

I cannot run the following OMAP L137 BSL examples:

   emac_loopback

   eeprom

   uart

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

    http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/68938.aspx

    Regards

    Mukul

  • 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_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x02;

    EMAC_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x03;

    EMAC_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x04;

    EMAC_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x05;

    EMAC_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x06;

    EMAC_MACADDRLO = 0xff57;

    EMAC_MACINDEX = 0x07;

    EMAC_MACADDRLO = 0xff57;

     ...

    /* 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 */