Linux*-2.4.21 Preview Kit for the Intel(R) PXA27x Processor Developer's Kit Dec 2004 Order Number: 305747-001 INDEX: 1. Building Linux for the Intel(R) PXA27x Processor Developer's Kit 2. Building BLOB for the Intel(R) PXA27x Processor Developer's Kit 3. Loading and Running Linux on the Intel(R) PXA27x Processor Developer's Kit 4. Configuring the Network 5. Mounting an NFS Partition 6. Mounting a RAMFS Partition 7. Creating a JFFS2 File System Image 8. Configuring the Development Environment for TFTP File Downloads 9. Using APM AND DVM/DFM 10. Using the Camera Interface (CI) 11. Using the Linux Kernel and CRAMFS XIP 12. PCMCIA 13. New Features 14. Intel(R) PXA27x Processor Developer's Kit Errata’s 15. Problems/Workarounds 16. Update Notes +++ This software is licensed under the GNU GENERAL PUBLIC LICENSE, Version 2, June 1991 +++ -------------------------------------------------------------- 1. Building Linux for the Intel(R) PXA27x Processor Developer's Kit To build the Linux-2.4.21 Preview Kit for the Intel(R) PXA27x Processor Developer's Kit, the following files are needed: * linux-2.4.21.tar.gz - kernel sources from ftp://ftp.kernel.org/pub/linux/kernel/v2.4/ * patch-2.4.21-rmk1.gz - patches by Russell King from ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4 * diff-2.4.21-rmk1-pxa1.gz - patches by Nicolas Pitre from ftp://source.mvista.com/pub/xscale/pxa * diff-2.4.21-rmk1-pxa1-intc3.gz - intc3 patches by the Linux Team at Intel * diff-2.4.21-rmk1-pxa1-intc3-addon - intc4 release patches by the Linux Team at Intel 1.1) Building the Kernel To build the kernel: 1. Untar the Linux kernel sources (download them from ftp://ftp.kernel.org/pub/linux/kernel/v2.4/). % tar xvzf linux-2.4.21.tar.gz if the Linux sources were compressed with bzip2, use the following command: % bzip2 -dc linux-2.4.21.tar.bz2 | tar xvf - 2. Enter Linux source directory. % cd linux-2.4.21 3. Apply Russell's Arm*-Linux* patches. % gzip -dc patch-2.4.21-rmk1.gz | patch -p1 or % bzip2 -dc patch-2.4.21-rmk1.bz2 | patch -p1 4. Apply Nicolas' Linux patches. % gzip -dc diff-2.4.21-rmk1-pxa1.gz | patch -p1 5. Apply the recommended Linux Team at Intel's patches. % gzip -dc diff-2.4.21-rmk1-pxa1-intc3.gz | patch -p1 % cat diff-2.4.21-rmk1-pxa1-intc3-addon | patch -p1 6. Build the kernel (after patching). % make mainstone_config % make oldconfig % make dep % make zImage 1.2) Installing the Development Tools To install the development tools included in release packet: 1. Backup the original Arm*-Linux* toolchain (at /usr/local/arm-linux). 2. Install arm-linux-toolchain-bin-mm-dd-yy.tgz which will overwrite /usr/local/arm-linux. % tar xzf arm-linux-toolchain-bin-mm-dd-yy.tgz -C /usr/local ------------------------------------------------------------- 2. Building BLOB for the Intel(R) PXA27x Processor Developer's Kit To build BLOB for the Intel(R) PXA27x Processor Developer's Kit, refer to src/blob/README.txt. -------------------------------------------------------------- 3. Loading and Running Linux on the Intel(R) PXA27x Processor Developer's Kit Obtain the following files to load and run Linux on the Intel(R) PXA27x Processor Developer's Kit: * blob-smc91x - Blob binary for the Intel(R) PXA27x Processor Family card with C5 stepping, x32/64M L18 flash, 128M SDRAM * rootfs_x32_16M.jffs2 - flash(x32) file system, w/ GPL'ed QT/E * rootfs_x16_16M.jffs2 - flash(x16) file system, w/ GPL'ed QT/E * zImage.vga - Linux kernel for Intel(R) PXA27x Processor Developer's Kit with VGA support * zImage.qvga - Linux kernel for Intel(R) PXA27x Processor Developer's Kit with QVGA support To load the kernel: 1. Burn 'blob-smc91x' onto flash starting at 0x0000_0000. Use the JFlash utility for the Intel(R) PXA27x Processor Developer's Kit on Microsoft Windows*. 2. Start a terminal emulator (such as Minicom) configured for 115200,8N1. 3. Reset the Intel(R) PXA27x Processor Developer's Kit and press any key when the message "Autoboot in progress, press any key to stop .." is displayed. The blob> prompt now displays. Use "Help" to show command lists. NOTE : If the network cable is not plugged-in, it may take as much as 20 seconds before the prompt is displayed. blob> help The following commands are supported: * reset * reboot * arp * autoip * setip * tdownload * tftp * flash * lock * unlock * erase * boot * status * reload * ptprint * reblob * fwrite * ferase * tftp * clockinfo * help Use the "help command" to obtain help on a specific command. 4. Load the file system image to the Intel(R) PXA27x Processor Developer's Kit RAM. blob> tftp rootfs_x32_16M.jffs2 TFTPing rootfs_x32_16M.jffs2........OK received 32770 blocks (16777216 bytes) tftp_cmd: file 'rootfs_x32_16M.jffs2' loaded via TFTP to address 0xa1000000 blob> Refer to Section 8 to setup the TFTP environment. 5. Burn the uploaded file system image into flash by loading the image in RAM to flash and erasing the remaining flash as follows: blob> fwrite 0xa1000000 0x240000 0x1000000 Erasing 64 blocks at 0x00240000:......... Flashing 0x01000000 bytes at 0x00240000 blob> ferase 0x1240000 0xdc0000 Erasing 55 block at 0x01240000:.......... blob> NOTE: All of the remaining flash must be erased. 6. At the blob> prompt, type the following command to upload the kernel: blob> tftp zImage.vga TFTPing zImage.vga........OK ... tftp_cmd: file 'zImage.vga' loaded via TFTP to address 0xa1000000 blob> To download image through XMODEM, refer to the xdownload command for details. 7. After the kernel image transfer is complete, burn the uploaded kernel image in RAM on to flash by typing the following commands: blob> fwrite 0xa1000000 0x40000 0x200000 Erasing 4 blocks at 0x00100000:.... Flash 0x00100000 bytes at 0x00040000:.... blob> Note: To boot the board without RESET, use the following commands: blob> reload kernel blob> boot or using the following command to load the kernel to RAM directly: blob> tftp zImage.vga --kernel blob> boot 8. When the board is RESET or powered up and any key is not pressed on the keyboard, the following message appears: Uncompressing Linux..... < kernel displays a lot of debug messages > Linux login: root [root@Linux /root]$ NOTE: The kernel will take longer to boot up the first time it loads, as it erases JFFS2 flash blocks. Boot up is completed when LED D7 (PCMCIA Slot 1 Power Indicator) stops blinking. Subsequent kernel boot times will be faster. NOTE: Press any key on the keyboard to abort the autoboot procedure. 9. Type the following command at the blob> prompt. This will speed up the autoboot procedure. blob> boot Start Kernel.... --------------------------------------------------------------- 4. Configuring the Network To configure the network: 1. Type the following commands: % /sbin/ifconfig eth0 IPADDR netmask NETMASK broadcast BROADCAST % /sbin/route add default gw GATEWAY metric 1 where IPADDR is the IP address, NETMASK is the network mask, BROADCAST is the broadcast address and GATEWAY is the gateway address 2. Add the DNS entries in /etc/resolv.conf --------------------------------------------------------------- 5. Mounting an NFS Partition Detailed information on setting up the NFS server and client can be obtained at http://www.tldp.org/HOWTO/NFS-HOWTO/. The following procedures function properly while running RedHat* Linux V9.0: 5.1) Setting up an NFS server 1. Edit the file /etc/exports to share a volume: /a/home/chagas (rw,no_root_squash) 2. Initialize the NFS services (running RedHat* Linux V9.0): % /etc/rc.d/init.d/nfs stop % /etc/rc.d/init.d/nfs start NOTE: You may also follow the instructions in the NFS-HOWTO procedure. 3. After modifying the /etc/exports file, execute the following command: % exportfs -rav 5.2) Setting Up an NFS client Set up the NFS client by typing the following command: % mount -o nolock :/home/foo /mnt 5.3) Setting up an NFSROOT Kernel The Intel(R) PXA27x Processor Developer's Kit uses a root file system based in the on-board flash memory. To use an NFS mount as the root file system do the following: NOTE: The user must have root user privileges in order to place the archive file into a directory. 1. Extract the rootfs.tar.gz archive file (included with this release) into the top level directory. For example: % cd / % tar -xzvf ~/rootfs.tar.gz This will create a directory called /rootfs. 2. Set up the NFS server to export this directory. Refer to section 5.2 "Setting Up an NFS Server" for details. 3. Set up a Linux source tree as described in section 1 "Building Linux for the Intel(R) PXA27x Processor Developer's Kit". 4. In the top level directory (i.e. linux-2.4.19/) type: % make menuconfig 5. Using the arrow keys to navigate, select "General Setup" (this should be the fourth line down) and press Enter. In the next menu, go down to "Default kernel command string" and press Enter. 6. A box will display containing the current command string. Delete the command string and replace it with the following command string: root=/dev/nfs nfsroot=: ip=:::::eth0:off console=ttyS0,115200 mem=64M Where the parameters are: : the server hosting the NFS file system : the directory on the NFS server where the rootfs.tar.gz archive was extracted : the IP of the Intel(R) PXA27x Processor Developer's Kit board : the netmask : an arbitrary hostname for the Intel(R) PXA27x Processor Developer's Kit board 7. Press Enter and press Escape twice. When it asks to save the kernel configuration, answer Yes. Note that if DHCP or BOOTP is used instead of a static IP configuration, the ip= parameter is ip=auto. 8. Build the kernel by typing: % make zImage --------------------------------------------------------------- 6. Mounting a RAMFS Partition To mount a RAMFS partition, type the following: % mkdir -p /ram1 % mount -t ramfs none /ram1 --------------------------------------------------------------- 7. Creating a JFFS2 File System Image To create a JFFS2 file system image, do the following: 1. Use the following files to build a JFFS2 file image: * rootfs.tar.gz - root file tree * mkfs.jffs2 - JFFS2 make file system utility NOTE: The mkfs.jffs2 binary executable utility included with this release is known to run on RedHat* Linux V9.0. 2. Create a temporary subdirectory and expand the root file system into it. Login as 'root': % mkdir tmp % cd tmp % tar xvzf ../rootfs.tar.gz % cd .. 3. Run mkfs.jffs2 to create the JFFS2 file image: % ./mkfs.jffs2 -r /home/chagas/rootfs/ -o fs.jffs2 -e 0x40000 --pad=0x01000000 NOTE: The --pad=0x0100000' switch will generate a padded 16MB image to avoid "JFFS2: Erase block.." warning messages at kernel boot up. --------------------------------------------------------------- 8. Configuring the Development Environment for TFTP File Downloads 8.1) Configuring the TFTP server for RedHat* Linux V9.0 To enable TFTP on RedHat* Linux V9.0: 1. Edit /etc/inetd.conf and uncomment the following line: tftp dgram udp wait root /usr/sbin/tcpd in.tftpd 2. Create the TFTP default directory. % mkdir /tftpboot 3. Re-start the network services or reboot the system. To enable TFTP on RedHat* Linux V9.0 edit /etc/xinetd.d/tftp: service tftp { # enable , yes => no disable = no socket_type = dgram ... # set root directory for tftp you like, here is /tftproot/ server_args = -s /tftproot/ } 8.2) Using the Ethernet NOTE : If you are using TCP/IP-over-USB, go to Section 8.3. 1. Connect the Intel(R) PXA27x Processor Developer's Kit to a host with a cross-over twisted-cable. 2. To use the ifconfig command on the host, type the following: % ifconfig eth1 192.168.1.100 8.3) Using TCP/IP-over-USB NOTE : If you are using Ethernet, go to Section 8.2. Use blob-bvd.usb instead of blob-bvd as described in section 3, step 1. 8.3.1) Installing the USB Ethernet on the Host To install the USB Ethernet on the host, type the following: # tar xzf usbdnet.tar.gz # cd usbdnet # make # rmmod usbnet # insmod usbdnet.o NOTE: usbdnet.tar.gz is located at src/usbdnet. NOTE: Remove the kernel module "usbnet.o" before installing the kernel module "usbdnet.o". 8.3.2) Configuring the USB Ethernet Each time after resetting the Intel(R) PXA27x Processor Developer's Kit, enter the BLOB command line (by stopping the autoboot process). To configure the USB Ethernet. 1. Reset the USB by executing the tftp command and connecting the USB cable when the prompt displays. blob> tftp filename **** Plug-in the USB cable & config usbdnet now *****" 2. Configure the USB Ethernet device on the host by typing the following command: % ifconfig -a 3. Find the Ethernet interface named "usb0" by typing the following command: % ifconfig usb0 192.168.1.100 4. If eth1 is already configured as 192.168.1.100, disable the eth1 by typing the following command: % ifconfig eth1 down NOTE: The Intel(R) PXA27x Processor Developer's Kit daughter card must have CPLD code V1.02 or higher to support the USB client. 5. Checking the BLOB default configuration to configure the USB Ethernet device on the Intel(R) PXA27x Processor Developer's Kit: * IP address : 192.168.1.101 * Default TFTP server : 192.168.1.100 6. To change the default configuration, type the "ifconfig" command at the blob> prompt. NOTE: The new configuration is not permanent in BLOB as it does not have a flash area to store the configuration. --------------------------------------------------------------- 9. Using APM and DVM/DFM 9.1) Using the APM By specifying different numbers in the command line /proc/sys/pm/suspend, the CPU can be set into one of three CPU modes. The command line is: # echo number > /proc/sys/pm/suspend The available numbers and the CPU modes are: Number CPU Mode Attribute ------ -------- ---------- 2 Standby LCD off, HEXLED ON 3 Sleep LCD off, HEXLED OFF 7 Deep Sleep LCD off, HEXLED OFF Press any key on the keyboard or move switch SW21 from DOT to no-DOT to wake up the CPU from sleep/standby mode. APM also supports automatic wake up mode by RTC with the following command line: # echo time > /proc/sys/pm/sleeptime To set the time to keep the CPU in sleep/standby mode before wakeup, type the following command line: # echo 5 > /proc/sys/pm/sleeptime # echo 3 > /proc/sys/pm/suspend this will set the CPU in sleep mode for 5 seconds and wake it up automatically NOTE: The time is in seconds and should be 59 seconds or less. 9.2) Using DVM/DFM DVFM is used to dynamically change the CPU's run frequency and voltage. Specify the desired frequency in the command line /proc/sys/cpu/0/speed to change the CPU's run frequency. Two read-only files, /proc/sys/cpu/0/speed-min and /proc/sys/cpu/0/speed-max, show the maximum and minimum frequency at which the CPU can run. Note: The unit for speed is KHz. DVM provides the following three files under /proc filesystem: /proc/sys/voltage/0/voltage /proc/sys/voltage/0/voltage-min /proc/sys/voltage/0/voltage-max Determine the CPU's voltage by typing the command line /proc/sys/voltage/0/voltage. NOTE: The CPU's voltage cannot be changed using the /proc/sys/voltage/0/voltage command line. The ioctl interface can also be used to change the voltage & frequency at the same time. The ioctl interface is more flexible than the /proc command and is recommended. Before using the ioctl interface, check that the /dev/ipmc exists. If is does not exist, use the following command to create it. # mknod /dev/ipmc c 10 90 The application dvfm is created and has a default root of fs. The source tarball dvfm.tar.gz is under the directory src/rootfs. # dvfm # Usage: dvfm freq n_value fast_bus_mode # The command line parameters are described below: freq: the desired frequency in kHz n_value: the N value in CCCR fast_bus_mode: [0|1] where 1 specifies fast bus mode For example, # dvfm 104000 2 0 where 104000 switches the CPU run frequency to 104 MHz, 2 is Run mode, and 0 is fast bus mode OFF # dvfm 65000 5 1 where 65000 switches the CPU run frequency to 65 MHz, 5 is Turbo mode, and 1 is fast bus mode ON NOTE: Refer to the Diagnostics for the Intel(R) PXA27x Processor Developer's Kit User's Guide for information on the correct combination of freq N and fast_bus_modes. Incorrect combinations will hang the CPU, or even damage the hardware! --------------------------------------------------------------- 10. Using the Camera Interface (CI) The CI has the following features: Resolution: VGA(480x640), CIF(352x288), QVGA(320x240), QCIF(176x144), QQVGA(160x120), QQCIF(88x72) Output Format: YCbCr422, RGB565, RGB666 10.1) Building a CI Driver Before building a CI driver, configure the following: % make mainstone_config % make menuconfig To do the configuration, follow these steps: 1. At the top level, select the Character devices entry: Code maturity level options ---> Loadable module support ---> ... I2O device support ---> ISDN subsystem ---> Input core support ---> ===> Character devices ---> Multimedia devices ---> ... Library routines ---> --- Load an Alternate Configuration File Save Configuration to an Alternate File 2. In the Character devices page, select I2C support: [*] Virtual terminal ... (256) Maximum number of Unix98 PTYs in use (0-2048) ===> I2C support ---> L3 serial bus support ---> Mice ---> ... [ ] Direct Rendering Manager (XFree86 DRI support) 3. In the I2C support page, select the items with a * as built-ins: <*> I2C support < > I2C bit-banging interfaces (NEW) < > I2C PCF 8584 interfaces (NEW) <*> PXA I2C Algorithm (NEW) <*> PXA I2C Adapter <*> ADCM2650 support < > I2C device interface (NEW) < > I2C /proc interface (required for hardware sensors) (NEW) 4. Return to top level and select Multimedia devices: Code maturity level options ---> Loadable module support ---> ... I2O device support ---> ISDN subsystem ---> Input core support ---> Character devices ---> ===> Multimedia devices ---> File systems ---> ... Library routines ---> --- Load an Alternate Configuration File Save Configuration to an Alternate File 5. In the Multimedia devices page, select Video for Linux as a built-in: <*> Video For Linux ===> Video For Linux ---> Radio Adapters ---> 6. In the Video For Linux page, select Camera Interface for the Intel(R) PXA27x Processor Developer Kit as a built-in: [ ] V4L information in proc filesystem (NEW) --- Video Adapters < > Mediavision Pro Movie Studio Video For Linux (NEW) < > CPiA Video For Linux (NEW) < > SAA5249 Teletext processor (NEW) < > SAB3036 tuner (NEW) <*> Camera Interface for Intel(R) PXA27x Processor Developer Kit (NEW) % make dep % make oldconfig % make zImage 10.2) Using the Camera Demo The kit includes the application "ci-capture" for demonstration purposes. The application contains the root filesystem by default. The source tarball "camera.tar.gz" is under the directory src/rootfs/. 1. Build the demo application by typing the following commands: % tar xzf src/rootfs/camera.tar.gz % cd camera % make 2. Before running the demo application, check that the directory /dev/video0 exists. If it does not, use the following command to create the directory: % mknod /dev/video0 c 81 0 3. Run the demo on target board by typing the following command: % ci-capture width height NOTE: The parameters "width" and "height" define the resolution of image, such as 176x144. The resolution has to be one of the following: CIF(352x288), QVGA(320x240), QCIF(176x144), QQVGA(160x120), or QQCIF(88x72). --------------------------------------------------------------- 11. Using the Linux Kernel and CRAMFS XIP The Linux kernel and filesystem XIP are supported with a patch for the Preview Kit. The following sections describe how to use the XIP features. 11.1) Enabling the Linux Kernel XIP To enable the kernel XIP, configure the following: % make mainstone_config % make menuconfig To do the configuration, follow these steps: 1. At the top level select the General setup entry: ... Code maturity level options ---> Loadable module support ---> System Type ---> ===> General setup ---> Parallel port support ---> ... 2. In General setup page, select Kernel Execute-In-Place from ROM..., and set the "Kernel .text physical address" to 0x40000: ... [ ] BSD Process Accounting [*] Sysctl support ===> [*] Kernel Execute-In-Place from ROM (EXPERIMENTAL) ===> (00040000) Kernel .text physical address ... 3. Type the following command to build the kernel: % make xipImage After the kernel is built successfully, a xipImage file is generated at "arch/arm/boot". NOTE: Check the size of the xipImage file, as it must be less than or equal to 2 MB. If the file is larger than 2 MB, the flash map (BLOB, KERNEL, ROOTFS) must be changed or some kernel features (such as USB host function drivers (which can be built as modules) must be disabled. 3. To boot xipImage, type "go" at the blob> prompt. 11.2) Enabling the CRAMFS XIP The Preview Kit also supports the XIP feature for CRAMFS. In order to enable CRAMFS XIP, configure the following: % make oldconfig % make menuconfig To enable CRAMFS XIP, follow these steps: 1. At the top level, select File systems: ... Character devices ---> Multimedia devices ---> ===> File systems ---> Console drivers ---> Sound ---> ... 2. In the File systems page, select Compressed ROM file system support and select the sub items below it: ... < > EFS file system support (read only) (EXPERIMENTAL) < > Journaling Flash File System (JFFS) support <*> Journaling Flash File System v2 (JFFS2) support (0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy) ===> <*> Compressed ROM file system support ===> [*] Use linear addressing for cramfs ===> [*] Support XIP on linear cramfs ===> [*] Root file system on linear cramfs ... 3. Save and exit: % make oldconfig % make xipImage After the kernel is built successfully, a xipImage file is generated at "arch/arm/boot". NOTE: Check the size of the xipImage file, as it must be less than or equal to 2 MB. If the file is larger than 2 MB, the flash map (BLOB, KERNEL, ROOTFS) must be changed or some kernel features (such as USB host function drivers (which can be built as modules) must be disabled. NOTE: To have the kernel mount the CRAMFS image as a root file system, the command line parameter "root=/dev/null rootflags=physaddr=0x********" must be passed to the kernel. Replace 0x******** with the physical address location of the linear CRAMFS image used for booting. 11.3) Using XIP as a Model XIP can be used for the Linux Kernel and Filesystem (CRAMFS). Typical combinations are: - Kernel with CRAMFS XIP - Kernel XIP with JFFS2 - Kernel XIP with CRAMFS - Kernel XIP with CRAMFS XIP NOTE: Refer to sections 11.1 Using the Linux Kernel XIP and 11.2 CRAMFS XIP for information on building different XIP combinations. 11.4) Creating a CRAMFS Image Use mkcramfs to create CRAMFS rootfs image. To build mkcramfs, apply the patches mentioned in section 3 Loading and Running Linux on the Intel(R) PXA27x Processor Developer's Kit. To apply the patches, type the following commands: % cd linux/fs/cramfs/ % gcc mkcramfs.c -lz -o mkcramfs % ./mkcramfs usage: ./mkcramfs [-h] [-e edition] [-i file] [-n name] dirname outfile -h print this help -E make all warnings errors (non-zero exit status) -e edition set edition number (part of fsid) -i file insert a file image into the filesystem (requires >= 2.4.0) -n name set name of cramfs filesystem -p pad by 512 bytes for boot code -s sort directory entries (old option, ignored) -x make marked files eXecute In Place -z make explicit holes (requires >= 2.3.39) dirname root of the filesystem to be compressed outfile output file 11.4.1) Creating a Compressed CRAMFS Image To create a compressed CRAMFS image, type the following command: % ./mkcramfs rootfs cramfs.img 11.4.2) Creating a CRAMFS/XIP Image XIP executables (either kernel or application) must be stored in an uncompressed format. mkcramfs will not compress the executables with the sticky bit set when the -x option is specified. To create a CRAMFS/XIP image, follow these steps: 1. Unpack the rootfs.tgz and remove QPE (QPE can't XIP) by typing the following commands: % tar xzf rootfs.tgz % rm -rf rootfs/usr/qpe 2. Mark the executables with a sticky bit by typing the following commands: % chmod +t rootfs/bin/* % chmod +t rootfs/lib/* % chmod +t rootfs/usr/bin/* % chmod +t rootfs/sbin/* 3. Create the Cramfs/XIP image by typing the following command: % ./mkcramfs -x rootfs cramfs_xip.img --------------------------------------------------------------- 12. PCMCIA This kit includes PCMCIA support in Linux. Refer to for the Linux PCMCIA HOWTO document and a complete list of supported cards and tools. 12.1) Configuring the Kernel To build PCMCIA support in Linux, configure the kernel: % make menuconfig To configure the kernel, follow these steps: 1. At the top level, select the Character devices entry: ... System Type ---> ===> General setup ---> Parallel port support ---> Memory Technology Devices (MTD) ---> 2. In the General setup page, select PCMCIA/CardBus support: ... [*] Support for hot-pluggable devices ===> PCMCIA/CardBus support ---> MMC device drivers ---> ... 3. In the PCMCIA/CardBus support page, select the items with a * as built-ins: <*> PCMCIA/CardBus support [ ] i82365 compatible bridge support [ ] Databook TCIC host bridge <*> Intel(R) PXA250 and PXA210 processor support 4. For IBM Micro-driver support, return to the top level and select ATA/ATAPI/MFM/RLL support: Amateur Radio support ---> IrDA (infrared) support ---> ===> ATA/ATAPI/MFM/RLL support ---> SCSI support ---> I2O device support ---> 5. In the ATA/ATAPI/MFM/RLL support page, select ATA/ATAPI/MFM/RLL support and then select IDE, ATA and ATAPI Block devices: <*> ATA/ATAPI/MFM/RLL support ===> IDE, ATA and ATAPI Block devices ---> 6. In the IDE, ATA... page, select PCMCIA IDE support as a built-in: [ ] Auto-Geometry Resizing support ===> <*> PCMCIA IDE support < > Include IDE/ATAPI CDROM support 7. For the Xircom(R) Creditcard Mobile Adapter (CEM33), return to the top level and select Network device support: Networking options ---> ===> Network device support ---> Amateur Radio support ---> 8. In the Network device support page, select Network device support and select PCMCIA network device support: [*] Network device support ... Wan interfaces ---> ===> PCMCIA network device support ---> 9. In the PCMCIA network device support page, select the items with an * as built-ins: [*] PCMCIA network device support < > 3Com 3c589 PCMCIA support < > 3Com 3c574 PCMCIA support < > Fujitsu FMV-J18x PCMCIA support < > NE2000 compatible PCMCIA support < > Asix AX88190 PCMCIA support < > New Media PCMCIA support < > SMC 91Cxx PCMCIA support <*> Xircom(R) Creditcard Mobile Adapter (CEM33) 16-bit PCMCIA support [ ] PCMCIA Wireless LAN 12.2) Using PCMCIA To use PCMCIA, download the utilities from http://pcmcia-cs.sourceforge.net using the following command: - pcmcia-cs-3.2.8.tar.gz 12.2.1) Unpacking the Tarball To unpack the tarball, type the following commands: % tar xvf pcmcia-cs-3.2.8.tar.gz % cd pcmcia-3.2.8 12.2.2) Modifying the config.in in pcmcia-cs-3.2.8 To Modify the config.in, type the following commands: % vi config.in % cat config.in LINUX=/usr/src/linux PREFIX= MODDIR= UCC=arm-linux-gcc KCC=arm-linux-gcc LD=arm-linux-ld ... 12.2.3) Building the PCMCIA Tools To build the PCMCIA tools in the Linux kernel tree, type the following commands: % make mainstone_config % make menuconfig <= configure the kernel as above % make oldconfig To build the PCMCIA tools in pcmcia-cs-3.2.8, type the following commands: % make config -------- Linux PCMCIA Configuration Script -------- The default responses for each question are adequate for most users. Consult the Linux PCMCIA HOWTO document for additional information about each option. Linux kernel source directory [/usr/src/linux]: /path/to/kernel ... Build 'trusting' versions of card utilities (y/n) [n]: y Include 32-bit (CardBus) card support (y/n) [y]: n Include PnP BIOS resource checking (y/n) [n]: n Module install directory [/lib/modules/2.4.21-rmk1-pxa1-intc2]: ... The Forms library is not available. Configuration successful. .... % cd cardmgr % make NOTE: cardmgr and cardctl are built-ins in the directory. 12.2.4) Run on target To run on target, follow these steps: 1. Include the following commands into root file-system: - cardmgr/cardctl - cardmgr/cardmgr - etc % cp cardmgr/cardctl rootfs/sbin % cp cardmgr/cardmgr rootfs/sbin % cp etc rootfs/etc/pcmcia -R 2. Run cardmgr to monitor the PCMCIA slots by typing the following command: % cardmgr 3. Run cardctl to show PCMCIA information by typing the following command: % cardctl ident For other tool usage information, refer to the Linux PCMCIA HOWTO document. --------------------------------------------------------------- 13. New Features The following features are new to this release: - Blob: USB serial download support - Kernel: boot parameter support - PCMIA support: Xircom(R) Creditcard Mobile Adapter (CEM33), IBM Microdrive* PC Card (1 GB) --------------------------------------------------------------- 14. Intel(R) PXA27x Processor Developer's Kit Errata’s This kit implements workarounds for the following errata’s: Errata Description ------ ----------- E11 KBD Extra keypad matrix interrupt in ignore-multiple-keypress (IMKP) mode E17 LCD Overlay1 is not enabled intermittently after re-enabling the LCD E25 LCD Enabling Overlay 2 in YUV420 mode hangs the LCD controller E20 UART Character timeout interrupt remains set under certain software conditions To implement the errata’s, follow these steps: 1. For the top level page, select System Type: ... Loadable module support ---> ===> System Type ---> General setup ---> ... 2. In the System Type page, select Workaround for PXA27x errata: --- Processor Type [ ] Workaround for Intel(R)XScale microarchitecture cache errata (see help) ===> Workaround for PXA27x errata ---> --- Processor Features 3. In the Workaround for PXA27x errata page, select the items for the Intel(R) PXA27x Processor Developer's Kit C5 stepping: [ ] Extra Keypad Matrix Interrupt in IMKP Mode (E11) [*] UART Character Timeout Interrupt Remains Set under Certain Conditions [ ] LCD Overlay1 is Not Enabled Intermittently after Re-enabling LCD [ ] LCD Enabling Overlay2 for YUV420 hangs LCD controller NOTE: For Intel(R) PXA27x Processor Developer's Kit with processor stepping before C5, select all the workarounds. --------------------------------------------------------------- 15. Problems/Workarounds * Busybox Problem: The rmmod operation does not support "-" in the module name. Workaround: Replace the "-" minus with an "_" underline in the module name or remove the "_" minus from the module name. * PCMCIA Problem: The Xircom(R) Creditcard Mobile Adapter (CEM33) does not support the reset and resume commands by cardctl. Workaround: None. * QPE Volume Adjustment Application Problem: The volume adjustment application does not work properly. Workaround: None. * IRDA Problem: The IRDA wireless link does not always receive files. Workaround: None. * Ethernet Problem: Linux boots up with JFFS2 rootfs and mounts a NFS partition on the JFFS2 rootfs through the Ethernet. In this mounted NFS partition, operations such as copying, removing, and executing can fail. Workaround: Files can be downloaded into JFFS2 rootfs through TFTP/FTP clients and then can be operated in the local JFFS2 partition. --------------------------------------------------------------- 16. Update Notes For Platform Support: - Intel(R) PXA27x Processor Developer's Kit with C5 stepping (Flash size 64M, SDRAM 128M). For Driver Support: - PCMCIA - MTD XIP support - Camera interface - APM - DVFM - USB client support - USB host support - SRAM support - Intel(R) PXA27x Processor Developer's Kit Keypad - IrDA - LCD Controller - 640x480, 240x320 - LCD 16bpp/18bpp/19bpp display support - LCD VGA, QVGA support - LCD overlayer1/2 - Touch screen - UCB1400 touch screen support (intended to be used in conjunction with tslib from http://cvs.arm.linux.org.uk) - Stereo audio - Product Ethernet support - 32-bit Flash EEPROM - Interrupt controller - Memory management unit - RTC support - Intel(R) Wireless MMX(TM) context switching - Memory controller - Serial port *Other brands and names are the property of their respective owners.