[U-Boot] [PATCH] Add initial support for mx6slevk board

Dirk Behme dirk.behme at gmail.com
Sun Mar 31 08:39:20 CEST 2013


Hi Fabio,

Am 30.03.2013 22:08, schrieb Fabio Estevam:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> mx6slevk board is a development board from Freescale based on the mx6 solo lite
> processor.
>
> For details about mx6slevk, please refer to:
> http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX6SLEVK&parentCode=i.MX6SL&fpsp=1
>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
>   MAINTAINERS                                |    1 +
>   arch/arm/cpu/armv7/mx6/clock.c             |   38 +-
>   arch/arm/include/asm/arch-mx6/crm_regs.h   |    1 +
>   arch/arm/include/asm/arch-mx6/imx-regs.h   |   63 +-
>   arch/arm/include/asm/arch-mx6/mx6-pins.h   |    4 +
>   arch/arm/include/asm/arch-mx6/mx6sl_pins.h | 1374 ++++++++++++++++++++++++++++

Would it make sense to split this patch into two parts? One general 
"add i.MX6 SoloLite support" and then the "add mx6slevk board board 
support"?

>   board/freescale/mx6slevk/Makefile          |   28 +
>   board/freescale/mx6slevk/imximage.cfg      |  118 +++
>   board/freescale/mx6slevk/mx6slevk.c        |  102 +++
>   boards.cfg                                 |    1 +
>   include/configs/mx6slevk.h                 |  189 ++++
>   11 files changed, 1916 insertions(+), 3 deletions(-)
>   create mode 100644 arch/arm/include/asm/arch-mx6/mx6sl_pins.h
>   create mode 100644 board/freescale/mx6slevk/Makefile
>   create mode 100644 board/freescale/mx6slevk/imximage.cfg
>   create mode 100644 board/freescale/mx6slevk/mx6slevk.c
>   create mode 100644 include/configs/mx6slevk.h
>
...
> +#########################################################################
> diff --git a/board/freescale/mx6slevk/imximage.cfg b/board/freescale/mx6slevk/imximage.cfg
> new file mode 100644
> index 0000000..df39a16
> --- /dev/null
> +++ b/board/freescale/mx6slevk/imximage.cfg
> @@ -0,0 +1,118 @@
> +/*
> + * Copyright (C) 2013 Freescale Semiconductor, Inc.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License or (at your option) any later version.
> + *
> + * Refer docs/README.imxmage for more details about how-to configure
> + * and create imximage boot image
> + *
> + * The syntax is taken as close as possible with the kwbimage
> + */
> +
> +/* image version */
> +
> +IMAGE_VERSION 2
> +
> +/*
> + * Boot Device : one of
> + * spi, sd (the board has no nand neither onenand)
> + */
> +
> +BOOT_FROM	sd
> +
> +/*
> + * Device Configuration Data (DCD)
> + *
> + * Each entry must have the format:
> + * Addr-type           Address        Value
> + *
> + * where:
> + *	Addr-type register length (1,2 or 4 bytes)
> + *	Address	  absolute address of the register
> + *	value	  value to be stored in the register
> + */
> +DATA 4 0x020c4018 0x00260324
> +
> +DATA 4 0x020c4068 0xffffffff
> +DATA 4 0x020c406c 0xffffffff
> +DATA 4 0x020c4070 0xffffffff
> +DATA 4 0x020c4074 0xffffffff
> +DATA 4 0x020c4078 0xffffffff
> +DATA 4 0x020c407c 0xffffffff
> +DATA 4 0x020c4080 0xffffffff

I haven't looked into the manual, but are these the clock registers? 
If so, is it necessary to set them to  0xffffffff? Or are these 
already the default reset values?

...
> diff --git a/include/configs/mx6slevk.h b/include/configs/mx6slevk.h
> new file mode 100644
> index 0000000..67b63f4
> --- /dev/null
> +++ b/include/configs/mx6slevk.h
> @@ -0,0 +1,189 @@
> +/*
> + * Copyright 2013 Freescale Semiconductor, Inc.
> + *
> + * Configuration settings for the Freescale i.MX6SL EVK board.
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License as
> + * published by the Free Software Foundation; either version 2 of
> + * the License, or (at your option) any later version.
> + */
> +
> +#ifndef __CONFIG_H
> +#define __CONFIG_H
> +
> +#include <asm/arch/imx-regs.h>
> +#include <asm/sizes.h>
> +
> +#define CONFIG_MX6
> +#define CONFIG_DISPLAY_CPUINFO
> +#define CONFIG_DISPLAY_BOARDINFO
> +
> +#define MACH_TYPE_MX6SLEVK		4307

Below, you seem to boot with device tree. Is this necessary, then?

> +#define CONFIG_MACH_TYPE		MACH_TYPE_MX6SLEVK
> +
> +#define CONFIG_CMDLINE_TAG
> +#define CONFIG_SETUP_MEMORY_TAGS
> +#define CONFIG_INITRD_TAG
> +#define CONFIG_REVISION_TAG
> +
> +/* Size of malloc() pool */
> +#define CONFIG_SYS_MALLOC_LEN		(3 * SZ_1M)
> +
> +#define CONFIG_BOARD_EARLY_INIT_F
> +#define CONFIG_MXC_GPIO
> +
> +#define CONFIG_MXC_UART
> +#define CONFIG_MXC_UART_BASE		UART1_IPS_BASE_ADDR
> +
> +/* MMC Configs */
> +#define CONFIG_FSL_ESDHC
> +#define CONFIG_FSL_USDHC
> +#define CONFIG_SYS_FSL_ESDHC_ADDR	0
> +
> +#define CONFIG_MMC
> +#define CONFIG_CMD_MMC
> +#define CONFIG_GENERIC_MMC
> +#define CONFIG_CMD_FAT
> +#define CONFIG_DOS_PARTITION
> +
> +/* allow to overwrite serial and ethaddr */
> +#define CONFIG_ENV_OVERWRITE
> +#define CONFIG_CONS_INDEX		1
> +#define CONFIG_BAUDRATE			115200
> +
> +/* Command definition */
> +#include <config_cmd_default.h>
> +
> +#undef CONFIG_CMD_IMLS
> +
> +#define CONFIG_BOOTDELAY		3
> +
> +#define CONFIG_LOADADDR			0x80800000
> +#define CONFIG_SYS_TEXT_BASE		0x87800000
> +
> +#define CONFIG_EXTRA_ENV_SETTINGS \
> +	"script=boot.scr\0" \
> +	"uimage=uImage\0" \
> +	"console=ttymxc0\0" \
> +	"fdt_high=0xffffffff\0" \
> +	"initrd_high=0xffffffff\0" \
> +	"fdt_file=imx6sl-evk.dtb\0" \

Is  a kernel patch for this already available anywhere?

Best regards

Dirk


More information about the U-Boot mailing list