[U-Boot] arm: mx5: Add support for USB armory board

Vagrant Cascadian
2015-03-21T15:12:28Z

On 2015-03-19, Andrej Rosano wrote:
> On Thu, Mar 19, 2015 at 09:55:26AM -0700, Vagrant Cascadian wrote:
>> On 2015-02-24, andrej at inversepath.com wrote:
>> > Add support for Inverse Path USB armory board, an open source
>> > flash-drive sized computer based on Freescale i.MX53 SoC.
...
>> Would you consider patches that include config_distro_defaults.h and
>> config_distro_bootcmd.h, documented in doc/README.distro? It may require
>> adding several variables such as fdt_addr_r, fdtfile, ramdisk_addr_r,
>> ramdiskfile, kernel_addr_r, bootfile, pxe_addr_r and scriptaddr,
>> documented in README and doc/README.distro. I'd be happy to work on
>> patches.
...
> Sure, it would be nice to have this included in the patch.
> I didn't know about this, I will take a look as well. Let me know if
> you need any help from my side.

Ok, here's a quick patch on top of your existing patch. It compiles, but
I haven't tested that it boots (waiting on some header pins to hook up
the serial console).

I tried to preserve default behavior, the only difference is that it
will first check for extlinux.conf and boot.scr before running the
default boot action, and has a 2 second rather than 1 second bootdelay.

Many of the things defined in config_distro_defaults.h were redundant.

Not sure if CONFIG_LOADADDR needs to be different from
kernel_addr_r/scriptaddr/pxefile_addr_r, if they can all be the same,
then they could be defined with CONFIG_LOADADDR. Hopefully
ramdisk_addr_r is at a reasonable location so it won't be clobbered by
the fdt or kernel being loaded to a lower address. It may require
removing the default bootargs to work with boot scripts.

diff --git a/include/configs/usbarmory.h b/include/configs/usbarmory.h
index e00ec7b..7e4cc68 100644
--- a/include/configs/usbarmory.h
+++ b/include/configs/usbarmory.h
@@ -22,12 +22,10 @@

#include <asm/arch/imx-regs.h>
#include <config_cmd_default.h>
+#include <config_distro_defaults.h>

/* U-Boot commands */
-#define CONFIG_CMD_BOOTZ
-#define CONFIG_CMD_FAT
#define CONFIG_CMD_MEMTEST
-#define CONFIG_CMD_EXT2
#undef CONFIG_CMD_IMLS

/* U-Boot environment */
@@ -39,14 +37,10 @@
#define CONFIG_SYS_MMC_ENV_DEV 0

/* U-Boot general configurations */
-#define CONFIG_SYS_LONGHELP
-#define CONFIG_SYS_HUSH_PARSER
-#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_CBSIZE 512
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
#define CONFIG_SYS_MAXARGS 16
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE
-#define CONFIG_CMDLINE_EDITING

/* UART */
#define CONFIG_MXC_UART
@@ -61,7 +55,6 @@
#define CONFIG_SYS_FSL_ESDHC_NUM 2
#define CONFIG_MMC
#define CONFIG_GENERIC_MMC
-#define CONFIG_DOS_PARTITION

/* USB */
#define CONFIG_CMD_USB
@@ -82,7 +75,6 @@
#define CONFIG_FSL_IIM

/* Linux boot */
-#define CONFIG_BOOTDELAY 1
#define CONFIG_LOADADDR 0x72000000
#define CONFIG_SYS_TEXT_BASE 0x77800000
#define CONFIG_SYS_LOAD_ADDR CONFIG_LOADADDR
@@ -90,8 +82,28 @@
#define CONFIG_BOOTARGS \
"console=ttymxc0,115200 root=/dev/mmcblk0p1 rootwait rw"
#define CONFIG_BOOTCOMMAND \
- "ext2load mmc 0:1 0x70800000 /boot/uImage; ext2load mmc 0:1" \
- "0x71000000 /boot/imx53-usbarmory.dtb; bootm 0x70800000 - 0x71000000"
+ "run distro_bootcmd; " \
+ "ext2load mmc 0:1 ${kernel_addr_r} /boot/uImage; " \
+ "ext2load mmc 0:1 ${fdt_addr_r} /boot/${fdtfile}; " \
+ "bootm ${kernel_addr_r} - ${fdt_addr_r}"
+
+#define BOOT_TARGET_DEVICES(func) \
+ func(MMC, mmc, 0)
+
+#include <config_distro_bootcmd.h>
+
+#define MEM_LAYOUT_ENV_SETTINGS \
+ "kernel_addr_r=0x70800000\0" \
+ "fdt_addr_r=0x71000000\0" \
+ "scriptaddr=0x70800000\0" \
+ "pxefile_addr_r=0x70800000\0" \
+ "ramdisk_addr_r=0x73000000\0"
+
+#define CONFIG_EXTRA_ENV_SETTINGS \
+ MEM_LAYOUT_ENV_SETTINGS \
+ "fdtfile=imx53-usbarmory.dtb\0" \
+ "console=ttymxc0,115200\0" \
+ BOOTENV

/* Physical Memory Map */
#define CONFIG_NR_DRAM_BANKS 1

live well,
vagrant
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20150321/9d05789d/attachment.sig>