Chapter 4. Installing ARMLinux on the Assabet

This chapter describes how to get your Assabet running ARMLinux.

Assabet: Background

The Assabet is an SA-1110 evaluation board which may be repackaged as a PDA. Notable features include:

There is also support for Compact Flash on the Assabet and on PCMCIA support for the Neponset. In addition, the Socket LP-E CF + Card is now operative as is the IBM Microdrive.

Hardware Setup

Note: The behaviour of the hardware, bootloader and kernel can vary because of the presence of Neponset - the Microprocessor Development Module. Readers who intend to use Neponset with Assabet should therefore refer to the section called Install Neponset.

Preparing the Board

  • Carefully remove the Li-ion battery and LCD/touchscreen by releasing the fasteners on the board receptacles.

Assabet board

Top view of Assabet board

Install Angel

On Assabet (and Neponset), the bootloader can be installed by physically inserting the pre-programmed flash chips supplied with the kit.

  • Determine whether the board has a WindowsCE bootloader pre-installed by opening the StrataFlash sockets and examining the labels on each memory component. For precise details of the process of manipulating memories, refer to The Intel StrongARM SA-1110 Microprocessor Development Board Users' Guide section 2.3. (See the section called Useful Resources for the appropriate URL).

  • Remove all power from the board and remove the jumper from the master power clip if it is installed (this disconnects the battery power). Open Socket E11 (StrataFlash) by sliding the middle panel away from the notch before lifting the doors. Socket E12 can also be opened in a similar way. (E12 is directly opposite to E11 on the other side of the board).

  • The WindowsCE parts have a label which is similar to "WinCE E-Boot V3.0 L". Remove these parts with the suction part selector (similar to a pen supplied within a tube) and replace them with the parts which are labelled "Angel DB1110B 207D L".

Power and Serial Connections

  • Power, JTAG, RS232 and POTS connections are made through base station - a 14-pin header. Connect the serial cable to your development workstation which - on a SA-1110 - means that the header should be attached to serial port 1.

  • LED D4 should light up when the power is applied. Angel will then activate LED D8. After interrupt initialisation, Angel will strobe LED D9 four times. Supplementary information on the reset sequence can be obtained from DB1110_diag.txt which is bundled with Angel (http://developer.intel.com/design/strong/swsup/SA1110AngelKit.htm).

Install Neponset

  • It is possible to attach the SA-1111 Development Module by using either of the 140-pin connectors which are found on the Assabet.

  • Make a record of the switchpack SW2 settings because these affect selection, bus speed and other important parameters. A comprehensive explanation of switch meanings can be found in the readme.txt which is included in the Angel distribution although a summary of switch meanings is provided in the following table.

Table 4-1. Switch Options for Switchpack SW2

switchoffon
SW2-1reservedreserved
SW2-2reservedreserved
SW2-3debug port is UART3debug port is UART1b (on Neponset)
SW2-4bus speed is 103MHzbus speed is 51MHz (clamped to 51MHz if PLL==147MHz)
SW2-5flash device page mode enabledflash device page mode disabled
SW2-6Angel fast boot modeAngel debug mode (see DB1110_diag.txt)
SW2-7PLL==206MHzPLL==147MHz
SW2-8boot from flash on Neponsetboot from flash on Assabet

Note: All switches can be left in the off position except for the SW2-8 which can be left on.

Fixing Neponset

Some copies of Neponset may contain a bug involving the on-board Philips UDA1341 audio codec. The bug involves the L3 MODE signal coming from the SA-1111 which is available from PWM1 - the dual-function pin. Phase 4 Neponset boards incorrectly route this signal to PWMO which prevents any configuration of the codec from software. However, this problem may be solved by unsoldering the jumper wire at J7 and moving it immediately adjacent to J4.

Getting a Cross Compiler

We recommend that you install the emdebian cross-development environment supplied. See the section called Emdebian in Chapter 8.

Getting a kernel

There are several pre-compiled kernels available on the CD and on-line. When you want to compile your own refer to the section called Compiling a Kernel in Chapter 7. The correct default config setting for Assabet is: make assabet_config, and if you are using Assabet and Neponset together than it is make neponset_config.

Uploading to the Assabet

  1. Power it up and connect to the serial port.

  2. Get the Angelboot code. The precompiled version should work but you will need to be root.

  3. Copy dot.angelrc and Angelboot from Assabet/tools/angelboot on the CD your development directory and rename dot.angelrc to .angelrc. .angelrc is now classified as a hidden file so your filer may hide it from you. You will however, need to edit .angelrc so that it has the following settings:

base 0xc0008000
entry 0xc0008000
r0 0x00000000
r1 0x00000019
device /dev/ttyS1       
options 9600 8N1
baud 115200
otherfile ramdisk_img.gz
otherbase 0xc0800000
#exec minicom assabet

Note: You should change device /dev/ttyS1 if your cable is plugged into ttyS0.

Configuring Minicom

In order to configure Minicom, take the following steps:

  1. Run it with minicom -o to get to setup.

  2. Set it to VT102, serial port ttyS1 (matching the .angelrc file) 9600baud 8N1 (8 data bits, no parity, 1 stop bit), no modem init string, no hardware handshaking.

  3. Save that as assabet config. Running Minicom as minicom assabet will run it up with these options.

  4. If you don't use Minicom for anything else then you can make these settings the overall default - Minicom calls it dfl - settings.

OK. Now we are ready to go. Make sure the Assabet is powered, reset, that you have the 4 flashes on the orange LED and that the serial port is connected. Run:

./angelboot

This will read the config from .angelrc before uploading the kernel and RAMdisk images. You should see the upload indicated, followed by several lines of stars during the kernel upload, then dots during the RAMdisk upload. See the section called Angel and Angelboot in Chapter 6 for more details on how angelboot is configured.

If everything works OK you should see a penguin and a login prompt on the touchscreen which will disappear after a few minutes. Hitting Return in Minicom (start it if it hasn't already with minicom assabet) should get you to a root prompt from where you can login as root. You will not need a password.

daa-daa!

Re-flashing your Assabet

If your angelboot copy in strataflash becomes corrupt for any reason you can put angelboot back again by using the JTAG interface.

To use the JTAG interface, you will need:

  1. To connect the custom 14-pin connector on the JTAG/serial/phone cable to the Assabet.

  2. To connect the JTAG part (25-pin D connector) of the JTAG/serial/phone cable to your parallel port. Nothing else should be using the parallel port at the same time and you will need to be root as well.

  3. To connect the power supply to the Assabet and power it up.

  4. The Jflash-linux code (or Jflash - the Windows version). The pre-compiled binary suplied on the CD in Assabet/tools/Jflash/should work OK.

  5. The binary of the bootloader which you will be putting in flash. Angel.bin is supplied with the Jflash distro.

To place the bootloader in flash, type:

./Jflash-linux angel.bin

When this process has finished, reset the Assabet and the LEDs should show everything is working OK.

RAMdisks

A selection of useful RAMdisks is provided on the CD in Assabet/RAMdisks. These are the files that you upload using the 'otherfiles' entry in Angelboot.

See the section called Making a RAMdisk in Chapter 7 for details of making your own.

Using the Audio Devices

Using the ramdisk_ks RAMdisk it is possible to play a sound by issuing the following command:

cp <file> /dev/dsp

Where file is 44kHz stereo WAV file. Well, you can play any file you like this way, but it'll sound horrid if it's not a WAV file.

PCMCIA Support

For PCMCIA to work you need kernel PCMCIA support compiled in and the cardmgr daemon in the RAMdisk and running. This is included on ramdisk_ks (2.5MB - expands to 6.8MB) which is on the CD. Use this RAMdisk if you want to use the CF slot on the Assabet.

To get a cf disk recognised, simply plug it in. You can then check it with the cat /proc/bus/pcmcia/00/stat command.

The disk can then be mounted in the following manner:

mount /dev/hda1 /mnt

Note: If you just pull disks out then things can get rather broken (and you may have to reset). You therefore need to umount the disk first.

The CF Network Card

You need to configure the card for your network environment in /etc/pcmcia/network.opts. You can then fill in IP and gateway details or simply use DHCP if it is available. Then, when you plug in the card, the eth0 interface is automatically created and the script is run to ifconfig the device. If you fill in an NFS mount in etc/fstab and specify the mount option in /etc/pcmcia/network.opts, the NFS mount is automatically done when you plug the card in and suddenly the network is available to you, making development and testing much easier.

Copying Things off a CF Disk

It is possible to copy things off the CF disk in a situation where they won't fit onto the RAMdisk.

You can use the rest of the RAM (if some is free) by doing:

mke2fs /dev/ram1 (creates an ext2 filing system in ram)

mkdir /mnt/ram

mount /dev/ram1 /mnt/ram (mounts the ramdisk)

This defaults to creating an 8MB RAMdisk. Now you have 8Mb of 'disk' available to copy things into which will remain until you power down. You can just copy things out of /dev/hda1/<path>/<file> to /mnt/ram/<file> up to the size of the new RAMdisk.

Useful Resources

Additional information can be obtained from: