COM iMX25 Bootloader U-Boot
From Wiki-DB
Jump to navigationJump to search
FAQ
- Q: Entering Bootloader console is not possible?
- A: Up to U-Boot version V1.14.0.0 it was possible to enter the bootloader console by pressing any key (e.g. "Enter"). Since version V1.15.0.0 it is not possible to enter to the bootloader console by pressing a various key (e.g. "Enter") anymore. 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.
- You can configure teraterm to send "DEL" when the delete key or the backspace key is pressed by clicking through the menu to
- 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: Update from U-Boot V1.11.2.0 to V1.14.0.0 or higher?
- A: Follow the six steps:
- Copy new U-Boot binary to MicroSD Card
- Insert MicroSD Card to core module and connect DHCOM UART1 to host PC
- Start core module and enter bootloader console by pressing "del" during start
- Call the command "nand erase c0000 bffff" and press enter
- Call the command "update bootloader" and press enter
- Restart the core module. The bootloader is updated now.
- Q: Update from U-Boot V1.5.0.0 or V1.7.0.0 to V1.14.0.0 or higher?
- A: Follow the sixsteps:
- Copy new U-Boot binary, splash bitmap, new settings binary and DHupdate.ini file to MicroSD Card
- DHupdate.ini file [update] content:
- splash *.bmp
- settings *.bin
- DHupdate.ini file [update] content:
- Insert MicroSD Card to core module and connect DHCOM UART1 to host PC
- Start core module and enter bootloader console by pressing "del" during start
- Call the command "nand erase 80000 3ffff" and press enter
- Call the command "update bootloader u-boot.bin" and press enter
- After Update restart the core module and wait until bootloader has updateted splashimage and settings block (to prevent update repetition delete the update files from MicroSD Card after a successful update)
- Note: It is neccessary to flash the OS image again, if OS image was already flashed before bootloader update.
- Copy new U-Boot binary, splash bitmap, new settings binary and DHupdate.ini file to MicroSD Card
Changelog
Downloads
Please have a look at the iMX25 Downloads section.
Enter Bootloader Console
- Connect DHCOM UART1 via null modem cable to the Host PC
- Start terminal program (recommended terminal program: TeraTerm) on the Host PC with the following settings:
- Baud rate: 38400
- Data: 8 bit
- Parity: none
- Stop bits: 1 bit
- Flow control: none
- Press "del" on the Host PC during Core Module system start to enter bootloader console
U-boot console commands
NAND-Flash
- 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
lcdinfo
- 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
GPIO's
- Show DHCOM GPIO settings
gpioinfo
- 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
SD/MMC Card
- DHCOM iMX25:
- Switch between MicroSD and SD Slot
mmcswitch <Slot number>
- Example:
mmcswitch 2
- Example:
- Description: Switch between SD/MMC Slots: 1 --> SD/MMC Slot, 2 --> MicroSD Slot
- Initialize SD/MMC Card
mmcinit
- Description: Initialize new inserted SD Card
- DHCOM AM35:
- Switch between onboard microSD Slot and external SD - Card interface
mmc switch <Slot number>
- Example:
mmc switch 2
- Example:
- Description: available interfaces
- 1 --> external SD/MMC Slot
- 2 --> onboard microSD Slot
- Description: available interfaces
- 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
Ethernet
- 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
ping <IP address>
- Example:
ping 192.168.55.32
- Read PHY register via MII interface
mii dump <PHY address> <PHY register>
- DHCOM iMX25:
- Example:
mii dump 1 0
- Example:
- Description: Shows PHY control register content.
- DHCOM AM35:
- Example:
mii dump 0 0
- Example:
- 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.
Environment
- Show ENV variables
printenv
bootdelay=0 baudrate=38400 ipaddr=192.168.55.230 serverip=192.168.55.36 gatewayip=192.168.55.36 netmask=255.255.255.0 frias=5 kernel=uImage bootargs=console=ttymxc0,115200 root=/dev/mmcblk0p2 nandbootwince=update;bootwince 00200000 splashimage=0x000c0000 save_ENV_to_flash=setenv ENVinFlash 1; saveenv ENVinFlash=1 ethaddr=00:04:a3:34:b6:0d ethact=FEC0 winceimagetype=nk.gz winceimagesize=00ba55ee loadaddr=00200000 bootcmd=run nandbootwince filesize=212050 Environment size: 449/262140 bytes
- Set ENV variables
setenv <ENV name> <ENV value>
- Example:
setenv ipaddr 192.168.55.2
- 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
saveenv
- Erase all ENV variables
eraseenv
- Note: It is necessary to restart the system after "eraseenv", to restore the default ENV settings.
Update
update <type> [filename]
- Type:
- 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.
I2C
- 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
- Read
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.
- Write
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
- WinCE
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.
- Linux
bootm <Kernel address> [arg]
- Note: When booting a Linux kernel,‘arg' can be the address of an initrd image.
Unzip
unzip <source address> <destination address>
- Example:
unzip 82900000 80100000
- Note: The unzip command is supporting the gzip file format.
Bitmap
- Information
bmp info <Bitmap address>
Image size : 800 x 480 Bits per pixel: 8 Compression : 0
- Display
bmp display <Bitmap SDRAM address> [x y]
Memory
- Display
md[.b, .w, .l] <address> [count]
- Example:
md.b 80100000 100
- Write
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.
- Copy
cp[.b, .w, .l] <source> <destination> <count>
Show DHCOM Settings
settings
- Example:
VALIDATION_ID: "DH" DISPLAY_ID: 0x00 LENGTH: 0x2c X_RESOLUTION: 800 pixel Y_RESOLUTION: 480 pixel PIXEL_CLOCK: 22200 kHz LCD_CONFIG_FLAGS: 0x3e3 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 HW_CONFIG_FLAGS: 0x001e
NAND Flash allocation
- Linux
Bootloader 0x0000_0000 - 0x000B_FFFF Internal 0x000C_0000 - 0x0027_FFFF Linux Kernel 0x0028_0000 - 0x005F_FFFF Flashdisk 0x0060_0000 - ...
- WinCE
Bootloader 0x0000_0000 - 0x000B_FFFF Internal 0x000C_0000 - 0x0027_FFFF WinCE Image 0x0028_0000 - 0x01FF_FFFF Flashdisk 0x0200_0000 - ...