3 -----------------------------
5 The Cyclone IQ80310 board is an evaluation platform for Intel's 80200 Xscale
6 CPU and 80312 Intelligent I/O chipset (collectively called IOP310 chipset).
8 The 80312 contains dual PCI hoses (called the ATUs), a PCI-to-PCI bridge,
9 three DMA channels (1 on secondary PCI, one on primary PCI ), I2C, I2O
10 messaging unit, XOR unit for RAID operations, a bus performance monitoring
11 unit, and a memory controller with ECC features.
13 For more information on the board, see http://developer.intel.com/iio
16 -----------------------------
25 - Serial ports (ttyS0/S1)
26 - Cache/TLB locking on 80200 CPU
27 - Performance monitoring unit on 80200 CPU
28 - 80200 Performance Monitoring Unit
29 - Acting as a system controller on Cyclone 80303BP PCI backplane
30 - DMA engines (EXPERIMENTAL)
31 - 80312 Bus Performance Monitor (EXPERIMENTAL)
32 - Application Accelerator Unit (XOR engine for RAID) (EXPERIMENTAL)
33 - Messaging Unit (EXPERIMENTAL)
39 -----------------------------
44 This will build an image setup for BOOTP/NFS root support. To change this,
45 just run make menuconfig and disable nfs root or add a "root=" option.
47 Preparing the Hardware
48 -----------------------------
50 This document assumes you're using a Rev D or newer board running
51 Redboot as the bootloader. Note that the version of RedBoot provided
52 with the boards has a major issue and you need to replace it with the
53 latest RedBoot. You can grab the source from the ECOS CVS or you can
54 get a prebuilt image and burn it in using FRU at:
56 ftp://source.mvista.com/pub/xscale/iq80310/redboot.bin
58 Make sure you do an 'fis init' command once you boot with the new
64 -----------------------------
66 Assuming you have your development system setup to act as a bootp/dhcp
67 server and running tftp:
69 RedBoot> load -r -b 0xa1008000 /tftpboot/zImage.xs
70 Raw file loaded 0xa1008000-0xa1094bd8
72 If you're not using dhcp/tftp, you can use y-modem instead:
74 RedBoot> load -r -b 0xa1008000 -m y
76 Note that on Rev D. of the board, tftp does not work due to intermittent
77 interrupt issues, so you need to download using ymodem.
79 Once the download is completed:
81 RedBoot> go 0xa1008000
84 -----------------------------
86 A kernel is not useful without a root filesystem, and you have several
87 choices with this board: NFS root, RAMDISK, or JFFS/JFFS2. For development
88 purposes, it is suggested that you use NFS root for easy access to various
89 tools. Once you're ready to deploy, probably want to utilize JFFS/JFFS2 on
93 -----------------------------
95 Linux on the IQ80310 supports RedBoot FIS paritioning if it is enabled.
96 Out of the box, once you've done 'fis init' on RedBoot, you will get
97 the following partitioning scheme:
99 root@192.168.0.14:~# cat /proc/mtd
100 dev: size erasesize name
101 mtd0: 00040000 00020000 "RedBoot"
102 mtd1: 00040000 00020000 "RedBoot[backup]"
103 mtd2: 0075f000 00020000 "unallocated space"
104 mtd3: 00001000 00020000 "RedBoot config"
105 mtd4: 00020000 00020000 "FIS directory"
107 To create an FIS directory, you need to use the fis command in RedBoot.
108 As an example, you can burn the kernel into the flash once it's downloaded:
110 RedBoot> fis create -b 0xa1008000 -l 0x8CBAC -r 0xa1008000 -f 0x80000 kernel
111 ... Erase from 0x00080000-0x00120000: .....
112 ... Program from 0xa1008000-0xa1094bac at 0x00080000: .....
113 ... Unlock from 0x007e0000-0x00800000: .
114 ... Erase from 0x007e0000-0x00800000: .
115 ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: .
116 ... Lock from 0x007e0000-0x00800000: .
119 Name FLASH addr Mem addr Length Entry point
120 RedBoot 0x00000000 0x00000000 0x00040000 0x00000000
121 RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000
122 RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000
123 FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000
124 kernel 0x00080000 0xA1008000 0x000A0000 0x00000000
126 This leads to the following Linux MTD setup:
128 mtroot@192.168.0.14:~# cat /proc/mtd
129 dev: size erasesize name
130 mtd0: 00040000 00020000 "RedBoot"
131 mtd1: 00040000 00020000 "RedBoot[backup]"
132 mtd2: 000a0000 00020000 "kernel"
133 mtd3: 006bf000 00020000 "unallocated space"
134 mtd4: 00001000 00020000 "RedBoot config"
135 mtd5: 00020000 00020000 "FIS directory"
137 Note that there is not a 1:1 mapping to the number of RedBoot paritions to
138 MTD partitions as unused space also gets allocated into MTD partitions.
140 As an aside, the -r option when creating the Kernel entry allows you to
141 simply do an 'fis load kernel' to copy the image from flash into memory.
142 You can then do an 'fis go 0xa1008000' to start Linux.
144 If you choose to use static partitioning instead of the RedBoot partioning:
146 /dev/mtd0 0x00000000 - 0x0007ffff: Boot Monitor (512k)
147 /dev/mtd1 0x00080000 - 0x0011ffff: Kernel Image (640K)
148 /dev/mtd2 0x00120000 - 0x0071ffff: File System (6M)
149 /dev/mtd3 0x00720000 - 0x00800000: RedBoot Reserved (896K)
151 To use a JFFS1/2 root FS, you need to donwload the JFFS image using either
152 tftp or ymodem, and then copy it to flash:
154 RedBoot> load -r -b 0xa1000000 /tftpboot/jffs.img
155 Raw file loaded 0xa1000000-0xa1600000
156 RedBoot> fis create -b 0xa1000000 -l 0x600000 -f 0x120000 jffs
157 ... Erase from 0x00120000-0x00720000: ..................................
158 ... Program from 0xa1000000-0xa1600000 at 0x00120000: ..................
159 ......................
160 ... Unlock from 0x007e0000-0x00800000: .
161 ... Erase from 0x007e0000-0x00800000: .
162 ... Program from 0xa1fdf000-0xa1fff000 at 0x007e0000: .
163 ... Lock from 0x007e0000-0x00800000: .
165 Name FLASH addr Mem addr Length Entry point
166 RedBoot 0x00000000 0x00000000 0x00040000 0x00000000
167 RedBoot[backup] 0x00040000 0x00040000 0x00040000 0x00000000
168 RedBoot config 0x007DF000 0x007DF000 0x00001000 0x00000000
169 FIS directory 0x007E0000 0x007E0000 0x00020000 0x00000000
170 kernel 0x00080000 0xA1008000 0x000A0000 0xA1008000
171 jffs 0x00120000 0x00120000 0x00600000 0x00000000
173 This looks like this in Linux:
175 root@192.168.0.14:~# cat /proc/mtd
176 dev: size erasesize name
177 mtd0: 00040000 00020000 "RedBoot"
178 mtd1: 00040000 00020000 "RedBoot[backup]"
179 mtd2: 000a0000 00020000 "kernel"
180 mtd3: 00600000 00020000 "jffs"
181 mtd4: 000bf000 00020000 "unallocated space"
182 mtd5: 00001000 00020000 "RedBoot config"
183 mtd6: 00020000 00020000 "FIS directory"
185 You need to boot the kernel once and watch the boot messages to see how the
186 JFFS RedBoot partition mapped into the MTD partition scheme.
188 You can grab a pre-built JFFS image to use as a root file system at:
190 ftp://source.mvista.com/pub/xscale/iq80310/jffs.img
192 For detailed info on using MTD and creating a JFFS image go to:
194 http://www.linux-mtd.infradead.org.
196 For details on using RedBoot's FIS commands, type 'fis help' or consult
200 -----------------------------
202 Thanks to Intel Corporation for providing the hardware.
204 John Clark <jclark@teamasa.com> - Initial discovery of RedBoot issues
205 Dave Jiang <dave.jiang@intel.com> - IRQ demux fixes, AAU, DMA, MU
206 Nicolas Pitre <nico@cam.org> - Initial port, cleanup, debugging
207 Matt Porter <mporter@mvista.com> - PCI subsystem development, debugging
208 Tim Sanders <tsanders@sanders.org> - Initial PCI code
209 Mark Salter <msalter@redhat.com> - RedBoot fixes
210 Deepak Saxena <dsaxena@mvista.com> - Cleanup, debug, cache lock, PMU
212 -----------------------------
215 If you have any problems please contact Deepak Saxena <dsaxena@mvista.com>
218 -----------------------------
220 These are notes of my initial experience getting the IQ80310 Rev D up and
221 running. In total, it has taken many hours to work out what's going on...
222 The version of redboot used is:
224 RedBoot(tm) bootstrap and debug environment, version UNKNOWN - built 14:58:21, Aug 15 2001
227 1. I've had a corrupted download of the redboot.bin file from Montavista's
228 FTP site. It would be a good idea if there were md5sums, sum or gpg
229 signatures available to ensure the integrity of the downloaded files.
230 The result of this was an apparantly 100% dead card.
232 2. RedBoot Intel EtherExpress Pro 100 driver seems to be very unstable -
233 I've had it take out the whole of a 100mbit network for several minutes.
234 The Hub indiates ZERO activity, despite machines attempting to communicate.
235 Further to this, while tftping the kernel, the transfer will stall regularly,
236 and might even drop the link LED.
238 3. There appears to be a bug in the Intel Documentation Pack that comes with
239 the IQ80310 board. Serial port 1, which is the socket next to the LEDs
240 is address 0xfe810000, not 0xfe800000.
242 Note that RedBoot uses either serial port 1 OR serial port 2, so if you
243 have your console connected to the wrong port, you'll see redboot messages
244 but not kernel boot messages.
246 4. Trying to use fconfig to setup a boot script fails - it hangs when trying