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.

Running GEL file for TI814x

Other Parts Discussed in Thread: SYSBIOS

Hi,

I have a TI814x EVM, and was trying to connect to the DSP using a Blackhawk 560v2 JTAG device. I followed the instruction here

http://processors.wiki.ti.com/index.php/Connecting_to_DSP_on_C6A8168,_DM8168,_DM8148

and got the GEL file PG2.1_DM814x_20Mhz_Si.gel from Mistral's website.

When I did Scripts->DM814X System Initialization, and select DM814X_System_Initialisation_GP_device().,  I get the error below :

CortexA8: Trouble Writing Memory Block at 0x481c5040 on Page 0 of Length 0x4: (Error -1065 @ 0x481C5040) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.520.0) 
DM814X_System_Initialisation_GP_device() cannot be evaluated.
target access failed

Does anybody has some ideas on why this is happening, and how I can fix it?

Thanks,
s
  • Hi again,

    There was an SD card in the SD card slot, and when I removed it, I got a little further, but bumped into this issue next :

    CortexA8: GEL Output: 
    PLL and Control MMR unlock done ...
    CortexA8: Output: DM814X ALL ADPLL INIT IS IN PROGRESS,Please wait .....
    CortexA8: Output: DM814X MODENA_PLL Init is in Progress, Please wait .....
    CortexA8: GEL Output: ADPLLS CLKOUT value is = 600
    CortexA8: Output: DM814X MODENA_PLL Init is Done
    CortexA8: Output: DM814X MODENA_PLL is initialized to 600Mhz
    CortexA8: Output: DM814X DSS_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X DSS_PLL Init is Done
    CortexA8: Output: DM814X DSS_PLL is initialized to 200MHz
    CortexA8: Output: DM814X DSP_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X DSP_PLL Init is Done
    CortexA8: Output: DM814X DSP_PLL is initialized to 500MHz
    CortexA8: Output: DM814X SGX_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X SGX_PLL Init is Done
    CortexA8: Output: DM814X SGX_PLL is initialized to 200MHz
    CortexA8: Output: DM814X IVA_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X IVA_PLL Init is Done
    CortexA8: Output: DM814X IVA_PLL is initialized to 266MHz
    CortexA8: Output: DM814X ISS_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X ISS_PLL Init is Done
    CortexA8: Output: DM814X ISS_PLL is initialized to 400MHz
    CortexA8: Output: DM814X USB_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X USB_PLL Init is Done
    CortexA8: Output: DM814X USB_PLL is initialized to 200MHz
    CortexA8: Output: DM814X DDR_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X DDR_PLL Init is Done
    CortexA8: Output: DM814X DDR_PLL is initialized to 666MHz
    CortexA8: Output: DM814X AUDIO_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X AUDIO_PLL Init is Done
    CortexA8: Output: DM814X AUDIO_PLL is initialized to 200MHz
    CortexA8: Output: DM814X HDMI_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X HDMI_PLL Init is Done
    CortexA8: Output: DM814X VIDEO_0_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X VIDEO_0_PLL Init is Done
    CortexA8: Output: DM814X VIDEO0_PLL is initialized to 54MHz
    CortexA8: Output: DM814X VIDEO_1_PLL Init is in Progress, Please wait .....
    CortexA8: Output: DM814X VIDEO_1_PLL Init is Done
    CortexA8: Output: DM814X VIDEO1_PLL is initialized to 148.5MHz
    CortexA8: Output: --- SATA PLL Locked
    CortexA8: Output: **** DM814X ALL ADPLL INIT IS COMPLETE *******
    CortexA8: Trouble Writing Memory Block at 0x48100100 on Page 0 of Length 0x4: (Error -1065 @ 0x3D5A) Unable to access device memory. Verify that the memory address is in valid memory. If error persists, confirm configuration, power-cycle board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.520.0)
    DM814X_System_Initialisation_GP_device() cannot be evaluated.
    
    
    Any help would be appreciated!
    
    
    Thanks,
    steph
  • Hi Steph,

    Mistral has unreleased GEL file.  Please try the one attached.

    Regards,

    Viet

    DM8148_EVM.gel
  • Hi Viet,

    Thanks. With the gel file, I see that I was able to pass a lot of things. Are there additional things that I have to go to the Script tab and run?

    From CCS5, I tried to create a simple SYSBIOS project by using the template in SYSBIOS->typical, and choose the platform to be  ti.platforms.evmDM8148. I then linked my ccxml file to the project, and tried to debug the project, here's what I see

    [C674X_0] ti.sysbios.timers.dmtimer.Timer: line 1039: E_freqMismatch: Frequency mismatch: Expected 32768 Hz, actual: 395385 Hz.  You need to modify Timer.intFreq.lo to match the actual frequency.
    xdc.runtime.Error.raise: terminating execution
    I'd appreciate any help!
    Thanks,
    Steph
  • Hi again, 

    I solved the problem by using the solution from

    http://e2e.ti.com/support/embedded/bios/f/355/t/144526.aspx

    However, for some reason I can't see any of the system printf outputs at the console output. In fact, in the console, I only see CDT Build Console and also CDT Golbal Build Console, but not CIO console output that I was used to seeing in CCS4.

    Thanks,

    Steph

  • Steph,

    I built a C674 DSP example for my evmTI8148 board and the System_printf() CIO come out as expected.

    The fact that CIO was working when you were having the Timer frequency problem makes me conclude that it does work.

    Which System provider did you wire up for System? You need something like below in your script for System_printfs() to work:

    var System = xdc.useModule('xdc.runtime.System');
    var SysStd = xdc.useModule('xdc.runtime.SysStd');
    System.SupportProxy = SysStd;

    Alan

     

  • Hi Alan,

    Thanks a lot for your help! In the cfg file created from the sample project, the setting was System.SupportProxy = SysMin. I changed it to SysStd and I see outputs now!

    This actually brings me to another question, what is SysMin, and also are there ways to log the output of the console to a file?

    Thanks again, 

    Steph

  • Steph,

    SysMin is a buffered character output handler. The characters from System_printf() get placed into a buffer and are sent to CIO either during the BIOS_exit() call or by invoking the System_flush() API.

    The advantage of SysMin over SysStd is that it is a much lighter weight character handler, and it allows System_printf() calls to be embedded in all types of BIOS threads.

    SysStd performs a CCS CIO function on EVERY character. An indirect consequence of this is that System_printf(), when routed through the SysStd System provider can not be invoked by BIOS Swi and Hwi threads. (This restriction can be worked around but that discussion is for another Forum Post.).

    I believe CCS can be configured to route the console output to a file. I'll check into this.

    Alan