Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

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