diff -urN a/include/configs/wandboard.h b/include/configs/wandboard.h --- a/include/configs/wandboard.h 2014-07-14 11:16:45.000000000 -0600 +++ b/include/configs/wandboard.h 2014-08-17 11:41:59.539017046 -0600 @@ -51,7 +51,7 @@ #define CONFIG_CMD_BMODE #define CONFIG_CMD_SETEXPR -#define CONFIG_BOOTDELAY 5 +#define CONFIG_BOOTDELAY 1 #define CONFIG_SYS_MEMTEST_START 0x10000000 #define CONFIG_SYS_MEMTEST_END (CONFIG_SYS_MEMTEST_START + 500 * SZ_1M) @@ -76,6 +76,8 @@ #define CONFIG_BOUNCE_BUFFER #define CONFIG_CMD_EXT2 #define CONFIG_CMD_FAT +#define CONFIG_CMD_EXT4 +#define CONFIG_CMD_FS_GENERIC #define CONFIG_DOS_PARTITION /* Ethernet Configuration */ @@ -110,6 +112,8 @@ #define CONFIG_IMX_HDMI #define CONFIG_IMX_VIDEO_SKIP +#define CONFIG_IDENT_STRING " Arch Linux ARM" + #if defined(CONFIG_MX6DL) || defined(CONFIG_MX6S) #define CONFIG_DEFAULT_FDT_FILE "imx6dl-wandboard.dtb" #elif defined(CONFIG_MX6Q) @@ -117,42 +121,33 @@ #endif #define CONFIG_EXTRA_ENV_SETTINGS \ - "script=boot.scr\0" \ - "image=zImage\0" \ - "console=ttymxc0\0" \ + "bootfile=zImage\0" \ + "bootdir=/boot\0" \ + "console=ttymxc0,115200\0" \ "splashpos=m,m\0" \ "fdt_high=0xffffffff\0" \ + "rdaddr=0x12A00000\0" \ + "rdfile=initramfs-linux.img\0" \ "initrd_high=0xffffffff\0" \ - "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ - "fdt_addr=0x18000000\0" \ - "boot_fdt=try\0" \ + "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ + "fdtdir=/boot/dtbs\0" \ + "fdtaddr=0x18000000\0" \ "ip_dyn=yes\0" \ - "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV) "\0" \ - "mmcpart=1\0" \ - "mmcroot=/dev/mmcblk0p2 rootwait rw\0" \ - "update_sd_firmware_filename=u-boot.imx\0" \ - "update_sd_firmware=" \ - "if test ${ip_dyn} = yes; then " \ - "setenv get_cmd dhcp; " \ - "else " \ - "setenv get_cmd tftp; " \ - "fi; " \ - "if mmc dev ${mmcdev}; then " \ - "if ${get_cmd} ${update_sd_firmware_filename}; then " \ - "setexpr fw_sz ${filesize} / 0x200; " \ - "setexpr fw_sz ${fw_sz} + 1; " \ - "mmc write ${loadaddr} 0x2 ${fw_sz}; " \ - "fi; " \ - "fi\0" \ - "mmcargs=setenv bootargs console=${console},${baudrate} " \ - "root=${mmcroot}; run videoargs\0" \ + "optargs=\0" \ + "video=\0" \ + "mmcdev=0\0" \ + "mmcroot=/dev/mmcblk0p1 rw rootwait\0" \ + "mmcargs=setenv bootargs console=${console} " \ + "${optargs} " \ + "root=${mmcroot} " \ + "video=${video}\0" \ "videoargs=" \ "setenv nextcon 0; " \ "if hdmidet; then " \ "setenv bootargs ${bootargs} " \ "video=mxcfb${nextcon}:dev=hdmi,1280x720M@60," \ "if=RGB24; " \ - "setenv fbmen fbmem=28M; " \ + "setenv fbmem fbmem=28M; " \ "setexpr nextcon ${nextcon} + 1; " \ "else " \ "echo - no HDMI monitor;" \ @@ -172,26 +167,38 @@ "echo '- no FWBADAPT-7WVGA-LCD-F07A-0102 display';" \ "fi; " \ "setenv bootargs ${bootargs} ${fbmem}\0" \ - "loadbootscript=" \ - "fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ - "bootscript=echo Running bootscript from mmc ...; " \ - "source\0" \ - "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ - "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr} ${fdt_file}\0" \ - "mmcboot=echo Booting from mmc ...; " \ - "run mmcargs; " \ - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ - "if run loadfdt; then " \ - "bootz ${loadaddr} - ${fdt_addr}; " \ - "else " \ - "if test ${boot_fdt} = try; then " \ - "bootz; " \ - "else " \ - "echo WARN: Cannot load the DT; " \ - "fi; " \ + "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ + "loadrd=load mmc ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ + "loadfdt=echo loading ${fdtdir}/${fdtfile} ...; load mmc ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ + "mmcboot=mmc dev ${mmcdev}; " \ + "if mmc rescan; then " \ + "echo SD/MMC found on device ${mmcdev};" \ + "setenv bootpart ${mmcdev}:1; " \ + "echo Checking for: ${bootdir}/uEnv.txt ...;" \ + "if test -e mmc ${bootpart} ${bootdir}/uEnv.txt; then " \ + "load mmc ${bootpart} ${loadaddr} ${bootdir}/uEnv.txt;" \ + "env import -t ${loadaddr} ${filesize};" \ + "echo Loaded environment from ${bootdir}/uEnv.txt;" \ + "echo Checking if uenvcmd is set ...;" \ + "if test -n ${uenvcmd}; then " \ + "echo Running uenvcmd ...;" \ + "run uenvcmd;" \ + "fi;" \ "fi; " \ - "else " \ - "bootz; " \ + "if run loadimage; then " \ + "if run loadfdt; then " \ + "run mmcargs;" \ + "if run loadrd; then " \ + "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ + "else " \ + "bootz ${loadaddr} - ${fdtaddr};" \ + "fi;" \ + "else " \ + "echo Kernel found, but no device tree found;" \ + "fi;" \ + "else " \ + "echo No kernel found;" \ + "fi;" \ "fi;\0" \ "netargs=setenv bootargs console=${console},${baudrate} " \ "root=/dev/nfs " \ @@ -203,10 +210,10 @@ "else " \ "setenv get_cmd tftp; " \ "fi; " \ - "${get_cmd} ${image}; " \ + "${get_cmd} ${bootfile}; " \ "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ - "if ${get_cmd} ${fdt_addr} ${fdt_file}; then " \ - "bootz ${loadaddr} - ${fdt_addr}; " \ + "if ${get_cmd} ${fdtaddr} ${fdtfile}; then " \ + "bootz ${loadaddr} - ${fdtaddr}; " \ "else " \ "if test ${boot_fdt} = try; then " \ "bootz; " \ @@ -219,16 +226,7 @@ "fi;\0" #define CONFIG_BOOTCOMMAND \ - "mmc dev ${mmcdev}; if mmc rescan; then " \ - "if run loadbootscript; then " \ - "run bootscript; " \ - "else " \ - "if run loadimage; then " \ - "run mmcboot; " \ - "else run netboot; " \ - "fi; " \ - "fi; " \ - "else run netboot; fi" + "run mmcboot;" /* Miscellaneous configurable options */ #define CONFIG_SYS_LONGHELP @@ -269,6 +267,7 @@ #define CONFIG_OF_LIBFDT #define CONFIG_CMD_BOOTZ +#define CONFIG_SUPPORT_RAW_INITRD #ifndef CONFIG_SYS_DCACHE_OFF #define CONFIG_CMD_CACHE