mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 08:01:08 +00:00
112 lines
4 KiB
C
112 lines
4 KiB
C
/*
|
|
* (C) Copyright 2000
|
|
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
|
|
*
|
|
* See file CREDITS for list of people who contributed to this
|
|
* project.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
|
|
* MA 02111-1307 USA
|
|
*/
|
|
|
|
/*
|
|
* Memory Functions
|
|
*/
|
|
#ifndef _CMD_MEM_H
|
|
#define _CMD_MEM_H
|
|
|
|
#if (CONFIG_COMMANDS & CFG_CMD_MEMORY)
|
|
#define CMD_TBL_MD MK_CMD_TBL_ENTRY( \
|
|
"md", 2, 3, 1, do_mem_md, \
|
|
"md - memory display\n", \
|
|
"[.b, .w, .l] address [# of objects]\n - memory display\n" \
|
|
),
|
|
#define CMD_TBL_MM MK_CMD_TBL_ENTRY( \
|
|
"mm", 2, 2, 1, do_mem_mm, \
|
|
"mm - memory modify (auto-incrementing)\n", \
|
|
"[.b, .w, .l] address\n" \
|
|
" - memory modify, auto increment address\n" \
|
|
),
|
|
#define CMD_TBL_NM MK_CMD_TBL_ENTRY( \
|
|
"nm", 2, 2, 1, do_mem_nm, \
|
|
"nm - memory modify (constant address)\n", \
|
|
"[.b, .w, .l] address\n - memory modify, read and keep address\n" \
|
|
),
|
|
#define CMD_TBL_MW MK_CMD_TBL_ENTRY( \
|
|
"mw", 2, 4, 1, do_mem_mw, \
|
|
"mw - memory write (fill)\n", \
|
|
"[.b, .w, .l] address value [count]\n - write memory\n" \
|
|
),
|
|
#define CMD_TBL_CP MK_CMD_TBL_ENTRY( \
|
|
"cp", 2, 4, 1, do_mem_cp, \
|
|
"cp - memory copy\n", \
|
|
"[.b, .w, .l] source target count\n - copy memory\n" \
|
|
),
|
|
#define CMD_TBL_CMP MK_CMD_TBL_ENTRY( \
|
|
"cmp", 3, 4, 1, do_mem_cmp, \
|
|
"cmp - memory compare\n", \
|
|
"[.b, .w, .l] addr1 addr2 count\n - compare memory\n" \
|
|
),
|
|
#define CMD_TBL_CRC MK_CMD_TBL_ENTRY( \
|
|
"crc32", 3, 4, 1, do_mem_crc, \
|
|
"crc32 - checksum calculation\n", \
|
|
"address count [addr]\n - compute CRC32 checksum [save at addr]\n" \
|
|
),
|
|
#define CMD_TBL_BASE MK_CMD_TBL_ENTRY( \
|
|
"base", 2, 2, 1, do_mem_base, \
|
|
"base - print or set address offset\n", \
|
|
"\n - print address offset for memory commands\n" \
|
|
"base off\n - set address offset for memory commands to 'off'\n" \
|
|
),
|
|
/*
|
|
* Require full name for "loop" and "mtest" because these are infinite loops!
|
|
*/
|
|
#define CMD_TBL_LOOP MK_CMD_TBL_ENTRY( \
|
|
"loop", 4, 3, 1, do_mem_loop, \
|
|
"loop - infinite loop on address range\n", \
|
|
"[.b, .w, .l] address number_of_objects\n" \
|
|
" - loop on a set of addresses\n" \
|
|
),
|
|
#define CMD_TBL_MTEST MK_CMD_TBL_ENTRY( \
|
|
"mtest", 5, 4, 1, do_mem_mtest, \
|
|
"mtest - simple RAM test\n", \
|
|
"[start [end [pattern]]]\n" \
|
|
" - simple RAM read/write test\n" \
|
|
),
|
|
int do_mem_md (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_mm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_nm (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_mw (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_cp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_crc (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_base (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_loop (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
int do_mem_mtest (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
|
|
|
|
#else
|
|
#define CMD_TBL_MD
|
|
#define CMD_TBL_MM
|
|
#define CMD_TBL_NM
|
|
#define CMD_TBL_MW
|
|
#define CMD_TBL_CP
|
|
#define CMD_TBL_CMP
|
|
#define CMD_TBL_CRC
|
|
#define CMD_TBL_BASE
|
|
#define CMD_TBL_LOOP
|
|
#define CMD_TBL_MTEST
|
|
#endif /* CFG_CMD_MEMORY */
|
|
|
|
#endif /* _CMD_MEM_H */
|