Architectures/ARM/TrimSlicePRO

=How to install Fedora on TrimSlice PRO= The TrimSlice PRO developer kit comes delivered with a 32GB SSD containing another Linux distribution, but can boot from pretty much any media (SD. USB, MicroSD, SSD) and you are free to experiment without voiding warranty.

U-Boot is factory preprogrammed in internal flash. There is no need to reflash U-Boot as the default U-Boot version is very open and friendly configured. But you may do so if you wish, following instructions from TrimSlice. One very nice thing is that the device allows easy recovery using the SD slot if the boot flash gets corrupted, eleminating the need for JTAG in such cases.

Kernel & Initrd
The kernel & initrd needs to be converted to U-Boot images. This is done by running

U-Boot behavior
The TrimSlice U-Boot automatically tries to boot from the first partition of any of the above boot sources and expects a boot.scr u-boot script file in / or /boot on the boot device.

When starting boot.scr the following variables are set for convenience

fs        filesystem type (ext2 or fat) interface u-boot interface type (mmc or usb) bus       bus number of the interface prefix    boot prefix (/ or /boot)

enabling a generic boot.scr script to be used to boot from any of the possible boot devices. (see below)

Fedora boot script
Save this as boot.cmd in /boot and convert it to a uboot image by using

echo starting Fedora boot.scr

printenv

if test -z "${fs}" -o -z "${interface}" -o -z "${device}"; then echo Missing system parameters exit 1 fi

if ${fs}load ${interface} ${device}${bootpart} ${loadaddr} kernel.scr; then source ${loadaddr} fi

if test -z "${rootpart}" -a -z "${rootuuid}" -a 1 = 1 ; then echo Using default rootpart 4 setenv rootpart 4 #setenv rootuuid 3e6be9de-8139-11d1-9106-a43f08d823a6 fi

if test -z "${kernel}" -a 1 = 1 ; then echo "Using default image names" setenv kernel uImage setenv initrd uInitrd fi if test -n "${kernelver}"; then setenv kernel ${kernel}-${kernelver} setenv initrd ${initrd}-${kernelver} fi
 * 1) if test -z "${kernel}" -a -z "${kernelver}"; then
 * 2) 	setenv kernelver 2.6.40.3-0.fc15.armv7hl.tegra
 * fi

if test -z "${console}" -a 1 = 1 ; then setenv console ttyS0,115200n8 fi

setenv initrdaddr 1600000

echo Parameters set

printenv

if test -n "${rootuuid}"; then echo booting with UUID selected root setenv rootfs ro root=UUID=${rootuuid} elif test "${interface}" = "mmc" && test "${bus}" = "1"; then echo booting from internal microSD setenv rootfs ro root=/dev/mmcblk0p${rootpart} elif test "${interface}" = "mmc" && test "${bus}" = "0"; then echo booting from external SD	if mmc init 1; then setenv rootfs ro root=/dev/mmcblk1p${rootpart} else setenv rootfs ro root=/dev/mmcblk0p${rootpart} fi mmc init 0

elif test "${interface}" = "usb" && test "${bus}" = "1"; then echo booting from internal SSD setenv rootfs ro root=/dev/sda${rootpart} nohdparm rootwait else echo booting from external USB setenv rootfs ro root=/dev/sdb${rootpart} rootwait fi

setenv bootargs console=${console} ${rootfs} setenv load_kernel ${fs}load ${interface} ${device}${bootpart} ${loadaddr} ${prefix}${kernel} setenv load_initrd ${fs}load ${interface} ${device}${bootpart} ${initrdaddr} ${prefix}${initrd} setenv bootcmd bootm ${loadaddr} ${initrdaddr}

echo bootargs ${bootargs} echo kernel ${load_kernel} echo initrd ${load_initrd} echo ${bootcmd}

run load_kernel run load_initrd run bootcmd