PiMX1 UbootSetup
PiMX1 board U-boot Setup
U-Boot setup
Environment variables setup and connection check.
printenv setenv bootdelay 10 setenv ethaddr 80:81:82:83:84:85 setenv hostname mx1ant setenv ipaddr 192.168.1.31 setenv serverip 192.168.1.4 setenv netmask 255.255.255.0 setenv gatewayip 192.168.1.4 setenv eval_bootfile 'setenv bootfile ${hostname}/uImage' setenv eval_rootpath 'setenv rootpath ${serverip}:/tftpboot/${hostname}' setenv ipautoconf none setenv baudrate 19200 setenv kern_ramaddr 08001000 setenv kern_flashaddr 10040000 setenv nfs_bootargs 'setenv bootargs ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:${ipautoconf} rw nfsroot=${rootpath} ${kernelparams}' setenv boot_tftp_nfs 'run eval_rootpath; run nfs_bootargs; tftp ${kern_ramaddr}; bootm ${kern_ramaddr}' setenv boot_flash 'setenv bootargs console=ttySMX0,${baudrate}n8 root=31:4 rootfstype=jffs2; bootm 10040000' setenv bootcmd 'dmpower 1; run eval_bootfile; run boot_tftp_nfs' saveenv ping ${serverip} setenv kernelparams console=ttySMX0 bootd
Copy kernel to flash and boot it with NFS root
run eval_bootfile tftp ${kern_ramaddr} erase ${kern_flashaddr} +${filesize} cp ${kern_ramaddr} ${kern_flashaddr} ${filesize} run nfs_bootargs bootm ${kern_flashaddr}
Test and flash new U-Boot version
tftp ${kern_ramaddr} ${hostname}/u-boot.bin go ${fileaddr} tftp ${kern_ramaddr} ${hostname}/u-boot.bin protect off 10000000 +40000 erase 10000000 +40000 cp.b ${fileaddr} 10000000 ${filesize} protect on 10000000 +40000 md 10000000 40
Boot with NFS root using TFTP protocol to load kernel
dmpower 0 dmpower 1 tftp 0x08001000 mx1ant/uImage setenv bootargs "ip=192.168.1.31:192.168.1.4:192.168.1.4:255.255.255.0:mx1ant:eth0:none rw nfsroot=192.168.1.4:/tftpboot/mx1ant" bootm 0x08001000
Make uRamdisk iamage from directory mx1ant-imgsrc with e2fs
size=`du -s mx1ant-imgsrc | cut -f 1` echo $size size=$[$size+500] dd if=/dev/zero of=ramdisk.image bs=1k count=$size mke2fs ramdisk.image mkdir tmp mount ramdisk.image tmp -o loop echo cp .. cp -r -p mx1ant-imgsrc/* tmp/ umount tmp echo gzip .. rm ramdisk.image.gz gzip -9 ramdisk.image echo mkimage .. mkimage -T ramdisk -C gzip -n 'Ramdisk Image' -A arm -d ramdisk.image.gz uRamdisk
Boot with root in ramdisk using TFTP to load kernal and ramdisk image
step by step
dmpower 1 setenv kern_ramaddr 08001000 setenv ramdisk_ramaddr 09800000 setenv bootargs ramdisk_size=10240 root=1:0 console=ttySMX0 tftp ${kern_ramaddr} ${hostname}/uImage tftp ${ramdisk_ramaddr} ${hostname}/uRamdisk bootm ${kern_ramaddr} ${ramdisk_ramaddr}
automatic
setenv ramdisk_ramaddr 09800000 setenv kernelparams URT_SERVER=192.168.2.12 setenv img_bootargs 'setenv bootargs ramdisk_size=10240 root=1:0 console=ttySMX0 ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:eth0:${ipautoconf} ${kernelparams}' setenv boot_tftp_img 'run img_bootargs; tftp ${kern_ramaddr};tftp ${ramdisk_ramaddr} ${hostname}/uRamdisk; bootm ${kern_ramaddr} ${ramdisk_ramaddr}' setenv bootcmd 'dmpower 0; run eval_bootfile;dmpower 1; run boot_tftp_img'
Boot with NFS root loading kernel over NFS protocol.
dmpower 0 dmpower 1 setenv bootargs "ip=192.168.1.31:192.168.1.4:192.168.1.4:255.255.255.0:mx1ant:eth0:none rw nfsroot=192.168.1.4:/tftpboot/mx1ant" nfs 0x08001000 192.168.1.4:/public/tmp/arm/uImage bootm 0x08001000
setenv bootargs "root=/dev/ram0 initrd=0x08600000,10782660 ramdisk_size=12000" setenv bootargs "console=ttySMX0,19200n8 root=31:4 rootfstype=jffs2"
U-boot automatic bootup sequence invocation after power on reset.
#define CONFIG_BOOTDELAY -1
Automatic bootup code is not available, if default bootdelay is set to -1. Any other value is OK and code is compiled in and could be controlled by bootdelay environment variable.
#define CONFIG_BOOTDELAY 10
TFTP server startup on host side
/usr/sbin/in.tftpd -l -r blksize -s /tftpboot
Disable text cursor on console from shell
echo -e "\033[25l" > /dev/tty0
Do a same from C
#include <stdio.h> #include <fcntl.h> #include <sys/ioctl.h> #include <linux/kd.h> main(){ int fd; fd = open("/dev/tty0",O_WRONLY); if(fd<0){ printf("No /dev/tty0 device\n"); } else { ioctl(fd, KDSETMODE, KD_GRAPHICS); } }
Disable Frame-Buffer blanking
echo -en "\033[9;0]" > /dev/tty0 echo 0 >/sys/devices/platform/imx-fb.0/graphics\:fb0/blank