
On Wed, Jul 31, 2013 at 6:01 PM, Rob Herring robherring2@gmail.com wrote:
Dennis,
On Thu, Jul 25, 2013 at 4:13 PM, dgilmore@fedoraproject.org wrote:
From: Dennis Gilmore dennis@ausil.us
Signed-off-by: Dennis Gilmore dennis@ausil.us
include/configs/wandboard.h | 42 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-)
diff --git a/include/configs/wandboard.h b/include/configs/wandboard.h index ee6bf21..a5052c5 100644 --- a/include/configs/wandboard.h +++ b/include/configs/wandboard.h @@ -58,6 +58,8 @@ #define CONFIG_LOADADDR 0x12000000 #define CONFIG_SYS_TEXT_BASE 0x17800000
+#define CONFIG_SUPPORT_RAW_INITRD
/* MMC Configuration */ #define CONFIG_FSL_ESDHC #define CONFIG_FSL_USDHC @@ -72,6 +74,14 @@ #define CONFIG_CMD_FAT #define CONFIG_DOS_PARTITION
+/* PXE support */ +#define CONFIG_BOOTP_PXE +#define CONFIG_BOOTP_PXE_CLIENTARCH 0x100 +#define CONFIG_BOOTP_VCI_STRING "U-boot.armv7.wandboard" +#define CONFIG_CMD_PXE +#define CONFIG_MENU
/* Ethernet Configuration */ #define CONFIG_CMD_PING #define CONFIG_CMD_DHCP @@ -117,7 +127,32 @@ "initrd_high=0xffffffff\0" \ "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ "fdt_addr=0x11000000\0" \
"pxefile_addr_r=0x12000000\0" \
"kernel_addr_r=0x13000000\0" \
"ramdisk_addr_r=0x32000000\0" \
"fdt_addr_r=0x11000000\0" \ "boot_fdt=try\0" \
"bootcmd_setup=mmc rescan\0" \
"bootcmd_pxe=setenv bootfile \"\" ;dhcp; pxe get; pxe boot\0" \
"bootcmd_disk_scr=ext2load ${boot_ifc} ${bootdevice} ${scr_addr_r} boot.scr && source ${scr_addr_r}\0" \
"bootcmd_disk_sysboot1=setenv bootfile /boot/extlinux/extlinux.conf; sysboot ${boot_ifc} ${bootdevice} ext2\0" \
"bootcmd_disk_sysboot2=setenv bootfile /extlinux/extlinux.conf; sysboot ${boot_ifc} ${bootdevice} ext2\0" \
"bootcmd_disk_uenv=ext2load ${boot_ifc} ${bootdevice} ${uenv_addr_r} uEnv.txt; env import -t ${uenv_addr_r} ${filesize}; run bootcmd_uenv\0" \
"bootcmd_disk_kernel=ext2load ${boot_ifc} ${bootdevice} ${kernel_addr_r} vmlinuz && ext2load ${boot_ifc} ${bootdevice} ${ramdisk_addr_r} initrd.img && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr}\0" \
"bootcmd_disk=run bootcmd_disk_sysboot1; run bootcmd_disk_sysboot2; run bootcmd_disk_uenv; run bootcmd_disk_scr; run bootcmd_disk_kernel\0" \
"bootcmd_sata=setenv boot_ifc scsi; scsi scan && run bootcmd_disk\0" \
"bootcmd_mmc=setenv boot_ifc mmc; mmc rescan && run bootcmd_disk\0" \
"bootcmd_default=run bootcmd_mmc; run bootcmd_sata; run bootcmd_pxe\0" \
I really would not like to see this propagated to another board. I've completely redone the env for highbank based on what Stephen Warren did for Tegra. It would be good to come up with a common version rather than duplicating for each board. This is now what the env looks like for highbank in current firmware:
kernel_boot=echo Trying kernel...; ${fs}load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}vmlinuz && ${fs}load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}initrd.img && bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr} script_boot=echo Trying script images...; for script in ${boot_scripts}; do ${fs}load ${devtype} ${devnum} ${script_addr} ${prefix}${script} && echo Executing ${prefix}${script}... && source ${script_addr}; done; env_boot=echo Trying environment file...; ${fs}load ${devtype} ${devnum} ${script_addr} ${prefix}uEnv.txt && Executing ${prefix}uEnv.txt... && env import -t ${script_addr} ${filesize}};
Guys, this is just silly.. Your using both uEnv.txt/boot.scr scripts by default, which you could use to "hide" all this extra stuff in a text file on the boot drive, that way mainline u-boot doesn't have to be patched for every little change. ;)
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
where:
"loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt\0" \ "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ "env import -t ${loadaddr} ${filesize}\0" \
Regards,