[U-Boot] [PATCH v2] Add support for Congatec Conga-QEVAl board

2013-05-14 Thread SARTRE Leo
Add minimal support (only boot from mmc device) for the Congatec
Conga-QEVAl Evaluation Carrier Board with a conga-Qmx6 module.

Signed-off-by: Leo Sartre lsar...@adeneo-embedded.com
---

Rework of the first version of the patch. All unnecessary code was
removed from the board file to offer only boot from mmc.
Copyright where restored (sorry for the last patch).

 MAINTAINERS  |4 +
 board/congatec/cgtqmx6/Makefile  |   42 
 board/congatec/cgtqmx6/README|   28 ++
 board/congatec/cgtqmx6/cgtqmx6.c |  181 ++
 boards.cfg   |1 +
 include/configs/cgtqmx6.h|  197 ++
 6 files changed, 453 insertions(+)
 create mode 100644 board/congatec/cgtqmx6/Makefile
 create mode 100644 board/congatec/cgtqmx6/README
 create mode 100644 board/congatec/cgtqmx6/cgtqmx6.c
 create mode 100644 include/configs/cgtqmx6.h

diff --git a/MAINTAINERS b/MAINTAINERS
index 643a5ac..b61484b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -889,6 +889,10 @@ Steve Sakoman sako...@gmail.com
 
omap3_overo ARM ARMV7 (OMAP3xx SoC)
 
+Leo Sartre lsar...@adeneo-embedded.com
+
+   cgtqmx6 i.MX6Q
+
 Jens Scharsig e...@bus-elektronik.de
 
eb_cpux9k2  ARM920T (AT91RM9200 SoC)
diff --git a/board/congatec/cgtqmx6/Makefile b/board/congatec/cgtqmx6/Makefile
new file mode 100644
index 000..a17603e
--- /dev/null
+++ b/board/congatec/cgtqmx6/Makefile
@@ -0,0 +1,42 @@
+#
+# Copyright (C) 2007, Guennadi Liakhovetski l...@denx.de
+#
+# (C) Copyright 2011 Freescale Semiconductor, Inc.
+# (C) Copyright 2013 Adeneo Embedded www.adeneo-embedded.com
+#
+# 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.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+# MA 02111-1307 USA
+#
+
+include $(TOPDIR)/config.mk
+
+LIB= $(obj)lib$(BOARD).o
+
+COBJS  := cgtqmx6.o
+
+SRCS   := $(COBJS:.o=.c)
+OBJS   := $(addprefix $(obj),$(COBJS))
+
+$(LIB):$(obj).depend $(OBJS)
+   $(call cmd_link_o_target, $(OBJS))
+
+#
+
+# defines $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#
diff --git a/board/congatec/cgtqmx6/README b/board/congatec/cgtqmx6/README
new file mode 100644
index 000..12e6b28
--- /dev/null
+++ b/board/congatec/cgtqmx6/README
@@ -0,0 +1,28 @@
+U-Boot for the Congatec Conga-QEVAl Evaluation Carrier board
+
+This file contains information for the port of U-Boot to the Congatec
+Conga-QEVAl Evaluation Carrier board.
+
+1. Boot source, boot from SD card
+-
+
+This version of u-boot works only on the SD card. By default, the
+Congatec board can boot only from the SPI-NOR.
+But, with the u-boot version provided with the board you can write boot
+registers to force the board to reboot and boot from the SD slot. If
+bmode command is not available from your pre-installed u-boot, these
+instruction will produce the same effect:
+
+conga-QMX6 U-Boot  mw.l 0x20d8040 0x3850
+conga-QMX6 U-Boot  mw.l 0x020d8044 0x1000
+conga-QMX6 U-Boot  reset
+resetting ...
+
+The the board will reboot and, if you burnt your SD correctly the
+board will use u-boot that live into the SD
+
+To copy the resulting u-boot.imx to the SD card:
+
+ sudo dd if=u-boot.imx of=/dev/xxx bs=512 seek=2sudo sync
+
+Note: Replace xxx with the device representing the SD card in your system.
diff --git a/board/congatec/cgtqmx6/cgtqmx6.c b/board/congatec/cgtqmx6/cgtqmx6.c
new file mode 100644
index 000..d05d529
--- /dev/null
+++ b/board/congatec/cgtqmx6/cgtqmx6.c
@@ -0,0 +1,185 @@
+/*
+ * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This file is based on mx6qsabrelite.c
+ * Copyright (C) 2013, Adeneo Embedded www.adeneo-embedded.com
+ * Leo Sartre, lsar...@adeneo-embedded.com
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even 

Re: [U-Boot] [PATCH v2] Add support for Congatec Conga-QEVAl board

2013-05-14 Thread Otavio Salvador
Hello Leo,

On Tue, May 14, 2013 at 6:53 AM, SARTRE Leo lsar...@adeneo-embedded.com wrote:
 Add minimal support (only boot from mmc device) for the Congatec
 Conga-QEVAl Evaluation Carrier Board with a conga-Qmx6 module.

 Signed-off-by: Leo Sartre lsar...@adeneo-embedded.com

Please add Stefano (i.MX custodian) to Cc when sending i.MX patches.

 diff --git a/board/congatec/cgtqmx6/Makefile b/board/congatec/cgtqmx6/Makefile

I'd use cgtgmx6eval as it is indeed Carrier Board specific.

...
 +++ b/board/congatec/cgtqmx6/README
 @@ -0,0 +1,28 @@
 +U-Boot for the Congatec Conga-QEVAl Evaluation Carrier board
 +
 +This file contains information for the port of U-Boot to the Congatec
 +Conga-QEVAl Evaluation Carrier board.
 +
 +1. Boot source, boot from SD card
 +-
 +
 +This version of u-boot works only on the SD card. By default, the
 +Congatec board can boot only from the SPI-NOR.
 +But, with the u-boot version provided with the board you can write boot
 +registers to force the board to reboot and boot from the SD slot. If
 +bmode command is not available from your pre-installed u-boot, these
 +instruction will produce the same effect:
 +
 +conga-QMX6 U-Boot  mw.l 0x20d8040 0x3850
 +conga-QMX6 U-Boot  mw.l 0x020d8044 0x1000
 +conga-QMX6 U-Boot  reset
 +resetting ...
 +
 +The the board will reboot and, if you burnt your SD correctly the
 +board will use u-boot that live into the SD

..., if you have written your SD correctly ...

 +To copy the resulting u-boot.imx to the SD card:
 +
 + sudo dd if=u-boot.imx of=/dev/xxx bs=512 seek=2sudo sync

I'd not add 'sudo' prefix. Some people may run it as root already or
have given rights to write to the block device. Please remove the '
sudo sync' from it as well.

 +Note: Replace xxx with the device representing the SD card in your system.
 diff --git a/board/congatec/cgtqmx6/cgtqmx6.c 
 b/board/congatec/cgtqmx6/cgtqmx6.c
 new file mode 100644
 index 000..d05d529
 --- /dev/null
 +++ b/board/congatec/cgtqmx6/cgtqmx6.c
 @@ -0,0 +1,185 @@
 +/*
 + * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
 + *
 + * See file CREDITS for list of people who contributed to this
 + * project.
 + *
 + * This file is based on mx6qsabrelite.c
 + * Copyright (C) 2013, Adeneo Embedded www.adeneo-embedded.com
 + * Leo Sartre, lsar...@adeneo-embedded.com
 + *
 + * 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.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License
 + * along with this program; if not, write to the Free Software
 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
 + * MA 02111-1307 USA
 + */
 +
 +#include common.h
 +#include asm/io.h
 +#include asm/arch/clock.h
 +#include asm/arch/imx-regs.h
 +#include asm/arch/iomux.h
 +#include asm/arch/mx6-pins.h
 +#include asm/gpio.h
 +#include asm/imx-common/iomux-v3.h
 +#include asm/imx-common/boot_mode.h
 +#include mmc.h
 +#include fsl_esdhc.h
 +
 +DECLARE_GLOBAL_DATA_PTR;
 +
 +#define UART_PAD_CTRL  (PAD_CTL_PKE | PAD_CTL_PUE |\
 +   PAD_CTL_PUS_100K_UP | PAD_CTL_SPEED_MED |\
 +   PAD_CTL_DSE_40ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 +
 +#define USDHC_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE |\
 +   PAD_CTL_PUS_47K_UP  | PAD_CTL_SPEED_LOW |\
 +   PAD_CTL_DSE_80ohm   | PAD_CTL_SRE_FAST  | PAD_CTL_HYS)
 +
 +int dram_init(void)
 +{
 +   gd-ram_size = get_ram_size((void *)PHYS_SDRAM, PHYS_SDRAM_SIZE);
 +
 +   return 0;
 +}
 +
 +iomux_v3_cfg_t const uart2_pads[] = {
 +   MX6_PAD_EIM_D26__UART2_TXD | MUX_PAD_CTRL(UART_PAD_CTRL),
 +   MX6_PAD_EIM_D27__UART2_RXD | MUX_PAD_CTRL(UART_PAD_CTRL),
 +};
 +
 +iomux_v3_cfg_t const usdhc2_pads[] = {
 +   MX6_PAD_SD2_CLK__USDHC2_CLK   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD2_CMD__USDHC2_CMD   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD2_DAT0__USDHC2_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD2_DAT1__USDHC2_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD2_DAT2__USDHC2_DAT2 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD2_DAT3__USDHC2_DAT3 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_GPIO_4__GPIO_1_4  | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +};
 +
 +iomux_v3_cfg_t const usdhc4_pads[] = {
 +   MX6_PAD_SD4_CLK__USDHC4_CLK   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD4_CMD__USDHC4_CMD   | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD4_DAT0__USDHC4_DAT0 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +   MX6_PAD_SD4_DAT1__USDHC4_DAT1 | MUX_PAD_CTRL(USDHC_PAD_CTRL),
 +