OpenCores
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);

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.