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