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.
Tool/software: Code Composer Studio
Hello,
CCS: 7.2.0.00013
I have a 66AK2H12 eval board. I also have a customer board, based on the eval board reference design.
The eval board connects to CCS using the daughter board that came with the eval kit. The GEL file announces itself as TCI6638K2K GEL file ver 1.8.
For the customer board, I have a 560 pod, Blackhawk. I have modified the GEL file for use with this card: we have a slightly different SDRAM configuration.
Both cards initialize and run software, and I can access memory, though there are some differences.
I see that when the customer board initializes, the GEL file reports:
Set_PSC_State... Timeout Error #03 pd=2, md=9!
Set_PSC_State... Timeout Error #03 pd=29, md=50!
What causes this, and what would the effects be? I note that I cannot get through initialization and running of the min_emacTCPExample: this runs on the eval board but on the customer board it hangs mid-way through initialization, waiting for a signal related to SERDES initialization. Is this related to PSC initialization errors?
A side note is that the customer board does run uboot, and the ethernet is known to work. However, we need to transition from u-boot and Linux to RTOS; u-boot is in flash and that is readily demonstrable on this board. However, our customer requires RTOS; our objective is to run this test on the board and validate network connectivity under TI-RTOS.
Another observation/difference: the EVAL board comes up with SECCTL[BYPASS] = 0x00000000, while the customer board shows 0x00800000. The reported PLL initialization steps appear to differ but the final results in the PLL registers appear to be the same. Let me know if you need more detail on this in order to provide an answer.
Thank you,
Tim
this runs on the eval board but on the customer board it hangs mid-way through initialization, waiting for a signal related to SERDES initialization. Is this related to PSC initialization errors?
What do the PSC error messages from the GEL file (mentioned in the original post) indicate?
From looking at the Power Domains and Clock Domains sections of the 66AK2H14, 66AK2H12, 66AK2H06 datasheet SPRS866G:Tim Cooper1 said:I see that when the customer board initializes, the GEL file reports:Set_PSC_State... Timeout Error #03 pd=2, md=9!
Set_PSC_State... Timeout Error #03 pd=29, md=50!
What causes this, and what would the effects be?
a) pd=2, md=9 is the Security Accelerator. The Security Accelerator is enabled / disabled according to the ordered part number. The timeout error enabling the PSC for the Security Accelerator probably means the Security Accelerator is not enabled in the device. From the documentation I can't see any device register to read if the Security Accelerator is enabled or disabled. The device marking should indicate if the Security Accelerator is enabled or disabled.
b) pd=29, md=50 is the 10GbE, which is only in the 66AK2H14. The timeout error enabling the PSC for the 10GbE probably means the device is not a 66AK2H14. From the documentation I can't see any device register which determines if the devices is a 66AK2H14, 66AK2H12, 66AK2H06. The 66AK2H06/12/14 Silicon Errata SPRZ402E lists the same JTAGID register values for the 66AK2H06/12/14 devices.
Does the customer board need to use the Security Accelerator and/or 10GbE?
From your description wasn't sure if your application is using 10GbE or 1GbE.
Thanks for the information, Chester.
The customer board successfully runs uboot, and establishes a network connection under uboot. So we know the ethernet interface works on the customer board. Under uboot, the board initializes, sets up ethernet, and pings/responds to pings.
Though I can't see the markings on the top of the SOC, the processor card incorporates an 88E1111-B1 PHI. I see this part is a 10/100/1000 transceiver (so, 1Gb?). This is the same part used on the eval board schematic. BTW, the BOM for the eval board shows a TMS320TCI6638. However, the BOM and schematic for the eval card are old, and I am unable to see the top of the part to confirm the part number.
The SA is not needed at this time. The immediate objective is to get the TI ethernet demo running on the card; if it used the SA on the eval board (which works) then we would want it to use it on the customer's board.
Note also that the GEL file for the ARM enables all PSCs, even those marked "reserved" in TI literature.
Thanks!
Tim
Assuming you mean the NIMU_emacExample_EVMK2HC66BiosExampleProject or NIMU_emacExample_EVMK2H_armBiosExample examples they make use of the 1GBE Ethernet subsystem, and don't use the Security Accelerator.Tim Cooper1 said:The SA is not needed at this time. The immediate objective is to get the TI ethernet demo running on the card; if it used the SA on the eval board (which works) then we would want it to use it on the customer's board.
The CSL_SerdesWaitForSigDet() function is reading the PLL_CTRL - PLL Control register (at address 0x0232bff4) defined in the KeyStone II Architecture Serializer/Deserializer (SerDes) User's Guide. CSL_SerdesWaitForSigDet() is waiting for a signal detect signal to be set for for a lane.Tim Cooper1 said:When I run the ethernet test, it never gets past CSL_SerdesWaitForSigDet(), apparently waiting for something to happen that is not going to happen. I can stop and step through this; it is waiting for initialization to complete but that never happens. I was thinking/hoping that the PSC complaints from the GEL file initialization were the source.
The CSL_SgmiiDefSerdesSetup() function in ti-processor-sdk-rtos-k2hk-evm-04.01.00.06\pdk_k2hk_4_0_7\packages\ti\transport\ndk\nimu\src\v2\nimu_eth.c attempts to enable SGMII SERDES lanes zero and one, which on a EVMK2H are connected to the 88E1111 Ethernet Phys for ports 0 and 1.
Can you confirm:
a) How many 88E1111 Ethernet phys are fitted to the customer board, and which SGMII ports they are connected to the Keystone II SOC?
b) When the program stalls in CSL_SerdesWaitForSigDet() what is the lane_num parameter?
If the customer board doesn't have two 88E1111 Ethernet phys connected to the Keystone II SOC SGMII0 and SCGMII1 ports then the CSL_SgmiiDefSerdesSetup() function will need to be changed to only enable the SGMII lanes which are connected to the 88E1111 Ethernet phy(s).
Thanks, Chester. This seems like a valid path to pursue.
a) There is a single phy on the customer board.
b) 2. I see it gets called with 1 and 2. 1 returns, 2 gets called over and over
I changed the lanes connected from 2 to 1 and rebuilt as suggested. When I built the test program, there was a fatal: redefinition of timeval in socketndk.h; not sure why this cropped up now. Commented it out since it seemed redundant; rebuilt; now test comes up and I can ping the customer's board. Thanks!
Tim
I think the error is due to conflicting definitions between the TI-RTOS and the GNU ARM v6.3.1 compiler include files.Tim Cooper1 said:When I built the test program, there was a fatal: redefinition of timeval in socketndk.h; not sure why this cropped up now.
The nimu_eth.c source file from ti-processor-sdk-rtos-k2hk-evm-04.01.00.06\pdk_k2hk_4_0_7 compiles successfully with the GNU ARM v4.9.3 compiler, but when attempted to use the GNU ARM v6.3.1 compiler "error: redefinition of 'struct timeval'"
The Processor SDK RTOS Release Notes list 4.9-2015q3 as the supported version of the GNU ARM compiler.