
On Wednesday, October 28, 2015 at 04:30:01 PM, Otavio Salvador wrote:
Congatec has several MX6 boards based on quad, dual, dual-lite and solo.
Add SPL support so that all the variants can be supported.
Signed-off-by: Otavio Salvador otavio@ossystems.com.br
arch/arm/cpu/armv7/mx6/Kconfig | 3 + board/congatec/cgtqmx6eval/README | 78 ++- board/congatec/cgtqmx6eval/cgtqmx6eval.c | 580 +++++++++++++++++---- board/congatec/cgtqmx6eval/imximage.cfg | 143 ----- ...gtqmx6qeval_defconfig => cgtqmx6eval_defconfig} | 5 +- include/configs/cgtqmx6eval.h | 21 +- 6 files changed, 569 insertions(+), 261 deletions(-) delete mode 100644 board/congatec/cgtqmx6eval/imximage.cfg rename configs/{cgtqmx6qeval_defconfig => cgtqmx6eval_defconfig} (57%)
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig index 0b02e9e..9ee509e 100644 --- a/arch/arm/cpu/armv7/mx6/Kconfig +++ b/arch/arm/cpu/armv7/mx6/Kconfig @@ -44,6 +44,9 @@ config TARGET_ARISTAINETOS2B
config TARGET_CGTQMX6EVAL bool "cgtqmx6eval"
- select SUPPORT_SPL
- select DM
- select DM_THERMAL
config TARGET_CM_FX6 bool "CM-FX6" diff --git a/board/congatec/cgtqmx6eval/README b/board/congatec/cgtqmx6eval/README index 5e76d2a..b339cd0 100644 --- a/board/congatec/cgtqmx6eval/README +++ b/board/congatec/cgtqmx6eval/README @@ -1,28 +1,70 @@ -U-Boot for the Congatec Conga-QEVAl Evaluation Carrier board with -qmx6 quad module. +U-Boot for the Congatec QMX6 boards
This file contains information for the port of U-Boot to the Congatec -Conga-QEVAl Evaluation Carrier board with qmx6 quad module. +QMX6 boards.
-1. Boot source, boot from SD card +1. Building U-boot +------------------
+- Build U-boot for Congatec QMX6 boards:
+$ make mrproper +$ make cgtqmx6eval_defconfig +$ make
+This will generate the following binaries:
+- SPL +- u-boot.img
+2. Flashing U-boot in the SPI NOR
-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: +Copy SPL and u-boot.img to the exported TFTP directory of the +host PC (/tftpboot , for example).
+=> sf probe
+=> tftp SPL
+=> sf erase 0x0 0x10000
+=> sf write 0x12000000 0x400 0x10000
sf update would suffice.
+=> tftp u-boot.img
+=> sf erase 0x10000 0x70000
+=> sf write 0x12000000 0x10000 0x70000
DTTO.
+Reboot the board and the new U-boot should come up.
[...]
+static void conv_ascii(unsigned char *dst, unsigned char *src, int len) +{
- int remain = len;
- unsigned char *sptr = src;
- unsigned char *dptr = dst;
- while (remain)
- {
if (*sptr) {
*dptr = *sptr;
dptr++;
}
sptr++;
remain--;
- }
- *dptr = 0x0;
+}
+#define CFG_MFG_ADDR_OFFSET (spi->size - SZ_16K) +static bool is_2gb(void) +{
- struct spi_flash *spi;
- int ret;
- char buf[sizeof(struct mfgdata)];
- struct mfgdata *data = (struct mfgdata *)buf;
- unsigned char outbuf[32];
- spi = spi_flash_probe(CONFIG_ENV_SPI_BUS,
CONFIG_ENV_SPI_CS,
CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE);
- ret = spi_flash_read(spi, CFG_MFG_ADDR_OFFSET, sizeof(struct mfgdata),
buf);
- if (ret)
return false;
- /* Congatec Part Numbers 104 and 105 have 2GiB of RAM */
- conv_ascii(outbuf, data->pn, sizeof(data->pn));
- if (!strcmp((const char *)outbuf, "016104") ||
!strcmp((const char *)outbuf, "016105"))
So why exactly don't you use memcmp() here and drop the abomination above ?
return true;
- else
return false;
+}
[...]