####################################################### # Document: quickboot.txt # Purpose: One liners for booting a Kirkwood device # such as a SheevaPlug or OpenRD client # Author: Stuart Winter ####################################################### Boot installer: =============== Old u-boot: # tftpboot 0x8000000 armedslack/uinitrd-armv5.img; tftpboot 0x2000000 armedslack/uImage-armv5 ; setenv bootargs console=ttyS0,115200 nodhcp kbd=uk root=/dev/ram rw ; bootm 0x2000000 0x8000000 # tftpboot 0x8000000 slackwarearm-current/uinitrd-armv5.img; tftpboot 0x2000000 slackwarearm-current/uImage-armv5 ; setenv bootargs console=ttyS0,115200 nodhcp kbd=uk root=/dev/ram rw ; bootm 0x2000000 0x8000000 -current (automatically starting DHCP and SSHd) ````````````````````````````````````````````````` OpenRD Client -- Non-Flattened Device Tree (what we're currently using) OpenRD Client support is baked into the Kernel - Flattened Device Tree support is not in its U-Boot. ( removed kbd=uk so I can select the keymap in the installer ) note: this assumes that at the U-Boot console of your SheevaPlug, you've done this: Marvell>> setenv DTB dtb=kirkwood-sheevaplug.dtb Marvell>> setenv SLKKERNEL slkkernel=armv5 Marvell>> setenv machid ffffffff Marvell>> save ; reset You'll also need to ensure that the uImage has the appropriate FDT blob appended to it. For OpenRD client, choose 'No appended FDT blob' # cd /tftpboot/slackwarearm-current # ./fdt-selector Then paste into u-boot on the Kirkwood: 14.2: dhcp;tftpboot 0x01100000 slackwarearm-14.2/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-14.2/uImage-armv5;setenv bootargs $(SLKKERNEL) $(DTB) earlyprintk console=ttyS0,115200 TERM=screen-256color nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 current: dhcp;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv5;setenv bootargs $(SLKKERNEL) $(DTB) earlyprintk console=ttyS0,115200 TERM=screen-256color nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 Flattened Device Tree: ++ This is not used since the Sheevas et al do not have a U-Boot available that supports FDT. We append the FDT blob to the zImage instead. Use the line above ++ SheevaPlug - dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/kirkwood-sheevaplug.dtb;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv5;setenv bootargs earlyprintk console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 0x5880000;reset e-SATA SP: dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/kirkwood-sheevaplug-esata.dtb;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv5;setenv bootargs earlyprintk console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 0x5880000;reset 14.0: ``````` dhcp;tftpboot 0x01100000 slackwarearm-14.0/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-14.0/uImage-armv5;setenv bootargs console=ttyS0,115200 nic=auto:eth0:dhcp kbd=uk root=/dev/ram rw;bootm 0x00800000 0x01100000;reset -current (without DHCP): ``````````````````````` tftpboot 0x01100000 slackwarearm-current/uinitrd-armv5.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv5;setenv bootargs console=ttyS0,115200 nodhcp kbd=uk root=/dev/ram rw;bootm 0x00800000 0x01100000;reset Testing initrds: Save screwing up a machine. Best to build new kernel and network boot it first. Then if it breaks, it can be power cycled and boot off disc back into the previously working kernel. This can only be done on the machine where the kernel.SlackBuild script was run though, because as part of that script "make modules_install" is run so the required kernel modules will be present on the filesystem already. If you wanted to test a new initrd + kernel on a system on which the kernel.SlackBuild *wasn't* run, then you will need to "upgradepkg a/kernel*t?z" on the target system so that the OS can boot. It's easier to test the kernels + initrd's on the same system on which the Kernel was built. Once they prove good, you can upgradepkg safely on the other systems and reboot them directly into the new kernel. tftpboot 0x01100000 slackwarearm-current/uinitrd-armv5 tftpboot 0x00800000 slackwarearm-current/uImage-armv5 ide reset setenv bootargs $(bootargs_console) $(bootargs_root); bootm 0x00800000 0x01100000 ; reset Boot into an NFS root ===================== http://fedoraproject.org/wiki/Architectures/ARM/PlatformSheevaplug Assuming the SheevaPlug has these settings configured: - ethernet IP configured - TFTP server configured set bootargs_console console=ttyS0,115200 set bootargs $(console) root=/dev/nfs rw nfsroot=$(serverip)://devel/armedslack-nfs/12.2/ ip=$(ipaddr):$(serverip)$(bootargs_end) tftpboot 0x6400000 armedslack-12.2/uImage-armv5 bootm 0x6400000 print bootargs Setup a new distcc build host: ================================= cat << EOF >> /etc/rc.d/rc.local # For Sheevaplug: modprobe usbserial vendor=0x9e88 product=0x9e8f modprobe ftdi_sio vendor=0x9e88 product=0x9e8f EOF cat << EOF > /root/sp-serial screen /dev/sheevaplug 115200,-crtscts EOF chmod 755 /root/sp-serial echo ' # /etc/udev/rules.d/10-sheevaplug.rules # Attach /dev/sheevaplug to the 2nd USB port on the SheevaPlug. # by Jim Hawkins # ACTION=="add", SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="01", ATTRS{interface}=="SheevaPlug JTA GKey FT2232D B", SYMLINK+="sheevaplug" ' > /etc/udev/rules.d/10-sheevaplug.rules /etc/rc.d/rc.udev restart Upgrading u-boot ================= Copy u-boot.bin to /tftpboot At Marvell U-boot prompt: bubt Boot from disk: =============== Remember the filesystem & root partition! tftpboot 0x8000000 armedslack/uinitrd-armv5 ; tftpboot 0x2000000 armedslack/uImage-armv5 ; setenv bootargs console=ttyS0,115200 root=/dev/sda3 rootdelay=10 rootfs=xfs ; bootm 0x2000000 0x8000000 Changing root device ===================== setenv bootargs_root 'root=/dev/sda3 waitforroot=10 rootfs=ext4' save reset setenv bootargs_root 'root=/dev/sda4 waitforroot=10 rootfs=ext4' save reset Using NAND ============ http://209.85.229.132/search?q=cache:R13XnjkWmDEJ:plugcomputer.org/plugforum/index.php%3Faction%3Dprintpage%3Btopic%3D612.0+mkfs.jffs2+sheevaplug&cd=4&hl=en&ct=clnk&gl=uk&client=firefox-a setenv bootcmd 'nand read.e 0x800000 0x400000; bootm 0x400000 0x800000' #setenv bootcmd 'nand read.e 0x800000 0x100000 0x400000; bootm 0x800000' setenv bootargs 'console=ttyS0,115200 mtdparts=orion_nand:0x100000@0x000000(u-boot)ro,0x400000@0x100000(uImage)ro,0x620000@0x500000(root)rw' # rootfstype=jffs2 root=/dev/mtdblock2' If you want to just run it without saving: run bootcmd Or save it: save reset Regular USB booting =================== setenv bootargs_root 'root=/dev/sda3 waitforroot=10 rootfs=ext4' setenv bootargs_root 'root=/dev/sda4 waitforroot=10 rootfs=ext4' setenv bootcmd_i 'ext2load usb 0:1 0x0800000 /uinitrd-armv5' setenv bootcmd_k 'ext2load usb 0:1 0x400000 /uImage-armv5' setenv bootcmd 'usb start; setenv bootargs $(console) $(bootargs_root); run bootcmd_i; run bootcmd_k; bootm 0x400000 0x0800000' save