mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-27 05:23:34 +00:00
8bde7f776c
- remove trailing white space, trailing empty lines, C++ comments, etc. - split cmd_boot.c (separate cmd_bdinfo.c and cmd_load.c) * Patches by Kenneth Johansson, 25 Jun 2003: - major rework of command structure (work done mostly by Michal Cendrowski and Joakim Kristiansen)
212 lines
7.5 KiB
C
212 lines
7.5 KiB
C
/* Copyright Motorola, Inc. 1993, 1994
|
|
ALL RIGHTS RESERVED
|
|
|
|
You are hereby granted a copyright license to use, modify, and
|
|
distribute the SOFTWARE so long as this entire notice is retained
|
|
without alteration in any modified and/or redistributed versions,
|
|
and that such modified versions are clearly identified as such.
|
|
No licenses are granted by implication, estoppel or otherwise under
|
|
any patents or trademarks of Motorola, Inc.
|
|
|
|
The SOFTWARE is provided on an "AS IS" basis and without warranty.
|
|
To the maximum extent permitted by applicable law, MOTOROLA DISCLAIMS
|
|
ALL WARRANTIES WHETHER EXPRESS OR IMPLIED, INCLUDING IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
|
|
PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH
|
|
REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS
|
|
THEREOF) AND ANY ACCOMPANYING WRITTEN MATERIALS.
|
|
|
|
To the maximum extent permitted by applicable law, IN NO EVENT SHALL
|
|
MOTOROLA BE LIABLE FOR ANY DAMAGES WHATSOEVER
|
|
(INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF
|
|
BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
|
|
INFORMATION, OR OTHER PECUNIARY LOSS) ARISING OF THE USE OR
|
|
INABILITY TO USE THE SOFTWARE. Motorola assumes no responsibility
|
|
for the maintenance and support of the SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
|
#include "config.h"
|
|
|
|
/*
|
|
1 2 3 4 5 6 7 8
|
|
01234567890123456789012345678901234567890123456789012345678901234567890123456789
|
|
*/
|
|
/* List define statements here */
|
|
|
|
/* These are for all the toolboxes and functions to use. These will help
|
|
to standardize the error handling in the current project */
|
|
|
|
/* this is the "data type" for the error
|
|
messages in the system */
|
|
#define STATUS unsigned int
|
|
|
|
/* this is a success status code */
|
|
#define SUCCESS 1
|
|
|
|
/* likewise this is failure */
|
|
#define FAILURE 0
|
|
|
|
#define NUM_ERRORS 47
|
|
|
|
/* This first section of "defines" are for error codes ONLY. The called
|
|
routine will return one of these error codes to the caller. If the final
|
|
returned code is "VALID", then everything is a-okay. However, if one
|
|
of the functions returns a non-valid status, that error code should be
|
|
propogated back to all the callers. At the end, the last caller will
|
|
call an error_processing function, and send in the status which was
|
|
returned. It's up to the error_processing function to determine which
|
|
error occured (as indicated by the status), and print an appropriate
|
|
message back to the user.
|
|
*/
|
|
/*----------------------------------------------------------------------*/
|
|
/* these are specifically for the parser routines */
|
|
|
|
#define UNKNOWN_COMMAND 0xfb00 /* "unrecognized command " */
|
|
#define UNKNOWN_REGISTER 0xfb01 /* "unknown register "*/
|
|
#define ILLEGAL_RD_STAGE 0xfb02 /* cannot specify reg. family in range*/
|
|
#define ILLEGAL_REG_FAMILY 0xfb03 /* "cannot specify a range of special
|
|
or miscellaneous registers"*/
|
|
#define RANGE_CROSS_FAMILY 0xfb04 /* "cannot specify a range across
|
|
register families" */
|
|
#define UNIMPLEMENTED_STAGE 0xfb05 /* invalid rd or rmm parameter format */
|
|
#define REG_NOT_WRITEABLE 0xfb06 /* "unknown operator in arguements"*/
|
|
#define INVALID_FILENAME 0xfb07 /* "invalid download filename" */
|
|
#define INVALID_BAUD_RATE 0xfb08 /* invalid baud rate from sb command */
|
|
#define UNSUPPORTED_REGISTER 0xfb09 /* Special register is not supported */
|
|
#define FOR_BOARD_ONLY 0xfb0a /* "Not available for Unix." */
|
|
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
/* these are for the error checking toolbox */
|
|
|
|
#define INVALID 0xfd00 /* NOT valid */
|
|
#define VALID 0xfd01 /* valid */
|
|
|
|
/* This error is found in the fcn:
|
|
is_right_size_input() to indicate
|
|
that the input was not 8 characters
|
|
long. */
|
|
#define INVALID_SIZE 0xfd02
|
|
|
|
/* This error is found in the fcn:
|
|
is_valid_address_range() to indicate
|
|
that the address given falls outside
|
|
of valid memory defined by MEM_START
|
|
to MEM_END.
|
|
*/
|
|
#define OUT_OF_BOUNDS_ADDRESS 0xfd03
|
|
|
|
/* This error is found in the fcn:
|
|
is_valid_hex_input() to indicate that
|
|
one of more of the characters entered
|
|
are not valid hex characters. Valid
|
|
hex characters are 0-9, A-F, a-f.
|
|
*/
|
|
#define INVALID_HEX_INPUT 0xfd04
|
|
|
|
/* This error is found in the fcn:
|
|
is_valid_register_number() to indicate
|
|
that a given register does not exist.
|
|
*/
|
|
#define REG_NOT_READABLE 0xfd05
|
|
|
|
/* This error is found in the fcn:
|
|
is_word_aligned_address() to indicate
|
|
that the given address is not word-
|
|
aligned. A word-aligned address ends
|
|
in 0x0,0x4,0x8,0xc.
|
|
*/
|
|
#define NOT_WORD_ALIGNED 0xfd07
|
|
|
|
/* This error is found in the fcn:
|
|
is_valid_address_range() to indicate
|
|
that the starting address is greater
|
|
than the ending address.
|
|
*/
|
|
#define REVERSED_ADDRESS 0xfd08
|
|
|
|
/* this error tells us that the address
|
|
specified as the destination is within
|
|
the source addresses */
|
|
#define RANGE_OVERLAP 0xfd09
|
|
|
|
|
|
#define ERROR 0xfd0a /* An error occured */
|
|
#define INVALID_PARAM 0xfd0b /* "invalid input parameter " */
|
|
|
|
|
|
#define INVALID_FLAG 0xfd0c /* invalid flag */
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
/* these are for the getarg toolbox */
|
|
|
|
#define INVALID_NUMBER_ARGS 0xFE00 /* invalid number of commd arguements */
|
|
#define UNKNOWN_PARAMETER 0xFE01 /* "unknown type of parameter "*/
|
|
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
/* these are for the tokenizer toolbox */
|
|
|
|
#define ILLEGAL_CHARACTER 0xFF00 /* unrecognized char. in input stream*/
|
|
#define TTL_NOT_SORTED 0xFF01 /* token translation list not sorted */
|
|
#define TTL_NOT_DEFINED 0xFF02 /* token translation list not assigned*/
|
|
#define INVALID_STRING 0xFF03 /* unable to extract string from input */
|
|
#define BUFFER_EMPTY 0xFF04 /* "input buffer is empty" */
|
|
#define INVALID_MODE 0xFF05 /* input buf is in an unrecognized mode*/
|
|
#define TOK_INTERNAL_ERROR 0xFF06 /* "internal tokenizer error" */
|
|
#define TOO_MANY_IBS 0xFF07 /* "too many open input buffers" */
|
|
#define NO_OPEN_IBS 0xFF08 /* "no open input buffers" */
|
|
|
|
|
|
/* these are for the read from screen toolbox */
|
|
|
|
#define RESERVED_WORD 0xFC00 /* used a reserved word as an arguement*/
|
|
|
|
|
|
/* these are for the breakpoint routines */
|
|
|
|
#define FULL_BPDS 0xFA00 /* breakpoint data structure is full */
|
|
|
|
|
|
/* THESE are for the downloader */
|
|
|
|
#define NOT_IN_S_RECORD_FORMAT 0xf900 /* "not in S-Record Format" */
|
|
#define UNREC_RECORD_TYPE 0xf901 /* "unrecognized record type" */
|
|
#define CONVERSION_ERROR 0xf902 /* "ascii to int conversion error" */
|
|
#define INVALID_MEMORY 0xf903 /* "bad s-record memory address " */
|
|
|
|
|
|
/* these are for the compression and decompression stuff */
|
|
|
|
#define COMP_UNK_CHARACTER 0xf800 /* "unknown compressed character " */
|
|
|
|
#define COMP_UNKNOWN_STATE 0xf801 /* "unknown binary state" */
|
|
|
|
#define NOT_IN_COMPRESSED_FORMAT 0xf802 /* not in compressed S-Record format */
|
|
|
|
|
|
/* these are for the DUART handling things */
|
|
|
|
/* "unrecognized serial port configuration" */
|
|
#define UNKNOWN_PORT_STATE 0xf700
|
|
|
|
|
|
/* these are for the register toolbox */
|
|
|
|
/* "cannot find register in special
|
|
purpose register file " */
|
|
#define SPR_NOT_FOUND 0xf600
|
|
|
|
|
|
/* these are for the duart specific stuff */
|
|
|
|
/* "transparent mode needs access to
|
|
two serial ports" */
|
|
#define TM_NEEDS_BOTH_PORTS 0xf500
|
|
|
|
|
|
/*----------------------------------------------------------------------*/
|
|
/* these are specifically for the flash routines */
|
|
#define FLASH_ERROR 0xf100 /* general flash error */
|