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