DHCOM iMX25-D2: Difference between revisions

From Wiki-DB
Jump to navigationJump to search
Ageisreiter (talk | contribs)
Ageisreiter (talk | contribs)
 
(77 intermediate revisions by 7 users not shown)
Line 1: Line 1:
__TOC__
{|
|
|
|-
|__TOC__
|[[Image:COMiMX25.png|600px|COM iMX25-D2]]
|}


== Hardware ==
* [[COM iMX25 Hardware|Hardware]]


= Bootloader U-Boot =
== Product Change Notifications (PCN) ==
== Console commands ==
* [[media:PCN_iMX25_R01_2017-10-02.pdf|PCN_iMX25_R01_2017-10-02.pdf (Qualification of additional NAND Flash)]]
=== NAND Flash ===
* [[media:PCN_DHCOM-iMX25-004_R01_2021-04-23.pdf|PCN_DHCOM-iMX25-004_R01_2021-04-23.pdf (Qualification of additional NAND Flash)]]
* [[media:PCN_DHCOM-iMX25-005_R01_2021-12-23.pdf|PCN_DHCOM-iMX25-005_R01_2021-12-23.pdf (microSD socket EOL)]]


'''Nand Flash Read'''
{| class="wikitable" | style="width: 100%; color: #000000; background: #f3f3f3;" valign="top" |
|-
| style="width: 50%; background: #076b8d; border: 0pt;" |
| style="width: 50%; background: #076b8d; border: 0pt;" |
|-
|valign="top" style="border: 0pt;" |
* Freescale ARM9 i.MX25 @ 400 MHz
* 0 - 2048 MB NAND-FLASH
* 64 - 128 MB DDR2-266
* MicroSD Sockel onboard
* SD/MMC card interface
* LC-Displaycontroller, 16 Bit colour depth, 800 x 600 Pixel
* Touchcontroller onboard, 4-wire resistive
|valign="top" style="border: 0pt;" |
* Ethernet 10/100 MBit
* 1x USB Host full-speed, USB OTG high-speed
* Serial Interfaces: 3x UART, 2x I²C, 2x SPI
* CAN Interface: 1 Mbit/s
* Real-time Clock RTC onboard
* Temperature range: Operating -40 to +85 °C
* SODIMM-200 Connector DHCOM Standard
|}


''nand read <SDRAM address> <NAND Flash address> <Bytes>''
== Software Support ==
*[[COM iMX25 Bootloader U-Boot|Bootloader U-Boot]]
*[[DHCOM Flash Update|DHCOM Update Mechanism for i.MX25]]
*[[COM iMX25 WinCE|WinCE]]
*[[COM iMX25 Linux|Linux]]


Example: nand read 80000000 400000 b40000
== Downloads ==
==== Bootloader Binary ====
* [[media:U-boot_(V1.18.0.5).zip|Download U-Boot binary (v1.18.0.5)]] (for updating, please have a look at FAQ list)
==== Settings Files ====
* [[media:00_PrimeView_7inch_PM070WT3.zip|Settings PrimeView 7" Display (PM070WT3) (for U-Boot Version v1.11.2.0 or higher)]]
* [[media:01_DataImage_4_3inch_FG040360DSSWBG03.zip|Settings DataImage 4,3" Display (FG040360DSSWBG03) (for U-Boot Version v1.11.2.0 or higher)]]
==== DHupdate.ini example ====
* [[media:DHupdate_example.zip|DHupdate.ini file example (for U-Boot Version v1.10.0.0 or higher)]]
==== Update Bitmap example files ====
* [[media:Update_Bitmaps_800x480.zip|Update Bitmap example files for 800x480 display]]
==== Splash Image examples ====
* [[media:DH_480x272.zip|Example Splash Bitmap for 480x272 Display]]
* [[media:DH_800x480.zip|Example Splash Bitmap for 800x480 Display]]
==== Root Filesystem Update Kernel ====
* Please contact DH electronics if you need a binary.


Description: Copies 11,25MByte from NAND Flash address 0x40_0000 to SDRAM address 0x8000_0000
==== Linux Kernel Binary and Sources ====
* [https://github.com/dh-electronics/linux-imx25 Linux Kernel based on 3.2.xx mainline available on GitHub]
* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Current built of the 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]]
* [[media:DHCOM-linux-imx-3.2.81_BUILD.zip|Current built of the 3.2.81 DHCOM iMX25 linux kernel (2016-10-07)]]


'''Nand Flash Erase'''
==== Debian Rootfilesystem ====
* [https://www.dropbox.com/s/9ivwpv2i2wznmu4/rootFS_DN_20110805et4_HL7%20%2830.10.2014%29.tar.bz2?dl=0 Current Debian root file system, based on Debian 6 "Squeeze" (2014-10-30)]<br/>Remark: Shellshock (CVE-2014-6271) is already fixed.


''nand erase <Block base address> <Bytes>''
==== Virtual Machine for Application Development ====
* [https://www.dropbox.com/s/b9424pfoiik21dd/Debian%20Squeeze%20v1.5pw.zip?dl=0 Debian 6 "Squeeze" VMware Image (PW: dhelectronics)] <br/>Password for devel user: '''devel'''<br/>Password for root user: '''root'''


Example: nand erase 400000 40000
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====
 
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]]  
Description: Deletes NAND Flash content from address 0x40_0000 to 0x43_FFFF
* [[media:DHCOM-HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]
 
Note: The Bytes information needs to be block size aligned!
 
'''Nand Flash Write'''
 
''nand write <SDRAM address> <NAND Flash address> <Bytes>''
 
Example: nand write 80000000 400000 b40000
 
Description: Cpoies 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
 
=== LCD contoller ===
 
'''Show LCD controller settings'''
 
''lcdinfo''
 
Example: 
  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:
  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 ===
 
'''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'''
 
''mmcinit''
 
Description: Initialize new inserted SD Card
 
=== 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"
 
'''Ping'''
 
''ping <IP address>''
 
Example: ping 192.168.55.32
 
'''Read PHY register via MII interface'''
 
''mii dump <PHY address> <PHY register>''
 
Example: mii dump 1 0
 
Description: Shows PHY control register content.
 
=== 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''
 
=== Update ===
 
'''iMX25_update.bmp file'''
 
For this update Type you need the "iMX25_update.bmp" file and the image file (e.g. nk.gz for WinCE) on the SD Card. After power on the update starts automatically. The "iMX25_update.bmp" file contains three pictures (Update in progress, Update done and Update error) which are shown on the display during the update process. The file contains also an argument which defines the update type (WinCE image, Linux image, ...). An exact description can be found on the iMX25CreateUpdateBmp manual.
 
It is also possible to call the "iMX25_update.bmp" update from the command line:
 
''update''
 
'''command line'''
 
It is possible to update the DHCOM i.MX25 Core Module form the command line without "iMX25_update.bmp" file. The advantage is the possibility to run multiple updates in series. This update type dosen't use the Display to show the progress. You need only the corresponding files on the SD Card for the update.
 
''update <type> [filename]''
 
Type:
 
wince = WinCE image update (default file names nk.gz or nk.bin)
 
linux = Linux image update (default file name uImage)
 
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)
 
=== 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> <I2C register> <Bytes>''
 
Example: i2c md 57 0 10
 
Description: Reads 10 Bytes from the offset 0.
 
'''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>''
 
== Hardware settings ==
 
The Hardware settings could be configured via the settings.bin file in the NAND flash memory. The file contains the following settings:
- LCD Controller settings
- Backlight PWM settings
- Backlight enable GPIO
- DHCOM GPIO default direction and state
- FFUART outputs from Bootloader and OS at the starting time
- Default SD Slot for updates
 
An exact description about creating the file and about the file content could be found on the "iMX25CreateSettingsBin - Bedienungsanleitung.pdf".
 
== Flash Update ==
The follwing updates are possible with the Bootloader:
# Bootloader
# Splashimage
# Settings
# Complete Flash content
# Linux image
# WinCE image
 
The following Update Types are possible:
# Via iMX25_update.bmp file
# From the bootloader console (command line)
 
=== iMX25_update.bmp File ===
 
For this update Type you need the "iMX25_update.bmp" file and the image file (e.g. nk.gz for WinCE) on the SD Card. After power on the update starts automatically. The "iMX25_update.bmp" file contains three pictures (Update in progress, Update done and Update error) which are shown on the display during the update process. The file contains also an argument which defines the update type (WinCE image, Linux image, ...). An exact description can be found on the iMX25CreateUpdateBmp manual.
 
=== Command line Update ===
It is possible to update the DHCOM i.MX25 Core Module form the command line without "iMX25_update.bmp" file. The advantage is the possibility to run multiple updates in series. This update type dosen't use the display to show the progress. You need only the corresponding files on the SD Card for the update.
 
update <type> [filename]  
 
Type:
 
wince = WinCE image update (default file names nk.gz or nk.bin)
 
linux = Linux image update (default file name uImage)
 
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)
 
= WinCE =
== Registry Settings ==
 
=== LCD Controller ===
 
[HKEY_LOCAL_MACHINE\Drivers\Display\LCDC]
  "PanelType"=dword:1    ; LCD Panel identifier
                          ; Description: Set "PanelType" = 0 to use the bootloader LCD controller settings, which can be programmed to NAND Flash via settings.bin file.
[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
  "Angle"=dword:0        ; no rotation
                          ; "Angle"=dword:5A --> 90 degrees rotated clockwise
                          ; "Angle"=dword:B4 --> 180 degrees rotated clockwise
                          ; "Angle"=dword:10E --> 270 degrees rotated clockwise
 
=== Task Bar Look ===
 
[HKEY_LOCAL_MACHINE\Explorer]
  “QVGA“=dword:00000001  ; Change Task bar style: 0 --> normal Windows look, 1 --> PDA look

Latest revision as of 06:13, 31 May 2022

COM iMX25-D2

Hardware

Product Change Notifications (PCN)

  • Freescale ARM9 i.MX25 @ 400 MHz
  • 0 - 2048 MB NAND-FLASH
  • 64 - 128 MB DDR2-266
  • MicroSD Sockel onboard
  • SD/MMC card interface
  • LC-Displaycontroller, 16 Bit colour depth, 800 x 600 Pixel
  • Touchcontroller onboard, 4-wire resistive
  • Ethernet 10/100 MBit
  • 1x USB Host full-speed, USB OTG high-speed
  • Serial Interfaces: 3x UART, 2x I²C, 2x SPI
  • CAN Interface: 1 Mbit/s
  • Real-time Clock RTC onboard
  • Temperature range: Operating -40 to +85 °C
  • SODIMM-200 Connector DHCOM Standard

Software Support

Downloads

Bootloader Binary

Settings Files

DHupdate.ini example

Update Bitmap example files

Splash Image examples

Root Filesystem Update Kernel

  • Please contact DH electronics if you need a binary.

Linux Kernel Binary and Sources

Debian Rootfilesystem

Virtual Machine for Application Development

Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more