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.

PRU-ICSS-INDUSTRIAL-SW: PRP bug fix issue.

Part Number: PRU-ICSS-INDUSTRIAL-SW

Dear support,

related to the previous conversation (https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1185462/pru-icss-industrial-sw-am4379---ti-rtos---prp-red-rx-issue/4668796?tisearch=e2e-sitesearch&keymatch=AM4378%20-%20PRP%20Red%20Rx%20issue#4668796) and patch send over email, we are facing issues.

1.) We still see a lot of packet retransmissions.

2.) PTP does not work. It gets UTC but does not calculate peer delay. We didn't manage to investigate what exactly happen.

3.) A bug related to broken data in the queue still exists. In the function, RedRxPktGet, the value of the "queue_wr_ptr = qDesc->wr_ptr;" variable sometimes becomes "4" which leads to a wrong reading.
I test the function with the dynamical watchpoint on queue_wr_ptr  variable, just to be sure that there is no accident writing to a variable. I add code for testing if queue_wr_ptr == 4 and add a breakpoint inside. When breakpoint hits/queue_wr_ptr == 4 checking the value of qDesc->wr_ptr, it seemed to be some reasonable value but queue_wr_ptr  is 4. It doesn't seem that any stack overflow or accidentally writing to queue_wr_ptr happened. Is seems like that after the breakpoint hits and before the debugger manages to read values, the value is corrected by PRU. Is possible that we observe collision when at the same time PRU is writing and A9 reading the same location?

This issue we tried to solve from December last year, and a lot of our post was ignored. I hope we can make some better progress on that topic.

Best regards, Mare

  • Hi,

    I would just like to politely remind you that we are waiting for an answer.

    Best regards, Mare

  • Hi,

    Can you also please send us the source for PRU PRP firmware for the "PRU-ICSS-HSR-PRP-DAN_01.00.02.00" version.

    We would like to do a compare to see what you've changed in the new version you've already sent us. I would also be easier for us to do the fix in the old version so we do not need to do a port of our application to the newest RTOS version.

  • Hi Marko,

    We are already looking into this issue. Let me check on sharing the firmware for the "PRU-ICSS-HSR-PRP-DAN_01.00.02.00" version.

    We had few questions here:

    1.) We still see a lot of packet retransmissions.

    a. Is it the issue at Transmit or Receive side?

    b. If the issue is at transmit side - Are the packets captured at transmission side using wireshark or any other capture device?Are there multiple packets with same sequence ID?

    c. If the issue is at receive side - Are the packets reordered?

  • Hi Himanshu,

    thanks for the replay.

    Give me a moment to run our setup, and I will give you a wireshark record. 

    Another thing that I wanna inform you of is that we are sure that the malfunction of wr pointer is done on the PRU side. We also copy qDesc with QDMA, to exclude any A9 access issue possibility.

  • Hi,

    I post wireshark capture.
    Today it seems that works somehow better, I don't know, maybe this is related to traffic?

    You can see that PC try to resend some packets. This is probably an event when the wrong pointer from PRU queue is read, and may data in the circular buffer is garbage. Those packets are probably lost.

    You can see some duplicate retransmission of ACK.

    Can you also provide some information related to Queue wr pointer and PRU operation? Is this a known thing that the fix doesn't work?
    Any info related to PTP?

    Is a new release soon on schedule?

    Best regards, Mare

  • Another thing, it seems that the program gets in a loop of edma rm error handler.

  • Hi Marko, 

    I post wireshark capture.

    > Can you please resend this as I am not able to find it.

    2.) PTP does not work. It gets UTC but does not calculate peer delay

    > What type of master device does the customer using? is it RTOS (am437x - DANP) or Linux (Standard-alone - SAN) or Linux (DANP)?

    Can you also provide some information related to Queue wr pointer and PRU operation? Is this a known thing that the fix doesn't work?

    3.) A bug related to broken data in the queue still exists. In the function, RedRxPktGet, the value of the "queue_wr_ptr = qDesc->wr_ptr;" variable sometimes becomes "4" which leads to a wrong reading.

    > Yes, we see that this is an issue with the firmware implementation. We will provide a patch to correct this behavior. (This may occur when a packet goes directly to Rx-LB from Rx-FB, as there is no Queue descriptor initialization in Rx-FB and in LB the write pointer will be incremented which will make the write pointer value as 4 in the driver.)

    Thanks, 
    Himanshu

  • Hi,

    prp_dup_ack.zip

    Sorry, I didn't attach the file.


    2.)>What type of master device does the customer using? is it RTOS (am437x - DANP) or Linux (Standard-alone - SAN) or Linux (DANP)?
    I don't know what exactly you mean.
    We have GM PTP, connected to 
    Hirschmann RSP Enhanced: RSPE-646038B3880E switch, in mode BC, and TI IDK board is connected to PRP ports.
    The issue also exists if IDK is connected to the normal switch port. The older version of DAN ("PRU-ICSS-HSR-PRP-DAN_01.00.02.00") works fine on the same setup.

    I'm gonna debug sync states, to provide you with some more information from our findings.
    What I see sometimes is an EDMA error handler loop, on tcc which is not registered by rm, and global flag handling does not solve the error.
    What I also found is that sometimes exceptions happen when TimeSync_reset is called.

        timeSyncHandle->offsetAlgo->driftThreshold =
            TIMESYNC_OFFSET_STABLE_ALGO_THRESHOLD;

    This is line 2326 in icss_timeSync.c.
    offsetAlgo == NULL

    3.) Looking forward to get the patch, tenx!


    Best regards, Mare

  • Hi, 

    Think I found reason why path delay is not calculated. 
    In icss_timeSync.c, Line 1440:

                if(timeSyncHandle->timeSyncConfig.timestamp_from_shared_ram)
                {
                    TimeSync_getRxTimestamp(timeSyncHandle, DELAY_RESP_FRAME, portNum, \
                                            &nanoseconds, &seconds);
                }
    
                /*T4 timestamp*/
                timeSyncHandle->pDelayParams[portNum - 1].T4Sec =
                    seconds;
                timeSyncHandle->pDelayParams[portNum - 1].T4Nsec =
                    nanoseconds;

    Timestamp_from_shared_ram == 1
    But for T4 seconds, and nanoseconds are always 0. 
    Times T1, T2, T3 seems have some non-0 values, but T4 is always 0.

    This make in TimeSync_peerDelayCalc function wrong calculation of T4_T1_diff. Also, NRR value is INF. So, the mean delay value is bigger then limit TIMESYNC_PEER_DELAY_ERROR_THRESHOLD.

    Any idea?
    Is there problem whit timestamp?

    Best regards, Mare

  • Hi,
    To try as many things as possible, I recompile firmware as described in https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1251105/pru-icss-industrial-sw-pru-image-build-for-dan-prp-hsr/4812296#4812296 and issues are not fixed.

    Looking forward to your response.

    Thanks,
    Mare

  • Hi,

    I try to get a better understanding of what happened in this situation whit offsetAlgo.

    For testing, I propose:
    Run IDK with a cable connected, when you see in the statistic that the master is found on the port, and PTP starts to sync, disconnect the ethernet cable and wait for max. num. of missed sync, which in TimeSync_BackgroundTask make call to TimeSync_reset(timeSyncHandle). At this point, it seems that offsetAlgo  is still on the region of the heap, but during TimeSync_reset it becomes an invalid memory location. I try to catch the moment with watchpoint, but is not triggered. Is possible that PRU or maybe something else corrupts this location/variable?

    Regards, Mare

  • Hi,

    I found the reason for TimeSync_reset issue. I copy icss_timesync.c in project to be able to debug path delay error, and timesync from app take icss_timeSyncApi.h from DAN folder which has for handler different structure than icss_timeSyncApi.h in PDK.

    Anyway, PTP still can't sync.

    Regards, Mare

  • Hi,

    Any new information related to the patch and timestamping of peer delay msg?

    Best Regards, 
    Mare

  • Dear @,

    please can you give me some feedback? We are stuck, and we really need your help, with providing a patch or with PRU source for "PRU-ICSS-HSR-PRP-DAN_01.00.02.00" version.

    Regards, 
    Mare

  • Hi Marko, 

    Sorry for the delay here. I will provide the pointer corruption patch asap (targeting tomorrow, there is minor testing left). On the peer delay msg I will try to give more information by this week. 

    Thanks, Himanshu. 

  • Hi,

    Thanks for the replay. We need to implement a bug fix or any other solution, something like a workaround or similar, ASAP.
    Is there any option that we get a patch now, and try to test the solution in parallel with you?

    PTP is urgent as well. 

    Do you also see an issue that PRU firmware stops working after some time? No IRQ is produced. Communication over PRP is dead. Should be this related to the pointer issue?

    Another thing. Because we are in a hurry and our product is based on "PRU-ICSS-HSR-PRP-DAN_01.00.02.00" and "processor_sdk_rtos_am437x_3_03_00_04" version, is there any possibility to "copy" PRU-ICSS-HSR-PRP-DAN_01.00.05.01 in project and build? Or are these two versions totally incompatible?

    Thank you very much Himanshu Mittal!

    Regards, Mare

  • Hi Marko,
    We had emailed a patch to you, let us know if the issue is resolved by it. Thanks. 

  • Hi,

    thanks for your support so far.
    We are testing your patch (we updated firmware header files). So far it seems that the pointer issue is fixed, but the PTP bug remains. Also, after some time edma3CCErrHandler is called constantly and the device is not responding to any input because of the constant loop in HWI.
    I think this edma3CCErrHandler issue is produced if PTP is present on the network.

    To have an operational device, this PTP and edma bug need to be fixed.

    Regards, Mare

  • Hi,

    update from testing:
    a) I added in the red_rx function counter for small packets. Is it normal that we sometimes get packets smaller than 40B?

    b) After some time, the Demo app hangs, and the CPU over the debugger is not accessible.

    Also, is anything new regarding PTP?

    Regards, Mare

  • Hi Marko, 

    To have an operational device, this PTP and edma bug need to be fixed.

    We are checking on the PTP bug actively and will try to get back with a fix asap. 

    Let me check on the testing observations you mentioned. 

    Thanks. 

  • Hi Himanshu,

    Can you repeat PTP bug in your setup?
    Did you manage to get EDMA error, while PTP packets were present in the network?

    Did you observe small packets on Rx side?


    Regards, Mare

  • Hi Marko,

    Can you repeat PTP bug in your setup?

    We are able to see PTP issue and looks like there is incorrect handling for timestamping in driver. We are working on fixing this and should be able to provide a patch/update by Monday.

    Did you manage to get EDMA error, while PTP packets were present in the network?

    We do not see the EDMA error, but we suspect it might be the aftereffect of the PTP issue mentioned above. We will request you to test out once we share the patch for PTP fix.

    Did you observe small packets on Rx side?

    Please let me check on this.

    Thanks, HM.

  • Hi Himanshu,

    I prepared the setup for testing PTP on PRP in the lab.
    Do you have any updates on this topic?

    Best Regards, Mare

  • Hi Marko,

    We have a patch for resolving PTP issue, I am sharing with you over email please check if this resolves the issue. 

    Thanks,
    Himanshu. 

  • Hi Himanshu,

    I try your patch, but unfortunately, I don't see any progress

    There are still missing timestamps for T4.
    Did you get PTP working with your patch in the lab?

    This are crazy numbers fom Hirshman PRP PTP switch:

    And this are values from pDelay param on IDK:


    Am I doing something wrong?
    Did you manage to make PTP work with your team?

    p.s.
    Thanks for your effort, sir! I'm very glad that someone helping me with that.

    Best Regards, Mare

  • > Did you manage to make PTP work with your team?

    We were not able to test with Hirschmann like master. The fix was validated with the below two setup's and the PTP was in sync.
    1. PC running ubuntu as master and AM437x as slave
    2. AM57x IDK as master and AM437x as slave

    We would need more information here:
    1. Please share the PTP configuration you are using with Hirschmann switch and also on AM437x IDK side. Are you using default configuration or made some configuration changes for testing?

    2. Verify variable "timeSyncHandle->timeSyncConfig.timestamp_from_shared_ram" value is 0.

    3. Share the OCMC dump from: 0x40302000 to 0x40310000.This will confirm that the patch is applied, and the firmware is updating the timestamp queue at correct offset (timestamp queue starts from OCMC+0xD200 = 0x4030F200).

    Thanks, 
    Himanshu

  • prp_retransmision_filter.zip
    Hi,

    I'm struggling to get PTP to work.

    I decided to go from the beginning and add bug fix one-by-one.

    1.) Whit just PRP part of the bug fix (without PTP fix), a get sometimes strange behavior. Please check the Wireshark file. I test this with echo server (TCP)
    A lot of retransmission, and at some point starts working... 
    Do I read this analysis wrong or does Wireshark show some issues?

    2.) For PTP fix:
    2.1) Do I need also to rebuild pru project?
    2.2) Do I need to create a new project for IDK, or recompile any PDK or something else?

    3.) Did you find an issue related to small packets?

    Regards, 
    Mare

  • Hi,

    Please find the memory records of OCMC in attachment.

    Unfortunately, I can't make PTP work. T4 filds on delay param are still 0.
    I use the default configuration, as is from the example. What I changed is "timestamp_from_shared_ram" set to 0 (by project example it was 1).ptp_debuging_OCMC.zip

    To force building of .c files, I add in project:
    - hsrPrp_red_config.c
    - hsrPrp_red_multicastTable.c
    - ###_nodeTable.c
    - ###_osBios.c
    - ###_prp.c
    - ###_snmp.c
    - ###_statistic.c
    - ###_tx.c
    - ###_vlanTable.c
    - ###_red.c

    I also rebuilt PRU project, because of "TIMESTAMP_ARRAY_OFFSET          0xD200" modification. (hsrPrp_firmware.h is included in some files inside PRU project).

    OK...so where you think I fail?

    Please check/compare may PRU firmware whit yours if there is any diff. 
    v1.0.zip

    Thanks for your help,



    Regards, Mare

  • Hi Mare,

    The developer is out on vacation till end of the week. Please expect a reply by early next week on the issue. We will also plan to test this with Hirshmann switch at our side and comeback

    Regards,
    Prajith

  • Hi Prajith,

    I don't think that Hirshaman has anything to do with the issue. We have run the device with "PRU-ICSS-HSR-PRP-DAN_01.00.02.00" version, and PTP is working.
    I think is a build issue if the code is 100% fixed.

    I see in the project that prp_lib_AM437x_arm and timeSync_lib_AM437x_arm.a is linked. Should I rebuild this? How to do that? Include PRU_ICSS_HSR_PRP_DAN folder to project Explorer?

    Thanks, Mare

  • Hi Marko, 

    We tried with the firmware binaries you shared and found PTP in sync. We were not able to test with Hirschman and are working on this. 

    We need to try exactly same configuration in-order to get to the same state.

    • Can you please share complete setup details.
    • Have you connected PRP on the other side or EMAC port?
    • What configuration is running on the master side(PRP/HSR/EMAC)?

    We also suspect libraries might be a possible issue here. Can you also please share: 

    • Your application .out file so that we can directly run and check that. 
    • The prp, timesync librarys you are currently using. 

    Thanks,
    Himanshu

  • Hi Himanshu! Glad to get your reply!

    What configuration is running on the master side(PRP/HSR/EMAC)?

    Can you please share complete setup details.

    My setup:


    On IDK running PRP example, "as is" from example. Additionally we add in ndk demon - echo server (tcp port 7), so we can test traffic.


    IDK is connected to Hirshman switch, to PRP port A & B.
    Hirshman has enabled PTP on both ports (A & B)
    Hirshamn switch is configured as BC, two step, and on older version of PRP_DAN it is working.

    • Have you connected PRP on the other side or EMAC port?

    What other side?

    So here is my lib and out:
    prp_app_AM437x_arm.zip
    Best Regards, Mare

  • Is there anything what is missing to explain?
    Let me know, Thanks.

    Best Regards, Mare

  • Hi Marko!

    Please try following steps for rebuilding libraries.

    Building the prp libraray

    Project create file can be found at directory: IA_SDK_HOME/protocols/hsr_prp/projects

    Step 1:

    To generate libraray project for prp run below command in the terminal from IA_SDK_HOME/protocols/hsr_prp/projects/

    For windows - projectCreate.bat AM437x arm prp_lib

    For Linux - projectCreate.sh AM437x arm prp_lib

    Step 2:

    Import the prp_Libraray project in the CCS

    Step 3:

    Build or Rebuild the prp_library project.

    Building time sync library

    For Windows: Build timeSync component

    Step 1:

    CD to packages folder and Execute pdksetupenv.bat file as given below

    cd [PDK_INSTALL_DIR]/packages
    pdksetupenv.bat
    

    Step 2:

    CD to component folder and give build command

    cd [PDK_INSTALL_DIR]/packages/ti/transport/timeSync
    gmake -sj clean
    gmake -sj all
    
     

    For Linux: Build timeSync component

    Step 1:

    CD to packages folder and Execute pdksetupenv.bat file as given below

    cd [PDK_INSTALL_DIR]/packages
    source pdksetupenv.sh
    

    Step 2:

    CD to component folder and give build command

    cd [PDK_INSTALL_DIR]/packages/ti/transport/timeSync
    make clean
    make all
    

    NOTE: Please check whether the library files are updated after the build

    Thanks,
    Himanshu

  • Also, attaching the application executable which we used for testing after issue fix. Please verify with Hirschmann master. 

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/8168.prp_5F00_app_5F00_AM437x_5F00_arm.out

  • Hi Himanshu,

    I can confirm that your .out is working with the Hirshman setup. Path delay is calculated and sync.

    My code does not have any changes in operations. Still can't get T4 parameters.

    When I build prp_lib I notice that pdksetup setup path to "C:\ti\pdk_am437x_1_0_12\packages", I changed to C:\ti\pdk_am437x_1_0_17\packages.
    I check that prp_libxxx.a and ti.transport.timeSync.aa9fg has been created (new files).

    I think that we probably do not have the same source files.

    We have some partial changes... Can you please send me your files, which were modified over the patching procedure? (or I ask too much).
    I probably miss something.

    If I understand you, my firmware .h files for ICSS-PRU are identical whit yours?
    Not sure if I understand correctly, "timeSyncHandle->timeSyncConfig.timestamp_from_shared_ram" need to be 0 or 1? (if I set it to 0, the program crashes. by default in original example is 1).

    Did you build your .out as a release or debug?

    Best Regards, Mare

  • Hi Marko, 

    Thanks for confirming the .out with Hirschman.

    Please check if the libraries at paths being used for linking are updated with the rebuilt libraries. Should be linking from following locations:  

    PRP library path - IA_SDK_HOME/protocols/hsr_prp/lib/prp/am437x/a9/
    Timesync library - PDK_INSTALL_PATH/packages/ti/transport/timeSync/lib/a9/release/

    timestamp_from_shared_ram should be set to 0. 

    Let me check on if/how we can share the final libraries and modified files for fixes. 

    Thanks,
    Himanshu 

  • Hi Himanshu,

    I rename lib_xxx.a files, so I can check in explorer whatever new files are generated.

    I can confirm:

    - C:\ti\PRU-ICSS-HSR-PRP-DAN_01.00.05.01\protocols\hsr_prp\lib\prp\am437x\a9\libprp_lib_AM437x_arm.a is generated/compiled after prp_lib_AM437x_arm project is recompiled.

    - C:\ti\pdk_am437x_1_0_17\packages\ti\transport\timeSync\lib\a9\release\ti.transport.timeSync.aa9fg is generated/compiled after:

    C:\ti\pdk_am437x_1_0_17\packages>pdksetupenv.bat
    ***************************************************
    Environment Configuration:
    ***************************************************
        SDK_INSTALL_PATH        : C:/ti
        PDK_INSTALL_PATH        : C:/ti/pdk_am437x_1_0_17/packages
        GMAKE_INSTALL_PATH      : C:/ti/xdctools_3_55_02_22_core
        PDK_SOC                 : am437x
        PDK_VERSION             : 1_0_17
        RULES_MAKE              : C:/ti/pdk_am437x_1_0_17/packages/ti/build/Rules.make
    ***************************************************
    
    C:\ti\pdk_am437x_1_0_17\packages\ti\transport\timeSync>gmake clean
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile clean COMP=timeSync CORE=a9host BOARD=evmAM437x SOC=am437x;    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile clean COMP=timeSync CORE=a9host BOARD=idkAM437x SOC=am437x;    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile clean COMP=timeSync CORE=a9host BOARD=skAM437x SOC=am437x;
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile clean
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/bin/rm -f -rf C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/* C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/* C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg_size.txt
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile clean
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/bin/rm -f -rf C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/* C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/* C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg_size.txt
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile clean
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/bin/rm -f -rf C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/* C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/* C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg_size.txt
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    
    C:\ti\pdk_am437x_1_0_17\packages\ti\transport\timeSync>gmake all
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all COMP=timeSync CORE=a9host BOARD=evmAM437x SOC=am437x;    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all COMP=timeSync CORE=a9host BOARD=idkAM437x SOC=am437x;    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all COMP=timeSync CORE=a9host BOARD=skAM437x SOC=am437x;
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    ------------------------------------------------------
    # PDK MM.NN.PP.BB
    ------------------------------------------------------
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile timeSync
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/bin/mkdir -p C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSync.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSync.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync.oa9fg src/icss_timeSync.c
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSync_mem.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSync_mem.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_mem.oa9fg src/icss_timeSync_mem.c
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSync_init.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSync_init.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_init.oa9fg src/icss_timeSync_init.c
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSyncApi.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSyncApi.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSyncApi.oa9fg src/icss_timeSyncApi.c
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSync_tools.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSync_tools.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_tools.oa9fg src/icss_timeSync_tools.c
    # Compiling am437x:a9host:release:timeSync: src/icss_timeSync_ecap_edma.c
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -MD -MF C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/little/.deps/icss_timeSync_ecap_edma.P -DMAKEFILE_BUILD -Wimplicit -Wall -Wunused -Wunknown-pragmas -ffunction-sections  -mlong-calls -fdata-sections -c -mcpu=cortex-a9 -g -mtune=cortex-a9 -march=armv7-a -mfpu=neon -mfloat-abi=hard -mabi=aapcs -mapcs-frame -D__ARMv7 -Werror -O2 -s -DNDEBUG   -mno-unaligned-access   -DSOC_AM437x -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc_target_name__=A9F -Dxdc_bld__profile_release -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include -IC:/ti/gcc-arm-none-eabi-7-2018-q2-update/arm-none-eabi/include/newlib-nano -I. -I../include -I.. -IC:/ti/pdk_am437x_1_0_17/packages -IC:/ti/bios_6_76_03_01/packages -IC:/ti/xdctools_3_55_02_22_core/packages -IC:/ti/pdk_am437x_1_0_17/packages/ti/osal -IC:/ti/edma3_lld_2_12_05_30E/packages -I/apps/apps_nonbam/inc -I/ -I/common   -o C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_ecap_edma.oa9fg src/icss_timeSync_ecap_edma.c
    #
    # Archiving am437x:a9host:release:timeSync into C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg ...
    #
    C:/ti/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-ar cr C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync/lib/a9/release/ti.transport.timeSync.aa9fg   C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync.oa9fg  C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_mem.oa9fg  C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_init.oa9fg  C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSyncApi.oa9fg  C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_tools.oa9fg  C:/ti/pdk_am437x_1_0_17/packages/ti/binary/ti/transport/timeSync/obj/a9/release/icss_timeSync_ecap_edma.oa9fg
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_0;   C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_1;
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_0 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_1 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_apps_core
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile pdk_dup_apps
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'pdk_dup_apps'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    ------------------------------------------------------
    # PDK MM.NN.PP.BB
    ------------------------------------------------------
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile timeSync
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_0;   C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_1;
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_0 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_1 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_apps_core
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile pdk_dup_apps
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'pdk_dup_apps'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    ------------------------------------------------------
    # PDK MM.NN.PP.BB
    ------------------------------------------------------
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile timeSync
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -C C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync -fsrc/makefile
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_0;   C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm_versions HOSTCORE=a9host CORE=pru_1;
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_0 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_firm HOSTCORE=a9host CORE=pru_1 PRUVERSION=REV1;
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'all_firm'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile all_apps_core
    gmake[2]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    C:/ti/xdctools_3_55_02_22_core/gmake -f C:/ti/pdk_am437x_1_0_17/packages/ti/build/makefile pdk_dup_apps
    gmake[3]: Entering directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[3]: Nothing to be done for 'pdk_dup_apps'.
    gmake[3]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[2]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    gmake[1]: Leaving directory 'C:/ti/pdk_am437x_1_0_17/packages/ti/transport/timeSync'
    
    C:\ti\pdk_am437x_1_0_17\packages\ti\transport\timeSync>



    I can also confirm that whit timestamp_from_shared_ram = 0, program crash in edma3 error handler after 15s.

    I think we have different source code. If possible ziped PRU-ICSS-HSR-PRP-DAN_01.00.05.01 folder will be first step if you can confirm that we have equal content of .h files in PRU-ICSS-HSR-PRP-DAN_01.00.05.01\protocols\hsr_prp\firmware\prp\v1.0 .

    Thanks,
    Mare

  • Hi Marko,

    We are working on creating HSR-PRP SDK RC package to share with you with all the fixes. I will try to share the RC by next week. Thanks. 

  • Hi Himanshu,

    Can I kindly ask you to give me some update on when to expect RC?
    Thanks for your kindness and support!

    Two more things:
    I noticed a long time ago, that on ROV task names or fxn is corrupted when debugging code. I also report this on the forum. Was this also counted in the fix procedure?
    Which CCS is recommended to use with RC?

    Thanks, Himanshu.

  • Hi Himanshu,

    Thanx for sending RC package. I created and try the prp_app project and it is the same, not working.
    What I need to change is CCS path/version and PDK path/version in project generation.

    - set "CCS_INSTALL_DIR=C:\ti\ccs910\ccs"
    - set "AM437x_PDK_INSTALL_PATH=C:\ti\pdk_am437x_1_0_12\packages"
    
    + set "CCS_INSTALL_DIR=C:\ti\ccs1040\ccs"
    + set "AM437x_PDK_INSTALL_PATH=C:\ti\pdk_am437x_1_0_17\packages"


    Is it possible that CCS or PDK version make this fix unsuccessful?


    Regards, Mare

  • Hi Himanshu,

    which version of PDK or processor-sdk you use?

    Thanks, Mare

  • which version of PDK or processor-sdk you use?

    Processor SDK 6.3, follow patching instructions as well 5.1. PRU ICSS HSR PRP User Guide — PRU-ICSS Industrial Software for Sitara Processors (ti.com)

  • Hi Marko, 

    Thanx for sending RC package. I created and try the prp_app project and it is the same, not working.

    We are rechecking the package, will update by eod. 

    Thanks, 
    Himanshu

  • Hi Himanshu,

    I do the process from begining (win 10):
    - instal SDK 06.03.00.106 (18 Apr 2020)
    - instal CCS9.3
    - instal packeges on opening CCS (SDK things.. Xds...)
    - Patch for icss_emac and timesync
    - Fix starterware makefile (windows make ifle issue)
    -build PDK as relese and debug
    - fix bat file whith path to pdk and set workspace as is used by ccs9.3
    - create project -> AM437x arm prp_app
    - inport project in CCS workspace
    - build as relese
    - load program on IDK as debug sesion
    - open UART terminal and check if PTP is sync. No path delay calculated and parameters of sync are creasy numbers.
    - from time to time terminal freeze....

    So for me is not working.

    Can you try my steps? I'm wondering if you have some different workspace or some different sources....


  • Hi Marko, 

    I am really sorry; I missed a step while creating the HSR-PRP package and so the firmware was still writing to the old timestamp array offset though the driver got updated and was trying to pick from updated address. I have the updated package ready, I would like to get PTP status checked before sharing with you. 

    Thanks for your patience and understanding, 
    Himanshu

  • No problem Himanshu.
    Thank you for your dedication.

    Regards, Mare

  • Hi Himanshu.

    Hope you are well!

    Can we expect a new HSR-PRP package today?

    Thanks, Mare

  • Hi Himanshu,

    Besides fixing PTP, I would like to ask you if you can confirm that after a free run of the program, you press the suspend button and check the ROV. Task section, lower tasks on the list, fxn - task functions don't make any sense. Do you observe the same issue?

    Regards, Mare

  • Hi Marko, 

    I would be able to share the package with you on Monday. 
    I will also check if I am able to see the ROV issue.

    Thanks, 
    Himanshu