Other Parts Discussed in Thread: DP83640
Tool/software: TI-RTOS
Hello,
I am currently porting the PRU-ICSS-PROFINET-SLAVE 01.00.01.00 to a custom hardware platform. I am having a problem when trying to send an Ethernet frame to the platform.
When an Ethernet frame is sent, I do not see the ICSS_EmacRxInterruptHandler execute.
I was able to confirm that I am seeing the ICCS_EmacLinkISR execute when I plug and unplug the RJ45 Ethernet cable from the platform.
While using the debugger, I halt execution and examine the PRU ICSS SRSR0 and SRSR1 registers (as per SPRUHF8A). I believe these two registers report pending interrupts.
While halted, when I plug/unplug the Ethernet cable I see that SRSR1 (address 0x4a320200) goes from 0x0 to 0x200. The 0x200 corresponds to SYSTEM EVENT 41.
Both the SPRUHF8A document and the contents of the tiswitch_pruss_intc_mapping.h include file in the examples\profinet_slave directory seem to indicate that SYSTEM EVENT 41 is associated with the MMI_LINK0_EVENT (#define MMI_LINK0_EVENT 41). The #define for PRUSS_INTC_INITDATA also sets up SYSTEM EVENT 41 as CHANNEL7.
If, again using the debugger with execution halted, I send a PING to the platform, I see SRSR1 change from 0x0 to 0xc. In this case the 0xc correspond to SYSTEM EVENT 35 and SYSTEM EVENT 36.
The EVENT 35 and EVENT 36 do not seem to be the expected SYSTEM EVENTS -- at least by the #defines for PORT1_RX_EOF_EVENT (#defined as 42) and PORT2_RX_EOF_EVENT (#defined as 54).
I have checked the PRU_ICSS MII_RT register (0x4a326002c) and it is set to 0x1. This would seem to be correct and I should expect a PORT1_RX_EOF_EVENT or a PORT2_RX_EOF_EVENT when the PRU receives an Ethernet frame.
I am unsure how to proceed. Can you offer any suggestions as to how to determine what is going on?
I am using NDK 2.25.01.11 , PDK AM335x_1_0_6, SDK RTOS am335x_3_03_00_04 and PRU-ICSS-PROFINET-SLAVE 01.00.01.00.
Thanks.