Re: [U-Boot] [PATCH v2 3/7] common: Fix cmd_fpgad addressing

2014-11-18 Thread Stefan Roese

On 13.11.2014 19:21, dirk.eib...@gdsys.cc wrote:

From: Dirk Eibach dirk.eib...@gdsys.cc

Addressing was completely broken for cmd_fpgad.

Signed-off-by: Dirk Eibach dirk.eib...@gdsys.cc


Applied to u-boot-ppc4xx/master.

Thanks,
Stefan

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH v2 3/7] common: Fix cmd_fpgad addressing

2014-11-13 Thread dirk . eibach
From: Dirk Eibach dirk.eib...@gdsys.cc

Addressing was completely broken for cmd_fpgad.

Signed-off-by: Dirk Eibach dirk.eib...@gdsys.cc
---

Changes in v2: None

 common/cmd_fpgad.c | 32 
 1 file changed, 24 insertions(+), 8 deletions(-)

diff --git a/common/cmd_fpgad.c b/common/cmd_fpgad.c
index 1b25ed8..1f1d00f 100644
--- a/common/cmd_fpgad.c
+++ b/common/cmd_fpgad.c
@@ -31,7 +31,8 @@ int do_fpga_md(cmd_tbl_t *cmdtp, int flag, int argc, char * 
const argv[])
unsigned int fpga;
ulong   addr, length;
int rc = 0;
-   u16 linebuf[DISP_LINE_LEN/sizeof(u16)];
+   u16 linebuf[DISP_LINE_LEN/sizeof(u16)];
+   ulong nbytes;
 
/*
 * We use the last specified parameters, unless new ones are
@@ -63,13 +64,28 @@ int do_fpga_md(cmd_tbl_t *cmdtp, int flag, int argc, char * 
const argv[])
length = simple_strtoul(argv[3], NULL, 16);
}
 
-   /* Print the lines. */
-   for (k = 0; k  DISP_LINE_LEN / sizeof(u16); ++k)
-   fpga_get_reg(fpga, (u16 *)fpga_ptr[fpga] + k, k * sizeof(u16),
-linebuf[k]);
-   print_buffer(addr, (void *)linebuf, sizeof(u16),
-length, DISP_LINE_LEN / sizeof(u16));
-   addr += sizeof(u16)*length;
+   nbytes = length * sizeof(u16);
+   do {
+   ulong linebytes = (nbytes  DISP_LINE_LEN) ?
+ DISP_LINE_LEN : nbytes;
+
+   for (k = 0; k  linebytes / sizeof(u16); ++k)
+   fpga_get_reg(fpga,
+(u16 *)fpga_ptr[fpga] + addr
+/ sizeof(u16) + k,
+addr + k * sizeof(u16),
+linebuf[k]);
+   print_buffer(addr, (void *)linebuf, sizeof(u16),
+linebytes / sizeof(u16),
+DISP_LINE_LEN / sizeof(u16));
+
+   nbytes -= linebytes;
+   addr += linebytes;
+   if (ctrlc()) {
+   rc = 1;
+   break;
+   }
+   } while (nbytes  0);
 
dp_last_fpga = fpga;
dp_last_addr = addr;
-- 
1.8.3

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot