We are looking for a new version of U-Boot that has more features. We are mainly interested in having users life easier with the plug.
The things we are looking at are -
1. Reflash Linux kernel and rootfs without the need of serial port.
2. Ready to use bootcmd to easier boot kernel from tftp / NAND flash / USB stick, and then easier way to mount the rootfs.
Look for details below how we intend to implement those, but for now any feedback and new features are welcomed; but we are not promising that all features will be included.--- Reflash Linux kernel and rootfs without the need of serial port ---
On every boot, U-Boot will look for a USB stick, and if found one then it will look for a uImage.recovery and initrd.recovery files. If found it will boot from them.
Afterwards the uImage and initrd should do anything the user intends to. For example you can have a debian or other distro installer and you can network install a brand new distro and at the end change u-boot environment variables to boot from the new distro.
Note that this will be done on EVERY boot, so if you are using a mechanical drive on the USB port it will wait until the drive spins etc... so potentially it will delay the boot time up to 10 seconds.
I'm not sure how this boot delay will be acceptable by the users, so please provide feedback on this.--- Ready to use bootcmd ----
As a reminder, every boot, u-boot counts down for 3 seconds and then executes the 'bootcmd' environment variable.
The default 'bootcmd' in U-Boot will be changed to much simpler - 'run bootcmd_nand'
and 'bootcmd_nand' will be something like
'nand read 0x00200000 0x00100000 0x00200000; setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end); bootm 0x00200000'
Besides that, there will be other ready to use environment variable like 'bootcmd_nfs' which will have -
'tftpboot 0x2000000 $(image_name);setenv bootargs $(console) $(bootargs_root) nfsroot=$(serverip):$(rootpath) ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvNetConfig) $(mvPhoneConfig); bootm 0x2000000;'
So, if you want to change the boot source from NAND to TFTP/NFS then you would change the bootcmd from 'run bootcmd_nand' to 'run bootcmd_nfs'
We will have other bootcmd for USB boot. If something else required please reply to the post.