با استفاده از فرمان mtdparts، مقدیر kerneloffset و rootfsoffset را می توانیم بدست آوریم...
loadaddr، آدرسی فضایی در حافظه RAM است که داده های دریافتی به صورت موقت در آن ذخیره (بارگذاری) می شود.
print loadaddr
//
tftp $(loadaddr) uimage
// U-Boot automatically sets the variables fileaddr and filesize to the file address and file size of the last file that was loaded in RAM.
nand erase $(kerneloffset) $(kernelsize )
بهتر است کل پارتیشن را پاک کنیم... بنابراین باید مقدار kernelsize را از خروجی فرمان mtdparts بدست می آوریم...
nand erase.part linux
nand write $(fileaddr) $(kerneloffset) $(fileaddr)
nand write ${fileaddr} linux ${filesize}
مقدار kernelsize را از خروجی فرمان زیر بدست می آوریم...
print filesize
setenv kernelsize $(filesize)
مقدار kerneladdr را از حروجی فرمان زیر بدست می آوریم...
nboot linux
//
tftp $(loadaddr) ramdisk
nand erase $(rootfsoffset) $(rootfssize)
بهتر است کل پارتیشن را پاک کنیم... بنابراین باید مقدار rootfssize را از خروجی فرمان mtdparts بدست می آوریم...
nand erase.part rootfs
nand write $(fileaddr) $(rootfsoffset) $(fileaddr)
nand write.trimffs ${fileaddr} rootfs ${filesize}
nand write ${fileaddr} rootfs ${filesize}
مقدار rootfssize را از خروجی فرمان زیر بدست می آوریم...
print filesize
setenv rootfssize $(filesize)
// Ramdisk
setenv bootargs console=ttySAC1,115200 ramdisksize=32768 root=/dev/ram0 rw rootfstype=ext2 initrd=$(rootfsaddr),32M
setenv bootargs console= ${console} ramdisksize=32768 root=/dev/ram0 rw rootfstype=ext2 initrd=$(rootfsaddr),32M
setenv bootargs console=ttySAC1,115200 ramdisksize=32768 root=/dev/ram0 rw rootfstype=ext2 initrd=$(rootfsaddr),32M ip=192.168.0.250:192.168.0.129:192.168.0.1:255.255.255.0::eth0:off ethaddr=00:40:5c:26:0a:5b
setenv bootargs console=ttySAC1,115200 ramdisksize=32768 root=/dev/ram0 rw rootfstype=ext2 initrd=$(rootfsaddr),32M ip=dhcp eth=${ethaddr}
setenv bootcmd 'nand read $(kerneladdr) $(kerneloffset) $(kernelsize );nand read $(rootfsaddr) $(rootfsoffset) $(rootfssize);bootm $(kerneladdr)'
// Size of the file – this value can be taken for the results of the TFTP action...
setenv bootcmd 'nand read $(kerneladdr) linux $(kernelsize );nand read $(rootfsaddr) rootfs $(rootfssize);bootm $(kerneladdr)'
setenv bootcmd 'nand read $(kerneladdr) linux $(kernelsize );nboot $(rootfsaddr) 0 $(rootfssize);bootm'
// NFS
setenv bootcmd 'tftp $(kerneladdr) uimage;bootm $(kerneladdr)'
setenv bootargs init=/init console=ttySAC1,115200 root=/dev/nfs rw nfsroot=192.168.1.20:/nfsroot/RootFS ip=192.168.1.252:192.168.1.20:192.168.1.1:255.255.255.0::eth0:off ethaddr=00:40:5c:26:0a:5b
setenv bootargs init=/sbin/init console=ttySAC1,115200 root=/dev/nfs rw nfsroot=192.168.1.20:/nfsroot/rambase ip=192.168.1.252:192.168.1.20:192.168.1.1:255.255.255.0::eth0:off ethaddr=00:40:5c:26:0a:5b