
Hi Dennis,
On 01/08/2013 19:06, Dennis Gilmore wrote:
ultimately I want to have a standard way to boot any system that just works and does not need the installer to know or care what the target system is. using boot.scr and uEnv.txt does not work for my goals.
Let's go away from the concrete scripts u-boot.scr and env.txt. What I find sick is that even the smallest change in a variable requires a new u-boot image, while the environment itself is thought from the beginning to be independent from the code.
I know it's bikeshedding, but most boards can be converted to just:
#define CONFIG_BOOTCOMMAND \ "mmc dev ${mmcdev};" \ "if mmc rescan; then " \ "echo SD/MMC found on device ${mmcdev};" \ "if run loadbootenv; then " \ "run importbootenv;" \ "fi;" \ "if test -n $uenvcmd; then " \ "echo Running uenvcmd ...;" \ "run uenvcmd;" \ "fi;" \ "if run loadsomefailsafedefault; then " \ "run mmcboot;" \ "fi;" \ "fi;" #endif
ultimately for Fedora we do not want to use uEnv.txt or boot.scr at all we want to use a extlinux.conf file and sysboot provided by cmd_pxe the rest is to provide flexibility and options to users to choose different ways to boot. the above is not at all suitable.
This is already an example where the dafult environment is perfectly suitable for someone but not for everybody. And of course, there are a wide range of storage device where scripts are stored: not all boards have MMC. I am thinking if we can have in the CONFIG_EXTRA_ENV_SETTINGS a general command to load the whole environment, letting the whole logic with scripts outside of the code.
Best regards, Stefano Babic