diff options
| author | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-02-21 21:30:47 +0100 | 
|---|---|---|
| committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2013-02-21 21:30:47 +0100 | 
| commit | a5627914daad144727655a72bd3c8a8958fbcdcf (patch) | |
| tree | f24eb6b8bbf9a8080fd29f22eace1beade2e314c /board/matrix_vision/mvblx/fpga.c | |
| parent | 03268374db9133686b738acca212247023840ffc (diff) | |
| parent | 4adfcd68cc10449e2fda0f9fac8b09f2b5c09a02 (diff) | |
| download | olio-uboot-2014.01-a5627914daad144727655a72bd3c8a8958fbcdcf.tar.xz olio-uboot-2014.01-a5627914daad144727655a72bd3c8a8958fbcdcf.zip | |
Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'
Diffstat (limited to 'board/matrix_vision/mvblx/fpga.c')
| -rw-r--r-- | board/matrix_vision/mvblx/fpga.c | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/board/matrix_vision/mvblx/fpga.c b/board/matrix_vision/mvblx/fpga.c index dacc13845..3fcf9685e 100644 --- a/board/matrix_vision/mvblx/fpga.c +++ b/board/matrix_vision/mvblx/fpga.c @@ -31,6 +31,7 @@  #include <ACEX1K.h>  #include <command.h>  #include <asm/gpio.h> +#include <linux/byteorder/generic.h>  #include "fpga.h"  #ifdef FPGA_DEBUG @@ -209,9 +210,20 @@ int fpga_wr_fn(const void *buf, size_t len, int flush, int cookie)  {  	unsigned char *data = (unsigned char *) buf;  	int i; +	int headerlen = len - cyclone2.size; + +	if (headerlen < 0) +		return FPGA_FAIL; +	else if (headerlen == sizeof(uint32_t)) { +		const unsigned int fpgavers_len = 11; /* '0x' + 8 hex digits + \0 */ +		char fpgavers_str[fpgavers_len]; +		snprintf(fpgavers_str, fpgavers_len, "0x%08x", +				be32_to_cpup((uint32_t*)data)); +		setenv("fpgavers", fpgavers_str); +	}  	fpga_debug("fpga_wr: buf %p / size %d\n", buf, len); -	for (i = 0; i < len; i++) +	for (i = headerlen; i < len; i++)  		_write_fpga(data[i]);  	fpga_debug("-%s\n", __func__); |