OMAP35x and AM/DM37x Initialization

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search
Translate this page to   

This page provides tips on debugging initialization and bring-up issues with the AM37x devices.

Contents

Power sequencing

Boot sequence

Tracing vectors

Here are some examples on how to interpret the tracing vectors:

Tracing Example 1

SYSBOOT = 001111 (boot from NAND,USB,UART3,MMC1) After failed boot, cold reset tracing vector reads:


Comparing this to the tracing vector table in the Initialization Chapter of the TRM, we see that the following bits are set:


Bit Meaning Comment
0 Reset Reset occurred
1 ROM code C main ROM code hit the main() function in the C code
2 ROM code runs after the cold reset  
3 Booting started  
4 Memory booting started Indicates that the ROM attempted to boot from a memory source
5 No more booting device to check Indicates that the ROM exhaused all boot sources
6 Peripheral booting started Indicates that the ROM attempted to boot from a peripheral source
7 Booting message "change device" Indicates ROM moved to the next booting source in the sequence
12 Device initialized Indicates that the peripheral device was initialized
13 ASIC-ID sent ID was sent as part of the UART boot process
16 Peripheral booting failed Indicates boot failed (in this case, UART boot, since it was the only peripheral boot source)
17 UART Indicates UART booting was attempted
18 USB Indicates booting from USB was attempted
34 NAND Indicates booting from NAND was attempted
38 MMC/SD1 Indicates booting from MMCSD1 was attempted
49-51 NAND boot Indicates NAND booting was attempted from the first 4 blocks of the NAND.

Tracing Example 2

SYSBOOT = 110001 (boot from USB,UART,MMC1,MMC2) After failed boot, cold reset tracing vector reads:


Comparing this to the tracing vector table in the Initialization Chapter of the TRM, we see that the following bits are set:


Bit Meaning Comment
0 Reset Reset occurred
1 ROM code C main ROM code hit the main() function in the C code
2 ROM code runs after the cold reset  
3 Booting started  
4 Memory booting started Indicates that the ROM attempted to boot from a memory source
5 No more booting device to check Indicates that the ROM exhaused all boot sources
6 Peripheral booting started Indicates that the ROM attempted to boot from a peripheral source
7 Booting message "change device" Indicates that ROM code moved on to another booting source
12  Device initialized Indicates that the peripheral device was initialized
13 ASIC-ID sent ID was sent as part of the UART boot process
16 Peripheral booting failed Indicates one of the peripheral booting sources faied (either USB or UART in this case)
17 UART Indicates UART booting was attempted
18 Peripheral boot Indicates USB booting was attempted
37  MMC/SD2 Indicates booting from MMCSD2 was attempted
38  MMC/SD1 Indicates booting from MMCSD1 was attempted

NAND Booting

For those needed help in performing NAND booting on their custom boards, please refer to the OMAP Flashing wiki

UART/USB Booting

Here is some additional information on the ASIC ID Structure used during UART3 and USB booting. Only the information for Public general purpose (GP) devices is shown here. The ASIC ID is 58 bytes on UART and 69 Bytes on USB. Note that the Checksum subblock is not transmitted over the UART, only over USB.



ASIC ID Item Size (bytes) Description
Items 1 Number of sub blocks
ID Subblock 7 Device identification information
Reserved for non-GP devices 4 see Reserved1
2nd ID Subblock 23 ROM Identification data
Reserved for non-GP devices 23 see Reserved2
Checksum subblock 11 CRC


Items

Offset Size (bytes) Value
00h 1 05h - number of sub blocks USB
04h - number of sub blocks UART



ID Subblock

Offset Size (bytes) Value
01h 1 01h - sub block ID
02h 1 05h - sub block size
03h 1 01h - fixed value
04h 2 34h, 30h - OMAP chip version for OMAP35x
36h, 30h - OMAP chip version for AM/DM37x
06h 1 07h - ASCII bell
07h 1 XXh - ROM revision



Reserved1

Offset Size (bytes) Value
08h 1 13h - sub block ID
09h 1 02h - sub block size
0Ah 1 01h - fixed value
0Bh 1 00h - GP device



2nd ID Sub block

Offset Size (bytes) Value
0Ch 1 12h - sub block ID
0Dh 1 15h - sub block size
0Eh 1 01h - fixed value
0Fh 20h 00h - GP device



Reserved2

Offset Size (bytes) Value
23h 1 14h - sub block ID
24h 1 15h - sub block size
25h 1 01h - fixed value
26h 20 00h ... - GP device



Checksum Subblock

Offset Size (bytes) Value
3Ah 1 15h - sub block ID
3Bh 1 09h - sub block size
3Ch 1 01h - fixed value
3Dh 4 XXXXXXXXh - ROM CRC
41h 4 00000000h

ASIC ID output examples

AM-DM37x ASIC ID output.JPG OMAP35x ASIC ID output.JPG


MMC booting

E2e.jpg For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article OMAP35x and AM/DM37x Initialization here.
Hyperlink blue.png Links
ARM Microcontroller MCU ARM Processor Digital Media Processor Digital Signal Processing Microcontroller MCU Multi Core Processor
Ultra Low Power DSP 8 bit Microcontroller MCU 16 bit Microcontroller MCU 32 bit Microcontroller MCU

Leave a Comment
Personal tools
Namespaces
Variants
Actions
Navigation
Print/export
Toolbox