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.

CCS/AM3352: Unabled to access to Tracing vectors

Part Number: AM3352

Tool/software: Code Composer Studio

I'm trying to bringup my board using AM3352 and Blackhawk USB100v2 JTAG Emulator.

I followed the below article and I can read some data such as device_id and control_status but I can't read tracing vectors.

The DSS script occured an error, "Error reading memory: Errors during memory.readData(): Address: 0x4030ce40 Error: 0x1".

How can I fix this problem?

Addtionally how can I read memory map using a DSS script?

 

Analyzing Boot Issues with CCS and JTAG

Using a DSS script for CCS you can easily parse some of the important register details into easily digestible info.

  1. Download am335x-boot.dss.
  2. Launch CCS.
  3. Create an appropriate target configuration file for connecting to your board.
    • File -> New -> Target Configuration File
    • Supply a name/location for the file.
    • View -> Target Configurations to see the available target configurations (yours should now be among them!).
    • Double-click your file in the Target Configurations panel to open it for editing.
    • Select your emulator and processor.  Save.
  4. Launch the debugger, but do not connect to any CPUs.
    • In the Target Configurations window, right-click on your ccxml file and select "Launch Selected Configuration"
  5. Launch the scripting console by going to View -> Scripting Console.
  6. Load am335x-boot.dss in the scripting console by executing "loadJSFile <path-to-dss-file>/am335x-boot.dss".
  7. It will generate a am335x-boot-analysis_yyyy-mm-dd_hhmmss.txt file on your desktop that can be used for quick analysis.

 

  • Taewon Kim said:
    I followed the below article and I can read some data such as device_id and control_status but I can't read tracing vectors.

    The DSS script occured an error, "Error reading memory: Errors during memory.readData(): Address: 0x4030ce40 Error: 0x1".

    Using CCS 7.1.0.00016 was able to successfully run the am335x-boot.dss script on a AM3352 connected with a Blackhawk USM560-M. The AM3352 had booted from MMC0.
    Taewon Kim said:
    How can I fix this problem?

    Addtionally how can I read memory map using a DSS script?

    The 0x4030ce40 address for which your error is reported is in the "L3 OCMC0" SRAM. Providing the clocks are enabled for the L3 OCMC0 the DSS script should be able to read that memory. I also checked on a working board that even if the boot ROM can't find a valid image to boot from, the am335x-boot.dss DSS script can still read from the L3 OCMC0.

    Since you are bringing up a board maybe there is a fault with the crystal on the Master Oscillator (CLK_M_OSC), or maybe not all of the voltage rails are correct.

    Also, what is your AM3352 set to boot a program?

    I found that if use the CCS debugger to change the CM_PER_OCMCRAM_CLKCTRL register to disable the clocks for the OCMC clocks that could repeat your error about the am335x-boot.dss DSS script  being unable to read address 0x4030ce40. Therefore, there is the possibility for the booted program to change the CM_PER_OCMCRAM_CLKCTRL register to disable the L3 OCMC0, but I think a hardware problem is more likely in your case.

  • Thanks for reply, Chester.

    Chester Gillon said:

    Also, what is your AM3352 set to boot a program?

    I found that if use the CCS debugger to change the CM_PER_OCMCRAM_CLKCTRL register to disable the clocks for the OCMC clocks that could repeat your error about the am335x-boot.dss DSS script  being unable to read address 0x4030ce40. Therefore, there is the possibility for the booted program to change the CM_PER_OCMCRAM_CLKCTRL register to disable the L3 OCMC0, but I think a hardware problem is more likely in your case.

     
    I read the CM_PER_OCMCRAM_CLKCTRL register, the value was 0x30000. The OCMC0 clock was disabled as you mentioned. I'd writen 0x2 to  the CM_PER_OCMCRAM_CLKCTRL register and tried to read tracing vectors, I successfully read the registers without errors. I know this is not normal condition but I have meaningful result from tracing vectors as below.
    ROM: Current tracing vector (0x4030CE40), word 1 = 0x9cd3f872
         Bit 15 : [Peripheral Boot] Peripheral booting failed
     
    ROM: Current tracing vector (0x4030CE44), word 1 = 0xec67d0d0
         Bit 21 : [Memory & Peripheral Boot] Image authentication failed
     
    ROM: Current tracing vector (0x4030CE40), word 1 = 0x760eb51f
    ROM: Cold reset tracing vector, word 1 = 0x96528fdd
         Bit 15 : [Peripheral Boot] Peripheral booting failed
     
    ROM: Cold reset tracing vector, word 1 = 0x96528fdd
         Bit 28 : [Memory & Peripheral Boot] Authentication procedure failed
    ROM: Cold reset tracing vector, word 1 = 0x3f773085
         Bit 24 : Peripheral booting device NULL
    I also attached the entire result file as below.
     
    am335x-boot-analysis_2017-04-19_194807.txt
    CONTROL: device_id = 0x2b94402e
      * AM335x family
      * Silicon Revision 2.1
    
    PRM_DEVICE: PRM_RSTST = 0x00000001
      * Bit 0 : GLOBAL_COLD_RST
    
    CONTROL: control_status = 0x00400336
      * SYSBOOT[15:14] = 01b (24 MHz)
      * SYSBOOT[11:10] = 00b No GPMC CS0 addr/data muxing
      * Device Type = General Purpose (GP)
      * SYSBOOT[7:6] = 00b MII (EMAC boot modes only)
      * SYSBOOT[5] = 1 CLKOUT1 enabled
      * Boot Sequence : SPI0 -> MMC0 -> UART0 -> EMAC1
    
    ROM: Current tracing vector, word 1 = 0x9cd3f872
      * Bit 1  : [General] Entered main function
      * Bit 4  : [Memory Boot] Memory booting started
      * Bit 5  : [Peripheral Boot] Peripheral booting started
      * Bit 6  : [Boot] Booting loop reached last device
      * Bit 11 : [Peripheral Boot] Reserved
      * Bit 12 : [Peripheral Boot] Device initialized
      * Bit 13 : [Peripheral Boot] ASIC ID sent
      * Bit 14 : [Peripheral Boot] Image received
      * Bit 15 : [Peripheral Boot] Peripheral booting failed
      * Bit 16 : [Peripheral Boot] Booting Message not received (timeout)
      * Bit 17 : [Peripheral Boot] Image size not received (timeout)
      * Bit 20 : [Configuration Header] CHSETTINGS found
      * Bit 22 : [Configuration Header] CHRAM executed
      * Bit 23 : [Configuration Header] CHFLASH executed
      * Bit 26 : Reserved
      * Bit 27 : Reserved
      * Bit 28 : Reserved
      * Bit 31 : Reserved
    
    ROM: Current tracing vector, word 1 = 0xec67d0d0
      * Bit 4  : [USB] USB connect
      * Bit 6  : [USB] USB VBUS valid
      * Bit 7  : [USB] USB session valid
      * Bit 12 : [Memory Boot] Memory booting trial 0
      * Bit 14 : [Memory Boot] Memory booting trial 2
      * Bit 15 : [Memory Boot] Memory booting trial 3
      * Bit 16 : [Memory Boot] Execute GP image
      * Bit 17 : [Peripheral Boot] Start authentication of peripheral boot image
      * Bit 18 : [Memory & Peripheral Boot] Jumping to Initial SW
      * Bit 21 : [Memory & Peripheral Boot] Image authentication failed
      * Bit 22 : [Memory & Peripheral Boot] Analyzing SpeedUp
      * Bit 26 : [Memory & Peripheral Boot] Reserved
      * Bit 27 : [Memory & Peripheral Boot] Reserved
      * Bit 29 : Reserved
      * Bit 30 : Reserved
      * Bit 31 : Reserved
    
    ROM: Current tracing vector, word 1 = 0x760eb51f
      * Bit 0  : [Memory Boot] Memory booting device NULL
      * Bit 1  : [Memory Boot] Memory booting device XIP
      * Bit 2  : [Memory Boot] Memory booting device XIPWAIT
      * Bit 3  : [Memory Boot] Memory booting device NAND
      * Bit 4  : [Memory Boot] Reserved
      * Bit 8  : Reserved
      * Bit 10 : [Memory Boot] Reserved
      * Bit 12 : Memory booting device SPI
      * Bit 13 : Reserved
      * Bit 15 : Reserved
      * Bit 17 : Reserved
      * Bit 18 : [Peripheral Boot] Reserved
      * Bit 19 : Reserved
      * Bit 25 : Reserved
      * Bit 26 : Reserved
      * Bit 28 : Reserved
      * Bit 29 : Reserved
      * Bit 30 : Reserved
    
    ROM: Current copy of PRM_RSTST = 0xdef8be7c
      * Bit 4 : WDT1_RST
      * Bit 5 : EXTERNAL_WARM_RST
    
    ROM: Cold reset tracing vector, word 1 = 0x8fcbbdde
      * Bit 1  : [General] Entered main function
      * Bit 2  : [General] Running after the cold reset
      * Bit 3  : [Boot] Main booting routine entered
      * Bit 4  : [Memory Boot] Memory booting started
      * Bit 6  : [Boot] Booting loop reached last device
      * Bit 7  : [Boot] GP header found
      * Bit 8  : [Boot] Reserved
      * Bit 10 : [Peripheral Boot] Reserved
      * Bit 11 : [Peripheral Boot] Reserved
      * Bit 12 : [Peripheral Boot] Device initialized
      * Bit 13 : [Peripheral Boot] ASIC ID sent
      * Bit 15 : [Peripheral Boot] Peripheral booting failed
      * Bit 16 : [Peripheral Boot] Booting Message not received (timeout)
      * Bit 17 : [Peripheral Boot] Image size not received (timeout)
      * Bit 19 : Reserved
      * Bit 22 : [Configuration Header] CHRAM executed
      * Bit 23 : [Configuration Header] CHFLASH executed
      * Bit 24 : [Configuration Header] CHMMCSD clocks executed
      * Bit 25 : [Configuration Header] CHMMCSD bus width executed
      * Bit 26 : Reserved
      * Bit 27 : Reserved
      * Bit 31 : Reserved
    
    ROM: Cold reset tracing vector, word 1 = 0x96528fdd
      * Bit 0  : [Companion chip] Reserved
      * Bit 2  : [Companion chip] Reserved
      * Bit 3  : [Companion chip] Reserved
      * Bit 4  : [USB] USB connect
      * Bit 6  : [USB] USB VBUS valid
      * Bit 7  : [USB] USB session valid
      * Bit 8  : Reserved
      * Bit 9  : Reserved
      * Bit 10 : Reserved
      * Bit 11 : Reserved
      * Bit 15 : [Memory Boot] Memory booting trial 3
      * Bit 17 : [Peripheral Boot] Start authentication of peripheral boot image
      * Bit 20 : [Memory & Peripheral Boot] Start image authentication
      * Bit 22 : [Memory & Peripheral Boot] Analyzing SpeedUp
      * Bit 25 : [Memory & Peripheral Boot] Reserved
      * Bit 26 : [Memory & Peripheral Boot] Reserved
      * Bit 28 : [Memory & Peripheral Boot] Authentication procedure failed
      * Bit 31 : Reserved
    
    ROM: Cold reset tracing vector, word 1 = 0x3f773085
      * Bit 0  : [Memory Boot] Memory booting device NULL
      * Bit 2  : [Memory Boot] Memory booting device XIPWAIT
      * Bit 7  : [Memory Boot] Memory booting device MMCSD1
      * Bit 12 : Memory booting device SPI
      * Bit 13 : Reserved
      * Bit 16 : Peripheral booting device UART0
      * Bit 17 : Reserved
      * Bit 18 : [Peripheral Boot] Reserved
      * Bit 20 : [Peripheral Boot] Peripheral booting device USB
      * Bit 21 : [Peripheral Boot] Reserved
      * Bit 22 : [Peripheral Boot] Peripheral booting device GPGMAC0
      * Bit 24 : Peripheral booting device NULL
      * Bit 25 : Reserved
      * Bit 26 : Reserved
      * Bit 27 : Reserved
      * Bit 28 : Reserved
      * Bit 29 : Reserved
    
     
     
    I use am335x-evm-linux-03.03.00.04.img from this page, http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html,
    and I don't use the SPI ROM image as a boot source.
    Could you give me any suggention?
     
  • Taewon Kim said:
    The OCMC0 clock was disabled as you mentioned. I'd writen 0x2 to  the CM_PER_OCMCRAM_CLKCTRL register and tried to read tracing vectors, I successfully read the registers without errors. I know this is not normal condition but I have meaningful result from tracing vectors as below.

    Looking at the tracing vectors from OCMC there are numerous Reserved bits set. I think that because you had to write to the CM_PER_OCMCRAM_CLKCTRL register to enable the OCMC, that the tracing vectors read may not be valid.

    Suggest you post on the Sitara Processors Forum as the device experts there should be able to offer better advice.

    [I don't have any personal experience of debugging board bring-up issues]