|
|
|
@ -154,9 +154,32 @@ int do_mem_md ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
|
|
|
|
} |
|
|
|
|
} while (nbytes > 0); |
|
|
|
|
#else |
|
|
|
|
/* Print the lines. */ |
|
|
|
|
print_buffer(addr, (void*)addr, size, length, DISP_LINE_LEN/size); |
|
|
|
|
addr += size*length; |
|
|
|
|
|
|
|
|
|
# if defined(CONFIG_BLACKFIN) |
|
|
|
|
/* See if we're trying to display L1 inst */ |
|
|
|
|
if (addr_bfin_on_chip_mem(addr)) { |
|
|
|
|
char linebuf[DISP_LINE_LEN]; |
|
|
|
|
ulong linebytes, nbytes = length * size; |
|
|
|
|
do { |
|
|
|
|
linebytes = (nbytes > DISP_LINE_LEN) ? DISP_LINE_LEN : nbytes; |
|
|
|
|
memcpy(linebuf, (void *)addr, linebytes); |
|
|
|
|
print_buffer(addr, linebuf, size, linebytes/size, DISP_LINE_LEN/size); |
|
|
|
|
|
|
|
|
|
nbytes -= linebytes; |
|
|
|
|
addr += linebytes; |
|
|
|
|
if (ctrlc()) { |
|
|
|
|
rc = 1; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} while (nbytes > 0); |
|
|
|
|
} else |
|
|
|
|
# endif |
|
|
|
|
|
|
|
|
|
{ |
|
|
|
|
/* Print the lines. */ |
|
|
|
|
print_buffer(addr, (void*)addr, size, length, DISP_LINE_LEN/size); |
|
|
|
|
addr += size*length; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
dp_last_addr = addr; |
|
|
|
@ -308,6 +331,13 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_BLACKFIN |
|
|
|
|
if (addr_bfin_on_chip_mem(addr1) || addr_bfin_on_chip_mem(addr2)) { |
|
|
|
|
puts ("Comparison with L1 instruction memory not supported.\n\r"); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
ngood = 0; |
|
|
|
|
|
|
|
|
|
while (count-- > 0) { |
|
|
|
@ -478,6 +508,14 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_BLACKFIN |
|
|
|
|
/* See if we're copying to/from L1 inst */ |
|
|
|
|
if (addr_bfin_on_chip_mem(dest) || addr_bfin_on_chip_mem(addr)) { |
|
|
|
|
memcpy((void *)dest, (void *)addr, count * size); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
while (count-- > 0) { |
|
|
|
|
if (size == 4) |
|
|
|
|
*((ulong *)dest) = *((ulong *)addr); |
|
|
|
@ -1006,6 +1044,13 @@ mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]) |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#ifdef CONFIG_BLACKFIN |
|
|
|
|
if (addr_bfin_on_chip_mem(addr)) { |
|
|
|
|
puts ("Can't modify L1 instruction in place. Use cp instead.\n\r"); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
/* Print the address, followed by value. Then accept input for
|
|
|
|
|
* the next value. A non-converted value exits. |
|
|
|
|
*/ |
|
|
|
|