diff options
Diffstat (limited to 'drivers/net/e1000/e1000_hw.h')
-rw-r--r-- | drivers/net/e1000/e1000_hw.h | 96 |
1 files changed, 51 insertions, 45 deletions
diff --git a/drivers/net/e1000/e1000_hw.h b/drivers/net/e1000/e1000_hw.h index 112447fd8bf2..3321fb13bfa9 100644 --- a/drivers/net/e1000/e1000_hw.h +++ b/drivers/net/e1000/e1000_hw.h | |||
@@ -128,11 +128,13 @@ typedef enum { | |||
128 | /* PCI bus widths */ | 128 | /* PCI bus widths */ |
129 | typedef enum { | 129 | typedef enum { |
130 | e1000_bus_width_unknown = 0, | 130 | e1000_bus_width_unknown = 0, |
131 | /* These PCIe values should literally match the possible return values | ||
132 | * from config space */ | ||
133 | e1000_bus_width_pciex_1 = 1, | ||
134 | e1000_bus_width_pciex_2 = 2, | ||
135 | e1000_bus_width_pciex_4 = 4, | ||
131 | e1000_bus_width_32, | 136 | e1000_bus_width_32, |
132 | e1000_bus_width_64, | 137 | e1000_bus_width_64, |
133 | e1000_bus_width_pciex_1, | ||
134 | e1000_bus_width_pciex_2, | ||
135 | e1000_bus_width_pciex_4, | ||
136 | e1000_bus_width_reserved | 138 | e1000_bus_width_reserved |
137 | } e1000_bus_width; | 139 | } e1000_bus_width; |
138 | 140 | ||
@@ -326,6 +328,7 @@ int32_t e1000_phy_hw_reset(struct e1000_hw *hw); | |||
326 | int32_t e1000_phy_reset(struct e1000_hw *hw); | 328 | int32_t e1000_phy_reset(struct e1000_hw *hw); |
327 | int32_t e1000_phy_get_info(struct e1000_hw *hw, struct e1000_phy_info *phy_info); | 329 | int32_t e1000_phy_get_info(struct e1000_hw *hw, struct e1000_phy_info *phy_info); |
328 | int32_t e1000_validate_mdi_setting(struct e1000_hw *hw); | 330 | int32_t e1000_validate_mdi_setting(struct e1000_hw *hw); |
331 | |||
329 | void e1000_phy_powerdown_workaround(struct e1000_hw *hw); | 332 | void e1000_phy_powerdown_workaround(struct e1000_hw *hw); |
330 | 333 | ||
331 | /* EEPROM Functions */ | 334 | /* EEPROM Functions */ |
@@ -390,7 +393,6 @@ int32_t e1000_mng_write_dhcp_info(struct e1000_hw *hw, uint8_t *buffer, | |||
390 | uint16_t length); | 393 | uint16_t length); |
391 | boolean_t e1000_check_mng_mode(struct e1000_hw *hw); | 394 | boolean_t e1000_check_mng_mode(struct e1000_hw *hw); |
392 | boolean_t e1000_enable_tx_pkt_filtering(struct e1000_hw *hw); | 395 | boolean_t e1000_enable_tx_pkt_filtering(struct e1000_hw *hw); |
393 | |||
394 | int32_t e1000_read_eeprom(struct e1000_hw *hw, uint16_t reg, uint16_t words, uint16_t *data); | 396 | int32_t e1000_read_eeprom(struct e1000_hw *hw, uint16_t reg, uint16_t words, uint16_t *data); |
395 | int32_t e1000_validate_eeprom_checksum(struct e1000_hw *hw); | 397 | int32_t e1000_validate_eeprom_checksum(struct e1000_hw *hw); |
396 | int32_t e1000_update_eeprom_checksum(struct e1000_hw *hw); | 398 | int32_t e1000_update_eeprom_checksum(struct e1000_hw *hw); |
@@ -473,6 +475,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw); | |||
473 | #define E1000_DEV_ID_82571EB_FIBER 0x105F | 475 | #define E1000_DEV_ID_82571EB_FIBER 0x105F |
474 | #define E1000_DEV_ID_82571EB_SERDES 0x1060 | 476 | #define E1000_DEV_ID_82571EB_SERDES 0x1060 |
475 | #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 | 477 | #define E1000_DEV_ID_82571EB_QUAD_COPPER 0x10A4 |
478 | #define E1000_DEV_ID_82571EB_QUAD_COPPER_LOWPROFILE 0x10BC | ||
476 | #define E1000_DEV_ID_82572EI_COPPER 0x107D | 479 | #define E1000_DEV_ID_82572EI_COPPER 0x107D |
477 | #define E1000_DEV_ID_82572EI_FIBER 0x107E | 480 | #define E1000_DEV_ID_82572EI_FIBER 0x107E |
478 | #define E1000_DEV_ID_82572EI_SERDES 0x107F | 481 | #define E1000_DEV_ID_82572EI_SERDES 0x107F |
@@ -490,6 +493,8 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw); | |||
490 | #define E1000_DEV_ID_ICH8_IGP_AMT 0x104A | 493 | #define E1000_DEV_ID_ICH8_IGP_AMT 0x104A |
491 | #define E1000_DEV_ID_ICH8_IGP_C 0x104B | 494 | #define E1000_DEV_ID_ICH8_IGP_C 0x104B |
492 | #define E1000_DEV_ID_ICH8_IFE 0x104C | 495 | #define E1000_DEV_ID_ICH8_IFE 0x104C |
496 | #define E1000_DEV_ID_ICH8_IFE_GT 0x10C4 | ||
497 | #define E1000_DEV_ID_ICH8_IFE_G 0x10C5 | ||
493 | #define E1000_DEV_ID_ICH8_IGP_M 0x104D | 498 | #define E1000_DEV_ID_ICH8_IGP_M 0x104D |
494 | 499 | ||
495 | 500 | ||
@@ -576,6 +581,7 @@ int32_t e1000_check_phy_reset_block(struct e1000_hw *hw); | |||
576 | * E1000_RAR_ENTRIES - 1 multicast addresses. | 581 | * E1000_RAR_ENTRIES - 1 multicast addresses. |
577 | */ | 582 | */ |
578 | #define E1000_RAR_ENTRIES 15 | 583 | #define E1000_RAR_ENTRIES 15 |
584 | |||
579 | #define E1000_RAR_ENTRIES_ICH8LAN 6 | 585 | #define E1000_RAR_ENTRIES_ICH8LAN 6 |
580 | 586 | ||
581 | #define MIN_NUMBER_OF_DESCRIPTORS 8 | 587 | #define MIN_NUMBER_OF_DESCRIPTORS 8 |
@@ -1335,9 +1341,9 @@ struct e1000_hw_stats { | |||
1335 | uint64_t gotch; | 1341 | uint64_t gotch; |
1336 | uint64_t rnbc; | 1342 | uint64_t rnbc; |
1337 | uint64_t ruc; | 1343 | uint64_t ruc; |
1344 | uint64_t rfc; | ||
1338 | uint64_t roc; | 1345 | uint64_t roc; |
1339 | uint64_t rlerrc; | 1346 | uint64_t rlerrc; |
1340 | uint64_t rfc; | ||
1341 | uint64_t rjc; | 1347 | uint64_t rjc; |
1342 | uint64_t mgprc; | 1348 | uint64_t mgprc; |
1343 | uint64_t mgpdc; | 1349 | uint64_t mgpdc; |
@@ -1577,8 +1583,8 @@ struct e1000_hw { | |||
1577 | #define E1000_HICR_FW_RESET 0xC0 | 1583 | #define E1000_HICR_FW_RESET 0xC0 |
1578 | 1584 | ||
1579 | #define E1000_SHADOW_RAM_WORDS 2048 | 1585 | #define E1000_SHADOW_RAM_WORDS 2048 |
1580 | #define E1000_ICH8_NVM_SIG_WORD 0x13 | 1586 | #define E1000_ICH_NVM_SIG_WORD 0x13 |
1581 | #define E1000_ICH8_NVM_SIG_MASK 0xC0 | 1587 | #define E1000_ICH_NVM_SIG_MASK 0xC0 |
1582 | 1588 | ||
1583 | /* EEPROM Read */ | 1589 | /* EEPROM Read */ |
1584 | #define E1000_EERD_START 0x00000001 /* Start Read */ | 1590 | #define E1000_EERD_START 0x00000001 /* Start Read */ |
@@ -1961,9 +1967,9 @@ struct e1000_hw { | |||
1961 | #define E1000_RXDCTL_GRAN 0x01000000 /* RXDCTL Granularity */ | 1967 | #define E1000_RXDCTL_GRAN 0x01000000 /* RXDCTL Granularity */ |
1962 | 1968 | ||
1963 | /* Transmit Descriptor Control */ | 1969 | /* Transmit Descriptor Control */ |
1964 | #define E1000_TXDCTL_PTHRESH 0x000000FF /* TXDCTL Prefetch Threshold */ | 1970 | #define E1000_TXDCTL_PTHRESH 0x0000003F /* TXDCTL Prefetch Threshold */ |
1965 | #define E1000_TXDCTL_HTHRESH 0x0000FF00 /* TXDCTL Host Threshold */ | 1971 | #define E1000_TXDCTL_HTHRESH 0x00003F00 /* TXDCTL Host Threshold */ |
1966 | #define E1000_TXDCTL_WTHRESH 0x00FF0000 /* TXDCTL Writeback Threshold */ | 1972 | #define E1000_TXDCTL_WTHRESH 0x003F0000 /* TXDCTL Writeback Threshold */ |
1967 | #define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */ | 1973 | #define E1000_TXDCTL_GRAN 0x01000000 /* TXDCTL Granularity */ |
1968 | #define E1000_TXDCTL_LWTHRESH 0xFE000000 /* TXDCTL Low Threshold */ | 1974 | #define E1000_TXDCTL_LWTHRESH 0xFE000000 /* TXDCTL Low Threshold */ |
1969 | #define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */ | 1975 | #define E1000_TXDCTL_FULL_TX_DESC_WB 0x01010000 /* GRAN=1, WTHRESH=1 */ |
@@ -3172,6 +3178,7 @@ struct e1000_host_command_info { | |||
3172 | #define IGP3_VR_CTRL \ | 3178 | #define IGP3_VR_CTRL \ |
3173 | PHY_REG(776, 18) /* Voltage regulator control register */ | 3179 | PHY_REG(776, 18) /* Voltage regulator control register */ |
3174 | #define IGP3_VR_CTRL_MODE_SHUT 0x0200 /* Enter powerdown, shutdown VRs */ | 3180 | #define IGP3_VR_CTRL_MODE_SHUT 0x0200 /* Enter powerdown, shutdown VRs */ |
3181 | #define IGP3_VR_CTRL_MODE_MASK 0x0300 /* Shutdown VR Mask */ | ||
3175 | 3182 | ||
3176 | #define IGP3_CAPABILITY \ | 3183 | #define IGP3_CAPABILITY \ |
3177 | PHY_REG(776, 19) /* IGP3 Capability Register */ | 3184 | PHY_REG(776, 19) /* IGP3 Capability Register */ |
@@ -3256,41 +3263,40 @@ struct e1000_host_command_info { | |||
3256 | #define IFE_PSCL_PROBE_LEDS_OFF 0x0006 /* Force LEDs 0 and 2 off */ | 3263 | #define IFE_PSCL_PROBE_LEDS_OFF 0x0006 /* Force LEDs 0 and 2 off */ |
3257 | #define IFE_PSCL_PROBE_LEDS_ON 0x0007 /* Force LEDs 0 and 2 on */ | 3264 | #define IFE_PSCL_PROBE_LEDS_ON 0x0007 /* Force LEDs 0 and 2 on */ |
3258 | 3265 | ||
3259 | #define ICH8_FLASH_COMMAND_TIMEOUT 5000 /* 5000 uSecs - adjusted */ | 3266 | #define ICH_FLASH_COMMAND_TIMEOUT 5000 /* 5000 uSecs - adjusted */ |
3260 | #define ICH8_FLASH_ERASE_TIMEOUT 3000000 /* Up to 3 seconds - worst case */ | 3267 | #define ICH_FLASH_ERASE_TIMEOUT 3000000 /* Up to 3 seconds - worst case */ |
3261 | #define ICH8_FLASH_CYCLE_REPEAT_COUNT 10 /* 10 cycles */ | 3268 | #define ICH_FLASH_CYCLE_REPEAT_COUNT 10 /* 10 cycles */ |
3262 | #define ICH8_FLASH_SEG_SIZE_256 256 | 3269 | #define ICH_FLASH_SEG_SIZE_256 256 |
3263 | #define ICH8_FLASH_SEG_SIZE_4K 4096 | 3270 | #define ICH_FLASH_SEG_SIZE_4K 4096 |
3264 | #define ICH9_FLASH_SEG_SIZE_8K 8192 | 3271 | #define ICH_FLASH_SEG_SIZE_64K 65536 |
3265 | #define ICH8_FLASH_SEG_SIZE_64K 65536 | 3272 | |
3266 | 3273 | #define ICH_CYCLE_READ 0x0 | |
3267 | #define ICH8_CYCLE_READ 0x0 | 3274 | #define ICH_CYCLE_RESERVED 0x1 |
3268 | #define ICH8_CYCLE_RESERVED 0x1 | 3275 | #define ICH_CYCLE_WRITE 0x2 |
3269 | #define ICH8_CYCLE_WRITE 0x2 | 3276 | #define ICH_CYCLE_ERASE 0x3 |
3270 | #define ICH8_CYCLE_ERASE 0x3 | 3277 | |
3271 | 3278 | #define ICH_FLASH_GFPREG 0x0000 | |
3272 | #define ICH8_FLASH_GFPREG 0x0000 | 3279 | #define ICH_FLASH_HSFSTS 0x0004 |
3273 | #define ICH8_FLASH_HSFSTS 0x0004 | 3280 | #define ICH_FLASH_HSFCTL 0x0006 |
3274 | #define ICH8_FLASH_HSFCTL 0x0006 | 3281 | #define ICH_FLASH_FADDR 0x0008 |
3275 | #define ICH8_FLASH_FADDR 0x0008 | 3282 | #define ICH_FLASH_FDATA0 0x0010 |
3276 | #define ICH8_FLASH_FDATA0 0x0010 | 3283 | #define ICH_FLASH_FRACC 0x0050 |
3277 | #define ICH8_FLASH_FRACC 0x0050 | 3284 | #define ICH_FLASH_FREG0 0x0054 |
3278 | #define ICH8_FLASH_FREG0 0x0054 | 3285 | #define ICH_FLASH_FREG1 0x0058 |
3279 | #define ICH8_FLASH_FREG1 0x0058 | 3286 | #define ICH_FLASH_FREG2 0x005C |
3280 | #define ICH8_FLASH_FREG2 0x005C | 3287 | #define ICH_FLASH_FREG3 0x0060 |
3281 | #define ICH8_FLASH_FREG3 0x0060 | 3288 | #define ICH_FLASH_FPR0 0x0074 |
3282 | #define ICH8_FLASH_FPR0 0x0074 | 3289 | #define ICH_FLASH_FPR1 0x0078 |
3283 | #define ICH8_FLASH_FPR1 0x0078 | 3290 | #define ICH_FLASH_SSFSTS 0x0090 |
3284 | #define ICH8_FLASH_SSFSTS 0x0090 | 3291 | #define ICH_FLASH_SSFCTL 0x0092 |
3285 | #define ICH8_FLASH_SSFCTL 0x0092 | 3292 | #define ICH_FLASH_PREOP 0x0094 |
3286 | #define ICH8_FLASH_PREOP 0x0094 | 3293 | #define ICH_FLASH_OPTYPE 0x0096 |
3287 | #define ICH8_FLASH_OPTYPE 0x0096 | 3294 | #define ICH_FLASH_OPMENU 0x0098 |
3288 | #define ICH8_FLASH_OPMENU 0x0098 | 3295 | |
3289 | 3296 | #define ICH_FLASH_REG_MAPSIZE 0x00A0 | |
3290 | #define ICH8_FLASH_REG_MAPSIZE 0x00A0 | 3297 | #define ICH_FLASH_SECTOR_SIZE 4096 |
3291 | #define ICH8_FLASH_SECTOR_SIZE 4096 | 3298 | #define ICH_GFPREG_BASE_MASK 0x1FFF |
3292 | #define ICH8_GFPREG_BASE_MASK 0x1FFF | 3299 | #define ICH_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF |
3293 | #define ICH8_FLASH_LINEAR_ADDR_MASK 0x00FFFFFF | ||
3294 | 3300 | ||
3295 | /* ICH8 GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ | 3301 | /* ICH8 GbE Flash Hardware Sequencing Flash Status Register bit breakdown */ |
3296 | /* Offset 04h HSFSTS */ | 3302 | /* Offset 04h HSFSTS */ |