COM AM35 Bootloader U-Boot

From Wiki-DB
Jump to navigation Jump to search


Q: I am not able to enter the bootloader console!
A: It is not possible to enter to the bootloader console by pressing a various key (e.g. "Enter") on your keyboard. You have to send "DEL" (ASCII 0x7F) to the device. We recommend you to use the terminal program teraterm if you are working on windows and to use kermit or minicom if you use linux on your pc.
You can configure teraterm to send "DEL" when the delete key or the backspace key is pressed by clicking through the menu to Setup->Keyboard-Setup and enable the required checkbox.
Kermit is sending a "DEL" if you hit the backspace key.
Minicom is able to send "DEL" when you hit the backspace key if you configure minicom to do that within a terminal window:
$ minicom -s
navigate to Screen and keyboard
press "B"
Q: The automatic update is not executed before the operating system boots!
A: Check if the command update auto is included in the bootloader environment variable bootcmd or in a script-variable which is called within bootcmd before bootm .
Q: The automatic update does not work with my desired update-media!
A: The command update auto can be configured with flags within the DHCOM settings.bin block. It is possible to disable a interface for the update mechanism. You can run a update from a disabled interface if you use the command update without the argument auto .
Q: Which USB Port should i use to run updates with the bootloader?
A: You can use both of the USB Host Interfaces. We can support the USB OTG Interface on request. If you got a combination of a COM AM35 and DHeva01 428-100 or a DHeva01 428-200 you should use USB Host Port 2.


Please have a look at the AM35x Downloads section.

Enter Bootloader Console

  1. Connect DHCOM UART1 (FF UART) via null modem cable to the RS232 Port of your PC
  2. Start terminal program (e.g. Tera Term) on the Host PC with the following settings:
    Baud rate: 38400
    Data: 8 bit
    Parity: none
    Stop bits: 1 bit
    Flow control: none
  3. Press "del" on the Host PC during Core Module system start to enter bootloader console

U-boot console commands


Read from NAND-Flash Device
nand read <SDRAM address> <NAND Flash address> <Bytes>
Example: nand read 80000000 400000 b40000
Description: Copies 11,25MByte from NAND Flash address 0x40_0000 to SDRAM address 0x8000_0000
Erase NAND-Flash blocks
nand erase <Block base address> <Bytes>
Example: nand erase 400000 40000
Description: Deletes NAND Flash content from address 0x40_0000 to 0x43_FFFF
Note: The Bytes information needs to be block size aligned!
Write to NAND-Flash Device
nand write <SDRAM address> <NAND-Flash address> <Bytes>
Example: nand write 80000000 400000 b40000
Description: Copies 11,25MByte from SDRAM address 0x8000_0000 to NAND Flash address 0x40_0000
Note: The Bytes information needs to be page size aligned!
Show bad NAND-Flash blocks
nand bad
Description: Shows the bad NAND-Flash blocks.
Show NAND-Flash content
nand dump <NAND-Flash address>
Example: nand dump 400000
Description: Shows the content of the specified NAND-Flash block

SPI Flash

Only available at iMX25

SPI Flash Init
sf probe <bus:cs> [frequency]
Example: sf probe 0:1
Description: Initializes the OnBoard SPI Flash
SPI Flash Read
sf read <SDRAM address> <SPI Flash address> <Bytes>
Example: sf read 80000000 40000 10000
Description: Copies 64kByte from SPI Flash address 0x4_0000 to SDRAM address 0x8000_0000
SPI Flash Write
sf write <SDRAM address> <SPI Flash address> <Bytes>
Example: sf write 80000000 40000 10000
Description: Copies 64kByte from SDRAM address 0x8000_0000 to SPI Flash address 0x4_0000
SPI Flash Erase
sf erase <SPI Flash address> <Bytes>
Example: sf erase 40000 10000
Description: Deletes SPI Flash content from address 0x4_0000 to 0x4_FFFF
Note: The Bytes information needs to be sector size aligned!

LCD contoller

Show LCD controller settings
Example output:
 Display Resolution: 800 x 480 pixels
 Display Type:       Active Color Display
 Pixel Clock:        22 MHz
 Bits per Pixel:     16 Bits/Pixel
 Pixel Polarity:     Active High
 VSYNC Polarity:     Active Low
 HSYNC Polarity:     Active Low
 Clock Polarity:     Pos. Edge
 Output En Polarity: Active High
 HSYNC Puls Width:   64 Clock Cycles
 HSYNC Back Porch:   86 Clock Cycles
 HSYNC Front Porch:  42 Clock Cycles
 VSYNC Puls Width:   2 Line Cycles
 VSYNC Back Porch:   33 Line Cycles
 VSYNC Front Porch:  10 Line Cycles


Show DHCOM GPIO settings
Example output:
 GPIO_A: Direction = Input
         State     = 0
 GPIO_B: Direction = Input
         State     = 0
 GPIO_C: Direction = Input
         State     = 0
 GPIO_D: Direction = Input
         State     = 0
 GPIO_E: Direction = Input
         State     = 1
 GPIO_F: Direction = Input
         State     = 1
 GPIO_G: Direction = Output
         State     = 1
 GPIO_H: Direction = Input
         State     = 1
 GPIO_I: Direction = Input
         State     = 1
 GPIO_J: Direction = Input
         State     = 1
 GPIO_K: Direction = Input
         State     = 0


Switch between MicroSD and SD Slot
mmcswitch <Slot number>
Example: mmcswitch 2
Description: Switch between SD/MMC Slots: 1 --> SD/MMC Slot, 2 --> MicroSD Slot
Initialize SD/MMC Card
Description: Initialize new inserted SD Card

Switch between onboard microSD Slot and external SD - Card interface
mmc switch <Slot number>
Example: mmc switch 2
Description: available interfaces
  • 1 --> external SD/MMC Slot
  • 2 --> onboard microSD Slot
Initialize SD/MMC Card
mmc init
Description: Initialize new inserted SD Card

FAT - Filesystem

Show Filesystem information
fatinfo <interface> <device>
Example: fatinfo mmc 1
Interface: MMC
 Device 1: Vendor: Man 094150 Snr 266e068c Rev: 1.0 Prod: AF UD
           Type: Removable Hard Disk
           Capacity: 121.2 MB = 0.1 GB (248320 x 512)
 Partition 1: Filesystem: FAT16 "NO NAME    "
List files
fatls <interface> <device> <directory>
Example 1: fatls mmc 1
Example 2: fatls mmc 1 /folder
Load Files from SD Card to SDRAM
fatload <interface> <device> <SDRAM address> <directory+filename>
Example 1: fatload mmc 1 80100000 nk.gz
Example 2: fatload mmc 1 80100000 /folder/nk.gz


Load File via TFTP to SDRAM
tftp <SDRAM address> <directory+filename>
Example: tftp 80100000 nk.gz
Example TFTP Server: "Winagents TFTP Server Manager"
Note: For TFTP download it is necessary to config the ENV variables "ipaddr" and "serverip"
Load File via TFTP to SDRAM using DHCP
dhcp <SDRAM address> <directory+filename>
Example: dhcp 80100000 nk.gz
Example TFTP Server: "Winagents TFTP Server Manager"
Note: It is necessary to config the ENV variable "serverip" with the ip-address of your TFTP-Server
ping <IP address>
Example: ping
Read PHY register via MII interface
mii dump <PHY address> <PHY register>
Example: mii dump 1 0
Description: Shows PHY control register content.
Example: mii dump 0 0
Remark: The standard MII registers 0-5 are supported by this command. When you are working with a DHCOM AM35 module only PHY address "0" is allowed.


Show ENV variables
bootargs=console=ttymxc0,115200 root=/dev/mmcblk0p2
nandbootwince=update;bootwince 00200000
save_ENV_to_flash=setenv ENVinFlash 1; saveenv
bootcmd=run nandbootwince
Environment size: 449/262140 bytes
Set ENV variables
setenv <ENV name> <ENV value>
Example: setenv ipaddr
Note: If you need to edit "bootcmd" it is necessary to insert ";" between the unique commands. You can enter ";" at the command line with "\;".
Save ENV variables
Erase all ENV variables
Note: It is necessary to restart the system after "eraseenv", to restore the default ENV settings.


update <type> [filename]
auto = Start the automatic update with a DHupdate.ini file.
wince = WinCE image update (default file names nk.gz or nk.bin) + ENV update
linux = Linux image update (default file name uImage) + ENV update (default script file name uImage.env)
Remark:The ENV update script must have the same filename as the linux-kernel with the ending ".env". It is possible to update the environment of u-boot without a kernel update by inserting the filename of the ENV script.
rootfs = Create or replace the root-filesystem in the NAND-Flash (default file name fsroot.tar.gz). The rootfs update has to be the last item (or second to last item if you insert the reset command) in the DHupdate.ini file.
Remark: To run a "NAND-Flash root-filesystem update" you need a special linux-kernel which must have the filename "uImage.update" and must be available in the same diretory on your update-media as the DHupdate.ini file.
flash = Complete flash image update
bootloader = Bootloader update (default file name u-boot.bin)
splash = Bootbitmap update (default file name splash.bmp)
settings = Settings block update (default file name settings.bin)
eeprom = Display-Settings block update (default file name eeprom.bin)
reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file.
Remark: Be careful with the reset command. You can easily build a endless update loop by mistake.
For further information look at DHCOM Flash Update.


List available devices
i2c probe
Valid chip addresses: 00 57 6F
0x5F = DHCOM i.MX25 Core Module EEPROM
0x6F = DHCOM i.MX25 Core Module Real Time Clock
i2c md <I2C address> <start address> <end address>
Example: i2c md 57 10 20
Description: Reads 16 Bytes from the address 0x10 to address 0x20.
i2c mw <I2C address> <I2C register> <Value> <Bytes>
Example: i2c mw 57 0 aa 5
Description: Writes 0xaa to 5 Bytes from the offset 0.

OS Boot

bootwince <Image address> [debug]
Example: bootwince 200000
Description: The address 0x20_0000 specifies NAND Flash image address. The image is loaded from NAND flash to SDRAM. Next to that u-boot starts WinCE. The "debug" option make sure that the image wouldn't be started after uncompressing.
Note: The Image address could also be an SDRAM address. But it is necessary to copy the Image (via tftp or nand flash commands) to the SDRAM before calling "bootwince".
bootwince tftp
Note: The ENV variables "loadaddr" and "bootfile" needs to be set before calling the command. For *.gz image types the "loadaddr" should be set to 0x8290_0000 and for *.bin images the address should be 0x8100_0000.
bootm <Kernel address> [arg]
Note: When booting a Linux kernel,‘arg' can be the address of an initrd image.


unzip <source address> <destination address>
Example: unzip 82900000 80100000
Note: The unzip command is supporting the gzip file format.


bmp info <Bitmap address>
Image size    : 800 x 480
Bits per pixel: 8
Compression   : 0
bmp display <Bitmap SDRAM address> [x y]


md[.b, .w, .l] <address> [count]
Example: md.b 80100000 100
mw[.b, .w, .l] <address> <value> [count]
Example: mw.b 80100000 aa 100
Description: Writes the value 0xaa to the next 0x100 bytes from the address 0x8010_0000.
cp[.b, .w, .l] <source> <destination> <count>

Show DHCOM Settings

 DISPLAY_ID:       0x00
 LENGTH:           0x2c
 X_RESOLUTION:     800 pixel
 Y_RESOLUTION:     480 pixel
 PIXEL_CLOCK:      22200 kHz
 HSW:              64 pixel clocks
 VSW:              2 line clocks
 HFP:              42 pixel clocks
 HBP:              86 pixel clocks
 VFP:              10 line clocks
 VBP:              33 line clocks
 DATALINES:        16
 ACB:              0
 ACBI:             0
 GPIO_DIR:         0x01ff
 GPIO_STATE:       0x0000

How to do Updates

How to create a settings.bin file