diff -urN a/include/config_distro_defaults.h b/include/config_distro_defaults.h --- a/include/config_distro_defaults.h 2014-06-03 11:30:04.000000000 -0600 +++ b/include/config_distro_defaults.h 2014-06-11 19:52:40.580010171 -0600 @@ -45,7 +45,7 @@ #define CONFIG_CMDLINE_EDITING #define CONFIG_AUTO_COMPLETE -#define CONFIG_BOOTDELAY 2 +#define CONFIG_BOOTDELAY 1 #define CONFIG_SYS_LONGHELP #define CONFIG_MENU #define CONFIG_DOS_PARTITION diff -urN a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h --- a/include/configs/sunxi-common.h 2014-06-03 11:30:04.000000000 -0600 +++ b/include/configs/sunxi-common.h 2014-06-11 20:05:04.219182801 -0600 @@ -126,7 +126,7 @@ #define CONFIG_SYS_NO_FLASH #define CONFIG_SYS_MONITOR_LEN (512 << 10) /* 512 KiB */ -#define CONFIG_IDENT_STRING " Allwinner Technology" +#define CONFIG_IDENT_STRING " Arch Linux ARM" #define CONFIG_ENV_OFFSET (544 << 10) /* (8 + 24 + 512) KiB */ #define CONFIG_ENV_SIZE (128 << 10) /* 128 KiB */ @@ -137,99 +137,54 @@ #define RUN_BOOT_RAM "" #endif -#define CONFIG_BOOTCOMMAND \ - RUN_BOOT_RAM \ - "if run loadbootenv; then " \ - "echo Loaded environment from ${bootenv};" \ - "env import -t ${scriptaddr} ${filesize};" \ - "fi;" \ - "if test -n \\\"${uenvcmd}\\\"; then " \ - "echo Running uenvcmd ...;" \ - "run uenvcmd;" \ - "fi;" \ - "if run loadbootscr; then "\ - "echo Jumping to ${bootscr};" \ - "source ${scriptaddr};" \ - "fi;" \ - "run autoboot;" \ - "" - #ifdef CONFIG_CMD_WATCHDOG #define RESET_WATCHDOG "watchdog 0" #else #define RESET_WATCHDOG "true" #endif +#if defined(CONFIG_CUBIEBOARD2) + #define CONFIG_DEFAULT_FDT_FILE "sun7i-a20-cubieboard2.dts" +#elif defined(CONFIG_CUBIETRUCK) + #define CONFIG_DEFAULT_FDT_FILE "sun7i-a20-cubietruck.dts" +#elif defined(CONFIG_A20_OLINUXINO_M) + #define CONFIG_DEFAULT_FDT_FILE "sun7i-a20-olinuxino-micro.dts" +#elif defined(CONFIG_HACKBERRY) + #define CONFIG_DEFAULT_FDT_FILE "sun4i-a10-hackberry.dts" +#endif + + #define CONFIG_EXTRA_ENV_SETTINGS \ "bootm_size=0x10000000\0" \ - "console=ttyS0,115200\0" \ - "panicarg=panic=10\0" \ - "extraargs=\0" \ - "loglevel=8\0" \ - "scriptaddr=0x44000000\0" \ - "device=mmc\0" \ - "partition=0:1\0" \ - "setargs=" \ - "if test -z \\\\\"$root\\\\\"; then"\ - " if test \\\\\"$bootpath\\\\\" = \"/boot/\"; then"\ - " root=\"/dev/mmcblk0p1 rootwait\";"\ - " else" \ - " root=\"/dev/mmcblk0p2 rootwait\";"\ - " fi;"\ - " fi;"\ - " setenv bootargs console=${console} root=${root}" \ - " loglevel=${loglevel} ${panicarg} ${extraargs}" \ - "\0" \ - "kernel=uImage\0" \ - "bootenv=uEnv.txt\0" \ - "bootscr=boot.scr\0" \ - "script=script.bin\0" \ - "loadbootscr=" \ - "fatload $device $partition $scriptaddr ${bootscr}" \ - " || " \ - "ext2load $device $partition $scriptaddr boot/${bootscr}" \ - " ||" \ - "ext2load $device $partition $scriptaddr ${bootscr}" \ - "\0" \ - "loadbootenv=" \ - "fatload $device $partition $scriptaddr ${bootenv}" \ - " || " \ - "ext2load $device $partition $scriptaddr boot/${bootenv}" \ - " || " \ - "ext2load $device $partition $scriptaddr ${bootenv}" \ - "\0" \ - "loadkernel=" \ - "if "\ - "bootpath=/boot/" \ - " && " \ - "ext2load $device $partition 0x43000000 ${bootpath}${script}" \ - " && " \ - "ext2load $device $partition 0x48000000 ${bootpath}${kernel}" \ - ";then true; elif " \ - "bootpath=/" \ - " && " \ - "fatload $device $partition 0x43000000 ${script}" \ - " && " \ - "fatload $device $partition 0x48000000 ${kernel}" \ - ";then true; elif " \ - "bootpath=/" \ - " && " \ - "ext2load $device $partition 0x43000000 ${bootpath}${script}" \ - " && " \ - "ext2load $device $partition 0x48000000 ${bootpath}${kernel}" \ - ";then true; else "\ - "false" \ - ";fi" \ - "\0" \ - "autoboot=" \ - "run loadkernel" \ - " && " \ - "run setargs" \ - " && " \ - RESET_WATCHDOG \ - " && " \ - "bootm 0x48000000" \ - "\0" \ + "console=ttyS0\0" \ + "loadaddr=0x48000000\0" \ + "scriptaddr=0x43000000\0" \ + "fdt_addr=0x44000000\0" \ + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ + "optargs=\0" \ + "video=\0" \ + "mmcdev=0\0" \ + "mmcpart=1\0" \ + "mmcroot=/dev/mmcblk0p1 rw rootwait\0" \ + "mmcargs=setenv bootargs console=${console},${baudrate} " \ + "${optargs} " \ + "root=${mmcroot} " \ + "video=${video}\0" \ + "loadbootenv=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/uEnv.txt\0" \ + "importbootenv=echo Importing environment from mmc (uEnv.txt)...; " \ + "env import -t $loadaddr $filesize\0" \ + "loadscript=load mmc ${mmcdev}:${mmcpart} ${scriptaddr} /boot/script.bin\0" \ + "loaduimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/uImage\0" \ + "loadzimage=load mmc ${mmcdev}:${mmcpart} ${loadaddr} /boot/zImage\0" \ + "loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdt_addr} /boot/dtbs/${fdt_file}\0" \ + "mmcbootm=echo Booting from mmc ...; " \ + "run mmcargs; " \ + RESET_WATCHDOG ";" \ + "bootm ${loadaddr};\0" \ + "mmcbootz=echo Booting from mmc ...; " \ + "run mmcargs; " \ + RESET_WATCHDOG ";" \ + "bootz ${loadaddr} - ${fdt_addr};\0" \ "boot_ram=" \ "saved_stdout=$stdout;setenv stdout nc;"\ "if iminfo 0x41000000; then" \ @@ -238,9 +193,33 @@ " source 0x41000000;" \ "else" \ " setenv stdout $saved_stdout;" \ - "fi" \ - "\0" \ - "" + "fi;\0" + +#define CONFIG_BOOTCOMMAND \ + "run boot_ram;" \ + "mmc dev ${mmcdev};" \ + "if mmc rescan; then " \ + "echo SD/MMC found on device ${mmcdev};" \ + "if run loadbootenv; then " \ + "run importbootenv;" \ + "fi;" \ + "echo Checking if uenvcmd is set ...;" \ + "if test -n $uenvcmd; then " \ + "echo Running uenvcmd ...;" \ + "run uenvcmd;" \ + "fi;" \ + "echo Running default loaduimage ...;" \ + "if run loaduimage; then " \ + "run loadscript;" \ + "run mmcbootm;" \ + "fi;" \ + "echo Running default loadzimage ...;" \ + "if run loadzimage; then " \ + "if run loadfdt; then " \ + "run mmcbootz;" \ + "fi;" \ + "fi;" \ + "fi;" #define CONFIG_SYS_BOOT_GET_CMDLINE