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

Andrej Rosano
2015-03-24T13:32:43Z

Hi Vagrant,

On Sat, Mar 21, 2015 at 08:12:28AM -0700, Vagrant Cascadian wrote:
> 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.

Tested and it works as expected. I have just submitted an updated patch (v3).

Thanks

Andrej

>
> 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

--
Andrej Rosano Inverse Path Srl
<andrej@inversepath.com> http://www.inversepath.com

0x01939B21 5BB8 574E 68E8 D841 E18F D5E9 CEAD E0CF 0193 9B21