25 |
* SUCH DAMAGE. |
* SUCH DAMAGE. |
26 |
* |
* |
27 |
* |
* |
28 |
* $Id: dev_sn.c,v 1.10 2005/03/14 19:14:02 debug Exp $ |
* $Id: dev_sn.c,v 1.12 2005/10/26 14:37:04 debug Exp $ |
29 |
* |
* |
30 |
* National Semiconductor SONIC ("sn") DP83932 ethernet. |
* National Semiconductor SONIC ("sn") DP83932 ethernet. |
31 |
* |
* |
68 |
uint64_t idata = 0, odata = 0; |
uint64_t idata = 0, odata = 0; |
69 |
int regnr; |
int regnr; |
70 |
|
|
71 |
idata = memory_readmax64(cpu, data, len); |
if (writeflag == MEM_WRITE) |
72 |
|
idata = memory_readmax64(cpu, data, len); |
73 |
|
|
74 |
regnr = relative_addr / sizeof(uint32_t); |
regnr = relative_addr / sizeof(uint32_t); |
75 |
|
|
76 |
if (regnr < SONIC_NREGS) { |
if (regnr < SONIC_NREGS) { |
105 |
int devinit_sn(struct devinit *devinit) |
int devinit_sn(struct devinit *devinit) |
106 |
{ |
{ |
107 |
char *name2; |
char *name2; |
108 |
|
size_t nlen = 55; |
109 |
struct sn_data *d = malloc(sizeof(struct sn_data)); |
struct sn_data *d = malloc(sizeof(struct sn_data)); |
110 |
|
|
111 |
if (d == NULL) { |
if (d == NULL) { |
117 |
|
|
118 |
net_generate_unique_mac(devinit->machine, d->macaddr); |
net_generate_unique_mac(devinit->machine, d->macaddr); |
119 |
|
|
120 |
name2 = malloc(50); |
name2 = malloc(nlen); |
121 |
if (name2 == NULL) { |
if (name2 == NULL) { |
122 |
fprintf(stderr, "out of memory in dev_sn_init()\n"); |
fprintf(stderr, "out of memory in dev_sn_init()\n"); |
123 |
exit(1); |
exit(1); |
124 |
} |
} |
125 |
sprintf(name2, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", |
snprintf(name2, nlen, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", |
126 |
devinit->name, |
devinit->name, d->macaddr[0], d->macaddr[1], d->macaddr[2], |
|
d->macaddr[0], d->macaddr[1], d->macaddr[2], |
|
127 |
d->macaddr[3], d->macaddr[4], d->macaddr[5]); |
d->macaddr[3], d->macaddr[4], d->macaddr[5]); |
128 |
|
|
129 |
memory_device_register(devinit->machine->memory, name2, |
memory_device_register(devinit->machine->memory, name2, |