Revision 3fd3d0b4 hw/eepro100.c
b/hw/eepro100.c | ||
---|---|---|
1317 | 1317 |
return 0; |
1318 | 1318 |
} |
1319 | 1319 |
|
1320 |
static void eepro100_write_port(EEPRO100State * s, uint32_t val)
|
|
1320 |
static void eepro100_write_port(EEPRO100State *s)
|
|
1321 | 1321 |
{ |
1322 |
uint32_t val = e100_read_reg4(s, SCBPort); |
|
1322 | 1323 |
uint32_t address = (val & ~PORT_SELECTION_MASK); |
1323 | 1324 |
uint8_t selection = (val & PORT_SELECTION_MASK); |
1324 | 1325 |
switch (selection) { |
... | ... | |
1472 | 1473 |
} |
1473 | 1474 |
eepro100_interrupt(s, 0); |
1474 | 1475 |
break; |
1476 |
case SCBPort: |
|
1477 |
case SCBPort + 1: |
|
1478 |
case SCBPort + 2: |
|
1479 |
TRACE(OTHER, logout("addr=%s val=0x%02x\n", regname(addr), val)); |
|
1480 |
break; |
|
1475 | 1481 |
case SCBPort + 3: |
1482 |
TRACE(OTHER, logout("addr=%s val=0x%02x\n", regname(addr), val)); |
|
1483 |
eepro100_write_port(s); |
|
1484 |
break; |
|
1476 | 1485 |
case SCBFlow: /* does not exist on 82557 */ |
1477 | 1486 |
case SCBFlow + 1: |
1478 | 1487 |
case SCBFlow + 2: |
... | ... | |
1507 | 1516 |
eepro100_write_command(s, val); |
1508 | 1517 |
eepro100_write1(s, SCBIntmask, val >> 8); |
1509 | 1518 |
break; |
1519 |
case SCBPort: |
|
1520 |
TRACE(OTHER, logout("addr=%s val=0x%04x\n", regname(addr), val)); |
|
1521 |
break; |
|
1522 |
case SCBPort + 2: |
|
1523 |
TRACE(OTHER, logout("addr=%s val=0x%04x\n", regname(addr), val)); |
|
1524 |
eepro100_write_port(s); |
|
1525 |
break; |
|
1510 | 1526 |
case SCBeeprom: |
1511 | 1527 |
TRACE(OTHER, logout("addr=%s val=0x%04x\n", regname(addr), val)); |
1512 | 1528 |
eepro100_write_eeprom(s->eeprom, val); |
... | ... | |
1529 | 1545 |
break; |
1530 | 1546 |
case SCBPort: |
1531 | 1547 |
TRACE(OTHER, logout("addr=%s val=0x%08x\n", regname(addr), val)); |
1532 |
eepro100_write_port(s, val);
|
|
1548 |
eepro100_write_port(s); |
|
1533 | 1549 |
break; |
1534 | 1550 |
case SCBCtrlMDI: |
1535 | 1551 |
eepro100_write_mdi(s, val); |
Also available in: Unified diff