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.
Hi expert,
Customer has issue about new SDK with dp83822 PHY. Their product use AM243 with dp83822 PHY. They implemented dp83822 PHY driver and pass successfully CT19/CT20 Ethernet Link Test with mcu_plus_sdk_am243x_08_06_00_45.
but they can't use the same driver to pass CT19/CT20 Ethernet Link Test with ind_comms_sdk_am243x_09_00_00_03.
mcu_plus_sdk_am243x_08_06_00_45: pass
Attached: 08_CT20.log, 08.pcapng
ind_comms_sdk_am243x_09_00_00_03: failed
Attached: 09_CT20.log, 09.pcapng
We find some different behavior between two version.
These maybe the reason of failed result.
|
mcu_plus_sdk_am243x_08_06_00_45 |
ind_comms_sdk_am243x_09_00_00_03 |
Attribute 1: connect 100M |
64 00 00 00 |
0A 00 00 00 |
Attribute 1: no connection |
00 00 00 00 |
0A 00 00 00 |
Attribute 2: connect 100M |
0F 00 00 00 |
0F 00 00 00 |
Attribute 2: no connection |
00 00 00 00 |
13 00 00 00 |
mcu_plus_sdk_am243x_08_06_00_45:
ind_comms_sdk_am243x_09_00_00_03:
mcu_plus_sdk_am243x_08_06_00_45: pass
ind_comms_sdk_am243x_09_00_00_03: failed
Attached: 09_5times.log, 09_5times.pcapng
We get the License Expired log.
What the different between two version of SDK?
How do they fix these issue?
Hi Andre
I have raised the request to Kunbus. Let me try to get back on this by tomorrow
Hi Andre,
Hi, first I want to be sure about board. Can they send us the board description? Is it AM243x-EVM or AM64x-EVM or AM243x-LP or some custom board? Why I’m asking is that I also can reproduce “License Expired“, but only in case when I try to use AM64x-EVM application image on AM243x-EVM board or vice versa.
The other point can be that old configuration stored in NV memory was applied due to some reason.
Hi Nilabh,
We use own board with AM243 that part number is AM2432 BKFGHIALXR.
Firmware is based on ethernetip_adapter_generic_device_mii_demo_am243x-lp_r5fss0-0_freertos_ti-arm-clang.
We have run "Reset DUT to Factory Defaults" command before we start 5 times Ethernet Link Test, so EEPROM has latest configuration.
Thanks,
Chia-Hsun
Nilabh,
When will we release new SDK which integrates this EA release.
Regards
Andre
Hi Nilabh,
Do you have any updates on this issue from Kunbus?
The version which you provide last week can pass this issue.
But I check the project content, they still use mcu_plus_sdk_am243x not ind_comms_sdk_am243x.
Please also confirm the SDK version which they use.
Thanks,
Chia-Hsun
Nilabh,
Customer reports the EA release still based on MCU_PLUS_SDK8.6.x.x not Industrial communicate SDK 9.0. As reported at beginning, MCU+ SDK8.6 doesn't shows problem but the latest Industrial comms SDK has. So they don't think this issue is solved by EA release. We still need your help to check what modification in Industrial comms SDK 9.0 and provide solution based on Industrial comms SDK 9.x.
Regards
Andre
Nilabh,
Would you mind to have a 3-way conference call next week to close this issue? I have sent separated mail to you, please let me know if this is ok to you and 3rd party.
Regards
Andre
Hi Andrea,
Since this is a EA release, it is based on SDK 8.6, please note that once released it will be with Industrial comms SDK 9.1
Would you mind to have a 3-way conference call next week to close this issue? I have sent separated mail to you, please let me know if this is ok to you and 3rd party.
Yes, sure, Let me try to arrange it next week.
Hi Nilabh,
Does Kunbus have any comment on this issue?
Does TI have schedule about Industrial comms SDK 9.1?
Thanks,
Chia-Hsun
Hi Ch Li,
Could you please check in syscfg if the mdio mode is selected to phy polling or not, if not then please set it to polling mode and try the test again. We are working on scheduling a call with Kunbus.
Hi Nilabh,
Thank you for your help.
The Issue 1 and 2 are solved by changing PHY mdio mode, but Issue 3 (License Expired) is still can reproduce.
The log also show "pbuf_alloc failed on receiving nrt frame".
What scenario may lead to this result?
Thanks,
Chia-Hsun
Do you see this happening in release mode or debug mode binary or in both. I am able to see this issue in debug mode but not in release mode, could you please check it and let me know.
Hi Nilabh,
We use Release version.
What scenario that you see this issue?
Could you share TI software design which scenario will lead to "License Expired"?
Thanks,
Chia-Hsun
This issue occurs when there is a mismatch in the device type. when I try to use AM64x-EVM application image on AM243x-EVM board or vice versa.
The other point whigh Kunbus suggested that old configuration stored in NV memory was applied due to some reason.
Hi Chia-Hsun
could you please read the JTAG User ID register please and let us know the content of it. This will confirm us that the license expiry is not caused by the part number mismatch. Please read from Feb board where you are able to recreate the license expiry issue.
Hi Nilabh,
Our value is 0x3204d2ed.
We get this value by directly reading value at address "0x43000018".
Thanks,
Chia-Hsun
Hi Nilabh,
The issue we need to discuss today.
1. Release schedule of new SDK.
2. License Expired
- In EtherNet/IP stack software design, which scenario will lead to "License Expired"?
- If "License Expired" occurred, how can we find or debug on this issue?
3.New Issue today – 20 times LLDP MIB Test will lead stack crash.
- Environment: CT20 / AM243-LP(E3) / ind_comms_sdk_am243x_09_00_00_03
- Is this Test Case necessary in conformance Test?
Thanks,
Chia-Hsun
Hi all,
could you provide us UART log, CT20 log, and Wireshark trace recorded in parallel (!!). If you run any (developer or conformance test with CT20 multiple time, please record the entire logs over the full test duration, and not just logs for individual test cycles. Also consider to check the Disable Log Suppression in CT20. This will make the log file larger, but will contain the full information.
Thanks, Martin
Hi Martin,
The below log is UART log from boot, and the license expired message is shown when 7th Ethernet Link Test.
We add log on each function of PHY driver and EEPROM related function,
CUST_DRIVERS_PRM_ read / write
CUST_DRIVERS_eepromWriteTask
because we also change the EEPROM component.
The test about adding HWAL_cyclicTrigger() after OSAL_SCHED_yield().
The test result is still failed, but License Expired message doesn't print again.
Thanks,
Chia-Hsun
//--------------------------------------------------------------------------------------------------------------------------
DMSC Firmware Version 9.0.7--v09.00.07 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1
[BOOTLOADER_PROFILE] Boot Media : NOR SPI FLASH
[BOOTLOADER_PROFILE] Boot Media Clock : 133.333 MHz
[BOOTLOADER_PROFILE] Boot Image Size : 760 KB
[BOOTLOADER_PROFILE] Cores present :
r5f0-0
[BOOTLOADER PROFILE] SYSFW init : 24359us
[BOOTLOADER PROFILE] System_init : 10732626us
[BOOTLOADER PROFILE] Drivers_open : 552us
[BOOTLOADER PROFILE] Board_driversOpen : 164us
[BOOTLOADER PROFILE] Sciclient Get Version : 19691us
[BOOTLOADER PROFILE] CPU load : 2280574us
[BOOTLOADER_PROFILE] SBL Total Time Taken : 2320553us
[BOOTLOADER_PROFILE] DEVICE_JTAG_USERID_REG [31:00] : 0x3204D2ED
[BOOTLOADER_PROFILE] DEVICE_JTAG_USERID_REG [31:13] : 0x19026 (DEVICE_ID)
[BOOTLOADER_PROFILE] R5FSS Clock : 400.000 MHz
[BOOTLOADER_PROFILE] R5FSS is Dual-Core Mode or not : No (A R5FSS has one core)
Image loading done, switching to application ...
Pruicss max =3 selected PRU:3
PRM_read: type=2, ofst=0x200, len=0x160
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x3009f000 len 0x1c00 to 0x3009f000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83822 detected
DP83822 detected
Phy 0, softwareReset
Phy 0, readExtendedRegister: addr=467, data=343
Phy 0, readExtendedRegister: addr=468, data=0
Phy 0, 0x467=343, 0x468=0
Phy 1, softwareReset
Phy 1, readExtendedRegister: addr=467, data=f43
Phy 1, readExtendedRegister: addr=468, data=0
Phy 1, 0x467=f43, 0x468=0
PRU_PHY_detect:185 Phy 0 alive
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getAutoNegotiation: 1
Phy 1, setLinkConfig: auto=1, speed=10, duplex=0
Phy 1, setPowerMode: 1
Phy 1, setPowerMode: 0
Phy 1, setPowerMode: 0
Phy 1, getAutoNegotiation: 1
Phy 0, setMIIMode
Phy 1, setMIIMode
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
EMIF16 Slave Test
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 1c:63:49:20:7c:63
EtherNet/IP Init Finish
Phy 0, getSpeedDuplex: 2, reg:4315
Phy 0, commandFxn: cmd=12, data=2
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:4015
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:4007
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
eepromWriteTask Finish
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
eepromWriteTask Finish
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
HWAL_IPP_protectorWakeupIPP:671:>Error = 0x3900006e
*********************************************************************
LICENSE EXPIRED
*********************************************************************
Did End Task HWALWatchDog
Phy 1, setPowerMode: 1
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
Hi Joshua,
thank you for a log. After discussion with Andreas the understanding is that HWAL_cyclicTrigger() call is still evaluated on side of HWAL.
The call needs to be executed in several milliseconds cycle.
The call is executed by packet task (task priority 20). When this task is blocked by another task or by writing of data to non-volatile memory (EEPROM, FLASH) than the HWAL_cyclicTrigger call is not executed in time and you can face "LICENSE EXPIRED" issue. From our last call I understand that you are using your own EEPROM driver and you also adapted the EEPROM write task. Means I will expect problem there. Please try to adapt just CUST_DRIVERS_eepromWriteTask function (without changing other part of code of CUST_drivers.c file) and let us know what is the result. When the "LICENSE EXPIRED" issue will be still reported we will need to see "Runtime Object View" snapshot from time when issue is reported.
With best regards
Jiri Biel
Please refer to this for details on ROV: software-dl.ti.com/.../rov.html
Hi Jiri,
Thank you for your support.
I try to use AM243-LP to test "runtime object view" with EtherNet/IP project, but I can't see the "OS kernel" in Viewable Modules.
(ind_comms_sdk_am243x_09_00_00_03/examples/industrial_comms/ethernetip_adapter_demo/device_profiles/generic_device/mii/am243x-lp)
So I try to use hello_world project, I can see the "OS kernel" and can view task information.
(ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk/examples/hello_world/am243x-lp/r5fss0-0_freertos)
Do I miss something setting in the EtherNet/IP project?
Thanks,
Joshua
Hi Joshua,
Please open syscfg_c.rov.xs file , YOu can find it in the ccs project itself
then modify the path as
var crovFiles = [
"mcu_plus_sdk/source/kernel/freertos/rov/FreeRTOS.rov.js",
];
Then rebuild the project and reopen the rov and let me know.
Hi Nilabh,
After I change this file, it works.
Thank you for your help.
Hi Jiri,
This issue is occurred when we only change EEPROM driver without modifying any CUST_drivers.c.
Modifying CUST_drivers.c aim at trying to workaround and finding the reason of this issue.
The ROV which I capture is without modifying architecture of CUST_drivers.c.
(Only modify EEPROM driver in mcu_plus_sdk)
-- without HWAL_cyclicTrigger()
Handle Name Priority Base Priority State StackBase EstimatedFreeStackSize CurrentStackTop
0x700841c8 LinkTask 24 24 Blocked 0x700843c0 7296 0x70086324
0x70084268 RxTask 20 20 Blocked 0x700863c0 6016 0x70087d0c
0x7008a41c HWALLicense 8 8 Blocked 0x41013800 2560 0x410146c4
0x7008acbc packet 20 20 Blocked 0x41012000 1792 0x41012f0c
0x7008af9c cyclicIo 20 20 Blocked 0x41013000 1792 0x4101370c
0x7008b27c statistic 14 14 Running 0x41016000 128 0x41016354
0x7008b55c lldpRcv 8 8 Blocked 0x41010000 1792 0x4101070c
0x700ad440 cmn_app_task 8 8 Ready 0x41014c00 1408 0x41015a24
0x700ad7e8 IDLE 0 0 Ready 0x700a232c 3968 0x700a32d4
0x700ad874 Tmr Svc 31 31 Delayed 0x700aa8bc 896 0x700aac4c
0x700b1ce4 TimeSync_Del 20 20 Blocked 0x700b2c80 1920 0x700b33d4
0x700b1d84 TimeSync_TxT 20 20 Blocked 0x700b3480 1920 0x700b3bdc
0x700b1e24 TimeSync_TxT 20 20 Blocked 0x700b3c80 1920 0x700b43dc
0x700b1ec4 TimeSync_NRT 16 16 Delayed 0x700b4480 1792 0x700b4bdc
0x700b1f64 TimeSync_Bac 14 14 Delayed 0x700b4c80 1920 0x700b5414
0x700ba5f0 tcpip_thread 14 14 Delayed 0x700b65e8 15488 0x700ba514
-- with HWAL_cyclicTrigger()
Handle Name Priority Base Priority State StackBase EstimatedFreeStackSize CurrentStackTop
0x700841c8 LinkTask 24 24 Blocked 0x700843c0 7296 0x70086324
0x70084268 RxTask 20 20 Blocked 0x700863c0 6272 0x70087d0c
0x7008a41c HWALLicense 8 8 Blocked 0x41013800 2560 0x410146c4
0x7008a6fc HWALWatchDog 30 30 Delayed 0x41014800 896 0x41014b4c
0x7008acbc packet 20 20 Blocked 0x41012000 1792 0x41012f0c
0x7008af9c cyclicIo 20 20 Blocked 0x41013000 1792 0x4101370c
0x7008b27c statistic 14 14 Blocked 0x41016000 768 0x4101630c
0x7008b55c lldpRcv 8 8 Blocked 0x41010000 1792 0x4101070c
0x700ad440 cmn_app_task 8 8 Delayed 0x41014c00 1408 0x41015a24
0x700ad7e8 IDLE 0 0 Running 0x700a232c 3968 0x700a32d4
0x700ad874 Tmr Svc 31 31 Delayed 0x700aa8bc 896 0x700aac4c
0x700b1ce4 TimeSync_Del 20 20 Blocked 0x700b2c80 1920 0x700b33d4
0x700b1d84 TimeSync_TxT 20 20 Blocked 0x700b3480 1920 0x700b3bdc
0x700b1e24 TimeSync_TxT 20 20 Blocked 0x700b3c80 1920 0x700b43dc
0x700b1ec4 TimeSync_NRT 16 16 Delayed 0x700b4480 1792 0x700b4bdc
0x700b1f64 TimeSync_Bac 14 14 Delayed 0x700b4c80 1920 0x700b5414
0x700ba5f0 tcpip_thread 14 14 Delayed 0x700b65e8 15488 0x700ba534
We use AM2432 with 400Mhz R5F and 200Mhz PRU.
Does it maybe also the reason for this issue?
If you need more information, don't hesitate to tell me.
Thanks,
Joshua
Hi Jiri,
Do you have any updates about this issue?
As ROV, After add HWAL_cyclicTrigger(), the "cmn_app_task" task still work normally.
"WriteEEPROM" task doesn't block anything and close after write finish.
If the EEPROM write time is the reason of this issue, could you kindly provide the timeout design?
Thanks,
Joshua
Hi Joshua,
the point is that HWAL_cyclicTrigger call in cmn_app_task is just a workaround to be able to analyze the route cause of "LICENSE EXPIRED" issue.
Means at the end you need to remove that call from cmn_app_task and than test again if issue was fixed.
The assumption was that issue is in WriteEEPROM and if I remember correctly you send us just two logs:
- with HWAL_cyclicTrigger called inside of cmn_app_task
- without HWAL_cyclicTrigger call
, but in both cases I assume you called WriteEEPROM directly.
Due to that I asked for log with correct implementation WriteEEPROM called in separate task to be able to analyze better that issue.
The timeout design is somewhere in milliseconds as I understand from our IPProtection guys.
This kind of issue can have the impact to other features means it needs to be correctly fixed, in other case you will not see "LICENSE EXPERIENCE" issue, but you will still face issue with overflow of memory on LWIP side or other issues. Means I need to ask you again for log where WriteEEPROM is called in separate task and again with and without HWAL_cyclicTrigger call inside of "cmn_app_task".
With best regards
Jiri Biel
Hi Jiri,
The ROV log which I provided is using the original CUST_driver.c. (correct implementation WriteEEPROM called in separate task)
Thanks,
Joshua
Hi Joshua,
sorry means my previous understanding of your use case for logs was wrong.
But still also in this case when you used unmodified CUST_driver.c (just WriteEEPROM is executing your driver implementation, predicting different one than TI provides) the packet task is blocked as is visible from logs.
In this case I need to ask you to check your WriteEEPROM function again.
Please can you confirm that there is no disable global interrupt call inside or something similar?
In such a case all other tasks can be blocked too, because scheduler can't to switch to other task in this case.
In addition please use the case without HWAL_cyclicTrigger call in "cmn_app_task" and make a printout of WriteEEPROM execution times call.
To do that, please update CUST_DRIVERS_eepromWriteTask function the way as is bellow:
static void CUST_DRIVERS_eepromWriteTask (void *pArg_p) { CUST_DRIVERS_SPermWriteParam_t* pParam = (CUST_DRIVERS_SPermWriteParam_t*) pArg_p; uint32_t tmStart = 0; uint32_t tmEnd = 0; uint32_t time = 0; int32_t err; if (NULL == pParam->handle) { OSAL_error (__func__, __LINE__, CUST_DRIVERS_eERR_EEPROM_HANDLE_INVALID, true, 0); goto laError; } if (NULL == pParam->pData) { OSAL_error (__func__, __LINE__, CUST_DRIVERS_eERR_EEPROM_DATA_INVALID, true, 0); goto laError; } if (0 == pParam->length) { OSAL_error (__func__, __LINE__, CUST_DRIVERS_eERR_EEPROM_LENGTH_INVALID, true, 0); goto laError; } tmStart = OSAL_getMsTick(); err = EEPROM_write ((EEPROM_Handle) pParam->handle, pParam->offset, pParam->pData, pParam->length); tmEnd = OSAL_getMsTick(); if (tmEnd >= tmStart) { time = tmEnd - tmStart; } else { time = 0xFFFFFFFF - tmStart; time += tmEnd; } OSAL_printf("Write cycle takes %d ms.\r\n", time); if (SystemP_SUCCESS != err) { OSAL_error (__func__, __LINE__, CUST_DRIVERS_eERR_EEPROM_WRITE, true, 0); goto laError; } OSAL_MEMORY_free(pParam->pData); laError: writeOperationPending_s = false; writeOperationPendingCnt_s--; OSAL_SCHED_exitTask(NULL); }
Afterwards repeat the Ethernet link test on code (with updated "CUST_DRIVERS_eepromWriteTask" function) until you will not see "License expired" issue and sent me the generated UART log with that change.
Best regards
Jiri
Hi Jiri,
Thank you for your help.
We use the original architecture of "EEPROM_AT24C_write". (Only change protocol to match ours)
After measurement, our EEPROM takes 88ms to write data.
Thanks,
Joshua
//-------------------------------------------------------------
Pruicss max =3 selected PRU:3
PRM_read: type=2, ofst=0x200, len=0x160
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x3009f000 len 0x1c00 to 0x3009f000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83822 detected
DP83822 detected
Phy 0, softwareReset
Phy 0, readExtendedRegister: addr=467, data=343
Phy 0, readExtendedRegister: addr=468, data=0
Phy 0, 0x467=343, 0x468=0
Phy 1, softwareReset
Phy 1, readExtendedRegister: addr=467, data=f43
Phy 1, readExtendedRegister: addr=468, data=0
Phy 1, 0x467=f43, 0x468=0
PRU_PHY_detect:185 Phy 0 alive
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getAutoNegotiation: 1
Phy 1, setLinkConfig: auto=1, speed=10, duplex=0
Phy 1, setPowerMode: 1
Phy 1, setPowerMode: 0
Phy 1, setPowerMode: 0
Phy 1, getAutoNegotiation: 1
Phy 0, setMIIMode
Phy 1, setMIIMode
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
EMIF16 Slave Test
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 1c:63:49:20:7c:63
EtherNet/IP Init Finish
Phy 0, getSpeedDuplex: 2, reg:315
Phy 0, commandFxn: cmd=12, data=2
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
PRM_write: type=2, ofst=0x200, len=0x160
tcp_err_handler: Connection reset. (-14)
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:4715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:4715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:15
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
Phy 0, getPowerMode: 0
Phy 0, setPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
Phy 0, getPowerMode: 0
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=0, speed=100, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:4015
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
PRM_write: type=2, ofst=0x200, len=0x160
Write cycle takes 88 ms.
Phy 0, setLinkConfig: auto=0, speed=10, duplex=1
Phy 0, setPowerMode: 1
Phy 0, setMdixMode: 2
Phy 0, setPowerMode: 0
Phy 0, getSpeedDuplex: 1, reg:7
Phy 0, commandFxn: cmd=12, data=1
tcp_err_handler: Connection reset. (-14)
PRM_write: type=2, ofst=0x200, len=0x160
Phy 0, setLinkConfig: auto=1, speed=10, duplex=0
Phy 0, setPowerMode: 1
Phy 0, setPowerMode: 0
Write cycle takes 88 ms.
Phy 0, getSpeedDuplex: 2, reg:4715
Phy 0, commandFxn: cmd=12, data=2
tcp_err_handler: Connection reset. (-14)
HWAL_IPP_protectorWakeupIPP:671:>Error = 0x3900006e
*********************************************************************
LICENSE EXPIRED
*********************************************************************
Did End Task HWALWatchDog
tcp_err_handler: Connection aborted. (-13)pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
Hi Jiri,
We find the way to reproduce "License expired" on LP-AM243 E3.
Our AM243 PN is AM2432 BKFGHIALXR which R5F speed is 400Mhz.
We need some modification to change LP-AM243 from 800Mhz to 400Mhz.
1. Change "mcu_plus_sdk_am243x_09_00_00_35" and rebuild all lib
source/drivers/bootloader/soc/am64x_am243x/bootloader_soc.c
Bootloader_CoreBootInfo gCoreBootInfo[] = { { .tisciProcId = SCICLIENT_PROCID_MCU_M4FSS0_C0, .tisciDevId = TISCI_DEV_MCU_M4FSS0_CORE0, .tisciClockId = TISCI_DEV_MCU_M4FSS0_CORE0_VBUS_CLK, .defaultClockHz = (uint32_t)(400*1000000), .coreName = "m4f0-0", }, { .tisciProcId = SCICLIENT_PROCID_R5_CL0_C0, .tisciDevId = TISCI_DEV_R5FSS0_CORE0, .tisciClockId = TISCI_DEV_R5FSS0_CORE0_CPU_CLK, .defaultClockHz = (uint32_t)(400*1000000), .coreName = "r5f0-0", }, { .tisciProcId = SCICLIENT_PROCID_R5_CL0_C1, .tisciDevId = TISCI_DEV_R5FSS0_CORE1, .tisciClockId = TISCI_DEV_R5FSS0_CORE1_CPU_CLK, .defaultClockHz = (uint32_t)(400*1000000), .coreName = "r5f0-1", }, { .tisciProcId = SCICLIENT_PROCID_R5_CL1_C0, .tisciDevId = TISCI_DEV_R5FSS1_CORE0, .tisciClockId = TISCI_DEV_R5FSS1_CORE0_CPU_CLK, .defaultClockHz = (uint32_t)(400*1000000), .coreName = "r5f1-0 ", }, { .tisciProcId = SCICLIENT_PROCID_R5_CL1_C1, .tisciDevId = TISCI_DEV_R5FSS1_CORE1, .tisciClockId = TISCI_DEV_R5FSS1_CORE1_CPU_CLK, .defaultClockHz = (uint32_t)(400*1000000), .coreName = "r5f1-1", }, { .tisciProcId = SCICLIENT_PROCID_A53_CL0_C0, .tisciDevId = TISCI_DEV_A53SS0_CORE_0, .tisciClockId = TISCI_DEV_A53SS0_COREPAC_ARM_CLK_CLK, .defaultClockHz = (uint32_t)(800*1000000), .coreName = "a530-0", }, { .tisciProcId = SCICLIENT_PROCID_A53_CL0_C1, .tisciDevId = TISCI_DEV_A53SS0_CORE_1, .tisciClockId = TISCI_DEV_A53SS0_COREPAC_ARM_CLK_CLK, .defaultClockHz = (uint32_t)(800*1000000), .coreName = "a530-1", }, };
2. rebuild the NULL bootloader project and flash into LP-AM243.
3. Reboot at QSPI flash mode, and UART log will print "initialized to 400000000 Hz"
4. Start to debug and run "Ethernet Link" Test with "ethernetip_adapter_generic_device_mii_demo"
Let me know if you can reproduce on your board.
Maybe different EEPROM is not a reason of "License expired".
Thanks,
Joshua
//---------------------------------------------
Starting NULL Bootloader ...
DMSC Firmware Version 9.0.7--v09.00.07 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83869 detected
DP83869 detected
Phy 3 : Disable RGMII mode
Phy 3 : Disable GBit ANEG
Phy 15 : Disable RGMII mode
Phy 15 : Disable GBit ANEG
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 3c:e0:64:62:e3:0f
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
HWAL_IPP_protectorWakeupIPP:671:>Error = 0x3900006e
*********************************************************************
LICENSE EXPIRED
*********************************************************************
Did End Task HWALWatchDog
PHY Disable Magnetics
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
pbuf_alloc failed on receiving nrt frame
Hi Joshua,
I was able to decrease the frequency from 800MHz to 400MHz on SBL_NULL image as you describe above.
I also run the Ethernet Link Test 40 times, but I was not able to reproduce "LICENSE EXPIRED" issue (see UART log bellow).
Only what is different in my case is SDK. I'm using IND_COMMS_SDK_09.00.00.01.
Starting NULL Bootloader ...
DMSC Firmware Version 8.6.4--v08.06.04 (Chill Capybar
DMSC Firmware revision 0x8
DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x3009f000 len 0x1c00 to 0x3009f000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83869 detected
DP83869 detected
PRU_PHY_detect:185 Phy 3 alive
PRU_PHY_detect:185 Phy 15 alive
Phy 3 : Disable GBit ANEG
Phy 15 : Disable GBit ANEG
Phy 3 : RGMII enable low latency
Phy 15 : RGMII enable low latency
Phy 3 : RGMII set TX Half/Full Threshold: 1
Phy 15 : RGMII set TX Half/Full Threshold: 1
Phy 3 : RGMII set RX Half/Full Threshold: 1
Phy 15 : RGMII set RX Half/Full Threshold: 1
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 3c:e0:64:62:e1:57
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
I also measured the EEPROM timing on our side when 400MHz and 800MHz is used and timing was always same 16 ms (see UART log bellow)
Starting NULL Bootloader ...
DMSC Firmware Version 8.6.4--v08.06.04 (Chill Capybar
DMSC Firmware revision 0x8
DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x3009f000 len 0x1c00 to 0x3009f000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83869 detected
DP83869 detected
PRU_PHY_detect:185 Phy 3 alive
PRU_PHY_detect:185 Phy 15 alive
Phy 3 : Disable GBit ANEG
Phy 15 : Disable GBit ANEG
Phy 3 : RGMII enable low latency
Phy 15 : RGMII enable low latency
Phy 3 : RGMII set TX Half/Full Threshold: 1
Phy 15 : RGMII set TX Half/Full Threshold: 1
Phy 3 : RGMII set RX Half/Full Threshold: 1
Phy 15 : RGMII set RX Half/Full Threshold: 1
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 3c:e0:64:62:e1:57
Write cycle takes 16 ms.
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
I think we need to ask Nilabh to check the procedure how to change of frequency on AM243x-LP board, because here I'm not sure whether just change in bootloader is enough or some other parts of code on side of SDK need to be modified. It will be also good to check difference between mcu_plus_sdk_am243x_09_00_00_35 and ind_comms_sdk_09.00.00.01 for any difference.
Nilabh, please can you check?
With best regards
Jiri Biel
I think we need to ask Nilabh to check the procedure how to change of frequency on AM243x-LP board, because here I'm not sure whether just change in bootloader is enough or some other parts of code on side of SDK need to be modified. It will be also good to check difference between mcu_plus_sdk_am243x_09_00_00_35 and ind_comms_sdk_09.00.00.01 for any difference.
Nilabh, please can you check?
Hi Jiri,
Let me check this and come back by tomorrow.
Hi Jiri,
Thank you for your information.
Both of EEPROM page write has 4ms sleep for BUSY in driver, so page size is the reason of different write time.
The page of TI Board's EEPROM is 256 Bytes, ours is 16 Bytes.
The length of NV data is 352 Bytes, so TI Board's EEPROM need 2 cycles but ours need 22 cycles.
Our EEPROM takes more time to write, but it doesn't block other Task.
Do you think this issue maybe lead to system unstable?
----------------------------------------------------------------------------------------
When I build the null bootloader, it seems some lib link to mcu_plus_sdk_am243x_09_00_00_35 and some link to ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
Therefore, I rebuild both of mcu_plus_sdk_am243x_09_00_00_35 and ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
This procedure maybe need Nilabh to explain.
I try to show our environment about reproducing "LICENSE EXPIRED" on LP-AM243.
1. HW: LP-AM243 / PROC109E3
2. OS: Win10
3. Windows 10 Environment Variable
a.INDUSTRIAL_COMMUNICATIONS_SDK_PATH: C:\ti\ind_comms_sdk_am243x_09_00_00_03
b.MCU_PLUS_SDK_AM243X_PATH: C:\ti\mcu_plus_sdk_am243x_09_00_00_35
c.MCU_PLUS_SDK_PATH: C:\ti\mcu_plus_sdk_am243x_09_00_00_35
4. CCS: 12.4.0.00007
a. Compiler: TI Clang v2.1.3LTS
b. Products -> INDUSTRIAL COMMUNICATIONS SDK for AM243x : 9.0.0.3
c. Products -> MCU + SDK for AM243x : 9.0.0.35
d. Products -> SysConfig: 1.17.0
5. NULL Bootlader project (release): ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk/examples/drivers/boot/sbl_null/am243x-lp/r5fss0-0_nortos
6. EtherNet/IP project (release): ind_comms_sdk_am243x_09_00_00_03/examples/industrial_comms/ethernetip_adapter_demo/device_profiles/generic_device/mii/am243x-lp/r5fss0-0_freertos
Thanks,
Joshua
Hi Joshua,
thank you for description of EEPROM write cycles on your side.
Now I have a better understanding of EEPROM write timing on your side.
After discussion with IPProtection guys the 88ms write cycle still should
not lead to "LICENSE EXPIRED"" issue.
I tried attached sbl_null image on my AM243x-LP board, but still I was not able to
reproduce "LICENSE EXPIRED" issue (see UART log below). I see, that stack is
little bit less stable (the ethernet link test reports some errors, which was not
a case before), but not the way that communication was hanging and it was always
possible to continue in test.
With best regards
Jiri Biel
Starting NULL Bootloader ...
DMSC Firmware Version 9.0.7--v09.00.07 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x3009f000 len 0x1c00 to 0x3009f000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83869 detected
DP83869 detected
PRU_PHY_detect:185 Phy 3 alive
PRU_PHY_detect:185 Phy 15 alive
Phy 3 : Disable GBit ANEG
Phy 15 : Disable GBit ANEG
Phy 3 : RGMII enable low latency
Phy 15 : RGMII enable low latency
Phy 3 : RGMII set TX Half/Full Threshold: 1
Phy 15 : RGMII set TX Half/Full Threshold: 1
Phy 3 : RGMII set RX Half/Full Threshold: 1
Phy 15 : RGMII set RX Half/Full Threshold: 1
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 3c:e0:64:62:e1:57
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
Write cycle takes 16 ms.
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
Hi Jiri,
I can reproduce your result with project :
ind_comms_sdk_am243x_09_00_00_03/examples/industrial_comms/ethernetip_adapter_demo/device_profiles/generic_device/rgmii/am243x-lp/r5fss0-0_freertos
There has error count show at CT20, "but no "LICENSE EXPIRED" at UART log.
The different point is our CT20 has pop up window show "Failed to connect the DUT, abort the test!"
Could you explain why stack is little bit less stable in 400Mhz?
---------------------------------------------------------------------
Nilabh recommend us use MII mode, because they seen some instability with RGMII before.
Could you use the project which we can reproduce to try?
ind_comms_sdk_am243x_09_00_00_03/examples/industrial_comms/ethernetip_adapter_demo/device_profiles/generic_device/mii/am243x-lp/r5fss0-0_freertos
power cycle is necessary before test.
Thanks,
Joshua
When I build the null bootloader, it seems some lib link to mcu_plus_sdk_am243x_09_00_00_35 and some link to ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
Therefore, I rebuild both of mcu_plus_sdk_am243x_09_00_00_35 and ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
This procedure maybe need Nilabh to explain.
Hi Joshua,
Industrial comms sdk internally has MCU SDK inside it. So for building null boot loader you need to build libs of MCU SDK.
Hi Joshua,
I tried on AM243x-LP with adapted bootloader to 400MHz the ind_comms_sdk_am243x_09_00_00_03 EtherNet/IP Adapter MII General Device and result was similar as with yesterday test (RGMII). Means no "LICENSE EXPIRED", see UART log below. As first I need to say that we are supporting 800 MHz on AM243x TI boards without modifications. Nilabh was right. We were facing some instability issues on RGMII before, but this is not a case here. Means I can confirm that I see similar behavior on RGMII and MII when 400MHz is used on MPU.
With best regards
Jiri Biel
Starting NULL Bootloader ...
DMSC Firmware Version 9.0.7--v09.00.07 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1
INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initialized to 400000000 Hz !!!
INFO: Bootloader_loadSelfCpu:207: CPU r5f0-1 is initialized to 400000000 Hz !!!
INFO: Bootloader_runSelfCpu:217: All done, reseting self ...
Pruicss max =3 selected PRU:3
Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0)
Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1)
Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0)
Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1)
Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram)
Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0)
Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1)
Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc)
Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg)
Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0)
Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep)
Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0)
Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt)
Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio)
Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram)
Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg)
Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg)
DP83869 detected
DP83869 detected
Phy 3 : Disable RGMII mode
Phy 3 : Disable GBit ANEG
Phy 15 : Disable RGMII mode
Phy 15 : Disable GBit ANEG
+EI_API_ADP_pruicssStart
-EI_API_ADP_pruicssStart
Local interface IP is 192.168.1.10
EI_API_ADP_getMacAddr: 3c:e0:64:62:e1:57
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection reset. (-14)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
tcp_err_handler: Connection aborted. (-13)
Hi Nilabh,
Does TI have platform to verify the behavior on 400M R5F?
Do we can use modification of bootloader to simulate AM2432 BKFGHIALXR on LP-AM243?
If yes, could you provide step by step procedure to help us to clarify this issue?
Hi Jiri,
We follow TI's datasheet to choose AM2432 BKFGHIALXR which has 400Mhz R5F and support Industrial Communication Stack.
As I known, it means KUNBUS stack support 400Mhz R5F, and you find that stack is little bit less stable.
If I'm wrong, please correct me.
Could you explain why stack is little bit less stable in 400Mhz?
Maybe the reason of unstable is also the reason of "License Expire" issue.
"License Expire" issue is occurred by KUNBUS stack, so we don't have source code to trace.
Do you have other advice to help us to clarify this issue?
Thanks,
Joshua
Does TI have platform to verify the behavior on 400M R5F?
Do we can use modification of bootloader to simulate AM2432 BKFGHIALXR on LP-AM243?
If yes, could you provide step by step procedure to help us to clarify this issue?
Hi Joshua,
Apologies for delay in response, we were occupied with some internal commitments.
400 Mhz can be validated by making changes in SBL, PLL configuration. But we have not verified with 400Mhz. I can try to run some test and share result by Wednesday next week.
Appreciate your patience.
Starting NULL Bootloader ... DMSC Firmware Version 8.6.4--v08.06.04 (Chill Capybar DMSC Firmware revision 0x8 DMSC ABI revision 3.1 INFO: Bootloader_runCpu:155: CPU r5f1-0 is initialized to 400000000 Hz !!! INFO: Bootloader_runCpu:155: CPU r5f1-1 is initialized to 400000000 Hz !!! INFO: Bootloader_runCpu:155: CPU m4f0-0 is initialized to 400000000 Hz !!! INFO: Bootloader_loadSelfCpu:207: CPU r5f0-0 is initiaPruicss max =3 selected PRU:3 Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0) Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1) Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0) Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1) Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram) Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0) Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1) Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc) Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg) Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0) Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep) Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0) Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt) Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio) Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram) Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram) Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg) Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg) DP83869 detected DP83869 detected Phy 3 : Disable RGMII mode Phy 3 : Disable GBit ANEG Phy 15 : Disable RGMII mode Phy 15 : Disable GBit ANEG +EI_API_ADP_pruicssStart -EI_API_ADP_pruicssStart Local interface IP is 192.168.1.10 EI_API_ADP_getMacAddr: f4:84:4c:fb:bc:c2
I ran EIP application on R5f running at 400Mhz, I was not seeing any license expiry, I will run CTT test and a long run-ping test to verify further.
Hi Nilabh,
Thank you for your updates.
Could you use ind_comms_sdk_am243x_09_00_00_03 to test?
Our discussion is based on this version, and bootlodaer version is 9.0.7.
DMSC Firmware Version 9.0.7--v09.00.07 (Kool Koala)
DMSC Firmware revision 0x9
DMSC ABI revision 3.1
Thanks,
Joshua
Hi Joshua,
Even after long run, I do not see any issue on my end, I will try with latest SBL also. Could you please summarize the issue you are facing currently and is it reproducible on a TI AM243-LP by making changes in SBL or application. It would help me in creating it on my end faster
Hi Nilabh,
The summarize of issue now:
400Mhz LP-AM243(E3) occur "License Expired" issue under CT20 continuous Ethernet Link Test.
//-------------------------------------------------------------------------------------------------------------------------------------------------------------
I share all of my environment and all of step which I can reproduce this issue before in this thread (Nov. 22 and Nov. 23).
Please help us to check our environment and build step if I miss something.
Also KUNBUS and I need you to explain what is the "correctly" way to build 400Mhz SBL!!!
Could you share your method step by step? (video or written)
Thanks,
Joshua
When I build the null bootloader, it seems some lib link to mcu_plus_sdk_am243x_09_00_00_35 and some link to ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
Therefore, I rebuild both of mcu_plus_sdk_am243x_09_00_00_35 and ind_comms_sdk_am243x_09_00_00_03/mcu_plus_sdk.
This procedure maybe need Nilabh to explain.
MCU SDK from Industrial comms and MCU SDK independent will not matter here. To avoid this issue, you could use gmake command line based build.
Also KUNBUS and I need you to explain what is the "correctly" way to build 400Mhz SBL!!!
Could you share your method step by step? (video or written)
1. SBL-NULL modified file:/cfs-file/__key/communityserver-discussions-components-files/908/main_5F00_sbl_5F00_null.c
SBL-OSPI modified file:/cfs-file/__key/communityserver-discussions-components-files/908/main_5F00_sbl_5F00_ospi.c
Rebuild the example. Copy the generated sbl_null.release.hs_fs.tiimage or sbl_ospi.release.hs_fs.tiimage to mcu_plus_sdk_am243x\tools\boot\sbl_prebuilt\am243x-lp folder then follow the process to flash the SBL.
Let me know if you need any help here.
I share all of my environment and all of step which I can reproduce this issue before in this thread (Nov. 22 and Nov. 23).
Can you share the binary with which you are able to reproduce the issue on Launchpad AM243x-LP?
I am not able to reproduce the LICENSE Expiry issue. But I do see faliure at 400MhZ some tests.
OSAL_FREERTOS_SCHED_startTask:541 E no free Thread Handles !
CPU m4f0-0 is initialized to 400000000 Hz !!! CPU r5f0-0 is initialized to 400000000 Hz !!! CPU r5f0-1 is initialized to 400000000 Hz !!! CPU r5f1-0 is initialized to 800000000 Hz !!! CPU r5f1-1 is initialized to 800000000 Hz !!! [BOOTLOADER_PROFILE] Boot Media : NOR SPI FLASH [BOOTLOADER_PROFILE] Boot Media Clock : 100.000 MHz [BOOTLOADER_PROFILE] Boot Image Size : 740 KB [BOOTLOADER_PROFILE] Cores present : r5f0-0 [BOOTLOADER PROFILE] SYSFW init : 24358us [BOOTLOADER PROFILE] System_init : 10732614us [BOOTLOADER PROFILE] Drivers_open : 566us [BOOTLOADER PROFILE] Board_driversOpen : 322869us [BOOTLOADER PROFILE] Sciclient Get Version : 19685us [BOOTLOADER PROFILE] CPU load : 2228334us [BOOTLOADER_PROFILE] SBL Total Time Taken : 2591013us Image loading done, switching to application ... Pruicss max =3 selected PRU:3 Did Map 0x30080000 len 0x2000 to 0x30080000 (dram0) Did Map 0x30082000 len 0x2000 to 0x30082000 (dram1) Did Map 0x300b4000 len 0x4000 to 0x300b4000 (iram0) Did Map 0x300b8000 len 0x4000 to 0x300b8000 (iram1) Did Map 0x30090000 len 0x10000 to 0x30090000 (shdram) Did Map 0x300a2000 len 0x400 to 0x300a2000 (control0) Did Map 0x300a4000 len 0x400 to 0x300a4000 (control1) Did Map 0x300a0000 len 0x2000 to 0x300a0000 (intc) Did Map 0x300a6000 len 0x2000 to 0x300a6000 (cfg) Did Map 0x300a8000 len 0x2000 to 0x300a8000 (uart0) Did Map 0x300ae000 len 0x2000 to 0x300ae000 (iep) Did Map 0x300b0000 len 0x2000 to 0x300b0000 (ecap0) Did Map 0x300b2000 len 0x400 to 0x300b2000 (mii_rt) Did Map 0x300b2000 len 0x1c00 to 0x300b2000 (mdio) Did Map 0x3008a000 len 0x2000 to 0x3008a000 (txPru0Iram) Did Map 0x3008c000 len 0x2000 to 0x3008c000 (txPru1Iram) Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru0CtlReg) Did Map 0x300a5000 len 0x100 to 0x300a5000 (txPru1CtlReg) DP83869 detected DP83869 detected Phy 3 : Disable RGMII mode Phy 3 : Disable GBit ANEG Phy 15 : Disable RGMII mode Phy 15 : Disable GBit ANEG +EI_API_ADP_pruicssStart -EI_API_ADP_pruicssStart Local interface IP is 192.168.1.10 EI_API_ADP_getMacAddr: 1c:63:49:25:1a:68 tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection aborted. (-13) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection aborted. (-13) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection reset. (-14) tcp_err_handler: Connection aborted. (-13) OSAL_FREERTOS_SCHED_startTask:541 E no free Thread Handles ! tcp_err_handler: Connection aborted. (-13)
Hi Nilabh,
Thank you for your explain.
I will try to rebuild the bootloader and test again.
I used 8.6.0.45 SDK before and received same error message which you get.
Ethernet Link Test has error count but UART log is without "License Expire".
I think that "License Expired" is one of result to represent the unstable of 400 Mhz stack.
Could you or KUNBUS explain why stack is little bit less stable in 400Mhz?
This issue should be solved, or we can't use AM2432 BKFGHIALXR(400Mhz) to pass EtherNet/IP Conformance Test.
If I'm wrong, please correct me.
Thanks,
Joshua