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.

RTOS/AM5728: SMP processing on EtherCAT-Master reference design(TIDEP0079)

Guru 10235 points
Part Number: AM5728
Other Parts Discussed in Thread: TIDEP0079, , SYSBIOS

Tool/software: TI-RTOS

Hello, TI Experts,

Our customer sent us questions about SMP processing on EtherCAT-Master reference design(TIDEP0079).

https://www.ti.com/tool/TIDEP0079

 

They want to know how to use SMP processing with dual-A15 of AM5728 including the PCIE function and EtherCAT-Master under below tools.

 1:SDK(RTOS) :ti\pdk_am57xx_1_0_9

                                ti\bios_6_52_00_12

 2:CCS:8.2.0.00007

 3:Acontis-EC-Master: 3.0.1.12

 

But sysbios including SMP function of this SDK seems to still have some problem like the below E2E thread.

https://e2e.ti.com/support/processors/f/791/t/754044#pi320966=2

https://e2e.ti.com/support/processors/f/791/t/800302

 

Question:

   Are there our customer's tool & software combination proper to continue to develop their product by using AM572x?

 

We would appreciate if you tell us recommended way or guide about how to use SMP processing with dual-A15 of AM5728

for the PCIE function and EtherCAT-Master integration including proper tool & software combination for SMP software development.

1: SDK(RTOS)

2: CCS

3: Acontis-EC-Master

 

Best regards,

  • Hi,

    For the PCIE SMP, I thought we sent out some note how to do this on AM572x A15.

    PCI-E:

    In pcie_sample.c,

    change

    #include <ti/sysbios/family/arm/a15/Cache.h>

    to

    #include <ti/sysbios/family/arm/a15/smp/Cache.h>

    Comment out the following lines in main() of pcie_sample.c:

    /* Add MMU entries for MMR's required for PCIE example */

    Mmu_DescriptorAttrs attrs;

    extern char ti_sysbios_family_arm_a15_Mmu_Module_State_0_secondLevelTableBuf_0__A;

    extern char ti_sysbios_family_arm_a15_Mmu_Module_State_0_secondLevelTableBuf_1__A;

    uint32_t addr0 = (uint32_t)&ti_sysbios_family_arm_a15_Mmu_Module_State_0_secondLevelTableBuf_0__A;

    uint32_t addr1 = (uint32_t)&ti_sysbios_family_arm_a15_Mmu_Module_State_0_secondLevelTableBuf_1__A;

     

    Mmu_initDescAttrs(&attrs);

     

    attrs.type = Mmu_DescriptorType_TABLE;

    attrs.shareable = 0;           // non-shareable

    attrs.accPerm = 1;             // read/write at any privelege level

    attrs.attrIndx = 0;             // Use MAIR0 Register Byte 3 for

                                   // determining the memory attributes

                                   // for each MMU entry

     

    // Update the first level table's MMU entry for 0x00000000 with the

    // new attributes.

    Mmu_setFirstLevelDesc((Ptr)0x00000000, (UInt64)addr0, &attrs);

    // Update the first level table's MMU entry for 0x40000000 with the

    // new attributes.

    Mmu_setFirstLevelDesc((Ptr)0x40000000, (UInt64)addr1, &attrs);

    Add the following lines to pcie_sample_wSoCFile.cfg:

    // descriptor attribute structure

    var peripheralAttrs1 = new Mmu.DescriptorAttrs();

    Mmu.initDescAttrsMeta(peripheralAttrs1);

     

    peripheralAttrs1.type = Mmu.DescriptorType_TABLE;

    peripheralAttrs1.accPerm = 1;                   // read/write at any PL

    peripheralAttrs1.shareable = 0;                 // non-shareable

    peripheralAttrs1.attrIndx = 0;                   // Use MAIR0 Register Byte 3 for

                                                     // determining the memory attributes

                                                     // for each MMU entry                           Mmu.setFirstLevelDescMeta(0x00000000, 0x80001000, peripheralAttrs1);

    Mmu.setFirstLevelDescMeta(0x40000000, 0x80002000, peripheralAttrs1);

    For project integration of Ethercat and PCIE, you can refer to the RTOS template app as the starting point. http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_examples_demos.html

    For SMP on Ethercat, I don't think you raised this request before and I am not the expert on Ethercat, please open a new E2E.

    Regards, Eric

  • Hi,

    Thank you very much for your kindness.

    I really appreciate your help.

     

    We 'd like to answer to the customer like belows based on your information.

    - modification guide of pcie_sample.c

    - refer RTOS template such as "9.3. POSIX-SMP Demo" for SMP integration

       http://software-dl.ti.com/processor-sdk-rtos/esd/docs/latest/rtos/index_examples_demos.html

     

    And I'd like to create new E2E-thread for SMP on Ethercat

     

    Best regards,

     

  • Part Number: AM5728

    Tool/software: TI-RTOS

    Hello, TI Experts,

     

    We have additional question from below E2E-thread.

    https://e2e.ti.com/support/processors/f/791/p/802183/2969223#2969223

     

    We got the feedback about how to use SMP processing for PCIE.

    And we also want to know how to realize SMP processing with dual-A15 of AM5728

    for the EtherCAT-Master including proper/recommended tools & software version combination.

     

    We wrote the detail on the above E2E-thread including the customers development tools & software like below;

     1:SDK(RTOS) :ti\pdk_am57xx_1_0_9

                                          ti\bios_6_52_00_12

     2:CCS:8.2.0.00007

     3:Acontis-EC-Master: 3.0.1.12

     

    But sysbios including SMP function of this SDK seems to still have some problem like the below E2E thread.

    https://e2e.ti.com/support/processors/f/791/t/754044#pi320966=2

    https://e2e.ti.com/support/processors/f/791/t/800302

     

    Question:

       Are there our customer's tool & software combination proper to continue to develop their product by using AM572x?

     

    We would appreciate if you tell us recommended way or guide about how to use SMP processing with dual-A15 of AM5728

    for the PCIE function and EtherCAT-Master integration including proper tool & software combination for SMP software development.

    1: SDK(RTOS)

    2: CCS

    3: Acontis-EC-Master

     

    Best regards

     

     

  • Hi,

    I looked at the two E2E you mentioned, those are TI RTOS topics and reported issues were fixed in SYSBIOS 6.75.01, there is no plan to fix that in 6.52, as communicated in the individual E2E.

    So, using PRSDK 5.3 release (with SYSBIOS 6.75.02) is the way to develop your SMP applications, please suggest customer move to this latest release. Tool set:

    1:SDK(RTOS) :ti\pdk_am57xx_1_0_14

    ti\bios_6_75_02_00

     2:CCS:8.3.0.00009

     3:Acontis-EC-Master: 3.0.1.12

    If Acontis-EC-Master: 3.0.1.12 (is this the latest?) has any issue with above toolset, please open a new E2E for that.

    Regards, Eric
  • Hi,

     

    Thank you very much for your kindness.

    I really appreciate your help.

    I will send the answer to the customer.

    Best regards,