Professional Documents
Culture Documents
® I/O Processors
Linux Installation Application Note
February 2008
OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL’S TERMS AND CONDITIONS
OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING
TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for
use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics
of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for
conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with
this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published
specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-
4725, or by visiting Intel’s Web Site.
Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different
processor families. See http://www.intel.com/products/processor_number for details.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740,
IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, Intel
NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus,
OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel
Corporation in the U.S. and other countries.
*Other names and brands may be claimed as the property of others.
Copyright © 2008, Intel Corporation. All rights reserved.
Contents
1.0 Introduction ..............................................................................................................5
2.0 Prerequisites .............................................................................................................5
3.0 Host Setup .................................................................................................................6
3.1 Host Role ...........................................................................................................6
3.2 Baseline Package Installation (Fedora) ...................................................................6
3.3 Minicom Setup ....................................................................................................7
3.4 Networking.........................................................................................................7
3.5 DHCP Server Setup .............................................................................................8
3.6 TFTP Server Setup...............................................................................................8
4.0 Target RedBoot Setup ................................................................................................9
5.0 ARM* Cross Toolchain ............................................................................................. 11
6.0 Running the IOP Kernel ........................................................................................... 12
6.1 Download and Build ........................................................................................... 12
6.2 Launching the Kernel ......................................................................................... 15
7.0 Debian ARM* Installation ........................................................................................ 16
8.0 Kernel Changelog .................................................................................................... 18
8.1 2.6.18-iop1 (10.20.2006)................................................................................... 18
8.2 2.6.18-iop2 (10.30.2006)................................................................................... 18
8.3 2.6.18-iop3.1 (11.1.2006).................................................................................. 18
8.4 2.6.19-iop1 (12.8.2006)..................................................................................... 18
8.5 2.6.20-iop1 (2.9.2007) ...................................................................................... 18
8.6 2.6.20-iop2 (2.23.2007)..................................................................................... 19
8.7 2.6.20-iop3 (3.19.2007)..................................................................................... 19
8.8 2.6.18.8-iop4 (backport) (5.7.2007) .................................................................... 19
8.9 2.6.20.11-iop4 (backport) (5.7.2007) .................................................................. 19
8.10 2.6.21-iop1 (5.7.2007) ...................................................................................... 20
8.11 2.6.20.15-iop5 (backport) (7.18.2007) ................................................................ 20
8.12 2.6.22.1-iop1 (7.18.2007).................................................................................. 20
8.13 2.6.23.10-iop1 (12.14.2007) .............................................................................. 20
9.0 Usage Notes ............................................................................................................ 21
9.1 IOP13xx: PCI MMAP Capabilities.......................................................................... 21
9.2 PBI Compact Flash Driver ................................................................................... 21
9.3 IOP13xx: Device Selection Parameters ................................................................. 21
9.4 Building the -iop Kernel for Another Architecture ................................................... 21
Figures
1 GNU Cross Compiler Selection ................................................................................... 11
2 Linux Kernel Configuration Menu ................................................................................ 13
3 Support Local Bus Controller Selection ........................................................................ 14
4 RedBoot Bootstrap and Debug Environment................................................................. 15
5 Configure the Network.............................................................................................. 16
6 Partition Menu ......................................................................................................... 17
Tables
1 Linux I/O Processor Decoder........................................................................................5
2 Host System Components ...........................................................................................6
3 RedBoot Parameters Per Board ....................................................................................9
4 RedBoot Values Per Board ......................................................................................... 15
Revision History
1.0 Introduction
This guide discusses how to install Linux on a Intel® I/O Processor-based board. It
covers three generations of I/O processors and corresponding customer reference
boards:
• Intel® 80321 I/O processor (IOP32x)
• Intel® 80331, 80332 and 80333 I/O processors (IOP33x)
• Intel® 81341, 81342 and 81348 I/O processors (IOP34x)
Table 1 outlines the processors and board names according to “Linux” names.
Table 1. Linux I/O Processor Decoder
I/O Processor Linux Name Linux Board Types
80219 IOP32x ep80219, IQ80219, IQ31244, glantank, n2100
IOP321 IOP32x IQ31244, IQ80321
IOP331 IOP33x IQ80331
IOP332 IOP33x IQ80332
IOP333 IOP33x IQ80332
IOP341 IOP13xx IQ81340mc, IQ81340sc
IOP342 IOP13xx IQ81340mc, IQ81340sc
IOP348 IOP13xx IQ81340mc, IQ81340sc
This guide references Open Source Software resources available on the Internet at the
time of writing, be aware that some resources do move or are discontinued.
2.0 Prerequisites
Before starting the following components must be available:
• A host Linux system with an up to date distribution. The guide was written with a
Fedora Core 6 installation on an IA host. Some commands and configurations
referenced differ on other distributions.
• Network connectivity from the host system to the internet. Proxies are supported.
• Network connectivity from the host to the I/O processor board.
• Serial (UART) connectivity from the host to the I/O processor board.
• A disk controller card and a hard drive for installing Debian. This guide was written
with the IQ3124h SATA controller and a SATA hard drive.
Note: This is a extended version of the recommended package list specified by the
OpenEmbedded Getting Started Guide:
(http://www.openembedded.org/wiki/OEandYourDistro)
When using BOOTP or DHCP to assign dynamic IP addresses, use the 'fconfig'
command in RedBoot to configure the board to query for an IP address. See the
RedBoot User's Manual for more detailed information:
http://ecos.sourceware.org/docs-latest/redboot/configuring-the-redboot-environm
ent.html
3.6 TFTP Server Setup
This example is based on a Fedora system. Other systems provides similar mechanisms
for this. Consult the distributions documentation for further information.
Enable the TFTP server:
# /sbin/chkconfig tftp on
Edit the “/etc/xinetd.d/tftp” file and ensure that the following settings are present.
These tend to be default and not necessary to modify anything:
disable = no
user = root
server_args= -s /tftpboot
The latest RedBoot and Sources are available from the SourceForge site for Intel
XScale® technology:
https://sourceforge.net/projects/xscaleiop/
When the board does not have a valid RedBoot image installed, consult the board
documentation for instructions on flashing the board. Documentation for each of the
boards is available in the 'Technical Documents' section of each processor website.
IOP321: http://www.intel.com/design/iio/docs/iop321.htm
IOP331: http://www.intel.com/design/iio/docs/iop331.htm
IOP332: http://www.intel.com/design/iio/docs/iop332.htm
IOP333: http://www.intel.com/design/iio/docs/iop333.htm
IOP341/2: http://www.intel.com/design/iio/docs/iop341_42.htm
IOP348: http://www.intel.com/design/iio/docs/iop348.htm
Assuming the board has a bootable RedBoot image installed, an update is done via
commands from RedBoot. Parameters in the instructions below varies from board to
board. Table 3 gives the values for each of the boards.
Table 3. RedBoot Parameters Per Board
{board} {img_len} {flash-addr-ro {ram-addr-ro {flash-addr-ra {ram-addr-ra
m-img} m-img} m-img} m-img}
IQ8134x 0x40000 0xf0000000 0x100000 0xf0040000 0x20000
IQ8033x 0x40000 0xc0000000 0x100000 0xc0040000 0x20000
IQ80321 0x40000 0xf0000000 0x100000 0xf0040000 0x20000
ep80219 0x40000 0xf0000000 0x100000 0xf0040000 0x20000
IQ31244 0x40000 0xf0000000 0x100000 0xf0040000 0x20000
RedBoot> go
RedBoot> reset
Download the file and extract it to a location on the host system. The latest available at
the time of writing was the arm-2007q1-21 compiler. Be sure to note when a later
version is available and update environment accordingly. This guide assumes the
toolchain is unpacked to the /opt directory, in other words:
# cd /opt
# tar xjvf arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
At this point, run 'menuconfig' to select additional drivers for the environment. To
install Debian to a SATA disk, build the controller driver into the kernel. For example the
31244 driver:
# make ARCH=arm menuconfig
Follow the instructions to set up the network and the ssh server. Then connect to the
board over ssh to complete the installation.
Be sure to select a disk and not an mtdblock device for the system disk:
Figure 6. Partition Menu
Once the installation is complete the system reboots. To launch the Debian
environment (assuming the system was installed to /dev/sda1):
RedBoot> load -r -b {kernel-load-addr} zImage.iop13xx
RedBoot> exec -c "root=/dev/sda1 console=ttyS0,115200" {kernel-run-addr}
Note: The use of “sync” and “dirsync” are used to work around an observed file system
corruption issue with the driver.
9.3 IOP13xx: Device Selection Parameters
For debugging, and in cases where an instance of Linux is running on both cores the
following kernel command line parameters are used to tell Linux which devices to
ignore and which to use.
iop13xx_init_i2c=0,1,2
iop13xx_init_uart=0,1
iop13xx_init_atu=x,e
By default Linux uses UART 1, i2c channels 1 and 2, and initializes the PCI-X bus via
ATUX. Kernels built for IQ81340mc also initializes the PCI-E bus via the ATUE.
Example 1. Tell Linux to claim only I2C channels 0, 2, and only initialize ATUX.
RedBoot> exec -c "root=nfs console=ttyS0,115200 ip=bootp
iop13xx_init_i2c=2,0 iop13xx_init_atu=x" 0x01008000
However, there are some performance enhancements that are specific to an IOP
platform and do not build or operate correctly on another platform. For this reason a
'series.x86' file is included in the release (starting with 2.6.22-iop1 and 2.6.20.15-iop5)
to exclude the patches that must not be applied when build for an Intel ® Architecture
platform.
To build an -iop kernel for an IA platform perform the following commands:
1. Remove any applied patches.
# quilt pop -a