PiMX1

From HW wiki
Jump to navigation Jump to search

Introduction

This document describes how to install and setup Linux and development environment for PiMX1 board.


Description PiMX1 board

View of Top side
View of Bottom side
Schematic of Top side

The PiMX1 system is based on the FreeScale/Motorola DragonBall M9328 MX1 ARTM920T based system chip. Actual CPU board revision is called MX_CPU2. The PiMX1 system has been developed at PiKRON company. The hardware design is courtesy of Petr Porazil (PiKRON). The full database containing schematic design and board layout file is included in examples package of PEDA (electronic design automation software). The PEDA examples package contains even libraries with all components used in PiMX1 design. The provided setting in the board database file (peda-examples/data/mx_cpu/mx_cpu2.tdb) allow generation of documentation and technological files as well.


PiMX1 features

CPU ARM920T, 96 or 192 MHz, 16kB instruction and 16kB data cache, virtual memory management unit (VMMU) with 64+64 entry TLB

eSRAM - 128 kB of the fast on chip embedded SRAM


SDRAM - 32 MB 100 MHz SDRAM chip provides operation memory to the system. It is connected by 16 bit bus only to enable small board size. The penalty of 16 bit connection is not so high, because of CPU cache.

FLASH - 4 MB to 32 MB StrataFlash are located on MX_CPU2 board. Actual population is dependant on the expected board usage. USB device controller Full speed USB (12Mbit/s) device controller buffered by ISP1106DH located directly on MX_CPU1 board along with Mini-USB connector. The ISP1106DH transceiver provides software connect control. MX_CPU2 board can be directly connected to the host computer and can be even fully powered from it.

Three UARTs - UARTs of MX1 chip are accessible as 3.1 Volts levels TTL signals. The UART1 is connected to the dedicated connector directly on MX_CPU2 board and others (UART2 and UART3) are connected to IO, respective BUS extension connectors. 3.1 Volt levels can be converted to RS-232 standard in DB9 connector dongle.

ETHERNET Controller - DM9000 chip with integrated 10/100M PHY is connected to the MX1 through 16 bit data bus. The MX_CPU2 board can be populated with 10Base-T/100Base-TX transformer and four signals + LEDs connector or with integrated connector module (ICM) socket suitable for direct connection to the standard ETHERNET infrastructure.

LCD and Keyboard Connector - 30-pin Molex FFC/FPC-to-Board connector is provided for LCD modules connection. The MX1 LCDC enables to directly connect most of passive and TFT LCD panels. Maximal supported resolution is 640 × 512 pixels. Up to 64k colors are supported on TFT panels and up to 16 gray levels or 4096 colors are supported for passive displays. Analog inputs for analog touch-screen decoding are provided as well. Unused pins can be used for direct matrix keyboard connection.

CMOS Video Input - 20-pin Molex FFC/FPC-to-Board connector exposes CMOS Sensor Interface Module (CSI) module signals and enables direct connection of small live camera.

IO Extension Connector - 50-pin PRECI-DIP Ultraminiature double row connector carries most MX1 IO signals: SecureDigital interface, UART1 and UART2, SPI and I2C interfaces signals, serial audio port (I2S), doubled analog inputs, timer, PWM and some more signals for general purpose IO functions.

BUS Extension Connector - 50-pin PRECI-DIP Ultraminiature double row connector enables addition of more peripherals to the system. 16-bit data bus connected to the dedicated MX1 signals is provided as well as buffered address bus and chip-selects signals providing three 64kB regions.

I2C Bus - Two wire I2C bus enables system expansion. The SDA and SCL signals are accessible for all connected subsystems on IO Extension connector, LCD+KBD connector and CMOS Video Input connector.

JTAG Connector - 10-pin header with slightly-reduced pin count JTAG interface is provided for debugging. Boot select jumpers and LEDs The two boot select jumpers are located on board. One select MX1 serial bootstrap mode, the second is provided for FLASH boot-block behavior selection. One LED diode can be used for software diagnostics purposes, other three are reflects ETHERNET connect and traffic state.

Power Supply - The MX_CPU2 board can be powered directly from USB +5 VDC power supply or thought dedicated pins located on IO Extension connector. Because two switching power regulators are located on board only +5 VDC or alternatively +3.1 VDC external supply is required. The board requires from 20 to 30 mA at +5 VDC for operation without power down modes if ETHERNET controller is powered down. The ETHERNET drains considerably higher power (about 100 mA). That is why DM9000 power supply can be switched off by software controllable MOSFET switch.

Serial communication

The PiMX1 board communicates by default on serial line either with U-Boot or operation system. Recommended serial communication program is minicom (console terminal) or GtkTerm (terminal with GUI).

Program setting as follows

Baud Rate - 19200
Bits - 8
Parity - N
Stop Bits - 1
Hardware Flow Control:- No
Software Flow Control:- No
Port - /dev/ttyS0 or /dev/ttyUSB0


Port /dev/ttyS0 is selected if the board is connected by standard RS232 port and Port /dev/ttyUSB0 if is used RS232/USB converter.

Minicom and GtkTerm can download using apt-get commnad in Debian,Ubuntu distribution.

apt-get install minicom
apt-get install gtkterm


TFTP server

U-Boot is able to load file from remote tftp server into memory. Tftp server is lanuched by inetd (xinetd) daemon. Therefore add the following line into /etc/inetd.conf :

tftp    dgram   udp     wait    nobody  /usr/sbin/tcpd  /usr/sbin/in.tftpd

Default tftp root directory is /tftpboot. You can change it by calling in.tftpd with specified directory as a parameter.

Ubuntu/Debian based distribution

1. Install tftpd and related packages.

 apt-get install xinetd tftpd tftp

2. Create /etc/xinetd.d/tftp and put this entry:

service tftp
{
protocol        = udp
port            = 69
socket_type     = dgram
wait            = yes
user            = nobody
server          = /usr/sbin/in.tftpd
server_args     = /tftpboot
disable         = no
}

3. Make /tftpboot directory

mkdir /tftpboot
chmod -R 777 /tftpboot
chown -R nobody /tftpboot

4. Start tftpd through xinetd

/etc/init.d/xinetd start

see [Installing and setting TFTPD in Ubuntu].


How to quick boot

1. Download kernel image for U-Boot from kernel image

2. Create /tftpboot/mx1ant

3. Copy this image to /tftpboot/mx1ant directory under TFTP root and rename it (or link it) to uImage.

4. Download NFS from root filesystem

5. Extract NFS to /tftpboot/mx1ant directory

6. Add row to /etc/exportfs

  /tftpboot/mx1ant   192.168.1.31(ro,sync)

7. Run script

 exportfs

8. Reset PiMX1 board

Build Kernel

Toolchain

Toolchain(gcc, ld, ...) for MPC5200 can be downloaded from ftp://rtime.felk.cvut.cz/arch-tools/gcc-arm-linux-3.4.3-bin.tar.gz Unpack the archive:

cd /
tar -xvzf gcc-arm-linux-3.4.3-bin.tar.gz

You can also create a debian package from archive and then install the package:

alien --to-deb gcc-arm-linux-3.4.3-bin.tar.gz
dpkg -i gcc-arm-linux-3.4.3-bin.deb

You must be as root.

Getting kernel

<to do>

External Links

http://www.pikron.com/pages/products/cpu_boards/pimx1.html

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=M9328MX1ADS_B&fsrch=1

http://www.abclinuxu.cz/serialy/video4linux2

http://free-electrons.com/articles

http://free-electrons.com/training

Getting familiar with the Linux kernel and device driver development. http://free-electrons.com/training/multimedia

Linux kernel patches: http://rtime.felk.cvut.cz/darcs/ppisa-linux-devel

Touchscreen driver: http://rtime.felk.cvut.cz/gitweb/mx1ts.git

Linux-2.6.24 config

U-Boot manual

PiMX1 UbootSetup

Armadeus i.MX based board Insert non-formatted text here