URL
https://opencores.org/ocsvn/or1k/or1k/trunk
Subversion Repositories or1k
Compare Revisions
- This comparison shows the changes necessary to convert path
/
- from Rev 811 to Rev 812
- ↔ Reverse comparison
Rev 811 → Rev 812
/trunk/orpmon/include/net.h
258,7 → 258,7
extern char BootFile[128]; /* Boot File name */ |
|
/* Initialize the network adapter */ |
extern int NetLoop(proto_t protocol); |
extern int NetLoop(proto_t protocol, char *filename); |
|
/* Shutdown adapters and cleanup */ |
extern void NetStop(void); |
/trunk/orpmon/include/common.h
55,7 → 55,8
extern void putc (const char c); |
extern int printf (const char *fmt, ...); |
|
extern unsigned long strtoul(char *s); |
extern unsigned long strtoul (const char *str, char **endptr, int base); |
extern unsigned long parse_ip (char *ip); |
|
/* simulator stdout */ |
extern void __printf (const char *fmt, ...); |
/trunk/orpmon/cmds/global.c
5,7 → 5,7
int src_addr_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) { |
global.src_addr = strtoul (argv[0]); |
global.src_addr = strtoul (argv[0], 0, 0); |
return 0; |
} else return -1; |
} |
13,7 → 13,7
int dst_addr_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) { |
global.dst_addr = strtoul (argv[0]); |
global.dst_addr = strtoul (argv[0], 0, 0); |
return 0; |
} else return -1; |
} |
21,7 → 21,7
int length_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) { |
global.length = strtoul (argv[0]); |
global.length = strtoul (argv[0], 0, 0); |
return 0; |
} else return -1; |
} |
29,11 → 29,19
int ip_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) { |
global.ip = strtoul (argv[0]); |
global.ip = parse_ip (argv[0]); |
return 0; |
} else return -1; |
} |
|
int srv_ip_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) { |
global.srv_ip = parse_ip (argv[0]); |
return 0; |
} else return -1; |
} |
|
#if HELP_ENABLED |
int globals_cmd (int argc, char *argv[]) |
{ |
42,6 → 50,7
printf ("dst_addr = %08lx\n", global.dst_addr); |
printf ("length = %08lx\n", global.length); |
printf ("ip = %08lx\n", global.ip); |
printf ("srv_ip = %08lx\n", global.srv_ip); |
return 0; |
} |
#endif /* HELP_ENABLED */ |
51,7 → 60,8
register_command ("src_addr", "<value>", "sets global parameter source address", src_addr_cmd); |
register_command ("dst_addr", "<value>", "sets global parameter destination address", dst_addr_cmd); |
register_command ("length", "<value>", "sets global parameter length", length_cmd); |
register_command ("ip", "<value>", "sets global parameter ip address", ip_cmd); |
register_command ("ip", "<value> <value> <value>", "sets global parameter ip address", ip_cmd); |
register_command ("srv_ip", "<value> <value> <value>", "sets global parameter server ip address", srv_ip_cmd); |
if (HELP_ENABLED) register_command ("globals", "", "show globals", globals_cmd); |
} |
|
/trunk/orpmon/cmds/cpu.c
80,7 → 80,7
unsigned long val, addr; |
|
if (argc == 1) { |
addr = strtoul (argv[0]); |
addr = strtoul (argv[0], 0, 0); |
/* Read SPR */ |
asm("l.mfspr %0,%1,0": "=r" (val) : "r" (addr)); |
printf ("\nSPR %04lx: %08lx", addr, val); |
92,8 → 92,8
{ |
unsigned long val, addr; |
if (argc == 2) { |
addr = strtoul (argv[0]); |
val = strtoul (argv[1]); |
addr = strtoul (argv[0], 0, 0); |
val = strtoul (argv[1], 0, 0); |
/* Write SPR */ |
asm("l.mtspr %0,%1,0": : "r" (addr), "r" (val)); |
asm("l.mfspr %0,%1,0": "=r" (val) : "r" (addr)); |
/trunk/orpmon/cmds/memory.c
2,10 → 2,6
#include "support.h" |
#include "spr_defs.h" |
|
#define printf(...) |
//#define strtoul(x) 0 |
#define register_command(...) |
|
void show_mem(int start, int stop) |
{ |
unsigned long i; |
119,26 → 115,26
|
int dm_cmd (int argc, char *argv[]) |
{ |
if (argc == 1) show_mem (strtoul (argv[0]), strtoul (argv[0])); |
else if (argc == 2) show_mem (strtoul (argv[0]), strtoul (argv[1])); |
else return -1; |
return 0; |
if (argc == 1) show_mem (strtoul (argv[0], 0, 0), strtoul (argv[0], 0, 0)); |
else if (argc == 2) show_mem (strtoul (argv[0], 0, 0), strtoul (argv[1], 0, 0)); |
else return -1; |
return 0; |
} |
|
int pm_cmd (int argc, char *argv[]) |
{ |
if ((argc == 3) || (argc == 2)) { |
unsigned long addr = strtoul (argv[0]); |
unsigned long stop_addr = strtoul (argv[1]); |
unsigned long value = strtoul (argv[2]); |
if ((argc == 3) || (argc == 2)) { |
unsigned long addr = strtoul (argv[0], 0, 0); |
unsigned long stop_addr = strtoul (argv[1], 0, 0); |
unsigned long value = strtoul (argv[2], 0, 0); |
|
if (argc == 2) { |
stop_addr = strtoul (argv[0]); |
value = strtoul (argv[1]); |
if (argc == 2) { |
stop_addr = strtoul (argv[0], 0, 0); |
value = strtoul (argv[1], 0, 0); |
} |
|
for (; addr <= stop_addr; addr += 4) REG32(addr) = value; |
show_mem(strtoul (argv[0]), stop_addr); |
show_mem(strtoul (argv[0], 0, 0), stop_addr); |
} else return -1; |
return 0; |
} |
145,8 → 141,8
|
int ram_test_cmd (int argc, char *argv[]) |
{ |
if (argc == 2) testram(strtoul (argv[0]), strtoul (argv[1]), 0); |
else if (argc == 3) testram(strtoul (argv[0]), strtoul (argv[1]), strtoul (argv[2])); |
if (argc == 2) testram(strtoul (argv[0], 0, 0), strtoul (argv[1], 0, 0), 0); |
else if (argc == 3) testram(strtoul (argv[0], 0, 0), strtoul (argv[1], 0, 0), strtoul (argv[2], 0, 0)); |
else return -1; |
return 0; |
} |
/trunk/orpmon/cmds/tftp.c
1,15 → 1,21
#include "common.h" |
#include "net.h" |
|
unsigned long load_addr; |
|
void read_ip (unsigned char *ip, char *a, char *b, char *c); |
int tftp_cmd (int argc, char *argv[]) |
{ |
NetLoop(TFTP); |
switch (argc) { |
case 0: NetLoop(TFTP, "boot.img"); |
break; |
case 3: global.src_addr = strtoul (argv[2], 0, 0); |
case 2: global.srv_ip = parse_ip (argv[1]); |
case 1: NetLoop(TFTP, argv[0]); |
break; |
} |
return 0; |
} |
|
void module_tftp_init (void) |
{ |
register_command ("tftp", "[<file>] [<ip>]", "TFTP download", tftp_cmd); |
register_command ("tftp", "[<file> [<srv_ip> [<src_addr>]]]", "TFTP download", tftp_cmd); |
} |
/trunk/orpmon/common/common.c
2,6 → 2,7
#include "uart.h" |
#include "screen.h" |
#include "support.h" |
#include <ctype.h> |
|
#define MAX_COMMANDS 100 |
|
16,34 → 17,55
int (*func)(int argc, char *argv[]); |
} command[MAX_COMMANDS]; |
|
unsigned long strtoul(char *s) |
/* Parses hex or decimal number */ |
unsigned long strtoul (const char *str, char **endptr, int base) |
{ |
int base = 10; |
char *ptmp; |
unsigned long val = 0; |
unsigned long digit = 1; |
unsigned long number = 0; |
char *pos = (char *) str; |
char *fail_char = (char *) str; |
|
while (isspace(*pos)) pos++; /* skip leading whitespace */ |
|
if ((base == 16) && (*pos == '0')) { /* handle option prefix */ |
++pos; |
fail_char = pos; |
if ((*pos == 'x') || (*pos == 'X')) ++pos; |
} |
|
ptmp = s; |
while (*ptmp != '\0') |
if (*ptmp++ == 'x') |
base = 16; |
|
while (ptmp-- != s) |
if ((*ptmp >= '0') && |
(*ptmp <= '9')) |
{ |
val += (*ptmp - '0') * digit; |
digit *= base; |
if (base == 0) { /* dynamic base */ |
base = 10; /* default is 10 */ |
if (*pos == '0') { |
++pos; |
base -= 2; /* now base is 8 (or 16) */ |
fail_char = pos; |
if ((*pos == 'x') || (*pos == 'X')) { |
base += 8; /* base is 16 */ |
++pos; |
} |
} |
else |
if ((*ptmp >= 'a') && |
(*ptmp <= 'f')) |
{ |
val += (*ptmp - 'a' + 10) * digit; |
digit *= base; |
} |
} |
|
return val; |
if ((base < 2) || (base > 36)) goto done; /* illegal base */ |
|
while (1) { |
int digit = 40; |
if ((*pos >= '0') && (*pos <= '9')) { |
digit = (*pos - '0'); |
} else if (*pos >= 'a') { |
digit = (*pos - 'a' + 10); |
} else if (*pos >= 'A') { |
digit = (*pos - 'A' + 10); |
} else break; |
|
if (digit >= base) break; |
|
fail_char = ++pos; |
number = number * base + digit; |
} |
|
done: |
if (endptr) *endptr = fail_char; |
return number; |
} |
|
void putc (const char c) |
105,6 → 127,19
return 0; |
} |
|
unsigned long parse_ip (char *ip) |
{ |
unsigned long num; |
num = strtoul (ip, &ip, 10) & 0xff; |
if (*ip++ != '.') return 0; |
num = (num << 8) | (strtoul (ip, &ip, 10) & 0xff); |
if (*ip++ != '.') return 0; |
num = (num << 8) | (strtoul (ip, &ip, 10) & 0xff); |
if (*ip++ != '.') return 0; |
num = (num << 8) | (strtoul (ip, &ip, 10) & 0xff); |
return num; |
} |
|
void change_console_type (enum bi_console_type_t con_type) |
{ |
debug ("Console change %i -> %i\n", bd.bi_console_type, con_type); |