Revision 8d6c7eb8
b/hw/ne2000.c | ||
---|---|---|
118 | 118 |
uint16_t tcnt; |
119 | 119 |
uint16_t rcnt; |
120 | 120 |
uint32_t rsar; |
121 |
uint8_t rsr; |
|
121 | 122 |
uint8_t isr; |
122 | 123 |
uint8_t dcfg; |
123 | 124 |
uint8_t imr; |
... | ... | |
212 | 213 |
next -= (s->stop - s->start); |
213 | 214 |
/* prepare packet header */ |
214 | 215 |
p = s->mem + index; |
215 |
p[0] = ENRSR_RXOK; /* receive status */ |
|
216 |
s->rsr = ENRSR_RXOK; /* receive status */ |
|
217 |
/* XXX: check this */ |
|
218 |
if (buf[0] & 0x01) |
|
219 |
s->rsr |= ENRSR_PHY; |
|
220 |
p[0] = s->rsr; |
|
216 | 221 |
p[1] = next >> 8; |
217 | 222 |
p[2] = total_len; |
218 | 223 |
p[3] = total_len >> 8; |
... | ... | |
232 | 237 |
size -= len; |
233 | 238 |
} |
234 | 239 |
s->curpag = next >> 8; |
235 |
|
|
240 |
|
|
236 | 241 |
/* now we can signal we have receive something */ |
237 | 242 |
s->isr |= ENISR_RX; |
238 | 243 |
ne2000_update_irq(s); |
... | ... | |
360 | 365 |
case EN1_MULT ... EN1_MULT + 7: |
361 | 366 |
ret = s->mult[offset - EN1_MULT]; |
362 | 367 |
break; |
368 |
case EN0_RSR: |
|
369 |
ret = s->rsr; |
|
370 |
break; |
|
363 | 371 |
default: |
364 | 372 |
ret = 0x00; |
365 | 373 |
break; |
Also available in: Unified diff