Revision b1e87018 hw/eepro100.c
b/hw/eepro100.c | ||
---|---|---|
272 | 272 |
EEPROM_SMBUS_ADDR = 0x90, |
273 | 273 |
} EEPROMOffset; |
274 | 274 |
|
275 |
/* Bit values for EEPROM ID word. */ |
|
276 |
typedef enum { |
|
277 |
EEPROM_ID_MDM = BIT(0), /* Modem */ |
|
278 |
EEPROM_ID_STB = BIT(1), /* Standby Enable */ |
|
279 |
EEPROM_ID_WMR = BIT(2), /* ??? */ |
|
280 |
EEPROM_ID_WOL = BIT(5), /* Wake on LAN */ |
|
281 |
EEPROM_ID_DPD = BIT(6), /* Deep Power Down */ |
|
282 |
EEPROM_ID_ALT = BIT(7), /* */ |
|
283 |
/* BITS(10, 8) device revision */ |
|
284 |
EEPROM_ID_BD = BIT(11), /* boot disable */ |
|
285 |
EEPROM_ID_ID = BIT(13), /* id bit */ |
|
286 |
/* BITS(15, 14) signature */ |
|
287 |
EEPROM_ID_VALID = BIT(14), /* signature for valid eeprom */ |
|
288 |
} eeprom_id_bit; |
|
289 |
|
|
275 | 290 |
/* Default values for MDI (PHY) registers */ |
276 | 291 |
static const uint16_t eepro100_mdi_default[] = { |
277 | 292 |
/* MDI Registers 0 - 6, 7 */ |
... | ... | |
643 | 658 |
uint16_t *eeprom_contents = eeprom93xx_data(s->eeprom); |
644 | 659 |
//~ eeprom93xx_reset(s->eeprom); |
645 | 660 |
memcpy(eeprom_contents, s->conf.macaddr.a, 6); |
646 |
eeprom_contents[EEPROM_ID] = 0x4000;
|
|
661 |
eeprom_contents[EEPROM_ID] = EEPROM_ID_VALID;
|
|
647 | 662 |
if (s->device == i82557B || s->device == i82557C) |
648 | 663 |
eeprom_contents[5] = 0x0100; |
649 | 664 |
eeprom_contents[EEPROM_PHY_ID] = 1; |
Also available in: Unified diff