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 <ota...@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; > +} [...] _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot