projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kconfiglib: sync with the latest in Kconfiglib project
[oweals/u-boot.git]
/
common
/
cmd_mem.c
diff --git
a/common/cmd_mem.c
b/common/cmd_mem.c
index 1febddb916c2fc6603ab890679782700923b88fa..43c3fb62bffec59d3e36adab0b25535918be4b18 100644
(file)
--- a/
common/cmd_mem.c
+++ b/
common/cmd_mem.c
@@
-19,6
+19,8
@@
#include <dataflash.h>
#endif
#include <hash.h>
#include <dataflash.h>
#endif
#include <hash.h>
+#include <inttypes.h>
+#include <mapmem.h>
#include <watchdog.h>
#include <asm/io.h>
#include <linux/compiler.h>
#include <watchdog.h>
#include <asm/io.h>
#include <linux/compiler.h>
@@
-34,9
+36,9
@@
static int mod_mem(cmd_tbl_t *, int, int, int, char * const []);
/* Display values from last command.
* Memory modify remembered values are different from display memory.
*/
/* Display values from last command.
* Memory modify remembered values are different from display memory.
*/
-static u
int
dp_last_addr, dp_last_size;
-static u
int
dp_last_length = 0x40;
-static u
int
mm_last_addr, mm_last_size;
+static u
long
dp_last_addr, dp_last_size;
+static u
long
dp_last_length = 0x40;
+static u
long
mm_last_addr, mm_last_size;
static ulong base_address = 0;
static ulong base_address = 0;
@@
-164,7
+166,7
@@
static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
#endif
ulong addr, count;
int size;
#endif
ulong addr, count;
int size;
- void *buf;
+ void *buf
, *start
;
ulong bytes;
if ((argc < 3) || (argc > 4))
ulong bytes;
if ((argc < 3) || (argc > 4))
@@
-196,7
+198,8
@@
static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
}
bytes = size * count;
}
bytes = size * count;
- buf = map_sysmem(addr, bytes);
+ start = map_sysmem(addr, bytes);
+ buf = start;
while (count-- > 0) {
if (size == 4)
*((u32 *)buf) = (u32)writeval;
while (count-- > 0) {
if (size == 4)
*((u32 *)buf) = (u32)writeval;
@@
-210,12
+213,12
@@
static int do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
*((u8 *)buf) = (u8)writeval;
buf += size;
}
*((u8 *)buf) = (u8)writeval;
buf += size;
}
- unmap_sysmem(
buf
);
+ unmap_sysmem(
start
);
return 0;
}
#ifdef CONFIG_MX_CYCLIC
return 0;
}
#ifdef CONFIG_MX_CYCLIC
-
int do_mem_mdc (
cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+
static int do_mem_mdc(
cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i;
ulong count;
{
int i;
ulong count;
@@
-242,7
+245,7
@@
int do_mem_mdc ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
return 0;
}
return 0;
}
-
int do_mem_mwc (
cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+
static int do_mem_mwc(
cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
{
int i;
ulong count;
{
int i;
ulong count;
@@
-338,7
+341,8
@@
static int do_mem_cmp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if (word1 != word2) {
ulong offset = buf1 - base;
#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
if (word1 != word2) {
ulong offset = buf1 - base;
#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
- printf("%s at 0x%p (%#0*llx) != %s at 0x%p (%#0*llx)\n",
+ printf("%s at 0x%p (%#0*"PRIx64") != %s at 0x%p (%#0*"
+ PRIx64 ")\n",
type, (void *)(addr1 + offset), size, word1,
type, (void *)(addr2 + offset), size, word2);
#else
type, (void *)(addr1 + offset), size, word1,
type, (void *)(addr2 + offset), size, word2);
#else
@@
-480,6
+484,9
@@
static int do_mem_cp(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
if ((count % (64 << 10)) == 0)
WATCHDOG_RESET();
}
if ((count % (64 << 10)) == 0)
WATCHDOG_RESET();
}
+ unmap_sysmem(buf);
+ unmap_sysmem(src);
+
return 0;
}
return 0;
}
@@
-595,7
+602,8
@@
static int do_mem_loop(cmd_tbl_t *cmdtp, int flag, int argc,
}
#ifdef CONFIG_LOOPW
}
#ifdef CONFIG_LOOPW
-int do_mem_loopw (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
+static int do_mem_loopw(cmd_tbl_t *cmdtp, int flag, int argc,
+ char * const argv[])
{
ulong addr, length, i, bytes;
int size;
{
ulong addr, length, i, bytes;
int size;
@@
-993,10
+1001,10
@@
static int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc,
{
ulong start, end;
vu_long *buf, *dummy;
{
ulong start, end;
vu_long *buf, *dummy;
-
int iteration_limit
;
+
ulong iteration_limit = 0
;
int ret;
ulong errs = 0; /* number of errors, or -1 if interrupted */
int ret;
ulong errs = 0; /* number of errors, or -1 if interrupted */
- ulong pattern;
+ ulong pattern
= 0
;
int iteration;
#if defined(CONFIG_SYS_ALT_MEMTEST)
const int alt_test = 1;
int iteration;
#if defined(CONFIG_SYS_ALT_MEMTEST)
const int alt_test = 1;
@@
-1004,25
+1012,29
@@
static int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc,
const int alt_test = 0;
#endif
const int alt_test = 0;
#endif
+ start = CONFIG_SYS_MEMTEST_START;
+ end = CONFIG_SYS_MEMTEST_END;
+
if (argc > 1)
if (argc > 1)
- start = simple_strtoul(argv[1], NULL, 16);
- else
- start = CONFIG_SYS_MEMTEST_START;
+ if (strict_strtoul(argv[1], 16, &start) < 0)
+ return CMD_RET_USAGE;
if (argc > 2)
if (argc > 2)
- end = simple_strtoul(argv[2], NULL, 16);
- else
- end = CONFIG_SYS_MEMTEST_END;
+ if (strict_strtoul(argv[2], 16, &end) < 0)
+ return CMD_RET_USAGE;
if (argc > 3)
if (argc > 3)
- pattern = (ulong)simple_strtoul(argv[3], NULL, 16);
- else
- pattern = 0;
+ if (strict_strtoul(argv[3], 16, &pattern) < 0)
+ return CMD_RET_USAGE;
if (argc > 4)
if (argc > 4)
- iteration_limit = (ulong)simple_strtoul(argv[4], NULL, 16);
- else
- iteration_limit = 0;
+ if (strict_strtoul(argv[4], 16, &iteration_limit) < 0)
+ return CMD_RET_USAGE;
+
+ if (end < start) {
+ printf("Refusing to do empty test\n");
+ return -1;
+ }
printf("Testing %08x ... %08x:\n", (uint)start, (uint)end);
debug("%s:%d: start %#08lx end %#08lx\n", __func__, __LINE__,
printf("Testing %08x ... %08x:\n", (uint)start, (uint)end);
debug("%s:%d: start %#08lx end %#08lx\n", __func__, __LINE__,
@@
-1073,7
+1085,7
@@
static int do_mem_mtest(cmd_tbl_t *cmdtp, int flag, int argc,
ret = errs != 0;
}
ret = errs != 0;
}
- return ret;
/* not reached */
+ return ret;
}
#endif /* CONFIG_CMD_MEMTEST */
}
#endif /* CONFIG_CMD_MEMTEST */
@@
-1142,7
+1154,7
@@
mod_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char * const argv[])
printf(" %08x", *((u32 *)ptr));
#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
else if (size == 8)
printf(" %08x", *((u32 *)ptr));
#ifdef CONFIG_SYS_SUPPORT_64BIT_DATA
else if (size == 8)
- printf(" %016
llx"
, *((u64 *)ptr));
+ printf(" %016
" PRIx64
, *((u64 *)ptr));
#endif
else if (size == 2)
printf(" %04x", *((u16 *)ptr));
#endif
else if (size == 2)
printf(" %04x", *((u16 *)ptr));
@@
-1215,7
+1227,7
@@
static int do_mem_crc(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
ac = argc - 1;
#ifdef CONFIG_HASH_VERIFY
if (strcmp(*av, "-v") == 0) {
ac = argc - 1;
#ifdef CONFIG_HASH_VERIFY
if (strcmp(*av, "-v") == 0) {
- flags |= HASH_FLAG_VERIFY;
+ flags |= HASH_FLAG_VERIFY
| HASH_FLAG_ENV
;
av++;
ac--;
}
av++;
ac--;
}
@@
-1291,7
+1303,7
@@
U_BOOT_CMD(
#ifdef CONFIG_CMD_CRC32
#ifdef CONFIG_CMD_CRC32
-#ifndef CONFIG_
CRC32
_VERIFY
+#ifndef CONFIG_
HASH
_VERIFY
U_BOOT_CMD(
crc32, 4, 1, do_mem_crc,
U_BOOT_CMD(
crc32, 4, 1, do_mem_crc,
@@
-1299,7
+1311,7
@@
U_BOOT_CMD(
"address count [addr]\n - compute CRC32 checksum [save at addr]"
);
"address count [addr]\n - compute CRC32 checksum [save at addr]"
);
-#else /* CONFIG_
CRC32
_VERIFY */
+#else /* CONFIG_
HASH
_VERIFY */
U_BOOT_CMD(
crc32, 5, 1, do_mem_crc,
U_BOOT_CMD(
crc32, 5, 1, do_mem_crc,
@@
-1308,12
+1320,12
@@
U_BOOT_CMD(
"-v address count crc\n - verify crc of memory area"
);
"-v address count crc\n - verify crc of memory area"
);
-#endif /* CONFIG_
CRC32
_VERIFY */
+#endif /* CONFIG_
HASH
_VERIFY */
#endif
#ifdef CONFIG_CMD_MEMINFO
#endif
#ifdef CONFIG_CMD_MEMINFO
-__weak void board_show_dram(
ulong
size)
+__weak void board_show_dram(
phys_size_t
size)
{
puts("DRAM: ");
print_size(size, "\n");
{
puts("DRAM: ");
print_size(size, "\n");