COM iMX6 Bootloader U-Boot: Difference between revisions

From Wiki-DB
Jump to navigationJump to search
Ageisreiter (talk | contribs)
No edit summary
Ageisreiter (talk | contribs)
Replaced content with "== FAQ == == Downloads == == Enter Bootloader Console == :#Connect DHCOM UART1 (FF UART) via null modem cable to the RS232 Port of your PC :#Start terminal program (e.g. Te..."
Line 14: Line 14:


==U-boot console commands==
==U-boot console commands==
=== SPI Flash ===
'''Only available at iMX25'''
:'''SPI Flash Init'''
:{| class="wikitable"
|''<code>sf probe <bus:cs> [frequency]</code>''
|}
:Example: <code>sf probe 0:1</code>
:Description: Initializes the OnBoard SPI Flash
:'''SPI Flash Read'''
:{| class="wikitable"
|''<code>sf read <SDRAM address> <SPI Flash address> <Bytes></code>''
|}
:Example: <code>sf read 80000000 40000 10000</code>
:Description: Copies 64kByte from SPI Flash address 0x4_0000 to SDRAM address 0x8000_0000
:'''SPI Flash Write'''
:{| class="wikitable"
|''<code>sf write <SDRAM address> <SPI Flash address> <Bytes></code>''
|}
:Example: <code>sf write 80000000 40000 10000</code>
:Description: Copies 64kByte from SDRAM address 0x8000_0000 to SPI Flash address 0x4_0000
:'''SPI Flash Erase'''
:{| class="wikitable"
|''<code>sf erase <SPI Flash address> <Bytes></code>''
|}
:Example: <code>sf erase 40000 10000</code>
: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'''
:{| class="wikitable"
|''<code>lcdinfo</code>''
|}
: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
=== SD/MMC Card ===
:'''DHCOM iMX25:'''
::'''Switch between MicroSD and SD Slot'''
::{| class="wikitable"
|''<code>mmcswitch <Slot number></code>''
|}
::Example: <code>mmcswitch 2</code>
::Description: Switch between SD/MMC Slots: 1 --> SD/MMC Slot, 2 --> MicroSD Slot
::'''Initialize SD/MMC Card'''
::{| class="wikitable"
|''<code>mmcinit</code>''
|}
::Description: Initialize new inserted SD Card
:'''DHCOM AM35:'''
::'''Switch between onboard microSD Slot and external SD - Card interface'''
::{| class="wikitable"
|''<code>mmc switch <Slot number></code>''
|}
::Example: <code>mmc switch 2</code>
::Description: available interfaces
::* 1 --> external SD/MMC Slot
::* 2 --> onboard microSD Slot
::'''Initialize SD/MMC Card'''
::{| class="wikitable"
|''<code>mmc init</code>''
|}
::Description: Initialize new inserted SD Card
=== FAT - Filesystem ===
:'''Show Filesystem information'''
:{| class="wikitable"
|''<code>fatinfo <interface> <device></code>''
|}
:Example: <code>fatinfo mmc 1</code>
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'''
:{| class="wikitable"
|''<code>fatls <interface> <device> <directory></code>''
|}
:Example 1: <code>fatls mmc 1</code>
:Example 2: <code>fatls mmc 1 /folder</code>
:'''Load Files from SD Card to SDRAM'''
:{| class="wikitable"
|''<code>fatload <interface> <device> <SDRAM address> <directory+filename></code>''
|}
:Example 1: <code>fatload mmc 1 80100000 nk.gz</code>
:Example 2: <code>fatload mmc 1 80100000 /folder/nk.gz</code>
=== Ethernet ===
:'''Load File via TFTP to SDRAM'''
:{| class="wikitable"
|''<code>tftp <SDRAM address> <directory+filename></code>''
|}
:Example: <code>tftp 80100000 nk.gz</code>
: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'''
:{| class="wikitable"
|''<code>dhcp <SDRAM address> <directory+filename></code>''
|}
:Example: <code>dhcp 80100000 nk.gz</code>
: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'''
:{| class="wikitable"
|''<code>ping <IP address></code>''
|}
:Example: <code>ping 192.168.55.32</code>
:'''Read PHY register via MII interface'''
:{| class="wikitable"
|''<code>mii dump <PHY address> <PHY register></code>''
|}
:'''DHCOM iMX25:'''
::Example: <code>mii dump 1 0</code>
::Description: Shows PHY control register content.
:'''DHCOM AM35:'''
::Example: <code>mii dump 0 0</code>
::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'''
:{| class="wikitable"
|''<code>printenv</code>''
|}
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'''
:{| class="wikitable"
|''<code>setenv <ENV name> <ENV value></code>''
|}
:Example: <code>setenv ipaddr 192.168.55.2</code>
: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'''
:{| class="wikitable"
|''<code>saveenv</code>''
|}
:'''Erase all ENV variables'''
:{| class="wikitable"
|''<code>eraseenv</code>''
|}
:Note: It is necessary to restart the system after "eraseenv", to restore the default ENV settings.
=== Update ===
:{| class="wikitable"
|''<code>update <type> [filename]</code>''
|}
: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|DHCOM Flash Update]].'''
=== I2C ===
:'''List available devices'''
:{| class="wikitable"
|''<code>i2c probe</code>''
|}
Valid chip addresses: 00 57 6F
0x5F = DHCOM i.MX25 Core Module EEPROM
0x6F = DHCOM i.MX25 Core Module Real Time Clock
:'''Read'''
:{| class="wikitable"
|''<code>i2c md <I2C address> <start address> <end address></code>''
|}
:Example: <code>i2c md 57 10 20</code>
:Description: Reads 16 Bytes from the address 0x10 to address 0x20.
:'''Write'''
:{| class="wikitable"
|''<code>i2c mw <I2C address> <I2C register> <Value> <Bytes></code>''
|}
:Example: <code>i2c mw 57 0 aa 5</code>
:Description: Writes 0xaa to 5 Bytes from the offset 0.
=== OS Boot ===
:'''WinCE'''
:{| class="wikitable"
|''<code>bootwince <Image address> [debug]</code>''
|}
:Example: <code>bootwince 200000</code>
: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".
:{| class="wikitable"
|''<code>bootwince tftp</code>''
|}
: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'''
:{| class="wikitable"
|''<code>bootm <Kernel address> [arg]</code>''
|}
:Note: When booting a Linux kernel,‘arg' can be the address of an initrd image.
=== Unzip ===
:{| class="wikitable"
|''<code>unzip <source address> <destination address></code>''
|}
:Example: <code>unzip 82900000 80100000</code>
:Note: The unzip command is supporting the gzip file format.
=== Bitmap ===
:'''Information'''
:{| class="wikitable"
|''<code>bmp info <Bitmap address></code>''
|}
Image size    : 800 x 480
Bits per pixel: 8
Compression  : 0
:'''Display'''
:{| class="wikitable"
|'' <code>bmp display <Bitmap SDRAM address> [x y]</code>''
|}
=== Memory ===
:'''Display'''
:{| class="wikitable"
|''<code>md[.b, .w, .l] <address> [count]</code>''
|}
:Example: <code>md.b 80100000 100</code>
:'''Write'''
:{| class="wikitable"
|''<code> mw[.b, .w, .l] <address> <value> [count]</code>''
|}
:Example: <code>mw.b 80100000 aa 100</code>
:Description: Writes the value 0xaa to the next 0x100 bytes from the address 0x8010_0000.
:'''Copy'''
:{| class="wikitable"
|''<code> cp[.b, .w, .l] <source> <destination> <count></code>''
|}
=== Show DHCOM Settings ===
:{| class="wikitable"
|''<code> settings </code>''
|}
: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

Revision as of 09:37, 26 May 2014

FAQ

Downloads

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: 115200
    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