projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ehci: Optimize qTD allocations
[oweals/u-boot.git]
/
common
/
cmd_load.c
diff --git
a/common/cmd_load.c
b/common/cmd_load.c
index f63b8e805617517d3912a41f3649e37b3c453a19..f4d66deae3cd98550e4288ab1c5a3a3e6d1a6d8f 100644
(file)
--- a/
common/cmd_load.c
+++ b/
common/cmd_load.c
@@
-33,32
+33,32
@@
DECLARE_GLOBAL_DATA_PTR;
DECLARE_GLOBAL_DATA_PTR;
-#if
(CONFIG_COMMANDS & CF
G_CMD_LOADB)
+#if
defined(CONFI
G_CMD_LOADB)
static ulong load_serial_ymodem (ulong offset);
#endif
static ulong load_serial_ymodem (ulong offset);
#endif
-#if
(CONFIG_COMMANDS & CF
G_CMD_LOADS)
-static ulong load_serial (
u
long offset);
+#if
defined(CONFI
G_CMD_LOADS)
+static ulong load_serial (long offset);
static int read_record (char *buf, ulong len);
static int read_record (char *buf, ulong len);
-# if
(CONFIG_COMMANDS & CF
G_CMD_SAVES)
+# if
defined(CONFI
G_CMD_SAVES)
static int save_serial (ulong offset, ulong size);
static int write_record (char *buf);
static int save_serial (ulong offset, ulong size);
static int write_record (char *buf);
-#
endif /* CFG_CMD_SAVES */
+#
endif
static int do_echo = 1;
static int do_echo = 1;
-#endif
/* CFG_CMD_LOADS */
+#endif
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
-#if
(CONFIG_COMMANDS & CF
G_CMD_LOADS)
-int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+#if
defined(CONFI
G_CMD_LOADS)
+int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *
const
argv[])
{
{
-
u
long offset = 0;
+ long offset = 0;
ulong addr;
int i;
char *env_echo;
int rcode = 0;
ulong addr;
int i;
char *env_echo;
int rcode = 0;
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
int load_baudrate, current_baudrate;
load_baudrate = current_baudrate = gd->baudrate;
int load_baudrate, current_baudrate;
load_baudrate = current_baudrate = gd->baudrate;
@@
-70,9
+70,9
@@
int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
do_echo = 0;
}
do_echo = 0;
}
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
if (argc >= 2) {
if (argc >= 2) {
- offset = simple_strto
u
l(argv[1], NULL, 16);
+ offset = simple_strtol(argv[1], NULL, 16);
}
if (argc == 3) {
load_baudrate = (int)simple_strtoul(argv[2], NULL, 10);
}
if (argc == 3) {
load_baudrate = (int)simple_strtoul(argv[2], NULL, 10);
@@
-93,11
+93,11
@@
int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
}
}
break;
}
}
-#else /* ! C
FG
_LOADS_BAUD_CHANGE */
+#else /* ! C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
if (argc == 2) {
if (argc == 2) {
- offset = simple_strto
u
l(argv[1], NULL, 16);
+ offset = simple_strtol(argv[1], NULL, 16);
}
}
-#endif /* C
FG
_LOADS_BAUD_CHANGE */
+#endif /* C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
printf ("## Ready for S-Record download ...\n");
printf ("## Ready for S-Record download ...\n");
@@
-123,7
+123,7
@@
int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
load_addr = addr;
}
load_addr = addr;
}
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
if (load_baudrate != current_baudrate) {
printf ("## Switch baudrate to %d bps and press ESC ...\n",
current_baudrate);
if (load_baudrate != current_baudrate) {
printf ("## Switch baudrate to %d bps and press ESC ...\n",
current_baudrate);
@@
-141,7
+141,7
@@
int do_load_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
static ulong
}
static ulong
-load_serial (
u
long offset)
+load_serial (long offset)
{
char record[SREC_MAXRECLEN + 1]; /* buffer for one S-Record */
char binbuf[SREC_MAXBINLEN]; /* buffer for binary data */
{
char record[SREC_MAXRECLEN + 1]; /* buffer for one S-Record */
char binbuf[SREC_MAXBINLEN]; /* buffer for binary data */
@@
-167,7
+167,7
@@
load_serial (ulong offset)
case SREC_DATA3:
case SREC_DATA4:
store_addr = addr + offset;
case SREC_DATA3:
case SREC_DATA4:
store_addr = addr + offset;
-#ifndef C
FG
_NO_FLASH
+#ifndef C
ONFIG_SYS
_NO_FLASH
if (addr2info(store_addr)) {
int rc;
if (addr2info(store_addr)) {
int rc;
@@
-253,13
+253,13
@@
read_record (char *buf, ulong len)
return (p - buf);
}
return (p - buf);
}
-#if
(CONFIG_COMMANDS & CF
G_CMD_SAVES)
+#if
defined(CONFI
G_CMD_SAVES)
-int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *
const
argv[])
{
ulong offset = 0;
ulong size = 0;
{
ulong offset = 0;
ulong size = 0;
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
int save_baudrate, current_baudrate;
save_baudrate = current_baudrate = gd->baudrate;
int save_baudrate, current_baudrate;
save_baudrate = current_baudrate = gd->baudrate;
@@
-268,7
+268,7
@@
int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (argc >= 2) {
offset = simple_strtoul(argv[1], NULL, 16);
}
if (argc >= 2) {
offset = simple_strtoul(argv[1], NULL, 16);
}
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
if (argc >= 3) {
size = simple_strtoul(argv[2], NULL, 16);
}
if (argc >= 3) {
size = simple_strtoul(argv[2], NULL, 16);
}
@@
-291,11
+291,11
@@
int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
break;
}
}
break;
}
}
-#else /* ! C
FG
_LOADS_BAUD_CHANGE */
+#else /* ! C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
if (argc == 3) {
size = simple_strtoul(argv[2], NULL, 16);
}
if (argc == 3) {
size = simple_strtoul(argv[2], NULL, 16);
}
-#endif /* C
FG
_LOADS_BAUD_CHANGE */
+#endif /* C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
printf ("## Ready for S-Record upload, press ENTER to proceed ...\n");
for (;;) {
printf ("## Ready for S-Record upload, press ENTER to proceed ...\n");
for (;;) {
@@
-307,7
+307,7
@@
int do_save_serial (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
} else {
printf ("## S-Record upload complete\n");
}
} else {
printf ("## S-Record upload complete\n");
}
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
if (save_baudrate != current_baudrate) {
printf ("## Switch baudrate to %d bps and press ESC ...\n",
(int)current_baudrate);
if (save_baudrate != current_baudrate) {
printf ("## Switch baudrate to %d bps and press ESC ...\n",
(int)current_baudrate);
@@
-399,13
+399,15
@@
write_record (char *buf)
}
return (0);
}
}
return (0);
}
-# endif /* CFG_CMD_SAVES */
-
-#endif /* CFG_CMD_LOADS */
+# endif
+#endif
-#if (CONFIG_COMMANDS & CFG_CMD_LOADB) /* loadb command (load binary) included */
+#if defined(CONFIG_CMD_LOADB)
+/*
+ * loadb command (load binary) included
+ */
#define XON_CHAR 17
#define XOFF_CHAR 19
#define START_CHAR 0x01
#define XON_CHAR 17
#define XOFF_CHAR 19
#define START_CHAR 0x01
@@
-421,9
+423,6
@@
write_record (char *buf)
#define tochar(x) ((char) (((x) + SPACE) & 0xff))
#define untochar(x) ((int) (((x) - SPACE) & 0xff))
#define tochar(x) ((char) (((x) + SPACE) & 0xff))
#define untochar(x) ((int) (((x) - SPACE) & 0xff))
-extern int os_data_count;
-extern int os_data_header[8];
-
static void set_kerm_bin_mode(unsigned long *);
static int k_recv(void);
static ulong load_serial_bin (ulong offset);
static void set_kerm_bin_mode(unsigned long *);
static int k_recv(void);
static ulong load_serial_bin (ulong offset);
@@
-434,7
+433,7
@@
int his_pad_count; /* number of pad chars he needs */
char his_pad_char; /* pad chars he needs */
char his_quote; /* quote chars he'll use */
char his_pad_char; /* pad chars he needs */
char his_quote; /* quote chars he'll use */
-int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char *
const
argv[])
{
ulong offset = 0;
ulong addr;
{
ulong offset = 0;
ulong addr;
@@
-442,8
+441,8
@@
int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
int rcode = 0;
char *s;
int rcode = 0;
char *s;
- /* pre-set offset from C
FG
_LOAD_ADDR */
- offset = C
FG
_LOAD_ADDR;
+ /* pre-set offset from C
ONFIG_SYS
_LOAD_ADDR */
+ offset = C
ONFIG_SYS
_LOAD_ADDR;
/* pre-set offset from $loadaddr */
if ((s = getenv("loadaddr")) != NULL) {
/* pre-set offset from $loadaddr */
if ((s = getenv("loadaddr")) != NULL) {
@@
-514,16
+513,6
@@
int do_load_serial_bin (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
}
}
}
}
-#ifdef CONFIG_AUTOSCRIPT
- if (load_addr) {
- char *s;
-
- if (((s = getenv("autoscript")) != NULL) && (strcmp(s,"yes") == 0)) {
- printf("Running autoscript at addr 0x%08lX ...\n", load_addr);
- rcode = autoscript (load_addr);
- }
- }
-#endif
return rcode;
}
return rcode;
}
@@
-622,46
+611,39
@@
void send_nack (int n)
}
}
-/* os_data_* takes an OS Open image and puts it into memory, and
- puts the boot header in an array named os_data_header
-
- if image is binary, no header is stored in os_data_header.
-*/
void (*os_data_init) (void);
void (*os_data_char) (char new_char);
static int os_data_state, os_data_state_saved;
void (*os_data_init) (void);
void (*os_data_char) (char new_char);
static int os_data_state, os_data_state_saved;
-int os_data_count;
-static int os_data_count_saved;
static char *os_data_addr, *os_data_addr_saved;
static char *bin_start_address;
static char *os_data_addr, *os_data_addr_saved;
static char *bin_start_address;
-int os_data_header[8];
+
static void bin_data_init (void)
{
os_data_state = 0;
static void bin_data_init (void)
{
os_data_state = 0;
- os_data_count = 0;
os_data_addr = bin_start_address;
}
os_data_addr = bin_start_address;
}
+
static void os_data_save (void)
{
os_data_state_saved = os_data_state;
static void os_data_save (void)
{
os_data_state_saved = os_data_state;
- os_data_count_saved = os_data_count;
os_data_addr_saved = os_data_addr;
}
os_data_addr_saved = os_data_addr;
}
+
static void os_data_restore (void)
{
os_data_state = os_data_state_saved;
static void os_data_restore (void)
{
os_data_state = os_data_state_saved;
- os_data_count = os_data_count_saved;
os_data_addr = os_data_addr_saved;
}
os_data_addr = os_data_addr_saved;
}
+
static void bin_data_char (char new_char)
{
switch (os_data_state) {
case 0: /* data */
*os_data_addr++ = new_char;
static void bin_data_char (char new_char)
{
switch (os_data_state) {
case 0: /* data */
*os_data_addr++ = new_char;
- --os_data_count;
break;
}
}
break;
}
}
+
static void set_kerm_bin_mode (unsigned long *addr)
{
bin_start_address = (char *) addr;
static void set_kerm_bin_mode (unsigned long *addr)
{
bin_start_address = (char *) addr;
@@
-677,16
+659,19
@@
void k_data_init (void)
k_data_escape = 0;
os_data_init ();
}
k_data_escape = 0;
os_data_init ();
}
+
void k_data_save (void)
{
k_data_escape_saved = k_data_escape;
os_data_save ();
}
void k_data_save (void)
{
k_data_escape_saved = k_data_escape;
os_data_save ();
}
+
void k_data_restore (void)
{
k_data_escape = k_data_escape_saved;
os_data_restore ();
}
void k_data_restore (void)
{
k_data_escape = k_data_escape_saved;
os_data_restore ();
}
+
void k_data_char (char new_char)
{
if (k_data_escape) {
void k_data_char (char new_char)
{
if (k_data_escape) {
@@
-805,7
+790,6
@@
static int k_recv (void)
int done;
int length;
int n, last_n;
int done;
int length;
int n, last_n;
- int z = 0;
int len_lo, len_hi;
/* initialize some protocol parameters */
int len_lo, len_hi;
/* initialize some protocol parameters */
@@
-970,7
+954,6
@@
START:
if (k_state == BREAK_TYPE)
done = 1;
}
if (k_state == BREAK_TYPE)
done = 1;
}
- ++z;
}
return ((ulong) os_data_addr - (ulong) bin_start_address);
}
}
return ((ulong) os_data_addr - (ulong) bin_start_address);
}
@@
-1001,7
+984,7
@@
static ulong load_serial_ymodem (ulong offset)
store_addr = addr + offset;
size += res;
addr += res;
store_addr = addr + offset;
size += res;
addr += res;
-#ifndef C
FG
_NO_FLASH
+#ifndef C
ONFIG_SYS
_NO_FLASH
if (addr2info (store_addr)) {
int rc;
if (addr2info (store_addr)) {
int rc;
@@
-1036,79
+1019,79
@@
static ulong load_serial_ymodem (ulong offset)
return offset;
}
return offset;
}
-#endif
/* CFG_CMD_LOADB */
+#endif
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
-#if
(CONFIG_COMMANDS & CF
G_CMD_LOADS)
+#if
defined(CONFI
G_CMD_LOADS)
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
U_BOOT_CMD(
loads, 3, 0, do_load_serial,
U_BOOT_CMD(
loads, 3, 0, do_load_serial,
- "load
s - load S-Record file over serial line\n
",
+ "load
S-Record file over serial line
",
"[ off ] [ baud ]\n"
" - load S-Record file over serial line"
"[ off ] [ baud ]\n"
" - load S-Record file over serial line"
- " with offset 'off' and baudrate 'baud'
\n
"
+ " with offset 'off' and baudrate 'baud'"
);
);
-#else /* ! C
FG
_LOADS_BAUD_CHANGE */
+#else /* ! C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
U_BOOT_CMD(
loads, 2, 0, do_load_serial,
U_BOOT_CMD(
loads, 2, 0, do_load_serial,
- "load
s - load S-Record file over serial line\n
",
+ "load
S-Record file over serial line
",
"[ off ]\n"
"[ off ]\n"
- " - load S-Record file over serial line with offset 'off'
\n
"
+ " - load S-Record file over serial line with offset 'off'"
);
);
-#endif /* C
FG
_LOADS_BAUD_CHANGE */
+#endif /* C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
/*
* SAVES always requires LOADS support, but not vice versa
*/
/*
* SAVES always requires LOADS support, but not vice versa
*/
-#if
(CONFIG_COMMANDS & CF
G_CMD_SAVES)
-#ifdef C
FG
_LOADS_BAUD_CHANGE
+#if
defined(CONFI
G_CMD_SAVES)
+#ifdef C
ONFIG_SYS
_LOADS_BAUD_CHANGE
U_BOOT_CMD(
saves, 4, 0, do_save_serial,
U_BOOT_CMD(
saves, 4, 0, do_save_serial,
- "save
s - save S-Record file over serial line\n
",
+ "save
S-Record file over serial line
",
"[ off ] [size] [ baud ]\n"
" - save S-Record file over serial line"
"[ off ] [size] [ baud ]\n"
" - save S-Record file over serial line"
- " with offset 'off', size 'size' and baudrate 'baud'
\n
"
+ " with offset 'off', size 'size' and baudrate 'baud'"
);
);
-#else /* ! C
FG
_LOADS_BAUD_CHANGE */
+#else /* ! C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
U_BOOT_CMD(
saves, 3, 0, do_save_serial,
U_BOOT_CMD(
saves, 3, 0, do_save_serial,
- "save
s - save S-Record file over serial line\n
",
+ "save
S-Record file over serial line
",
"[ off ] [size]\n"
"[ off ] [size]\n"
- " - save S-Record file over serial line with offset 'off' and size 'size'
\n
"
+ " - save S-Record file over serial line with offset 'off' and size 'size'"
);
);
-#endif /* C
FG
_LOADS_BAUD_CHANGE */
-#endif
/* CFG_CMD_SAVES */
-#endif
/* CFG_CMD_LOADS */
+#endif /* C
ONFIG_SYS
_LOADS_BAUD_CHANGE */
+#endif
+#endif
-#if
(CONFIG_COMMANDS & CF
G_CMD_LOADB)
+#if
defined(CONFI
G_CMD_LOADB)
U_BOOT_CMD(
loadb, 3, 0, do_load_serial_bin,
U_BOOT_CMD(
loadb, 3, 0, do_load_serial_bin,
- "load
b - load binary file over serial line (kermit mode)\n
",
+ "load
binary file over serial line (kermit mode)
",
"[ off ] [ baud ]\n"
" - load binary file over serial line"
"[ off ] [ baud ]\n"
" - load binary file over serial line"
- " with offset 'off' and baudrate 'baud'
\n
"
+ " with offset 'off' and baudrate 'baud'"
);
U_BOOT_CMD(
loady, 3, 0, do_load_serial_bin,
);
U_BOOT_CMD(
loady, 3, 0, do_load_serial_bin,
- "load
y - load binary file over serial line (ymodem mode)\n
",
+ "load
binary file over serial line (ymodem mode)
",
"[ off ] [ baud ]\n"
" - load binary file over serial line"
"[ off ] [ baud ]\n"
" - load binary file over serial line"
- " with offset 'off' and baudrate 'baud'
\n
"
+ " with offset 'off' and baudrate 'baud'"
);
);
-#endif
/* CFG_CMD_LOADB */
+#endif
/* -------------------------------------------------------------------- */
/* -------------------------------------------------------------------- */
-#if
(CONFIG_COMMANDS & CF
G_CMD_HWFLOW)
-int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+#if
defined(CONFI
G_CMD_HWFLOW)
+int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *
const
argv[])
{
extern int hwflow_onoff(int);
{
extern int hwflow_onoff(int);
@@
-1119,7
+1102,7
@@
int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
if (strcmp(argv[1], "on") == 0)
hwflow_onoff(1);
else
if (strcmp(argv[1], "on") == 0)
hwflow_onoff(1);
else
-
printf("Usage: %s\n", cmdtp->usage)
;
+
return CMD_RET_USAGE
;
}
printf("RTS/CTS hardware flow control: %s\n", hwflow_onoff(0) ? "on" : "off");
return 0;
}
printf("RTS/CTS hardware flow control: %s\n", hwflow_onoff(0) ? "on" : "off");
return 0;
@@
-1129,8
+1112,8
@@
int do_hwflow (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
U_BOOT_CMD(
hwflow, 2, 0, do_hwflow,
U_BOOT_CMD(
hwflow, 2, 0, do_hwflow,
- "
hwflow - turn the harwdare flow control on/off\n
",
- "[on|off]
\n - change RTS/CTS hardware flow control over serial line\n
"
+ "
turn RTS/CTS hardware flow control in serial line on/off
",
+ "[on|off]"
);
);
-#endif
/* CFG_CMD_HWFLOW */
+#endif