sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget+/translations/zh_CN/arch/arm/sa1100/assabetmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/zh_TW/arch/arm/sa1100/assabetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/it_IT/arch/arm/sa1100/assabetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ja_JP/arch/arm/sa1100/assabetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/ko_KR/arch/arm/sa1100/assabetmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget+/translations/sp_SP/arch/arm/sa1100/assabetmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhsection)}(hhh](htitle)}(h,The Intel Assabet (SA-1110 evaluation) boardh]h,The Intel Assabet (SA-1110 evaluation) board}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhE/var/lib/git/docbuild/linux/Documentation/arch/arm/sa1100/assabet.rsthKubh paragraph)}(h&Please see: http://developer.intel.comh](h Please see: }(hhhhhNhNubh reference)}(hhttp://developer.intel.comh]hhttp://developer.intel.com}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurihuh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hoAlso some notes from John G Dorsey : http://www.cs.cmu.edu/~wearable/software/assabet.htmlh](h$Also some notes from John G Dorsey <}(hhhhhNhNubh)}(hjd5q@andrew.cmu.eduh]hjd5q@andrew.cmu.edu}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:jd5q@andrew.cmu.eduuh1hhhubh>: }(hhhhhNhNubh)}(h5http://www.cs.cmu.edu/~wearable/software/assabet.htmlh]h5http://www.cs.cmu.edu/~wearable/software/assabet.html}(hhhhhNhNubah}(h]h ]h"]h$]h&]refurihuh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hBuilding the kernelh]hBuilding the kernel}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK ubh)}(h+To build the kernel with current defaults::h]h*To build the kernel with current defaults:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubh literal_block)}(h1make assabet_defconfig make oldconfig make zImageh]h1make assabet_defconfig make oldconfig make zImage}hj*sbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1j(hhhKhj hhubh)}(hMThe resulting kernel image should be available in linux/arch/arm/boot/zImage.h]hMThe resulting kernel image should be available in linux/arch/arm/boot/zImage.}(hj:hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]building-the-kernelah ]h"]building the kernelah$]h&]uh1hhhhhhhhK ubh)}(hhh](h)}(hInstalling a bootloaderh]hInstalling a bootloader}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjPhhhhhKubh)}(hDA couple of bootloaders able to boot Linux on Assabet are available:h]hDA couple of bootloaders able to boot Linux on Assabet are available:}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjPhhubh)}(h-BLOB (http://www.lartmaker.nl/lartware/blob/)h](hBLOB (}(hjohhhNhNubh)}(h&http://www.lartmaker.nl/lartware/blob/h]h&http://www.lartmaker.nl/lartware/blob/}(hjwhhhNhNubah}(h]h ]h"]h$]h&]refurijyuh1hhjoubh)}(hjohhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjPhhubh block_quote)}(hBLOB is a bootloader used within the LART project. Some contributed patches were merged into BLOB to add support for Assabet. h]h)}(h~BLOB is a bootloader used within the LART project. Some contributed patches were merged into BLOB to add support for Assabet.h]h~BLOB is a bootloader used within the LART project. Some contributed patches were merged into BLOB to add support for Assabet.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhhhKhjPhhubh)}(hCompaq's Bootldr + John Dorsey's patch for Assabet support (http://www.handhelds.org/Compaq/bootldr.html) (http://www.wearablegroup.org/software/bootldr/)h](h@Compaq’s Bootldr + John Dorsey’s patch for Assabet support (}(hjhhhNhNubh)}(h,http://www.handhelds.org/Compaq/bootldr.htmlh]h,http://www.handhelds.org/Compaq/bootldr.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubh) (}(hjhhhNhNubh)}(h.http://www.wearablegroup.org/software/bootldr/h]h.http://www.wearablegroup.org/software/bootldr/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubh)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK"hjPhhubj)}(hBootldr is the bootloader developed by Compaq for the iPAQ Pocket PC. John Dorsey has produced add-on patches to add support for Assabet and the JFFS filesystem. h]h)}(hBootldr is the bootloader developed by Compaq for the iPAQ Pocket PC. John Dorsey has produced add-on patches to add support for Assabet and the JFFS filesystem.h]hBootldr is the bootloader developed by Compaq for the iPAQ Pocket PC. John Dorsey has produced add-on patches to add support for Assabet and the JFFS filesystem.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhhhK&hjPhhubh)}(h,RedBoot (http://sources.redhat.com/redboot/)h](h RedBoot (}(hjhhhNhNubh)}(h"http://sources.redhat.com/redboot/h]h"http://sources.redhat.com/redboot/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubh)}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjPhhubj)}(hRedBoot is a bootloader developed by Red Hat based on the eCos RTOS hardware abstraction layer. It supports Assabet amongst many other hardware platforms. h]h)}(hRedBoot is a bootloader developed by Red Hat based on the eCos RTOS hardware abstraction layer. It supports Assabet amongst many other hardware platforms.h]hRedBoot is a bootloader developed by Red Hat based on the eCos RTOS hardware abstraction layer. It supports Assabet amongst many other hardware platforms.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhhhK,hjPhhubh)}(hRedBoot is currently the recommended choice since it's the only one to have networking support, and is the most actively maintained.h]hRedBoot is currently the recommended choice since it’s the only one to have networking support, and is the most actively maintained.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK0hjPhhubh)}(hBrief examples on how to boot Linux with RedBoot are shown below. But first you need to have RedBoot installed in your flash memory. A known to work precompiled RedBoot binary is available from the following location:h]hBrief examples on how to boot Linux with RedBoot are shown below. But first you need to have RedBoot installed in your flash memory. A known to work precompiled RedBoot binary is available from the following location:}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK3hjPhhubh bullet_list)}(hhh](h list_item)}(h%ftp://ftp.netwinder.org/users/n/nico/h]h)}(hjTh]h)}(hjTh]h%ftp://ftp.netwinder.org/users/n/nico/}(hjYhhhNhNubah}(h]h ]h"]h$]h&]refurijTuh1hhjVubah}(h]h ]h"]h$]h&]uh1hhhhK7hjRubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubjQ)}(h5ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/h]h)}(hjuh]h)}(hjuh]h5ftp://ftp.arm.linux.org.uk/pub/linux/arm/people/nico/}(hjzhhhNhNubah}(h]h ]h"]h$]h&]refurijuuh1hhjwubah}(h]h ]h"]h$]h&]uh1hhhhK8hjsubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubjQ)}(h7ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/ h]h)}(h6ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/h]h)}(hjh]h6ftp://ftp.handhelds.org/pub/linux/arm/sa-1100-patches/}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubah}(h]h ]h"]h$]h&]uh1hhhhK9hjubah}(h]h ]h"]h$]h&]uh1jPhjMhhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1jKhhhK7hjPhhubh)}(h]Look for redboot-assabet*.tgz. Some installation infos are provided in redboot-assabet*.txt.h]h]Look for redboot-assabet*.tgz. Some installation infos are provided in redboot-assabet*.txt.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK;hjPhhubeh}(h]installing-a-bootloaderah ]h"]installing a bootloaderah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hInitial RedBoot configurationh]hInitial RedBoot configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhK@ubh)}(hThe commands used here are explained in The RedBoot User's Guide available on-line at http://sources.redhat.com/ecos/docs.html. Please refer to it for explanations.h](hXThe commands used here are explained in The RedBoot User’s Guide available on-line at }(hjhhhNhNubh)}(h(http://sources.redhat.com/ecos/docs.htmlh]h(http://sources.redhat.com/ecos/docs.html}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurijuh1hhjubh&. Please refer to it for explanations.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKBhjhhubh)}(hIf you have a CF network card (my Assabet kit contained a CF+ LP-E from Socket Communications Inc.), you should strongly consider using it for TFTP file transfers. You must insert it before RedBoot runs since it can't detect it dynamically.h]hIf you have a CF network card (my Assabet kit contained a CF+ LP-E from Socket Communications Inc.), you should strongly consider using it for TFTP file transfers. You must insert it before RedBoot runs since it can’t detect it dynamically.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhjhhubh)}(h#To initialize the flash directory::h]h"To initialize the flash directory:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKKhjhhubj))}(h fis init -fh]h fis init -f}hj"sbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKMhjhhubh)}(h{To initialize the non-volatile settings, like whether you want to use BOOTP or a static IP address, etc, use this command::h]hzTo initialize the non-volatile settings, like whether you want to use BOOTP or a static IP address, etc, use this command:}(hj0hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKOhjhhubj))}(h fconfig -ih]h fconfig -i}hj>sbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKRhjhhubeh}(h]initial-redboot-configurationah ]h"]initial redboot configurationah$]h&]uh1hhhhhhhhK@ubh)}(hhh](h)}(h!Writing a kernel image into flashh]h!Writing a kernel image into flash}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThhhhhKVubh)}(hjFirst, the kernel image must be loaded into RAM. If you have the zImage file available on a TFTP server::h]hiFirst, the kernel image must be loaded into RAM. If you have the zImage file available on a TFTP server:}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKXhjThhubj))}(hload zImage -r -b 0x100000h]hload zImage -r -b 0x100000}hjssbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhK[hjThhubh)}(h?If you rather want to use Y-Modem upload over the serial port::h]h>If you rather want to use Y-Modem upload over the serial port:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK]hjThhubj))}(hload -m ymodem -r -b 0x100000h]hload -m ymodem -r -b 0x100000}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhK_hjThhubh)}(hTo write it to flash::h]hTo write it to flash:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKahjThhubj))}(h0fis create "Linux kernel" -b 0x100000 -l 0xc0000h]h0fis create "Linux kernel" -b 0x100000 -l 0xc0000}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKchjThhubeh}(h]!writing-a-kernel-image-into-flashah ]h"]!writing a kernel image into flashah$]h&]uh1hhhhhhhhKVubh)}(hhh](h)}(hBooting the kernelh]hBooting the kernel}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKgubh)}(h[The kernel still requires a filesystem to boot. A ramdisk image can be loaded as follows::h]hZThe kernel still requires a filesystem to boot. A ramdisk image can be loaded as follows:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjhhubj))}(h$load ramdisk_image.gz -r -b 0x800000h]h$load ramdisk_image.gz -r -b 0x800000}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKlhjhhubh)}(h\Again, Y-Modem upload can be used instead of TFTP by replacing the file name by '-y ymodem'.h]h`Again, Y-Modem upload can be used instead of TFTP by replacing the file name by ‘-y ymodem’.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjhhubh)}(h6Now the kernel can be retrieved from flash like this::h]h5Now the kernel can be retrieved from flash like this:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjhhubj))}(hfis load "Linux kernel"h]hfis load "Linux kernel"}hj sbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKshjhhubh)}(h8or loaded as described previously. To boot the kernel::h]h7or loaded as described previously. To boot the kernel:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhjhhubj))}(hexec -b 0x100000 -l 0xc0000h]hexec -b 0x100000 -l 0xc0000}hj&sbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKwhjhhubh)}(hThe ramdisk image could be stored into flash as well, but there are better solutions for on-flash filesystems as mentioned below.h]hThe ramdisk image could be stored into flash as well, but there are better solutions for on-flash filesystems as mentioned below.}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjhhubeh}(h]booting-the-kernelah ]h"]booting the kernelah$]h&]uh1hhhhhhhhKgubh)}(hhh](h)}(h Using JFFS2h]h Using JFFS2}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhhhhhK~ubh)}(hXUsing JFFS2 (the Second Journalling Flash File System) is probably the most convenient way to store a writable filesystem into flash. JFFS2 is used in conjunction with the MTD layer which is responsible for low-level flash management. More information on the Linux MTD can be found on-line at: http://www.linux-mtd.infradead.org/. A JFFS howto with some infos about creating JFFS/JFFS2 images is available from the same site.h](hX(Using JFFS2 (the Second Journalling Flash File System) is probably the most convenient way to store a writable filesystem into flash. JFFS2 is used in conjunction with the MTD layer which is responsible for low-level flash management. More information on the Linux MTD can be found on-line at: }(hj[hhhNhNubh)}(h#http://www.linux-mtd.infradead.org/h]h#http://www.linux-mtd.infradead.org/}(hjchhhNhNubah}(h]h ]h"]h$]h&]refurijeuh1hhj[ubha. A JFFS howto with some infos about creating JFFS/JFFS2 images is available from the same site.}(hj[hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubh)}(h~For instance, a sample JFFS2 image can be retrieved from the same FTP sites mentioned below for the precompiled RedBoot image.h]h~For instance, a sample JFFS2 image can be retrieved from the same FTP sites mentioned below for the precompiled RedBoot image.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubh)}(hTo load this file::h]hTo load this file:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(h$load sample_img.jffs2 -r -b 0x100000h]h$load sample_img.jffs2 -r -b 0x100000}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hThe result should look like::h]hThe result should look like:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hSRedBoot> load sample_img.jffs2 -r -b 0x100000 Raw file loaded 0x00100000-0x00377424h]hSRedBoot> load sample_img.jffs2 -r -b 0x100000 Raw file loaded 0x00100000-0x00377424}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(h4Now we must know the size of the unallocated flash::h]h3Now we must know the size of the unallocated flash:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hfis freeh]hfis free}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hResult::h]hResult:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(h,RedBoot> fis free 0x500E0000 .. 0x503C0000h]h,RedBoot> fis free 0x500E0000 .. 0x503C0000}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hThe values above may be different depending on the size of the filesystem and the type of flash. See their usage below as an example and take care of substituting yours appropriately.h]hThe values above may be different depending on the size of the filesystem and the type of flash. See their usage below as an example and take care of substituting yours appropriately.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubh)}(hWe must determine some values::h]hWe must determine some values:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hsize of unallocated flash: 0x503c0000 - 0x500e0000 = 0x2e0000 size of the filesystem image: 0x00377424 - 0x00100000 = 0x277424h]hsize of unallocated flash: 0x503c0000 - 0x500e0000 = 0x2e0000 size of the filesystem image: 0x00377424 - 0x00100000 = 0x277424}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hWe want to fit the filesystem image of course, but we also want to give it all the remaining flash space as well. To write it::h]hWe want to fit the filesystem image of course, but we also want to give it all the remaining flash space as well. To write it:}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hfis unlock -f 0x500E0000 -l 0x2e0000 fis erase -f 0x500E0000 -l 0x2e0000 fis write -b 0x100000 -l 0x277424 -f 0x500E0000 fis create "JFFS2" -n -f 0x500E0000 -l 0x2e0000h]hfis unlock -f 0x500E0000 -l 0x2e0000 fis erase -f 0x500E0000 -l 0x2e0000 fis write -b 0x100000 -l 0x277424 -f 0x500E0000 fis create "JFFS2" -n -f 0x500E0000 -l 0x2e0000}hj2sbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hNow the filesystem is associated to a MTD "partition" once Linux has discovered what they are in the boot process. From Redboot, the 'fis list' command displays them::h]hNow the filesystem is associated to a MTD “partition” once Linux has discovered what they are in the boot process. From Redboot, the ‘fis list’ command displays them:}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hXRedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x00020000 0x00000000 RedBoot config 0x503C0000 0x503C0000 0x00020000 0x00000000 FIS directory 0x503E0000 0x503E0000 0x00020000 0x00000000 Linux kernel 0x50020000 0x00100000 0x000C0000 0x00000000 JFFS2 0x500E0000 0x500E0000 0x002E0000 0x00000000h]hXRedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0x50000000 0x50000000 0x00020000 0x00000000 RedBoot config 0x503C0000 0x503C0000 0x00020000 0x00000000 FIS directory 0x503E0000 0x503E0000 0x00020000 0x00000000 Linux kernel 0x50020000 0x00100000 0x000C0000 0x00000000 JFFS2 0x500E0000 0x500E0000 0x002E0000 0x00000000}hjNsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(h-However Linux should display something like::h]h,However Linux should display something like:}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hXhSA1100 flash: probing 32-bit flash bus SA1100 flash: Found 2 x16 devices at 0x0 in 32-bit mode Using RedBoot partition definition Creating 5 MTD partitions on "SA1100 flash": 0x00000000-0x00020000 : "RedBoot" 0x00020000-0x000e0000 : "Linux kernel" 0x000e0000-0x003c0000 : "JFFS2" 0x003c0000-0x003e0000 : "RedBoot config" 0x003e0000-0x00400000 : "FIS directory"h]hXhSA1100 flash: probing 32-bit flash bus SA1100 flash: Found 2 x16 devices at 0x0 in 32-bit mode Using RedBoot partition definition Creating 5 MTD partitions on "SA1100 flash": 0x00000000-0x00020000 : "RedBoot" 0x00020000-0x000e0000 : "Linux kernel" 0x000e0000-0x003c0000 : "JFFS2" 0x003c0000-0x003e0000 : "RedBoot config" 0x003e0000-0x00400000 : "FIS directory"}hjjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hWhat's important here is the position of the partition we are interested in, which is the third one. Within Linux, this correspond to /dev/mtdblock2. Therefore to boot Linux with the kernel and its root filesystem in flash, we need this RedBoot command::h]hXWhat’s important here is the position of the partition we are interested in, which is the third one. Within Linux, this correspond to /dev/mtdblock2. Therefore to boot Linux with the kernel and its root filesystem in flash, we need this RedBoot command:}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubj))}(hLfis load "Linux kernel" exec -b 0x100000 -l 0xc0000 -c "root=/dev/mtdblock2"h]hLfis load "Linux kernel" exec -b 0x100000 -l 0xc0000 -c "root=/dev/mtdblock2"}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjJhhubh)}(hXOf course other filesystems than JFFS might be used, like cramfs for example. You might want to boot with a root filesystem over NFS, etc. It is also possible, and sometimes more convenient, to flash a filesystem directly from within Linux while booted from a ramdisk or NFS. The Linux MTD repository has many tools to deal with flash memory as well, to erase it for example. JFFS2 can then be mounted directly on a freshly erased partition and files can be copied over directly. Etc...h]hXOf course other filesystems than JFFS might be used, like cramfs for example. You might want to boot with a root filesystem over NFS, etc. It is also possible, and sometimes more convenient, to flash a filesystem directly from within Linux while booted from a ramdisk or NFS. The Linux MTD repository has many tools to deal with flash memory as well, to erase it for example. JFFS2 can then be mounted directly on a freshly erased partition and files can be copied over directly. Etc...}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubeh}(h] using-jffs2ah ]h"] using jffs2ah$]h&]uh1hhhhhhhhK~ubh)}(hhh](h)}(hRedBoot scriptingh]hRedBoot scripting}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hAll the commands above aren't so useful if they have to be typed in every time the Assabet is rebooted. Therefore it's possible to automate the boot process using RedBoot's scripting capability.h]hAll the commands above aren’t so useful if they have to be typed in every time the Assabet is rebooted. Therefore it’s possible to automate the boot process using RedBoot’s scripting capability.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hFor example, I use this to boot Linux with both the kernel and the ramdisk images retrieved from a TFTP server on the network::h]h~For example, I use this to boot Linux with both the kernel and the ramdisk images retrieved from a TFTP server on the network:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj))}(hXRedBoot> fconfig Run script at boot: false true Boot script: Enter script, terminate with empty line >> load zImage -r -b 0x100000 >> load ramdisk_ks.gz -r -b 0x800000 >> exec -b 0x100000 -l 0xc0000 >> Boot script timeout (1000ms resolution): 3 Use BOOTP for network configuration: true GDB connection port: 9000 Network debug at boot time: false Update RedBoot non-volatile configuration - are you sure (y/n)? yh]hXRedBoot> fconfig Run script at boot: false true Boot script: Enter script, terminate with empty line >> load zImage -r -b 0x100000 >> load ramdisk_ks.gz -r -b 0x800000 >> exec -b 0x100000 -l 0xc0000 >> Boot script timeout (1000ms resolution): 3 Use BOOTP for network configuration: true GDB connection port: 9000 Network debug at boot time: false Update RedBoot non-volatile configuration - are you sure (y/n)? y}hjsbah}(h]h ]h"]h$]h&]j8j9uh1j(hhhKhjhhubh)}(hMThen, rebooting the Assabet is just a matter of waiting for the login prompt.h]hMThen, rebooting the Assabet is just a matter of waiting for the login prompt.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hNicolas Pitre nico@fluxnic.neth](hNicolas Pitre }(hjhhhNhNubh)}(hnico@fluxnic.neth]hnico@fluxnic.net}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:nico@fluxnic.netuh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(h June 12, 2001h]h June 12, 2001}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]redboot-scriptingah ]h"]redboot scriptingah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h7Status of peripherals in -rmk tree (updated 14/10/2001)h]h7Status of peripherals in -rmk tree (updated 14/10/2001)}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj'hhhhhKubhdefinition_list)}(hhh](hdefinition_list_item)}(hXAssabet: Serial ports: Radio: TX, RX, CTS, DSR, DCD, RI - PM: Not tested. - COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM - PM: Not tested. - I2C: Implemented, not fully tested. - L3: Fully tested, pass. - PM: Not tested. Video: - LCD: Fully tested. PM (LCD doesn't like being blanked with neponset connected) - Video out: Not fully Audio: UDA1341: - Playback: Fully tested, pass. - Record: Implemented, not tested. - PM: Not tested. UCB1200: - Audio play: Implemented, not heavily tested. - Audio rec: Implemented, not heavily tested. - Telco audio play: Implemented, not heavily tested. - Telco audio rec: Implemented, not heavily tested. - POTS control: No - Touchscreen: Yes - PM: Not tested. Other: - PCMCIA: - LPE: Fully tested, pass. - USB: No - IRDA: - SIR: Fully tested, pass. - FIR: Fully tested, pass. - PM: Not tested. h](hterm)}(hAssabet:h]hAssabet:}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhM"hj?ubh definition)}(hhh]j9)}(hhh](j>)}(hX=Serial ports: Radio: TX, RX, CTS, DSR, DCD, RI - PM: Not tested. - COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM - PM: Not tested. - I2C: Implemented, not fully tested. - L3: Fully tested, pass. - PM: Not tested. h](jD)}(h Serial ports:h]h Serial ports:}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhMhj[ubjT)}(hhh]j9)}(hhh]j>)}(hX)Radio: TX, RX, CTS, DSR, DCD, RI - PM: Not tested. - COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM - PM: Not tested. - I2C: Implemented, not fully tested. - L3: Fully tested, pass. - PM: Not tested. h](jD)}(h/Radio: TX, RX, CTS, DSR, DCD, RIh]h/Radio: TX, RX, CTS, DSR, DCD, RI}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhMhjsubjT)}(hhh]jL)}(hhh](jQ)}(hPM: Not tested.h]h)}(hjh]hPM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h6COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PMh]h)}(hjh]h6COM: TX, RX, CTS, DSR, DCD, RTS, DTR, PM}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(hPM: Not tested.h]h)}(hjh]hPM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h1I2C: Implemented, not fully tested.h]h)}(hjh]h1I2C: Implemented, not fully tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h&L3: Fully tested, pass.h]h)}(hjh]h&L3: Fully tested, pass.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(hPM: Not tested. h]h)}(hPM: Not tested.h]hPM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubah}(h]h ]h"]h$]h&]uh1jPhjubeh}(h]h ]h"]h$]h&]jjuh1jKhhhKhjubah}(h]h ]h"]h$]h&]uh1jShjsubeh}(h]h ]h"]h$]h&]uh1j=hhhMhjpubah}(h]h ]h"]h$]h&]uh1j8hjmubah}(h]h ]h"]h$]h&]uh1jShj[ubeh}(h]h ]h"]h$]h&]uh1j=hhhMhjXubj>)}(hVideo: - LCD: Fully tested. PM (LCD doesn't like being blanked with neponset connected) - Video out: Not fully h](jD)}(hVideo:h]hVideo:}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhM hj:ubjT)}(hhh](jL)}(hhh]jQ)}(h&LCD: Fully tested. PM h]h)}(h%LCD: Fully tested. PMh]h%LCD: Fully tested. PM}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjRubah}(h]h ]h"]h$]h&]uh1jPhjOubah}(h]h ]h"]h$]h&]jjuh1jKhhhMhjLubj)}(h9(LCD doesn't like being blanked with neponset connected) h]h)}(h8(LCD doesn't like being blanked with neponset connected)h]h:(LCD doesn’t like being blanked with neponset connected)}(hjthhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjpubah}(h]h ]h"]h$]h&]uh1jhhhMhjLubjL)}(hhh]jQ)}(hVideo out: Not fully h]h)}(hVideo out: Not fullyh]hVideo out: Not fully}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubah}(h]h ]h"]h$]h&]uh1jPhjubah}(h]h ]h"]h$]h&]jjuh1jKhhhM hjLubeh}(h]h ]h"]h$]h&]uh1jShj:ubeh}(h]h ]h"]h$]h&]uh1j=hhhM hjXubj>)}(hXAudio: UDA1341: - Playback: Fully tested, pass. - Record: Implemented, not tested. - PM: Not tested. UCB1200: - Audio play: Implemented, not heavily tested. - Audio rec: Implemented, not heavily tested. - Telco audio play: Implemented, not heavily tested. - Telco audio rec: Implemented, not heavily tested. - POTS control: No - Touchscreen: Yes - PM: Not tested. h](jD)}(hAudio:h]hAudio:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhMhjubjT)}(hhh](h)}(hUDA1341: - Playback: Fully tested, pass. - Record: Implemented, not tested. - PM: Not tested.h]hUDA1341: - Playback: Fully tested, pass. - Record: Implemented, not tested. - PM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjubh)}(hX9UCB1200: - Audio play: Implemented, not heavily tested. - Audio rec: Implemented, not heavily tested. - Telco audio play: Implemented, not heavily tested. - Telco audio rec: Implemented, not heavily tested. - POTS control: No - Touchscreen: Yes - PM: Not tested.h]hX9UCB1200: - Audio play: Implemented, not heavily tested. - Audio rec: Implemented, not heavily tested. - Telco audio play: Implemented, not heavily tested. - Telco audio rec: Implemented, not heavily tested. - POTS control: No - Touchscreen: Yes - PM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjubeh}(h]h ]h"]h$]h&]uh1jShjubeh}(h]h ]h"]h$]h&]uh1j=hhhMhjXubj>)}(hOther: - PCMCIA: - LPE: Fully tested, pass. - USB: No - IRDA: - SIR: Fully tested, pass. - FIR: Fully tested, pass. - PM: Not tested. h](jD)}(hOther:h]hOther:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhM"hjubjT)}(hhh]jL)}(hhh](jQ)}(hPCMCIA:h]h)}(hj h]hPCMCIA:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h'LPE: Fully tested, pass.h]h)}(hj#h]h'LPE: Fully tested, pass.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(hUSB: Noh]h)}(hj:h]hUSB: No}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj8ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(hIRDA:h]h)}(hjQh]hIRDA:}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjOubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h'SIR: Fully tested, pass.h]h)}(hjhh]h'SIR: Fully tested, pass.}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjfubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h'FIR: Fully tested, pass.h]h)}(hjh]h'FIR: Fully tested, pass.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM!hj}ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h PM: Not tested. h]h)}(hPM: Not tested.h]hPM: Not tested.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM"hjubah}(h]h ]h"]h$]h&]uh1jPhjubeh}(h]h ]h"]h$]h&]jjuh1jKhhhMhjubah}(h]h ]h"]h$]h&]uh1jShjubeh}(h]h ]h"]h$]h&]uh1j=hhhM"hjXubeh}(h]h ]h"]h$]h&]uh1j8hjUubah}(h]h ]h"]h$]h&]uh1jShj?ubeh}(h]h ]h"]h$]h&]uh1j=hhhM"hj:ubj>)}(hX=Neponset: Serial ports: - COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR - PM: Not tested. - USB: Implemented, not heavily tested. - PCMCIA: Implemented, not heavily tested. - CF: Implemented, not heavily tested. - PM: Not tested. h](jD)}(h Neponset:h]h Neponset:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhM+hjubjT)}(hhh]j9)}(hhh]j>)}(hX-Serial ports: - COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR - PM: Not tested. - USB: Implemented, not heavily tested. - PCMCIA: Implemented, not heavily tested. - CF: Implemented, not heavily tested. - PM: Not tested. h](jD)}(h Serial ports:h]h Serial ports:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jChhhM+hjubjT)}(hhh]jL)}(hhh](jQ)}(h3COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTRh]h)}(hj h]h3COM1,2: TX, RX, CTS, DSR, DCD, RTS, DTR}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM&hj ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(hPM: Not tested.h]h)}(hj h]hPM: Not tested.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hj ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h4USB: Implemented, not heavily tested.h]h)}(hj0 h]h4USB: Implemented, not heavily tested.}(hj2 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM(hj. ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h4PCMCIA: Implemented, not heavily tested.h]h)}(hjG h]h4PCMCIA: Implemented, not heavily tested.}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM)hjE ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h4CF: Implemented, not heavily tested.h]h)}(hj^ h]h4CF: Implemented, not heavily tested.}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM*hj\ ubah}(h]h ]h"]h$]h&]uh1jPhjubjQ)}(h PM: Not tested. h]h)}(hPM: Not tested.h]hPM: Not tested.}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM+hjs ubah}(h]h ]h"]h$]h&]uh1jPhjubeh}(h]h ]h"]h$]h&]jjuh1jKhhhM&hjubah}(h]h ]h"]h$]h&]uh1jShjubeh}(h]h ]h"]h$]h&]uh1j=hhhM+hjubah}(h]h ]h"]h$]h&]uh1j8hjubah}(h]h ]h"]h$]h&]uh1jShjubeh}(h]h ]h"]h$]h&]uh1j=hhhM+hj:hhubeh}(h]h ]h"]h$]h&]uh1j8hj'hhhNhNubh)}(h:More stuff can be found in the -np (Nicolas Pitre's) tree.h]h