Linux*-2.6.9 Preview Kit for the Intel(R) PXA27x Processor Developer's Kit January 2005, 305947-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 NFS over USB 10. Using APM and DVM/DFM 11. Using the Camera Interface (CI) 12. PCMCIA 13. New Features 14. Intel(R) PXA27x Processor Developer's Kit Errata 15. Problems/Workarounds 16. Update Notes 17. Release Package Validation Scope +++ 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.6.9 Preview Kit for the Intel(R) PXA27x Processor Developer's Kit, the following files are needed: * linux-2.6.9.tar.gz - kernel sources from ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ * patch-2.6.9-intc1 - 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.6/). % tar xvzf linux-2.6.9.tar.gz If the Linux sources were compressed with bzip2, use the following command: % bzip2 -dc linux-2.6.9.tar.bz2 | tar xvf - 2. Enter Linux source directory. % cd linux-2.6.9 3. Apply the Linux Team at Intel's patches. % cat patch-2.6.9-intc1 | patch -p1 4. Build the kernel (after patching). % export ARCH=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make oldconfig % 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/64MB L18 flash, and 128MB 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 JFlashMM 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 file 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 command: 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 command: 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. To speed up the autoboot process. 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: /nfsboot (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.6.9/) 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 asked 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 can 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 ./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 an Ethernet 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 after 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. Check 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 NFS over USB This section shows how to mount the NFS partition over USB. We assume the Linux host is Redhat 9.0 and NFS service on the host works fine. To use NFS over USB, follow these steps: 1. Install USB Ethernet on host: % tar -xzvf usbdnet.tar.gz % cd usbdnet % make % rmmod usbnet.o % insmod usbdnet.o NOTE: "usbdnet.tar.gz" can be found at "src/usbdnet" Note: Remove kernel module "usbnet.o" before installing kernel module "usbdnet.o". 2. Configure kernel to support NFS over USB: Configure the kernel as following to support NFS over USB, % export ARCH=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make menuconfig At the top level select the "General setup" entry, ... Loadable module support ---> System Type ---> ===> General setup ---> Parallel port support ---> Memory Technology Devices (MTD) ---> In "General setup" Page, set "Default kernel command string" as following, [ ] PXA27x SRAM Allocation Support [ ] Preemptible Kernel (EXPERIMENTAL) < > Advanced Power Management Emulation < > RISC OS personality ===> (root=/dev/nfs nfsroot=192.168.1.100:/rootfs ip=192.168.1.101:192.168.1.100::255.255.255.0::usb0:off console=ttyS0,115200 mem=128M) Default kernel command string [*] Timer and CPU usage LEDs Then, build the kernel with following commands, % make oldconfig % make zImage You can find the kernel image at "arch/arm/boot/zImage". 3. Upload the "zImage" to the target board, boot the kernel up : When the console shows the message "Looking up port of RPC 100005/1 on 192.168.1.100", disconnect the USB cable between the target board and host, re-connect by plugging out/in USB cable. On the host, use the following command, % ifconfig usb0 192.168.1.100 --------------------------------------------------------------- 10. Using APM and DVM/DFM 10.1) APM and DVFM configuration Ensure that "sysfs" has been mounted. Enabling APM and DVFM requires the following configuration: % export ARCH=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make menuconfig To do the configuration, follow these steps: 1. At the top level select General setup entry: Byode maturity level options ---> General setup ---> Loadable module support ---> System Type ---> ===> General setup ---> Parallel port support ---> ... Cryptographic options ---> Library routines ---> --- Load an Alternate Configuration File Save Configuration to an Alternate File 2. In the General setup page, select Support CPU clock change and Power Management support. [ ] Compressed boot loader in ROM/flash (0x0) Compressed ROM boot loader base address (0x0) Compressed ROM boot loader BSS address ===> [*] Support CPU clock change (EXPERIMENTAL) < > /proc/cpufreq interface (deprecated) Default CPUFreq governor (performance) ---> --- 'performance' governor < > 'powersave' governor < > 'userspace' governor for userspace frequency scaling < > 'ondemand' cpufreq policy governor PCMCIA/CardBus support ---> ... < > Kernel support for MISC binaries Generic Driver Options ---> ===> [*] Power Management support [ ] PXA27x SRAM Allocation Support ... [*] Timer LED [*] CPU usage LE % make oldconfig % make zImage 10.2) APM Usage To enter a different CPU mode, the usage is: % echo str > /sys/power/state Available string and the CPU mode it stands for are listed below: string mode phenomenon "standby" Standby LCD off, HEXLED ON "mem" Sleep LCD off, HEXLED OFF Press any key on the keypad or switching SW21 from DOT to no-DOT to wake up the system from Sleep/Standby. APM also supports automatic wake up by the RTC with the following command: % echo time > /sys/power/sleeptime A time value can be set to keep the system in Sleep/Standby before wakeup. The time is in seconds and should be no longer than 59 seconds. For example, % echo 5 > /sys/power/sleeptime % echo "mem" > /sys/power/state will keep the system in sleep mode for 5 seconds, then it will wake up automatically. 10.3) DVM/DFM Usage DVFM is used to dynamically change the CPU's run frequency and voltage. In sysfs filesystem, there are some files that provide information about DVFM. These files are under directory, /sys/devices/system/cpu/cpu0/cpufreq/. cpuinfo_cur_freq current frequency that CPU is running at. cpuinfo_max_freq max frequency that CPU can run at. cpuinfo_min_freq min frequency that CPU can run at. cpu-voltage current voltage of the CPU. show_frequency_and_voltage frequency with corresponding voltage Please note that the unit for speed is KHz, and for unit for voltage is mv. These files are read-only, and can not be changed. An ioctl interface, which can be used to change voltage and frequency together, is provided. The Ioctl interface is more flexible than sysfs filesystem and is recommended. Before use the ioctl interface, make sure the folder /dev/ipmc exists. If it does not exist, use the following command: % mknod /dev/ipmc c 10 90 The application named "dvfm" is located within the default root fs. The source tarball "dvfm.tar.gz" is under "src/rootfs". % dvfm Usage: dvfm l_value 2n_value fast_bus_mode turbo_mode mem_clk_conf The following parameters are described below: l_value: the L settings in CCCR 2n_value: the 2N settings in CCCR fast_bus_mode: 1 - use fast bus mode, 0 - not use turbo_mode: 2 - use turbo mode, 1 - use half turbo mode, 0 - not use turbo or half turbo mode mem_clk_conf: 1 - set A bit in CCCR, 0 - clear A bit in CCCR For example, % dvfm 16 4 1 0 0 will switch the system to 208Mhz, in RUN mode with fast bus mode although 2N=4. % dvfm 16 4 0 2 0 will switch the system to 416Mhz, in Turbo mode with no fast bus mode. Note: Please refer to the Intel PXA27x Process Developer's Kit manual to know the combination of freq N and fast_bus_mode, as an incorrect combination will hang the system, or even damage the hardware. --------------------------------------------------------------- 11. Using the Camera Interface (CI) 11.1) Features Resolution: VGA(480x640)(STILL mode only), CIF(352x288), QVGA(320x240), QCIF(176x144), QQVGA(160x120), QQCIF(88x72) Output Format: YCbCr422, RGB565, RGB666 11.2) Build CI Driver Before building a CI driver, configure the following: % export ARCM=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make menuconfig To do the configuration, follow these steps: 1. At the top level select the "I2C support" entry: ... Input device support ---> Character devices ---> ===> I2C support ---> Multimedia devices ---> File systems ---> ... 2. In "I2C support" page, select "I2C support", then enter "I2C Algorithms" entry: <*> I2C support < > I2C device interface (NEW) ===> I2C Algorithms ---> I2C Hardware Bus support ---> Hardware Sensors Chip support ---> ... 3. In "I2C Algorithms" page, select the following item as built-in: < > I2C bit-banging interfaces (NEW) < > I2C PCF 8584 interfaces (NEW) < > I2C PCA 9564 interfaces (NEW) <*> PXA I2C Algorithm 4. Go back to "I2C support" page, then enter "I2C Hardware Bus support" entry: <*> I2C support < > I2C device interface (NEW) I2C Algorithms ---> ===> I2C Hardware Bus support ---> Hardware Sensors Chip support ---> ... 5. In "I2C Hardware Bus support" page, select the following item as build-in: < > AMD 756/766 (NEW) < > AMD 8111 (NEW) < > ISA Bus support (NEW) < > Parallel port adapter (light) (NEW) < > NatSemi SCx200 ACCESS.bus (NEW) < > PCA9564 on an ISA bus (NEW) <*> PXA I2C Adapter 6. Go back to "I2C support" page, then enter "Hardware Sensors Chip support" entry: <*> I2C support < > I2C device interface (NEW) I2C Algorithms ---> I2C Hardware Bus support ---> ===> Hardware Sensors Chip support ---> ... 7. In "Hardware Sensors Chip support" page, select the following item as build-in: ... < > SMSC LPC47M10x and compatibles (NEW) < > Winbond W83781D, W83782D, W83783S, W83627HF, Asus AS99127F (NEW) < > Winbond W83L785TS-S (NEW) < > Winbond W83627HF, W83627THF, W83637HF, W83697HF (NEW) <*> ADCM2650 chip 8. Then go back to top level, select the "Multimedia devices" entry: ... Input device support ---> Character devices ---> I2C support ---> ===> Multimedia devices ---> File systems ---> ... 9. In "Multimedia devices" page, select "Video For Linux" item, then enter "Video For Linux" entry: <*> Video For Linux ===> Video For Linux ---> Radio Adapters ---> Digital Video Broadcasting Devices ---> 10. In "Video For Linux" page, select "Camera Interface for Intel(R) PXA27x Processor Developer Kit" as built-in: --- Video Adapters < > CPiA Video For Linux (NEW) < > SAA5246A, SAA5281 Teletext processor (NEW) < > SAA5249 Teletext processor (NEW) < > SAB3036 tuner (NEW) < > OmniVision Camera Chip support (NEW) <*> Camera Interface for Intel(R) PXA27x Processor Developer Kit % make oldconfig % make zImage 11.3) Camera demo usage The kit includes the application "ci-capture" for the purpose of demonstration, and is located under the root filesystem by default. The source tarball "camera.tar.gz" is under "src/rootfs/". 1. Build the demo application by typing following commands: % tar xzf src/rootfs/camera.tar.gz % cd camera % make 2. Before running the demo application, ensure that "/dev/video0" exists. If it does not, use the following command to create it, % mknod /dev/video0 c 81 0 3. Now run the demo on the target board, % ci-capture width height Note: the parameters "width" and "height" means the resolution of image, such as 176x144. The resolution has to be one of CIF(352x288), QVGA(320x240), QCIF(176x144), QQVGA(160x120), QQCIF(88x72). --------------------------------------------------------------- 12. PCMCIA This kit includes PCMCIA support in the kernel. Refer to for HOWTO information and a complete list of supported cards and tools. 12.1) Kernel Configuration To build PCMCIA support in Linux, configure the kernel as follows. % export ARCH=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make menuconfig To configure the kernel, follow these steps: 1. At the top level, select "General Setup" ... System Type ---> ===> General setup ---> Parallel port support ---> Memory Technology Devices (MTD) ---> 2. In "General Setup" page, select "PCMCIA/CardBus support" ... [ ] Support CPU clock change (EXPERIMENTAL) ===> PCMCIA/CardBus support ---> --- At least one math emulation must be selected 3. In "PCMCIA/CardBus support" page, select the following items as built-in, <*> PCMCIA/CardBus support [ ] Enable PCMCIA debugging < > Databook TCIC host bridge support <*> PXA2xx support 4. For IBM Micro-driver support, go back to level select "ATA/ATAPI/MFM/RLL support" Multi-device support (RAID and LVM) ---> Networking support ---> ===> ATA/ATAPI/MFM/RLL support ---> SCSI device support ---> Fusion MPT device support ---> 5. In the "ATA/ATAPI/MFM/RLL support" page, select the following items as built-in: <*> ATA/ATAPI/MFM/RLL support <*> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support --- Please see Documentation/ide.txt for help/info on IDE drives [ ] Support for SATA (deprecated; conflicts with libata SATA driver) <*> Include IDE/ATA-2 DISK support [ ] Use multi-mode by default <*> PCMCIA IDE support < > Include IDE/ATAPI CDROM support < > Include IDE/ATAPI TAPE support (EXPERIMENTAL) < > Include IDE/ATAPI FLOPPY support [ ] IDE Taskfile Access [ ] IDE Taskfile IO (EXPERIMENTAL) --- IDE chipset support/bugfixes < > generic/default IDE chipset support 6. For the Xircom(R) Creditcard Mobile Adapter (CEM33), go back to top level, select "Networking support", Block devices ---> Multi-device support (RAID and LVM) ---> ===> Networking support ---> ATA/ATAPI/MFM/RLL support ---> SCSI device support ---> 7. In Network device support page, select "Network device support", then select "PCMCIA network device support", [*] Networking support ... Wireless LAN (non-hamradio) ---> ===> PCMCIA network device support ---> 8. In "PCMCIA network device support" page, select the following items as built-in, [*] PCMCIA network device support < > 3Com 3c589 PCMCIA support < > 3Com 3c574 PCMCIA support < > Fujitsu FMV-J18x PCMCIA support < > NE2000 compatible PCMCIA support < > New Media PCMCIA support < > SMC 91Cxx PCMCIA support <*> Xircom 16-bit PCMCIA support < > Asix AX88190 PCMCIA support % make oldconfig % make zImage 12.2) Use PCMCIA To use PCMCIA, download the utilities from http://pcmcia-cs.sourceforge.net. - pcmcia-cs-3.2.8.tar.gz 12.2.1) Unpack the tarball % tar zxvf pcmcia-cs-3.2.8.tar.gz % cd pcmcia-3.2.8 12.2.2) Modify the "config.in" % vi config.in % cat config.in LINUX=/usr/src/linux PREFIX= MODDIR= UCC=arm-linux-gcc KCC=arm-inux-gcc LD=arm-linux-ld ... 12.2.3) Build the PCMCIA tools In Linux kernel tree, % export ARCH=arm % export CROSS_COMPILE=arm-linux- % make mainstone_defconfig % make menuconfig <= configure the kernel as above % mkae oldconfig In "pcmcia-cs-3.2.8" % make config -------- Linux PCMCIA Configuration Script -------- The default responses for each question are correct for most users. Consult the PCMCIA-HOWTO for additional info about each option. Linux kernel source directory [/usr/src/linux]: /path/to/linux-2.6.9 ... 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/mainstone-linux-2.6.9]: ... Configuration successful. .... % cd cardmgr % make "cardmgr" and "cardctl" are built-ins in the directory. 12.2.4) Running on the target To run on the target, follow these steps: 1. Include the following commands into the 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 --------------------------------------------------------------- 13. New Features N/A, as this is first release of Linux 2.6.9 Preview Kit. --------------------------------------------------------------- 14. Intel(R) PXA27x Processor Developer's Kit Erratas This kit implements workarounds for the following erratas : E11, E17, E20, E23, and E25, E28, E37, E38: You can find the detailed description in the Intel(R) PXA27x Processor Family Specification Update at - http://developer.intel.com/design/pca/applicationsprocessors/specupdt/28007103.pdf To implement the errata, follow these steps: 1. For the top level page, select the "System Type" option: ... General setup ---> Loadable module support ---> ===> System Type ---> General setup ---> Parallel port support ---> ... 2. In the System Type page, select the "Intel PXA2xx Implementations" option: ARM system type (PXA2xx-based) ---> ===> Intel PXA2xx Implementations ---> h720x Implementations ---> --- Processor Type ... 3. In the "Intel PXA2xx Implementations" Page, select the "Intel PXA27x Errata Fixes" option: Select target board (Intel HCDDBBVA0 Development Platform) ---> ===> Intel PXA27x Errata Fixes ---> 4. In the "Intel PXA27x Errata Fixes" page, select the following items as built-ins. [*] Intel PXA27x Errata 11 [ ] Intel PXA27x Errata 17 [*] Intel PXA27x Errata 20 [*] Intel PXA27x Errata 23 [ ] Intel PXA27x Errata 25 [*] Intel PXA27x Errata 28 [*] Intel PXA27x Errata 37 [*] Intel PXA27x Errata 38 % make oldconfig % make zImage NOTE: For Intel(R) PXA27x Processor Developer's Kit with processor stepping before C5, select all the workarounds. --------------------------------------------------------------- 15. Problems/Workarounds 15.1) USB Mass Storage Problem: If the system enters sleep or standby mode while a USB mass storage device is mounted, the device will not automatically mount after resuming (wake-up). Workaround: Dismount all USB mass storage devices from the system before entering sleep or standby mode. 15.2) USBDNet Host Interface Problem: If the system enters sleep or standby mode with an established USBDNet interface on the host, the interface will be inactive after resuming (wake-up). Workaround: Use "ifconfig" to config the USBDNet interface after resuming. 15.3) Overlay2 Screen Flickers Problem: The LCD screen flickers frequently while playing YUV422 format video on an overlay2 device and when DVFM is used to change system frequencies. Workaround: None. 15.4) Overlay2 Poor Video Quality Problem: Poor video quality of RGB565 stream on overlay2. Workaround: Convert RGB565 to RGBT555 before playing the stream on Overlay2. 15.5) Ethernet Problem: The Linux operating system can boot up with JFFS2 root file system and mount a NFS partition on the JFFS2 root file system over the Ethernet. In this mounted NFS partition, operations such as copying, removing, and executing can fail. Workaround: Files can be downloaded into JFFS2 root file system through TFTP/FTP clients and then can be operated in the local JFFS2 partition. 15.6) Memory Problem: When moving large amounts of data from devices to a file in a JFFS2/NFS rootfs (such as with video or audio recording), consecutive free memory space will decrease and the memory will be heavily cached. If the consecutive free memory (which is not cached) does not allocate enough space for device DMA buffers, some devices will have DMA allocation failures. Workaround: Do not perform large data-intensive operations that will restrict the amount of free consecutive memory space for device drivers. 15.7) Keypad Problem: The current keypad driver does not support numbers 0~9, the asterisk (*) symbol, and the number sign (#) symbol. Workaround: None. --------------------------------------------------------------- 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 - 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 --------------------------------------------------------------- 17. Release Package Validation Scope 17.1) Full Features validated with the following operating points: -------------------------------------------------- CPU Frequency (SW13, SW12, SW14, SW15, SW16) -------------------------------------------------- 208 MHz (5,7, No-Dot, No-Dot, Dot) 416 MHZ (5,9, No-Dot, No-Dot, No-Dot) 312 MHz (D,8, No-Dot, No-Dot, No-Dot) 520 MHz (D,A, No-Dot, No-Dot, No-Dot) 17.2) Limited Features validated with the following operating points: (USB, Audio, Camera, LCD, Touch Screen, IRDA, MTD) -------------------------------------------------- CPU Frequency (SW13, SW12, SW14, SW15, SW16) -------------------------------------------------- 312 MHz (5,8, No-Dot, No-Dot, No-Dot) 520 MHz (5,A, No-Dot, No-Dot, No-Dot) 208 MHz (D,7, No-Dot, No-Dot, Dot) 416 MHZ (D,9, No-Dot, No-Dot, No-Dot) 17.3) Boot-up testing (QVGA, VGA, JFFS2 rootfs, NFS root file system) with the following operating points: -------------------------------------------------- CPU Frequency (SW13, SW12, SW14, SW15, SW16) -------------------------------------------------- 91 MHz (2,3,DOT,DOT,DOT) 104 MHz (A,A, No-Dot, No-Dot, Dot) 624 MHz (7,A, No-Dot, No-Dot, No-Dot) 624 MHz (F,A, No-Dot, No-Dot, No-Dot) *Other brands and names are the property of their respective owners.