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.

Failed to initialize AM335x ICE board

Hello,

I just received a TI AM335x ICE board. First, I installed Code Composer Studio 5.1.1. I followed the instructions on the Getting Started Guide [1] in order to run pre-built application on the board. I always get this error while trying to initialize the device with the GEL script:

CortxA8: Trouble Writing Memory Block at 0x4c0000e4 on Page 0 of Length 0x4: (Error -1065 @ 0x4C0000E4) 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.569.0)
AM335x_EVM_Initialization() cannot be evaluated.
target access failed
at *((unsigned int *) (0x4C000000+0x0E4))=(unsigned int) Read_Latency [AM335x_15x15_EVM.gel:61]
at EMIF_MMR_Config(RD_LATENCY, TIMING1, TIMING2, TIMING3, SDRAM_CONFIG, REF_CTRL) [AM335x_15x15_EVM.gel:852]
at cmd_DDR2_EMIF_Config(0x80, 0x00, 0x00, 0x0, 0x0, 0x12, 0, 0, 0, 0x80, 0x40, 0x04, 0x0666B3D6, 0x143731DA, 0x00000347, 0x40805332, 0x0000081a) [AM335x_15x15_EVM.gel:802]
at DDR2_EMIF_Config() [AM335x_15x15_EVM.gel:85]
at AM335x_EVM_Initialization()

Am I missing something?

More precisely, here is what I did:

- Created a new Target Configuration File based on a "Texas Instruments XDS100v2 USB Emulator" connection and a AM335x device.
- Click on menu "View / Target Configurations" in order to show my newly added configuration.
- Right click on the new configuration and select "Launch Selected Configuration".
- Open the debug view.
- Right click on the Cortex A8 device and select "Connect Target".
- Click on menu "Tools / GEL files" and load GEL file "C:\ti\am335x_sysbios_ind_sdk_1.0.0.2\sdk\tools\gel\AM335x_15x15_EVM.gel".
- Execute AM335x Initialization from the menu "Scripts/AM335x System Initialization/AM335x_EVM_Initialization". The error happens here.

Thank you,

Philippe Hamelin

[1] http://processors.wiki.ti.com/index.php/AM335x_SYSBIOS_Industrial_SDK_Getting_Started_Guide

-------------
COMPLETE LOG
-------------

CortxA8: Output: **** AM335x 15x15 EVM Initialization is in progress ..........
CortxA8: Output: **** Subarctic ALL ADPLL Config for OPP == OPP100 is In Progress .........
CortxA8: Output: Input Clock Read from SYSBOOT[15:14]: 24MHz
CortxA8: Output: **** Going to Bypass...
CortxA8: Output: **** Bypassed, changing values...
CortxA8: Output: **** Locking ARM PLL
CortxA8: Output: **** Core Bypassed
CortxA8: Output: **** Now locking Core...
CortxA8: Output: **** Core locked
CortxA8: Output: **** DDR DPLL Bypassed
CortxA8: Output: **** DDR DPLL Locked
CortxA8: Output: **** PER DPLL Bypassed
CortxA8: Output: **** PER DPLL Locked
CortxA8: Output: **** DISP PLL Config is in progress ..........
CortxA8: Output: **** DISP PLL Config is DONE ..........
CortxA8: Output: **** Subarctic ALL ADPLL Config for OPP == OPP100 is Done .........
CortxA8: Output: **** Subarctic OPP100 DDR2 EMIF and PHY configuration is in progress.........
CortxA8: Output: EMIF PRCM is in progress .......
CortxA8: Output: EMIF PRCM Done
CortxA8: Output: DDR PHY Configuration In progress
CortxA8: Output: Waiting for VTP Ready .......
CortxA8: Output: DDR PHY CMD0 Register configuration is in progress .......
CortxA8: Output: DDR PHY CMD1 Register configuration is in progress .......
CortxA8: Output: DDR PHY CMD2 Register configuration is in progress .......
CortxA8: Output: DDR PHY DATA0 Register configuration is in progress .......
CortxA8: Output: DDR PHY DATA1 Register configuration is in progress .......
CortxA8: Output: emif Timing register configuration is in progress .......
CortxA8: Trouble Writing Memory Block at 0x4c0000e4 on Page 0 of Length 0x4: (Error -1065 @ 0x4C0000E4) 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.569.0)
AM335x_EVM_Initialization() cannot be evaluated.
target access failed
at *((unsigned int *) (0x4C000000+0x0E4))=(unsigned int) Read_Latency [AM335x_15x15_EVM.gel:61]
at EMIF_MMR_Config(RD_LATENCY, TIMING1, TIMING2, TIMING3, SDRAM_CONFIG, REF_CTRL) [AM335x_15x15_EVM.gel:852]
at cmd_DDR2_EMIF_Config(0x80, 0x00, 0x00, 0x0, 0x0, 0x12, 0, 0, 0, 0x80, 0x40, 0x04, 0x0666B3D6, 0x143731DA, 0x00000347, 0x40805332, 0x0000081a) [AM335x_15x15_EVM.gel:802]
at DDR2_EMIF_Config() [AM335x_15x15_EVM.gel:85]
at AM335x_EVM_Initialization()
CortxA8: Trouble Reading Register CP15_CONTROL_REGISTER: (Error -2131 @ 0x20013F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_CONTROL: (Error -2131 @ 0x20023F40) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_0: (Error -2131 @ 0x20023F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_1: (Error -2131 @ 0x20023F20) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_DOMAIN_ACCESS_CONTROL: (Error -2131 @ 0x20033F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_CONTROL_REGISTER: (Error -2131 @ 0x20013F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_CONTROL: (Error -2131 @ 0x20023F40) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_0: (Error -2131 @ 0x20023F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_XLATION_TABLE_BASE_1: (Error -2131 @ 0x20023F20) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)
CortxA8: Trouble Reading Register CP15_MMU_DOMAIN_ACCESS_CONTROL: (Error -2131 @ 0x20033F00) Unable to access device register. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 5.0.569.0)



  • Hello Philippe Hamelin,

    Did you see the LEDs on the board rolling when it is powered-up ? Just wanted ensure that the pre-loaded application on the board is working..

  • Yes, the LEDs are rolling when it's powered-up. I can even see some output of the bootloader on the serial console.

    Philippe

  • Hello,

    I also have to mention that I have two ICE boards and I got the same result with both.

    Philippe Hamelin

  • I have the same issue with my ICE as well.

  • I scoped down the problem to the following line in the GEL file:

    EMIF_MMR_Config(UWORD32 Read_Latency,UWORD32 Timing1,UWORD32 Timing2,UWORD32 Timing3,UWORD32 Sdram_Config,UWORD32 Ref_Ctrl,UWORD32 ZQ_Config)
    {
    unsigned int i=0;
    GEL_TextOut("EMIF Timing register configuration is in progress ....... \n","Output",1,1,1);

    WR_MEM_32(EMIF_DDR_PHY_CTRL_1_REG, Read_Latency);
    WR_MEM_32(EMIF_DDR_PHY_CTRL_1_SHDW_REG, Read_Latency);
    WR_MEM_32(EMIF_DDR_PHY_CTRL_2_REG, Read_Latency);

    WR_MEM_32(EMIF_SDRAM_TIM_1_REG,Timing1);
    WR_MEM_32(EMIF_SDRAM_TIM_1_SHDW_REG,Timing1);

    WR_MEM_32(EMIF_SDRAM_TIM_2_REG,Timing2);
    WR_MEM_32(EMIF_SDRAM_TIM_2_SHDW_REG,Timing2);
    [...]
    }
    
    
    Any ideas?
    
    
    Thank you,
    Philippe
  • Jonathan,

    were you still able to download any application in the SPI flash?

    Philippe

  • Yes, I was able to download to download the prebuilt binary for the simple EtherCAT application (ethercat_SPI.bin) to the flash chip. Now I am trying to build the full feature EtherCAT application, which involved downloading the EtherCAT stack SSC 5.0. I am able to build the application, so I have an out file called ecat_appl.out.  The issue is in the post_build step command.  I am having trouble figuring out what the issue is, since I appear to have all the executibles and .bat files in the correct location. I cannot figure out what is wrong with the arguments I am giving to post_build.bat if that is the issue. It seems that the tamporary binary file is not being generated.

  • So it looks like the device is correctly initialized even if the initialization script failed at some point?

    Philippe

  • Philippe, since you say you can see output of the bootloader, I think the issue is that the GEL configuration is conflicting with and already initialized device.  The GEL is really intended to initialize a device which has not gone through any boot process.  If you are successfully booting, you shouldn't have to run the GEL Initialization.

    I will have to try to get an ICE tomorrow to see the issue. 

    Regards,

    James

  • once the device is connected , do a hardware reset  [ Run->Reset->CPU Reset(HW) ]and then execute the GEL file script. This should fix your problem.

  • Ultimately, the issue here was that the demo that automatically runs on the ICE board enables MMU and puts the processor into system mode.  As written, the GEL was assuming the processor was in supervisor mode with the MMU disabled.

    I have put a new GEL file for the ICE board here:  http://processors.wiki.ti.com/index.php/OMAP_and_Sitara_CCS_support#AM335x

    This new GEL issues a CPU Reset (as shown in a previous post), which puts the processor back in supervisor mode,  before initializing the board.

    Regards,

    James

  • Hi,

    I am new to embdded development with TI CCS (but over 10 years with other tools such as Microchip, Atmel, 68HC11, etc) so I am trying to get my AM3359 ICE EtherCAT slave device up and running.


    Are there any step-by=step instructions on how to do this?  I can not seem to find this anywhere...

     

    Thanks


    Scott

     

  • Scott -

    Take a look a the getting started guide in the SDK/docs folder.  If you are looking to build and run (debug), then follow the step-by-step instructions starting on page 10.  There it describes about installing XDCTOOLS and Sys/Bios, then importing, compiling, launching a debug sessions, etc.  I myself also came from experience with some of the types of CPUs you mentioned before getting involved with the Sitara, so be forewarned that it's a little steeper learning curve at times due to the AM335X's much higher complexity.  The ARM/SOC structure also took me some time to get my head around compared to the lower-complexity "monolithic" MCUs where peripherals and the CPU core are much more tightly woven together.

    Darrin