]> git.proxmox.com Git - mirror_ubuntu-focal-kernel.git/blame - Documentation/arm/sa1100/assabet.rst
Documentation/arm/sa1100/assabet: Fix 'make assabet_defconfig' command
[mirror_ubuntu-focal-kernel.git] / Documentation / arm / sa1100 / assabet.rst
CommitLineData
dc7a12bd 1============================================
1da177e4
LT
2The Intel Assabet (SA-1110 evaluation) board
3============================================
4
5Please see:
0ea6e611 6http://developer.intel.com
1da177e4
LT
7
8Also some notes from John G Dorsey <jd5q@andrew.cmu.edu>:
9http://www.cs.cmu.edu/~wearable/software/assabet.html
10
11
12Building the kernel
13-------------------
14
dc7a12bd 15To build the kernel with current defaults::
1da177e4 16
13afbbf4 17 make assabet_defconfig
1da177e4
LT
18 make oldconfig
19 make zImage
20
21The resulting kernel image should be available in linux/arch/arm/boot/zImage.
22
23
24Installing a bootloader
25-----------------------
26
27A couple of bootloaders able to boot Linux on Assabet are available:
28
c8c4b939 29BLOB (http://www.lartmaker.nl/lartware/blob/)
1da177e4
LT
30
31 BLOB is a bootloader used within the LART project. Some contributed
32 patches were merged into BLOB to add support for Assabet.
33
34Compaq's Bootldr + John Dorsey's patch for Assabet support
35(http://www.handhelds.org/Compaq/bootldr.html)
36(http://www.wearablegroup.org/software/bootldr/)
37
38 Bootldr is the bootloader developed by Compaq for the iPAQ Pocket PC.
39 John Dorsey has produced add-on patches to add support for Assabet and
40 the JFFS filesystem.
41
42RedBoot (http://sources.redhat.com/redboot/)
43
44 RedBoot is a bootloader developed by Red Hat based on the eCos RTOS
45 hardware abstraction layer. It supports Assabet amongst many other
46 hardware platforms.
47
48RedBoot is currently the recommended choice since it's the only one to have
49networking support, and is the most actively maintained.
50
51Brief examples on how to boot Linux with RedBoot are shown below. But first
52you need to have RedBoot installed in your flash memory. A known to work
53precompiled RedBoot binary is available from the following location:
54
dc7a12bd
MCC
55- ftp://ftp.netwinder.org/users/n/nico/
56- ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/
57- ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/
1da177e4
LT
58
59Look for redboot-assabet*.tgz. Some installation infos are provided in
60redboot-assabet*.txt.
61
62
63Initial RedBoot configuration
64-----------------------------
65
66The commands used here are explained in The RedBoot User's Guide available
0ea6e611 67on-line at http://sources.redhat.com/ecos/docs.html.
1da177e4
LT
68Please refer to it for explanations.
69
70If you have a CF network card (my Assabet kit contained a CF+ LP-E from
71Socket Communications Inc.), you should strongly consider using it for TFTP
72file transfers. You must insert it before RedBoot runs since it can't detect
73it dynamically.
74
dc7a12bd 75To initialize the flash directory::
1da177e4
LT
76
77 fis init -f
78
79To initialize the non-volatile settings, like whether you want to use BOOTP or
dc7a12bd 80a static IP address, etc, use this command::
1da177e4
LT
81
82 fconfig -i
83
84
85Writing a kernel image into flash
86---------------------------------
87
88First, the kernel image must be loaded into RAM. If you have the zImage file
dc7a12bd 89available on a TFTP server::
1da177e4
LT
90
91 load zImage -r -b 0x100000
92
dc7a12bd 93If you rather want to use Y-Modem upload over the serial port::
1da177e4
LT
94
95 load -m ymodem -r -b 0x100000
96
dc7a12bd 97To write it to flash::
1da177e4
LT
98
99 fis create "Linux kernel" -b 0x100000 -l 0xc0000
100
101
102Booting the kernel
103------------------
104
105The kernel still requires a filesystem to boot. A ramdisk image can be loaded
dc7a12bd 106as follows::
1da177e4
LT
107
108 load ramdisk_image.gz -r -b 0x800000
109
110Again, Y-Modem upload can be used instead of TFTP by replacing the file name
111by '-y ymodem'.
112
dc7a12bd 113Now the kernel can be retrieved from flash like this::
1da177e4
LT
114
115 fis load "Linux kernel"
116
dc7a12bd 117or loaded as described previously. To boot the kernel::
1da177e4
LT
118
119 exec -b 0x100000 -l 0xc0000
120
121The ramdisk image could be stored into flash as well, but there are better
122solutions for on-flash filesystems as mentioned below.
123
124
125Using JFFS2
126-----------
127
128Using JFFS2 (the Second Journalling Flash File System) is probably the most
129convenient way to store a writable filesystem into flash. JFFS2 is used in
130conjunction with the MTD layer which is responsible for low-level flash
131management. More information on the Linux MTD can be found on-line at:
132http://www.linux-mtd.infradead.org/. A JFFS howto with some infos about
133creating JFFS/JFFS2 images is available from the same site.
134
135For instance, a sample JFFS2 image can be retrieved from the same FTP sites
136mentioned below for the precompiled RedBoot image.
137
dc7a12bd 138To load this file::
1da177e4
LT
139
140 load sample_img.jffs2 -r -b 0x100000
141
dc7a12bd 142The result should look like::
1da177e4 143
dc7a12bd
MCC
144 RedBoot> load sample_img.jffs2 -r -b 0x100000
145 Raw file loaded 0x00100000-0x00377424
1da177e4 146
dc7a12bd 147Now we must know the size of the unallocated flash::
1da177e4
LT
148
149 fis free
150
dc7a12bd 151Result::
1da177e4 152
dc7a12bd
MCC
153 RedBoot> fis free
154 0x500E0000 .. 0x503C0000
1da177e4
LT
155
156The values above may be different depending on the size of the filesystem and
157the type of flash. See their usage below as an example and take care of
158substituting yours appropriately.
159
dc7a12bd 160We must determine some values::
1da177e4 161
dc7a12bd
MCC
162 size of unallocated flash: 0x503c0000 - 0x500e0000 = 0x2e0000
163 size of the filesystem image: 0x00377424 - 0x00100000 = 0x277424
1da177e4
LT
164
165We want to fit the filesystem image of course, but we also want to give it all
dc7a12bd 166the remaining flash space as well. To write it::
1da177e4
LT
167
168 fis unlock -f 0x500E0000 -l 0x2e0000
169 fis erase -f 0x500E0000 -l 0x2e0000
170 fis write -b 0x100000 -l 0x277424 -f 0x500E0000
171 fis create "JFFS2" -n -f 0x500E0000 -l 0x2e0000
172
173Now the filesystem is associated to a MTD "partition" once Linux has discovered
174what they are in the boot process. From Redboot, the 'fis list' command
dc7a12bd
MCC
175displays them::
176
177 RedBoot> fis list
178 Name FLASH addr Mem addr Length Entry point
179 RedBoot 0x50000000 0x50000000 0x00020000 0x00000000
180 RedBoot config 0x503C0000 0x503C0000 0x00020000 0x00000000
181 FIS directory 0x503E0000 0x503E0000 0x00020000 0x00000000
182 Linux kernel 0x50020000 0x00100000 0x000C0000 0x00000000
183 JFFS2 0x500E0000 0x500E0000 0x002E0000 0x00000000
184
185However Linux should display something like::
186
187 SA1100 flash: probing 32-bit flash bus
188 SA1100 flash: Found 2 x16 devices at 0x0 in 32-bit mode
189 Using RedBoot partition definition
190 Creating 5 MTD partitions on "SA1100 flash":
191 0x00000000-0x00020000 : "RedBoot"
192 0x00020000-0x000e0000 : "Linux kernel"
193 0x000e0000-0x003c0000 : "JFFS2"
194 0x003c0000-0x003e0000 : "RedBoot config"
195 0x003e0000-0x00400000 : "FIS directory"
1da177e4
LT
196
197What's important here is the position of the partition we are interested in,
198which is the third one. Within Linux, this correspond to /dev/mtdblock2.
199Therefore to boot Linux with the kernel and its root filesystem in flash, we
dc7a12bd 200need this RedBoot command::
1da177e4
LT
201
202 fis load "Linux kernel"
203 exec -b 0x100000 -l 0xc0000 -c "root=/dev/mtdblock2"
204
205Of course other filesystems than JFFS might be used, like cramfs for example.
206You might want to boot with a root filesystem over NFS, etc. It is also
207possible, and sometimes more convenient, to flash a filesystem directly from
208within Linux while booted from a ramdisk or NFS. The Linux MTD repository has
209many tools to deal with flash memory as well, to erase it for example. JFFS2
210can then be mounted directly on a freshly erased partition and files can be
211copied over directly. Etc...
212
213
214RedBoot scripting
215-----------------
216
217All the commands above aren't so useful if they have to be typed in every
08559657 218time the Assabet is rebooted. Therefore it's possible to automate the boot
1da177e4
LT
219process using RedBoot's scripting capability.
220
221For example, I use this to boot Linux with both the kernel and the ramdisk
dc7a12bd
MCC
222images retrieved from a TFTP server on the network::
223
224 RedBoot> fconfig
225 Run script at boot: false true
226 Boot script:
227 Enter script, terminate with empty line
228 >> load zImage -r -b 0x100000
229 >> load ramdisk_ks.gz -r -b 0x800000
230 >> exec -b 0x100000 -l 0xc0000
231 >>
232 Boot script timeout (1000ms resolution): 3
233 Use BOOTP for network configuration: true
234 GDB connection port: 9000
235 Network debug at boot time: false
236 Update RedBoot non-volatile configuration - are you sure (y/n)? y
1da177e4
LT
237
238Then, rebooting the Assabet is just a matter of waiting for the login prompt.
239
240
241
242Nicolas Pitre
2f82af08 243nico@fluxnic.net
dc7a12bd 244
1da177e4
LT
245June 12, 2001
246
247
248Status of peripherals in -rmk tree (updated 14/10/2001)
249-------------------------------------------------------
250
251Assabet:
252 Serial ports:
253 Radio: TX, RX, CTS, DSR, DCD, RI
dc7a12bd
MCC
254 - PM: Not tested.
255 - COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM
256 - PM: Not tested.
257 - I2C: Implemented, not fully tested.
258 - L3: Fully tested, pass.
259 - PM: Not tested.
1da177e4
LT
260
261 Video:
dc7a12bd
MCC
262 - LCD: Fully tested. PM
263
264 (LCD doesn't like being blanked with neponset connected)
265
266 - Video out: Not fully
1da177e4
LT
267
268 Audio:
269 UDA1341:
dc7a12bd
MCC
270 - Playback: Fully tested, pass.
271 - Record: Implemented, not tested.
272 - PM: Not tested.
1da177e4
LT
273
274 UCB1200:
dc7a12bd
MCC
275 - Audio play: Implemented, not heavily tested.
276 - Audio rec: Implemented, not heavily tested.
277 - Telco audio play: Implemented, not heavily tested.
278 - Telco audio rec: Implemented, not heavily tested.
279 - POTS control: No
280 - Touchscreen: Yes
281 - PM: Not tested.
1da177e4
LT
282
283 Other:
dc7a12bd
MCC
284 - PCMCIA:
285 - LPE: Fully tested, pass.
286 - USB: No
287 - IRDA:
288 - SIR: Fully tested, pass.
289 - FIR: Fully tested, pass.
290 - PM: Not tested.
1da177e4
LT
291
292Neponset:
293 Serial ports:
dc7a12bd
MCC
294 - COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR
295 - PM: Not tested.
296 - USB: Implemented, not heavily tested.
297 - PCMCIA: Implemented, not heavily tested.
298 - CF: Implemented, not heavily tested.
299 - PM: Not tested.
1da177e4
LT
300
301More stuff can be found in the -np (Nicolas Pitre's) tree.