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.

AM5706: AM5706 boot issues

Part Number: AM5706
Other Parts Discussed in Thread: AM5728, CODECOMPOSER, AM5718

We can't boot both DSP core and ARM A15 core of AM5706 with the same software of AM5728.

Are there anythings need change in AM5728 software?

This is customer board and customer software which works for AM5728 very well.

For DSP core, using Code Composer v930,  ti_processor_sdk_rtos_am57xx_6_03_00_106.

For ARM A15, using WIndriver Workbench 4, VxWorks 7 RTOS.

Thanks.

  • Hi Frank,

    AM574x/AM572x has two DSPs - DSP1 and DSP2, but AM571x/AM570x only has one DSP - DSP1.

    The TI SDK filesystem is the same for all AM57xx family of SoCs, but you are just limited to IPU2, IPU1 and DSP1 on the AM571x/AM570x SoCs.

    regards

    Suman

  • Hi, Susan,

    When I configure the DSP processor using Debugger in CodeComposer v930, it is successfully connected by Test.

    And then connect target A15, it looks like OK, but when I connect DSP, there are errors:

    C66xx_DSP: Error connecting to the target: (Error -1180 @ 0x0) Device is held in reset. Take the device out of reset, and retry the operation. (Emulation package 9.3.0.00042)

    The debugger is TI XDS2xx USB Debug Probe, Configure as AM5706.

    Thanks.

  • Hi Frank,

    Please post a separate thread for topics unrelated to the original thread question/title.

    regards

    Suman

  • Hi, Susan,

    This is the same issue which I have not resolved, i.e. I can't boot up AM5706' DSP core.

    Thanks,

    Frank

  • Hi Frank,

    If the DSP core is in reset, you cannot Connect to it.

    Please see the CCS Setup instructions in the AM57xx RTOS SDK documentation, specifically the 10.2.1.1.2.5.1. Connect to AM57x Slave Cores section.

    Also see an IPC example usage using CCS in 10.1.1 Run IPC Examples on AM572x.

    regards

    Suman

  • Hi, Susan,

    Thank you for your quick response to my question.

    But for the same procedure, I have successfully boot DSP core in AM5728 custom board, which is configured as IDK_AM572X, and for DSP Core in AM5706 custom board, which is configured as AM5706.

    Why DSP is in reset? For AM5706 there is no IDK board and EVM board.

    Thanks.

  • Hi Frank,

    The DSPs (and other remote processors) all stay in reset upon power-on. They are not loaded and booted automatically, you have to rely on an external entity to load and start the DSPs.

    Please try with IDK_AM571X configuration in CCS instead of AM5706. You can compare the two configs, AM5706 doesn't have any GEL script associated with DSP.

    regards

    Suman

  • Thanks, Susan.

    I have configurate target as IDK_AM571x in CCS, but I get the errors. May I need to modify AM571x_startup_common.gel? How to modify? Where are these files located?

    Thanks.

    Cortex_M4_IPU1_C0: GEL Output: --->>> AM571x Cortex M4 Startup Sequence In Progress... <<<---

    Cortex_M4_IPU1_C0: GEL Output: --->>> AM571x Cortex M4 Startup Sequence DONE! <<<---

    Cortex_M4_IPU1_C1: GEL Output: --->>> AM571x Cortex M4 Startup Sequence In Progress... <<<---

    Cortex_M4_IPU1_C1: GEL Output: --->>> AM571x Cortex M4 Startup Sequence DONE! <<<---

    C66xx_DSP: GEL Output: --->>> AM571x C66x DSP Startup Sequence In Progress... <<<---

    C66xx_DSP: GEL Output: --->>> AM571x C66x DSP Startup Sequence DONE! <<<---

    CortexA15_0: GEL Output: --->>> AM571x Cortex A15 Startup Sequence In Progress... <<<---

    CortexA15_0: GEL Output: --->>> AM571x Cortex A15 Startup Sequence DONE! <<<---

    IcePick_D: GEL Output: Ipu RTOS is released from Wait-In-Reset.

    IcePick_D: GEL Output: Ipu SIMCOP is released from Wait-In-Reset.

    IcePick_D: GEL Output: IVAHD C66 is released from Wait-In-Reset.

    IcePick_D: GEL Output: IVAHD ICONT1 is released from Wait-In-Reset.

    IcePick_D: GEL Output: IVAHD ICONT2 is released from Wait-In-Reset.

    CS_DAP_DebugSS: GEL Output: --->>> CONFIGURE DEBUG DPLL settings to 1.9 GHZs <<<---

    CS_DAP_DebugSS: GEL Output: > Setup DebugSS 1.9GHz in progress...

    CS_DAP_DebugSS: GEL Output: < Done with Setup DebugSS Trace export clock (TPIU) to 97MHz

    CS_DAP_DebugSS: GEL Output: < Done with Setup DebugSS PLL Clocking 1.9GHz

    CS_DAP_DebugSS: GEL Output: < Done with Setup DebugSS ATB Clocking 380MHz

    CS_DAP_DebugSS: GEL Output: < Done with Setup DebugSS Trace export clock (TPIU) to 97MHz

    CS_DAP_DebugSS: GEL Output: --->>> TURNING ON L3_INSTR and L3_3 clocks required for debug instrumention <<<<<<----

    CS_DAP_DebugSS: GEL Output: ---<<< L3 instrumentation clocks are enabled >>>> ---

    CS_DAP_DebugSS: GEL Output: --->>> Mapping TIMER supsend sources to default cores <<<<<<----

    CS_DAP_PC: GEL Output: Cortex-A15 1 is not in WIR mode so nothing to do.

    CortexA15_0: GEL Output: --->>> AM571x Target Connect Sequence Begins ... <<<---

    CortexA15_0: GEL Output: --->>> WARNING: UNKNOWN DEVICE ID (0x00000002), PLEASE UPDATE GEL FILES !!!! <<<---

    CortexA15_0: GEL: Error while executing OnTargetConnect(): uninitialized GEL variable

    at GEL_TextOut("\t--->>> AM571x PG%d.%d GP device <<<---\n", 0, 0, 0, 0, silicon_rev_major, silicon_rev_minor) [AM571x_startup_common.gel:106]

    at AM571x_show_device_info() [AM571x_startup_common.gel:73]

    at AM571x_target_connect_sequence() [AM571x_startup_common.gel:33]

    at OnTargetConnect()

  • Hi Frank,

    Search for the file under your ccs folder. I have CCS 10 installed and don't have CCS 9. 

    They are in ccs/ccs_base/emulation/boards/am571x/gel folder for me in CCS 10. 

    You might actually want to try changing the CortexA15_0 initialization script GEL file in your Target Configuration from AM571x_cortexa15_cpu0_startup.gel to AM570x_cortexa15_cpu0_startup.gel

    regards

    Suman

  • Thank you very much.

    Where to change  from AM571x_cortexa15_cpu0_startup.gel to AM570x_cortexa15_cpu0_startup.gel ?

     

  • Hi Frank,

    Click the Advanced Tab at the bottom while editing your Target Configuration. This will list a bunch of cores under "All Connections" in a hierarchical manner.

    Select CortexA15_0 following the path, IDK_AM571x_0->AM5718_0->IcePickD->dap->CS_DAP_DebugSS->Cortex_A15_MPUSS->CS_DAP_PC->cortex_a15_0->CortexA15_0. 

    You can then change the in the initialiation script. It should already be listing AM571x_cortexa15_cpu0_startup.gel using relative path.

    regards

    Suman

  • Hi, Susan,

    IDK_AM571x_0->AM5718_0->IcePickD->dap->CS_DAP_DebugSS->Cortex_A15_MPUSS->CS_DAP_PC->cortex_a15_0->CortexA15_0. is still IDK_AM570x, still not working, same error message as before,

    What file name is  initialiation script? How to change it?

    Thanks

  • Hi Frank,

    OK, if it is not working, you might need to update the function with the proper Silicon Revision logic in the appropriate GEL file. The flow is like C, so you will understand it rather easily. Fix the logic around the offending error trace " WARNING: UNKNOWN DEVICE ID (0x00000002), PLEASE UPDATE GEL FILES !!!!".

    regards

    Suman

  • Hi, Susan,

    Thank you for your quickly response. I have made progress, now A15 core is launched.

    DSP core still has problem because AM5706 DSP only has memory OCMC_RAM1, and doesn't have OCMC_RAM2 witch address is 0x4040_0000.

    I have gone over the files AM571x_dsp_startup.gel and AM571x_dsp_basic_emulation.gel but are unable to locate where to change the OCMC_RAM option to 1, not 3.

    Where to change the OCMC_RAM as only one memory?

    There are probably other differences in DSP Cores between AM5718 and AM5706.

    Thanks.

  • Hi Frank,

    AM5706 only has only 512 KB of OCM RAM at 0x4030_0000; it doesn't have the OCMC_RAM2 (at 0x0x4040_0000) or OCMC_RAM3 (at 0x4050_0000).

    It should be ON and accessible in general without doing any separate operation.

    I do not understand your comment about changing OCM RAM in GEL file. If you are trying to load a DSP firmware image, you need to adjust your firmware linker cmd file to not use any of the OCMC_RAM2 or OCMC_RAM3 addresses.. 

    regards

    Suman

  • Hi, Susan

    It  has not get to load DSP firmware yet.

    The errors is happened when try to connect to DSP after connecting A15 core. The GEL file try to find the address 0x4040000 which is CMC_RAM2.

    So I want to know which GEL file define how many RAM swctions.

    Log message

    CortexA15_0: GEL Output: --->>> PRUSS 1 and 2 Initialization is in progress ... <<<---
    CortexA15_0: GEL Output: --->>> PRUSS 1 and 2 Initialization is in complete ... <<<---
    CortexA15_0: GEL Output: --->>> AM570x Target Connect Sequence DONE !!!!!  <<<---
    CortexA15_0: GEL Output: --->>> DSP1SS Initialization is in progress ... <<<---
    CortexA15_0: GEL Output: DEBUG: Clock is active ...
    CortexA15_0: GEL Output: DEBUG: Checking for data integrity in DSPSS L2RAM ...
    CortexA15_0: GEL Output: DEBUG: Data integrity check in GEM L2RAM is sucessful!
    CortexA15_0: GEL Output: --->>> DSP1SS Initialization is DONE! <<<---
    C66xx_DSP: File Loader: Verification failed: Values at address 0x40400000 do not match Please verify target memory and memory map.
    C66xx_DSP: GEL: File: C:\PCB_RoadMap\DSP_proj\DSP_PWM_VPeak\Debug\DSP_PWM_VPeak.out: a data verification error occurred, file load failed.

    Thanks,

  • Hi Frank,

    Did you rebuild your firmware to not use OCMC_RAM2?

    Please provide the readelf -l  output for the firmware image you are using. 

    regards

    Suman

    PS: My name is Suman and not Susan :) 

  • Hi, Suman,

    Thank you for your quickly supports.

    Now We are able to boot SP Core in AM5706.

    We have other issue in DSP.cfg file:

    1. var socType = "am570x";

    There are built errors, so changed to "am571x":

    var socType = "am571x";

    var Csl = xdc.loadPackage('ti.csl');

    Csl.Settings.deviceType = socType;

    Osal.socType = socType;

    2. Because there is no "idkAM570x", use "idkAM571x";

    /* Load the Board package and set the board name */

    var Board = xdc.loadPackage('ti.board');

    Board.Settings.boardName = "idkAM571x";

     

    We are able to run the DSP codes, there are runtime errors

    ControlTask: _started

    OtherTask: _started

    EDMA driver initialization successful.

    xdc.runtime.Main: "src/mcasp_drv.c", line 4061: assertion failure

    xdc.runtime.Error.raise: terminating execution

    Is mcasp_drv.c assertion failure caused by "am571x" and "idkAM571x" ?

    Thanks.

  • Hi Frank,

    I would suggest you to open a new thread for the above issues with McASP, CCS and GEL usage issues.

    These are completely different issues w.r.t your original DSP2 boot issue.

    regards

    Suman