This document provides a guide for getting started using the Intel Sitsang
development board for systems research. It is intended to compliment the
Sitsang/PXA255 Evaluation Platform Linux User's Guide provided on the
CD-ROM at /Software and Related Documentation/Software Documentation/Linux Documentation/Sitsang-PXA255 Evaluation Platform Linux User Guide.pdf
.
Consult the User's Guide for more detailed information about the steps below.
The Intel Sitsang development board comes preloaded with a Linux 2.4.19 kernel, root filesystem, and the RedBoot bootloader.
To begin, use the JTAG cable suppied with the Sitsang to connect the board to the serial port of a desktop system. Open a terminal emulator (such as HyperTerminal or minicom) on the desktop using the following serial port settings: 115,200 BPS, 8 data bits, no parity, 1 stop bit, no flow control. Connect the power adapter to the Sitsang board, and press the power button (located next to the DC power socket) on the Sitsang board to begin. After a few seconds, you should see the following output:
+ ARM eCos RedBoot(tm) debug environment - built 22:13:14, Sep 3 2003 Platform: Intel(R) Sitsang Development Platform RedBoot* Debug Monitor () Copyright (C) 2000, Red Hat, Inc. RAM: 0xa0000000-0xa4000000 FLASH: 0x00100000 - 0x04000000, 128 blocks of 0x00040000 bytes each. LAN91C96: The current MAC address is 00 08 32 33 00 01 IP: 192.168.1.100, Default server: 192.168.1.1 == Executing boot script in 5.000 seconds - enter ^C to abort
Hint: When using the Sitsang, always use the DC power adapter instead of relying on battery power. The Sitsang will sometimes stop running if the battery gets too low, even if the power adapter is connected.
After 5 seconds, RedBoot will start the default Linux 2.4.19 kernel. Once everything is initialized, a login prompt will appear:
Sitsang Linux (experimental) Kernel 2.4.19-rmk4-pxa2-alvin2 on an armv5tel Sitsang2 login:
Login with the username root
. No password is necessary. At
this point, you will receive a standard BASH prompt:
[root@Sitsang2 root]$
The preloaded root filesystem is a 40 megabyte JFFS2 filesystem containing a variety of open-source applications, including the Qtopia desktop environment. Unfortunately, most of this just gets in the way of useful research, so the first thing to do is delete the unnecessary stuff.
Remove /rd/*.avi
. This video takes up a large portion of
the Flash memory, and removing it will provide ample room for research.
Next, remove the following symlinks:
/etc/rc.d/rc3.d/S90irda /etc/rc.d/rc3.d/S95qtopia
This will prevent IRDA and Qtopia from being started at bootup. IRDA constantly generates interrupts, which can interfere with real-time schedulers. Qtopia consumes a lot of CPU and memory resources, severely hurting the performance of other applications.
Next, you may choose to install the ZMODEM applications, which are useful for transferring small files over the serial port. Instructions for installing ZMODEM are on this page.
Compiling a Linux kernel for the Sitsang requires the arm-linux-gcc toolchain.
If working in the College of Computing at Georgia Tech, the toolchain has
already been installed at /usr/local/arm/3.2.3/bin
. Simply add
this directory to your path. Otherwise, if you must install the toolchain on
your own machine, follow the instructions in Section 3.2 of the User's Guide.
The source code to the 2.4.19 Linux kernel may be obtained from kernel.org or the Sitsang CD-ROM. Decompress it using bzip2:
$ bzip2 -dc linux-2.4.19.tar.bz2 | tar xvf -
You may rename the linux-2.4.19/
directory to a more descriptive
name to identify the new kernel. Next, apply the Sitsang patches provided by
Intel:
$ cd linux-2.4.19/ $ gzip -dc ../patch-2.4.19-sitsang2.gz | patch -p1
At this point, you may apply any other patches, such as the DWCS real-time scheduler patch. Then, configure the kernel:
$ make sitsang_config $ make oldconfig
Next, modify the EXTRAVERSION
line in the Makefile
.
Change it from -rmk4-pxa2-alvin2
to something new, so that the
new kernel will use a separate set of modules from the preinstalled kernel.
Finally, compile the kernel and modules:
$ make dep $ make zImage $ make modules
The new kernel will be located at arch/arm/boot/zImage
.
Once the new kernel has been compiled, it may be installed on the Sitsang using the RedBoot bootloader. Initially, the Sitsang's flash memory is organized as shown below:
Flash Range | Initial Use |
0x00000000 - 0x0003FFFF | RedBoot |
0x00040000 - 0x000FFFFF | Unused |
0x00100000 - 0x001FFFFF | Linux Kernel |
0x00200000 - 0x02FFFFFF | Root Filesystem |
0x03000000 - 0x03F7FFFF | Unused |
0x03F80000 - 0x03FFFFFF | RedBoot |
Note the area of unused space from 0x03000000
to
0x03F7FFFF
. Assuming kernels are a maximum size of 1 megabyte,
this gives us enough space to keep 15 additional kernels on the Sitsang at
a time.
To add a new kernel to the Sitsang, boot the Sitsang, and press
Control+C
at startup to enter RedBoot. To see the current
contents of flash memory:
RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x00000000 0x00100000 0x00040000 0x00000000 RedBoot config 0x03F80000 0x03F80000 0x00040000 0x00000000 FIS directory 0x03FC0000 0x03FC0000 0x00040000 0x00000000 JFFS2 0x00200000 0x00200000 0x02800000 0x00000000 linux 0x00100000 0xA0200000 0x00100000 0x00000000
To install a new kernel:
, choose an unused starting location between
0x0300000
and 0x03E00000
. Then:
RedBoot> load -r -m xmodem -b 0xa0200000 <Send zImage using XMODEM> RedBoot> fis create linux2 -b 0xa0200000 -l 0x00100000 -f 0x03000000 -r 0xa0200000 ... Erase from 0x03000000-0x03100000: .... ... Program from 0xa0200000-0xa0300000 at 0x03000000: addr:3000000,data:a0200000,size:40000. addr:3040000,data:a0240000,size:40000. addr:3080000,data:a0280000,size:40000. addr:30c0000,data:a02c0000,size:40000. ... Unlock from 0x03fc0000-0x04000000: block: 3fc0000,block_size: 40000,blocks:0 . ... Erase from 0x03fc0000-0x04000000: . ... Program from 0xa3fb0000-0xa3ff0000 at 0x03fc0000: addr:3fc0000,data:a3fb0000,size:40000. ... Lock from 0x03fc0000-0x04000000: .
Replace linux2
with any unique name to identify your kernel, and
replace 0x03000000
with the starting address of your choice,
ranging from 0x03000000
to 0x03100000
.
Note: Be EXTREMELY careful when entering the hexadecimal addresses to install the new kernel. RedBoot does not validate these values, and one mis-typed character will likely corrupt your bootloader or root filesystem.
To boot your new kernel:
Redboot> fis load linux2 Redboot> go 0xa0200000
Linux kernel modules greatly simplify development by allowing you to dynamically add or remove kernel code at runtime, without having to use the bootloader to reflash the entire kernel.
After a make modules
, compiled modules will appear as
.o
files in the directory the source code was located. To
upload a module, create a
/lib/modules/2.4.19-<EXTRAVERSION>
directory, where
<EXTRAVERSION>
is the name you specified in the
Makefile
above. Upload the .o
file to this directory
(ZMODEM is a quick and easy way to do this), then
type:
[root@Sitsang2 root]$ insmod <modulename>.o
Last Modified: 8/16/04 by lcs@cc
Return to Intel Sitsang Resources |
Leo Singleton