###################################################################################### # File: booting.txt # Purpose: Initial notes for bringing support of the Tegra devices into Slackware ARM # Author: Stuart Winter # Date: 15-Dec-2011 ##################################################################################### Booting the OS using kernel & uinitrd from tftp ----------------------------------------------- dhcp;setenv bootargs console=ttyS0,115200n8 root=/dev/sda2 rootdelay=3 rootfstype=ext3 tftpboot 0x00800000 slackwarearm-current/uImage-tegra tftpboot 0x01100000 slackwarearm-current/uinitrd-tegra tftpboot 0x5880000 slackwarearm-current/dtb/tegra20-trimslice.dtb bootm 0x00800000 0x01100000 0x5880000 Booting the installer over TFTP and automatically configuring the network via DHCP ---------------------------------------------------------------------------------- For some reason it takes my trimslice a 2nd attempt to perform any sort of network activity - be it TFTP or requesting a lease from my DHCP server. None of my other devices have this issue. Assuming you've got your network environment setup (DHCPd & TFTPd), you can paste the whole line into the trimslice's u-boot prompt: -current: dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/tegra20-trimslice.dtb;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv7;setenv bootargs earlyprintk mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb kgdboc=kms,ttyS0,115200 console=ttyS0,115200n8 TERM=screen-256color nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 0x5880000;reset -14.1: dhcp;tftpboot 0x5880000 slackwarearm-14.1/dtb/tegra20-trimslice.dtb;tftpboot 0x01100000 slackwarearm-14.1/uinitrd-armv7.img;tftpboot 0x00800000 slackwarearm-14.1/uImage-armv7;setenv bootargs earlyprintk mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb kgdboc=kms,ttyS0,115200 console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw;bootm 0x00800000 0x01100000 0x5880000;reset Test kernels: Booting the OS without upgradepking'g the OS: ## this is the installer dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/tegra20-trimslice.dtb;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7.img;tftpboot 0x00800000 slackwarearm-current/uImage-armv7;setenv bootargs 'earlyprintk console=ttyS0,115200n8 kbd=uk nic=auto:eth0:dhcp root=/dev/ram rw';bootm 0x00800000 0x01100000 0x5880000 ## this is the normal OS initrd dhcp;tftpboot 0x5880000 slackwarearm-current/dtb/tegra20-trimslice.dtb;tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7;tftpboot 0x00800000 slackwarearm-current/uImage-armv7;setenv bootargs 'earlyprintk console=ttyS0,115200 root=/dev/sda2 waitforroot=3 rootfs=ext3 mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb'; bootm 0x00800000 0x01100000 0x5880000 You can break the above line down into smaller pieces if you fancy pasting more lines in! TrimSlice # dhcp TrimSlice # tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7.img TrimSlice # tftpboot 0x00800000 slackwarearm-current/uImage-armv7 TrimSlice # tftpboot 0x5880000 slackwarearm-current/dtb/tegra20-trimslice.dtb Whilst the u-boot only sees 512MB RAM: TrimSlice # setenv bootargs console=ttyS0,115200n8 nodhcp kbd=uk root=/dev/ram rw TrimSlice # setenv bootargs mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb console=ttyS0,115200n8 nodhcp kbd=uk root=/dev/ram rw TrimSlice # bootm 0x00800000 0x01100000 0x5880000 Create the partitions as: /dev/sda1 - 400MB Linux Swap /dev/sda2 - The remainder of the disk. 'Format' this as ext3 because u-boot can't read ext4 filesystems. You can't set an ext2/3 /boot because and an ext4 / because there is a problem with the Kernel - random USB resets. I don't know why! Once installation of Slackware ARM is complete you can configure u-boot to boot from the installed OS: TrimSlice # setenv bootargs 'console=ttyS0,115200 root=/dev/sda2 waitforroot=3 rootfs=ext3 mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb' TrimSlice # setenv bootcmd 'run bootcmd_slk ; reset' For the Internal SSD (The TrimSlice has its internal SSD living off a USB host): TrimSlice # setenv bootcmd_slk 'usb reset 1;ext2load usb 0:2 0x01100000 /boot/uinitrd-armv7;ext2load usb 0:2 0x00800000 /boot/uImage-armv7;bootm 0x00800000 0x01100000' Set standard boot command: TrimSlice # setenv bootcmd 'run bootcmd_slk ; reset' Save settings: TrimSlice # save Reboot into the Slackware ARM OS: TrimSlice # reset The Trimslice's RTC doesn't work yet. You might want to add to /etc/rc.d/rc.local: ntpdate rolex.ripe.net ## or choose your closet NTP server Flattened device tree notes ============================= Without specifying the FTD separately -- having it appended to the kernel: =========================================================================== just kernel boot test: dhcp;setenv bootargs mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb console=ttyS0,115200n8 nodhcp kbd=uk root=/dev/ram rw tftpboot 0x00800000 tmp/uImage-dtb ; bootm 0x00800000 tftpboot 0x00800000 tmp/uImage-3.6.3-3.fc18.armv7hl.tegra ; bootm 0x00800000 Boot both+the dtb: bootm 0x00800000 0x01100000 5880000 tftpboot 0x00800000 tmp/uImage-dtb This is the normal OS initrd, not the installer: tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7 tftpboot 0x5880000 tmp/tegra20-trimslice.dtb This is the installer: tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7.img bootm 0x00800000 0x01100000 Testing kernels - booting both OS initrd & kernel via TFTP, but booting the OS from hard disk -------------------------------------------------------------------------------------------- dhcp;setenv bootargs 'console=ttyS0,115200n8 root=/dev/sda2 rootdelay=3 rootfstype=ext3 mem=384M@0M mem=512M@512M nvmem=128M@384M vmalloc=248M video=tegrafb' tftpboot 0x00800000 tmp/uImage-dtb; tftpboot 0x01100000 slackwarearm-current/uinitrd-armv7 ; bootm 0x00800000 0x01100000