diff -urN a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h --- a/include/configs/am335x_evm.h 2014-07-14 11:16:45.000000000 -0600 +++ b/include/configs/am335x_evm.h 2014-08-10 18:40:55.817027322 -0600 @@ -17,6 +17,7 @@ #define __CONFIG_AM335X_EVM_H #include +#define CONFIG_SUPPORT_RAW_INITRD #ifndef CONFIG_SPL_BUILD # define CONFIG_FIT @@ -74,6 +75,8 @@ #define CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG +#define CONFIG_IDENT_STRING " Arch Linux ARM" + #ifndef CONFIG_SPL_BUILD #define CONFIG_EXTRA_ENV_SETTINGS \ DEFAULT_LINUX_BOOT_ENV \ @@ -81,15 +84,17 @@ "bootpart=0:2\0" \ "bootdir=/boot\0" \ "bootfile=zImage\0" \ + "fdtdir=/boot/dtbs\0" \ "fdtfile=undefined\0" \ + "rdfile=initramfs-linux.img\0" \ "console=ttyO0,115200n8\0" \ "partitions=" \ "uuid_disk=${uuid_gpt_disk};" \ "name=rootfs,start=2MiB,size=-,uuid=${uuid_gpt_rootfs}\0" \ "optargs=\0" \ "mmcdev=0\0" \ - "mmcroot=/dev/mmcblk0p2 ro\0" \ - "mmcrootfstype=ext4 rootwait\0" \ + "mmcroot=/dev/mmcblk0p2\0" \ + "mmcrootextra=rw fixrtc rootwait\0" \ "rootpath=/export/rootfs\0" \ "nfsopts=nolock\0" \ "static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}" \ @@ -98,8 +103,7 @@ "ramrootfstype=ext2\0" \ "mmcargs=setenv bootargs console=${console} " \ "${optargs} " \ - "root=${mmcroot} " \ - "rootfstype=${mmcrootfstype}\0" \ + "root=${mmcroot} ${mmcrootextra}\0" \ "spiroot=/dev/mtdblock4 rw\0" \ "spirootfstype=jffs2\0" \ "spisrcaddr=0xe0000\0" \ @@ -122,37 +126,43 @@ "${optargs} " \ "root=${ramroot} " \ "rootfstype=${ramrootfstype}\0" \ - "loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz\0" \ + "loadramdisk=load mmc ${bootpart} ${rdaddr} ${bootdir}/${rdfile}\0" \ "loadimage=load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}\0" \ - "loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}\0" \ - "mmcloados=run mmcargs; " \ - "if test ${boot_fdt} = yes || test ${boot_fdt} = try; then " \ - "if run loadfdt; then " \ - "bootz ${loadaddr} - ${fdtaddr}; " \ - "else " \ - "if test ${boot_fdt} = try; then " \ - "bootz; " \ - "else " \ - "echo WARN: Cannot load the DT; " \ - "fi; " \ - "fi; " \ - "else " \ - "bootz; " \ - "fi;\0" \ + "loadfdt=load mmc ${bootpart} ${fdtaddr} ${fdtdir}/${fdtfile}\0" \ "mmcboot=mmc dev ${mmcdev}; " \ "if mmc rescan; then " \ + "gpio set 54;" \ "echo SD/MMC found on device ${mmcdev};" \ "if run loadbootenv; then " \ + "gpio set 55;" \ "echo Loaded environment from ${bootenv};" \ "run importbootenv;" \ "fi;" \ + "if test -n $cape; then " \ + "if test -e mmc ${bootpart} ${fdtdir}/$fdtbase-$cape.dtb; then " \ + "setenv fdtfile $fdtbase-$cape.dtb; " \ + "fi; " \ + "echo using: $fdtfile...; " \ + "fi; " \ + "echo Checking if uenvcmd is set ...;" \ "if test -n $uenvcmd; then " \ + "gpio set 56; " \ "echo Running uenvcmd ...;" \ "run uenvcmd;" \ "fi;" \ "if run loadimage; then " \ - "run mmcloados;" \ + "if run loadfdt; then " \ + "run mmcargs;" \ + "if run loadramdisk; then " \ + "bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr};" \ + "else " \ + "bootz ${loadaddr} - ${fdtaddr};" \ + "fi;" \ + "else " \ + "echo Kernel found, but no device tree found;" \ + "fi;" \ "fi;" \ + "echo No kernel found;"\ "fi;\0" \ "spiboot=echo Booting from spi ...; " \ "run spiargs; " \ @@ -169,28 +179,44 @@ "ramboot=echo Booting from ramdisk ...; " \ "run ramargs; " \ "bootz ${loadaddr} ${rdaddr} ${fdtaddr}\0" \ - "findfdt="\ + "findfdt=" \ "if test $board_name = A335BONE; then " \ - "setenv fdtfile am335x-bone.dtb; fi; " \ + "setenv fdtfile am335x-bone.dtb; setenv fdtbase am335x-bone; fi; " \ "if test $board_name = A335BNLT; then " \ - "setenv fdtfile am335x-boneblack.dtb; fi; " \ + "setenv fdtfile am335x-boneblack.dtb; setenv fdtbase am335x-boneblack; fi; " \ "if test $board_name = A33515BB; then " \ "setenv fdtfile am335x-evm.dtb; fi; " \ "if test $board_name = A335X_SK; then " \ "setenv fdtfile am335x-evmsk.dtb; fi; " \ "if test $fdtfile = undefined; then " \ "echo WARNING: Could not determine device tree to use; fi; \0" \ + "findmmc=" \ + "if test $board_name = A335BNLT; then " \ + "setenv mmc1 1;" \ + "mmc dev 0;" \ + "if mmc rescan; then " \ + "setenv mmc0 1;" \ + "else " \ + "setenv mmc0 0;" \ + "fi;" \ + "fi;\0" \ NANDARGS \ DFUARGS #endif #define CONFIG_BOOTCOMMAND \ + "gpio set 53; " \ + "i2c mw 0x24 1 0x3e; " \ + "run findmmc; " \ "run findfdt; " \ "run mmcboot;" \ + "gpio clear 56; " \ + "gpio clear 55; " \ + "gpio clear 54; " \ "setenv mmcdev 1; " \ "setenv bootpart 1:2; " \ - "run mmcboot;" \ - "run nandboot;" + "if test $mmc0 = 1; then setenv mmcroot /dev/mmcblk1p2; fi; " \ + "run mmcboot;" /* NS16550 Configuration */ #define CONFIG_SYS_NS16550_COM1 0x44e09000 /* Base EVM has UART0 */