PiMX1 UbootSetup: Difference between revisions
New page: == PiMX1 board U-boot Setup == == U-Boot setup == Environment variables setup and connection check. <pre> printenv setenv bootdelay 10 setenv ethaddr 80:81:82:83:84:85 setenv hostname ... |
(No difference)
|
Latest revision as of 13:44, 25 August 2008
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