diff options
author | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2006-11-01 11:48:02 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-12-02 00:12:00 -0500 |
commit | 2df7d59f287236a636fb2d7e05879e65c8c56492 (patch) | |
tree | bee33ba966c6a961799494dc655adb1b36e3d6b6 /drivers/net/e1000/e1000_hw.c | |
parent | fcfb1224250d7877b6a6c6a947986e08b2160fb6 (diff) |
e1000: rename ICH8 flash macros
ICH8 will soon be followed by newer chipsets bearing the same acronym,
thus we remove the '8' and make it independent of the version number in
the platform name.
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
Diffstat (limited to 'drivers/net/e1000/e1000_hw.c')
-rw-r--r-- | drivers/net/e1000/e1000_hw.c | 119 |
1 files changed, 58 insertions, 61 deletions
diff --git a/drivers/net/e1000/e1000_hw.c b/drivers/net/e1000/e1000_hw.c index 0bb9dd82d633..3655d902b0bd 100644 --- a/drivers/net/e1000/e1000_hw.c +++ b/drivers/net/e1000/e1000_hw.c | |||
@@ -4555,7 +4555,7 @@ e1000_init_eeprom_params(struct e1000_hw *hw) | |||
4555 | case e1000_ich8lan: | 4555 | case e1000_ich8lan: |
4556 | { | 4556 | { |
4557 | int32_t i = 0; | 4557 | int32_t i = 0; |
4558 | uint32_t flash_size = E1000_READ_ICH8_REG(hw, ICH8_FLASH_GFPREG); | 4558 | uint32_t flash_size = E1000_READ_ICH_FLASH_REG(hw, ICH_FLASH_GFPREG); |
4559 | 4559 | ||
4560 | eeprom->type = e1000_eeprom_ich8; | 4560 | eeprom->type = e1000_eeprom_ich8; |
4561 | eeprom->use_eerd = FALSE; | 4561 | eeprom->use_eerd = FALSE; |
@@ -4571,12 +4571,14 @@ e1000_init_eeprom_params(struct e1000_hw *hw) | |||
4571 | } | 4571 | } |
4572 | } | 4572 | } |
4573 | 4573 | ||
4574 | hw->flash_base_addr = (flash_size & ICH8_GFPREG_BASE_MASK) * | 4574 | hw->flash_base_addr = (flash_size & ICH_GFPREG_BASE_MASK) * |
4575 | ICH8_FLASH_SECTOR_SIZE; | 4575 | ICH_FLASH_SECTOR_SIZE; |
4576 | |||
4577 | hw->flash_bank_size = ((flash_size >> 16) & ICH_GFPREG_BASE_MASK) + 1; | ||
4578 | hw->flash_bank_size -= (flash_size & ICH_GFPREG_BASE_MASK); | ||
4579 | |||
4580 | hw->flash_bank_size *= ICH_FLASH_SECTOR_SIZE; | ||
4576 | 4581 | ||
4577 | hw->flash_bank_size = ((flash_size >> 16) & ICH8_GFPREG_BASE_MASK) + 1; | ||
4578 | hw->flash_bank_size -= (flash_size & ICH8_GFPREG_BASE_MASK); | ||
4579 | hw->flash_bank_size *= ICH8_FLASH_SECTOR_SIZE; | ||
4580 | hw->flash_bank_size /= 2 * sizeof(uint16_t); | 4582 | hw->flash_bank_size /= 2 * sizeof(uint16_t); |
4581 | 4583 | ||
4582 | break; | 4584 | break; |
@@ -5626,8 +5628,8 @@ e1000_commit_shadow_ram(struct e1000_hw *hw) | |||
5626 | * signature is valid. We want to do this after the write | 5628 | * signature is valid. We want to do this after the write |
5627 | * has completed so that we don't mark the segment valid | 5629 | * has completed so that we don't mark the segment valid |
5628 | * while the write is still in progress */ | 5630 | * while the write is still in progress */ |
5629 | if (i == E1000_ICH8_NVM_SIG_WORD) | 5631 | if (i == E1000_ICH_NVM_SIG_WORD) |
5630 | high_byte = E1000_ICH8_NVM_SIG_MASK | high_byte; | 5632 | high_byte = E1000_ICH_NVM_SIG_MASK | high_byte; |
5631 | 5633 | ||
5632 | error = e1000_verify_write_ich8_byte(hw, | 5634 | error = e1000_verify_write_ich8_byte(hw, |
5633 | (i << 1) + new_bank_offset + 1, high_byte); | 5635 | (i << 1) + new_bank_offset + 1, high_byte); |
@@ -5649,18 +5651,18 @@ e1000_commit_shadow_ram(struct e1000_hw *hw) | |||
5649 | * erase as well since these bits are 11 to start with | 5651 | * erase as well since these bits are 11 to start with |
5650 | * and we need to change bit 14 to 0b */ | 5652 | * and we need to change bit 14 to 0b */ |
5651 | e1000_read_ich8_byte(hw, | 5653 | e1000_read_ich8_byte(hw, |
5652 | E1000_ICH8_NVM_SIG_WORD * 2 + 1 + new_bank_offset, | 5654 | E1000_ICH_NVM_SIG_WORD * 2 + 1 + new_bank_offset, |
5653 | &high_byte); | 5655 | &high_byte); |
5654 | high_byte &= 0xBF; | 5656 | high_byte &= 0xBF; |
5655 | error = e1000_verify_write_ich8_byte(hw, | 5657 | error = e1000_verify_write_ich8_byte(hw, |
5656 | E1000_ICH8_NVM_SIG_WORD * 2 + 1 + new_bank_offset, high_byte); | 5658 | E1000_ICH_NVM_SIG_WORD * 2 + 1 + new_bank_offset, high_byte); |
5657 | /* And invalidate the previously valid segment by setting | 5659 | /* And invalidate the previously valid segment by setting |
5658 | * its signature word (0x13) high_byte to 0b. This can be | 5660 | * its signature word (0x13) high_byte to 0b. This can be |
5659 | * done without an erase because flash erase sets all bits | 5661 | * done without an erase because flash erase sets all bits |
5660 | * to 1's. We can write 1's to 0's without an erase */ | 5662 | * to 1's. We can write 1's to 0's without an erase */ |
5661 | if (error == E1000_SUCCESS) { | 5663 | if (error == E1000_SUCCESS) { |
5662 | error = e1000_verify_write_ich8_byte(hw, | 5664 | error = e1000_verify_write_ich8_byte(hw, |
5663 | E1000_ICH8_NVM_SIG_WORD * 2 + 1 + old_bank_offset, 0); | 5665 | E1000_ICH_NVM_SIG_WORD * 2 + 1 + old_bank_offset, 0); |
5664 | } | 5666 | } |
5665 | 5667 | ||
5666 | /* Clear the now not used entry in the cache */ | 5668 | /* Clear the now not used entry in the cache */ |
@@ -8494,7 +8496,7 @@ e1000_ich8_cycle_init(struct e1000_hw *hw) | |||
8494 | 8496 | ||
8495 | DEBUGFUNC("e1000_ich8_cycle_init"); | 8497 | DEBUGFUNC("e1000_ich8_cycle_init"); |
8496 | 8498 | ||
8497 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8499 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8498 | 8500 | ||
8499 | /* May be check the Flash Des Valid bit in Hw status */ | 8501 | /* May be check the Flash Des Valid bit in Hw status */ |
8500 | if (hsfsts.hsf_status.fldesvalid == 0) { | 8502 | if (hsfsts.hsf_status.fldesvalid == 0) { |
@@ -8507,7 +8509,7 @@ e1000_ich8_cycle_init(struct e1000_hw *hw) | |||
8507 | hsfsts.hsf_status.flcerr = 1; | 8509 | hsfsts.hsf_status.flcerr = 1; |
8508 | hsfsts.hsf_status.dael = 1; | 8510 | hsfsts.hsf_status.dael = 1; |
8509 | 8511 | ||
8510 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFSTS, hsfsts.regval); | 8512 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS, hsfsts.regval); |
8511 | 8513 | ||
8512 | /* Either we should have a hardware SPI cycle in progress bit to check | 8514 | /* Either we should have a hardware SPI cycle in progress bit to check |
8513 | * against, in order to start a new cycle or FDONE bit should be changed | 8515 | * against, in order to start a new cycle or FDONE bit should be changed |
@@ -8522,13 +8524,13 @@ e1000_ich8_cycle_init(struct e1000_hw *hw) | |||
8522 | /* There is no cycle running at present, so we can start a cycle */ | 8524 | /* There is no cycle running at present, so we can start a cycle */ |
8523 | /* Begin by setting Flash Cycle Done. */ | 8525 | /* Begin by setting Flash Cycle Done. */ |
8524 | hsfsts.hsf_status.flcdone = 1; | 8526 | hsfsts.hsf_status.flcdone = 1; |
8525 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFSTS, hsfsts.regval); | 8527 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS, hsfsts.regval); |
8526 | error = E1000_SUCCESS; | 8528 | error = E1000_SUCCESS; |
8527 | } else { | 8529 | } else { |
8528 | /* otherwise poll for sometime so the current cycle has a chance | 8530 | /* otherwise poll for sometime so the current cycle has a chance |
8529 | * to end before giving up. */ | 8531 | * to end before giving up. */ |
8530 | for (i = 0; i < ICH8_FLASH_COMMAND_TIMEOUT; i++) { | 8532 | for (i = 0; i < ICH_FLASH_COMMAND_TIMEOUT; i++) { |
8531 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8533 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8532 | if (hsfsts.hsf_status.flcinprog == 0) { | 8534 | if (hsfsts.hsf_status.flcinprog == 0) { |
8533 | error = E1000_SUCCESS; | 8535 | error = E1000_SUCCESS; |
8534 | break; | 8536 | break; |
@@ -8539,7 +8541,7 @@ e1000_ich8_cycle_init(struct e1000_hw *hw) | |||
8539 | /* Successful in waiting for previous cycle to timeout, | 8541 | /* Successful in waiting for previous cycle to timeout, |
8540 | * now set the Flash Cycle Done. */ | 8542 | * now set the Flash Cycle Done. */ |
8541 | hsfsts.hsf_status.flcdone = 1; | 8543 | hsfsts.hsf_status.flcdone = 1; |
8542 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFSTS, hsfsts.regval); | 8544 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS, hsfsts.regval); |
8543 | } else { | 8545 | } else { |
8544 | DEBUGOUT("Flash controller busy, cannot get access"); | 8546 | DEBUGOUT("Flash controller busy, cannot get access"); |
8545 | } | 8547 | } |
@@ -8561,13 +8563,13 @@ e1000_ich8_flash_cycle(struct e1000_hw *hw, uint32_t timeout) | |||
8561 | uint32_t i = 0; | 8563 | uint32_t i = 0; |
8562 | 8564 | ||
8563 | /* Start a cycle by writing 1 in Flash Cycle Go in Hw Flash Control */ | 8565 | /* Start a cycle by writing 1 in Flash Cycle Go in Hw Flash Control */ |
8564 | hsflctl.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFCTL); | 8566 | hsflctl.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL); |
8565 | hsflctl.hsf_ctrl.flcgo = 1; | 8567 | hsflctl.hsf_ctrl.flcgo = 1; |
8566 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFCTL, hsflctl.regval); | 8568 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL, hsflctl.regval); |
8567 | 8569 | ||
8568 | /* wait till FDONE bit is set to 1 */ | 8570 | /* wait till FDONE bit is set to 1 */ |
8569 | do { | 8571 | do { |
8570 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8572 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8571 | if (hsfsts.hsf_status.flcdone == 1) | 8573 | if (hsfsts.hsf_status.flcdone == 1) |
8572 | break; | 8574 | break; |
8573 | udelay(1); | 8575 | udelay(1); |
@@ -8601,10 +8603,10 @@ e1000_read_ich8_data(struct e1000_hw *hw, uint32_t index, | |||
8601 | DEBUGFUNC("e1000_read_ich8_data"); | 8603 | DEBUGFUNC("e1000_read_ich8_data"); |
8602 | 8604 | ||
8603 | if (size < 1 || size > 2 || data == 0x0 || | 8605 | if (size < 1 || size > 2 || data == 0x0 || |
8604 | index > ICH8_FLASH_LINEAR_ADDR_MASK) | 8606 | index > ICH_FLASH_LINEAR_ADDR_MASK) |
8605 | return error; | 8607 | return error; |
8606 | 8608 | ||
8607 | flash_linear_address = (ICH8_FLASH_LINEAR_ADDR_MASK & index) + | 8609 | flash_linear_address = (ICH_FLASH_LINEAR_ADDR_MASK & index) + |
8608 | hw->flash_base_addr; | 8610 | hw->flash_base_addr; |
8609 | 8611 | ||
8610 | do { | 8612 | do { |
@@ -8614,25 +8616,25 @@ e1000_read_ich8_data(struct e1000_hw *hw, uint32_t index, | |||
8614 | if (error != E1000_SUCCESS) | 8616 | if (error != E1000_SUCCESS) |
8615 | break; | 8617 | break; |
8616 | 8618 | ||
8617 | hsflctl.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFCTL); | 8619 | hsflctl.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL); |
8618 | /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ | 8620 | /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ |
8619 | hsflctl.hsf_ctrl.fldbcount = size - 1; | 8621 | hsflctl.hsf_ctrl.fldbcount = size - 1; |
8620 | hsflctl.hsf_ctrl.flcycle = ICH8_CYCLE_READ; | 8622 | hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_READ; |
8621 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFCTL, hsflctl.regval); | 8623 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL, hsflctl.regval); |
8622 | 8624 | ||
8623 | /* Write the last 24 bits of index into Flash Linear address field in | 8625 | /* Write the last 24 bits of index into Flash Linear address field in |
8624 | * Flash Address */ | 8626 | * Flash Address */ |
8625 | /* TODO: TBD maybe check the index against the size of flash */ | 8627 | /* TODO: TBD maybe check the index against the size of flash */ |
8626 | 8628 | ||
8627 | E1000_WRITE_ICH8_REG(hw, ICH8_FLASH_FADDR, flash_linear_address); | 8629 | E1000_WRITE_ICH_FLASH_REG(hw, ICH_FLASH_FADDR, flash_linear_address); |
8628 | 8630 | ||
8629 | error = e1000_ich8_flash_cycle(hw, ICH8_FLASH_COMMAND_TIMEOUT); | 8631 | error = e1000_ich8_flash_cycle(hw, ICH_FLASH_COMMAND_TIMEOUT); |
8630 | 8632 | ||
8631 | /* Check if FCERR is set to 1, if set to 1, clear it and try the whole | 8633 | /* Check if FCERR is set to 1, if set to 1, clear it and try the whole |
8632 | * sequence a few more times, else read in (shift in) the Flash Data0, | 8634 | * sequence a few more times, else read in (shift in) the Flash Data0, |
8633 | * the order is least significant byte first msb to lsb */ | 8635 | * the order is least significant byte first msb to lsb */ |
8634 | if (error == E1000_SUCCESS) { | 8636 | if (error == E1000_SUCCESS) { |
8635 | flash_data = E1000_READ_ICH8_REG(hw, ICH8_FLASH_FDATA0); | 8637 | flash_data = E1000_READ_ICH_FLASH_REG(hw, ICH_FLASH_FDATA0); |
8636 | if (size == 1) { | 8638 | if (size == 1) { |
8637 | *data = (uint8_t)(flash_data & 0x000000FF); | 8639 | *data = (uint8_t)(flash_data & 0x000000FF); |
8638 | } else if (size == 2) { | 8640 | } else if (size == 2) { |
@@ -8642,9 +8644,9 @@ e1000_read_ich8_data(struct e1000_hw *hw, uint32_t index, | |||
8642 | } else { | 8644 | } else { |
8643 | /* If we've gotten here, then things are probably completely hosed, | 8645 | /* If we've gotten here, then things are probably completely hosed, |
8644 | * but if the error condition is detected, it won't hurt to give | 8646 | * but if the error condition is detected, it won't hurt to give |
8645 | * it another try...ICH8_FLASH_CYCLE_REPEAT_COUNT times. | 8647 | * it another try...ICH_FLASH_CYCLE_REPEAT_COUNT times. |
8646 | */ | 8648 | */ |
8647 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8649 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8648 | if (hsfsts.hsf_status.flcerr == 1) { | 8650 | if (hsfsts.hsf_status.flcerr == 1) { |
8649 | /* Repeat for some time before giving up. */ | 8651 | /* Repeat for some time before giving up. */ |
8650 | continue; | 8652 | continue; |
@@ -8653,7 +8655,7 @@ e1000_read_ich8_data(struct e1000_hw *hw, uint32_t index, | |||
8653 | break; | 8655 | break; |
8654 | } | 8656 | } |
8655 | } | 8657 | } |
8656 | } while (count++ < ICH8_FLASH_CYCLE_REPEAT_COUNT); | 8658 | } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); |
8657 | 8659 | ||
8658 | return error; | 8660 | return error; |
8659 | } | 8661 | } |
@@ -8680,10 +8682,10 @@ e1000_write_ich8_data(struct e1000_hw *hw, uint32_t index, uint32_t size, | |||
8680 | DEBUGFUNC("e1000_write_ich8_data"); | 8682 | DEBUGFUNC("e1000_write_ich8_data"); |
8681 | 8683 | ||
8682 | if (size < 1 || size > 2 || data > size * 0xff || | 8684 | if (size < 1 || size > 2 || data > size * 0xff || |
8683 | index > ICH8_FLASH_LINEAR_ADDR_MASK) | 8685 | index > ICH_FLASH_LINEAR_ADDR_MASK) |
8684 | return error; | 8686 | return error; |
8685 | 8687 | ||
8686 | flash_linear_address = (ICH8_FLASH_LINEAR_ADDR_MASK & index) + | 8688 | flash_linear_address = (ICH_FLASH_LINEAR_ADDR_MASK & index) + |
8687 | hw->flash_base_addr; | 8689 | hw->flash_base_addr; |
8688 | 8690 | ||
8689 | do { | 8691 | do { |
@@ -8693,34 +8695,34 @@ e1000_write_ich8_data(struct e1000_hw *hw, uint32_t index, uint32_t size, | |||
8693 | if (error != E1000_SUCCESS) | 8695 | if (error != E1000_SUCCESS) |
8694 | break; | 8696 | break; |
8695 | 8697 | ||
8696 | hsflctl.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFCTL); | 8698 | hsflctl.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL); |
8697 | /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ | 8699 | /* 0b/1b corresponds to 1 or 2 byte size, respectively. */ |
8698 | hsflctl.hsf_ctrl.fldbcount = size -1; | 8700 | hsflctl.hsf_ctrl.fldbcount = size -1; |
8699 | hsflctl.hsf_ctrl.flcycle = ICH8_CYCLE_WRITE; | 8701 | hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_WRITE; |
8700 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFCTL, hsflctl.regval); | 8702 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL, hsflctl.regval); |
8701 | 8703 | ||
8702 | /* Write the last 24 bits of index into Flash Linear address field in | 8704 | /* Write the last 24 bits of index into Flash Linear address field in |
8703 | * Flash Address */ | 8705 | * Flash Address */ |
8704 | E1000_WRITE_ICH8_REG(hw, ICH8_FLASH_FADDR, flash_linear_address); | 8706 | E1000_WRITE_ICH_FLASH_REG(hw, ICH_FLASH_FADDR, flash_linear_address); |
8705 | 8707 | ||
8706 | if (size == 1) | 8708 | if (size == 1) |
8707 | flash_data = (uint32_t)data & 0x00FF; | 8709 | flash_data = (uint32_t)data & 0x00FF; |
8708 | else | 8710 | else |
8709 | flash_data = (uint32_t)data; | 8711 | flash_data = (uint32_t)data; |
8710 | 8712 | ||
8711 | E1000_WRITE_ICH8_REG(hw, ICH8_FLASH_FDATA0, flash_data); | 8713 | E1000_WRITE_ICH_FLASH_REG(hw, ICH_FLASH_FDATA0, flash_data); |
8712 | 8714 | ||
8713 | /* check if FCERR is set to 1 , if set to 1, clear it and try the whole | 8715 | /* check if FCERR is set to 1 , if set to 1, clear it and try the whole |
8714 | * sequence a few more times else done */ | 8716 | * sequence a few more times else done */ |
8715 | error = e1000_ich8_flash_cycle(hw, ICH8_FLASH_COMMAND_TIMEOUT); | 8717 | error = e1000_ich8_flash_cycle(hw, ICH_FLASH_COMMAND_TIMEOUT); |
8716 | if (error == E1000_SUCCESS) { | 8718 | if (error == E1000_SUCCESS) { |
8717 | break; | 8719 | break; |
8718 | } else { | 8720 | } else { |
8719 | /* If we're here, then things are most likely completely hosed, | 8721 | /* If we're here, then things are most likely completely hosed, |
8720 | * but if the error condition is detected, it won't hurt to give | 8722 | * but if the error condition is detected, it won't hurt to give |
8721 | * it another try...ICH8_FLASH_CYCLE_REPEAT_COUNT times. | 8723 | * it another try...ICH_FLASH_CYCLE_REPEAT_COUNT times. |
8722 | */ | 8724 | */ |
8723 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8725 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8724 | if (hsfsts.hsf_status.flcerr == 1) { | 8726 | if (hsfsts.hsf_status.flcerr == 1) { |
8725 | /* Repeat for some time before giving up. */ | 8727 | /* Repeat for some time before giving up. */ |
8726 | continue; | 8728 | continue; |
@@ -8729,7 +8731,7 @@ e1000_write_ich8_data(struct e1000_hw *hw, uint32_t index, uint32_t size, | |||
8729 | break; | 8731 | break; |
8730 | } | 8732 | } |
8731 | } | 8733 | } |
8732 | } while (count++ < ICH8_FLASH_CYCLE_REPEAT_COUNT); | 8734 | } while (count++ < ICH_FLASH_CYCLE_REPEAT_COUNT); |
8733 | 8735 | ||
8734 | return error; | 8736 | return error; |
8735 | } | 8737 | } |
@@ -8848,7 +8850,7 @@ e1000_erase_ich8_4k_segment(struct e1000_hw *hw, uint32_t bank) | |||
8848 | int32_t j = 0; | 8850 | int32_t j = 0; |
8849 | int32_t error_flag = 0; | 8851 | int32_t error_flag = 0; |
8850 | 8852 | ||
8851 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8853 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8852 | 8854 | ||
8853 | /* Determine HW Sector size: Read BERASE bits of Hw flash Status register */ | 8855 | /* Determine HW Sector size: Read BERASE bits of Hw flash Status register */ |
8854 | /* 00: The Hw sector is 256 bytes, hence we need to erase 16 | 8856 | /* 00: The Hw sector is 256 bytes, hence we need to erase 16 |
@@ -8861,19 +8863,14 @@ e1000_erase_ich8_4k_segment(struct e1000_hw *hw, uint32_t bank) | |||
8861 | * 11: The Hw sector size is 64K bytes */ | 8863 | * 11: The Hw sector size is 64K bytes */ |
8862 | if (hsfsts.hsf_status.berasesz == 0x0) { | 8864 | if (hsfsts.hsf_status.berasesz == 0x0) { |
8863 | /* Hw sector size 256 */ | 8865 | /* Hw sector size 256 */ |
8864 | sub_sector_size = ICH8_FLASH_SEG_SIZE_256; | 8866 | sub_sector_size = ICH_FLASH_SEG_SIZE_256; |
8865 | bank_size = ICH8_FLASH_SECTOR_SIZE; | 8867 | bank_size = ICH_FLASH_SECTOR_SIZE; |
8866 | iteration = ICH8_FLASH_SECTOR_SIZE / ICH8_FLASH_SEG_SIZE_256; | 8868 | iteration = ICH_FLASH_SECTOR_SIZE / ICH_FLASH_SEG_SIZE_256; |
8867 | } else if (hsfsts.hsf_status.berasesz == 0x1) { | 8869 | } else if (hsfsts.hsf_status.berasesz == 0x1) { |
8868 | bank_size = ICH8_FLASH_SEG_SIZE_4K; | 8870 | bank_size = ICH_FLASH_SEG_SIZE_4K; |
8869 | iteration = 1; | ||
8870 | } else if (hw->mac_type != e1000_ich8lan && | ||
8871 | hsfsts.hsf_status.berasesz == 0x2) { | ||
8872 | /* 8K erase size invalid for ICH8 - added in for ICH9 */ | ||
8873 | bank_size = ICH9_FLASH_SEG_SIZE_8K; | ||
8874 | iteration = 1; | 8871 | iteration = 1; |
8875 | } else if (hsfsts.hsf_status.berasesz == 0x3) { | 8872 | } else if (hsfsts.hsf_status.berasesz == 0x3) { |
8876 | bank_size = ICH8_FLASH_SEG_SIZE_64K; | 8873 | bank_size = ICH_FLASH_SEG_SIZE_64K; |
8877 | iteration = 1; | 8874 | iteration = 1; |
8878 | } else { | 8875 | } else { |
8879 | return error; | 8876 | return error; |
@@ -8891,9 +8888,9 @@ e1000_erase_ich8_4k_segment(struct e1000_hw *hw, uint32_t bank) | |||
8891 | 8888 | ||
8892 | /* Write a value 11 (block Erase) in Flash Cycle field in Hw flash | 8889 | /* Write a value 11 (block Erase) in Flash Cycle field in Hw flash |
8893 | * Control */ | 8890 | * Control */ |
8894 | hsflctl.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFCTL); | 8891 | hsflctl.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL); |
8895 | hsflctl.hsf_ctrl.flcycle = ICH8_CYCLE_ERASE; | 8892 | hsflctl.hsf_ctrl.flcycle = ICH_CYCLE_ERASE; |
8896 | E1000_WRITE_ICH8_REG16(hw, ICH8_FLASH_HSFCTL, hsflctl.regval); | 8893 | E1000_WRITE_ICH_FLASH_REG16(hw, ICH_FLASH_HSFCTL, hsflctl.regval); |
8897 | 8894 | ||
8898 | /* Write the last 24 bits of an index within the block into Flash | 8895 | /* Write the last 24 bits of an index within the block into Flash |
8899 | * Linear address field in Flash Address. This probably needs to | 8896 | * Linear address field in Flash Address. This probably needs to |
@@ -8901,17 +8898,17 @@ e1000_erase_ich8_4k_segment(struct e1000_hw *hw, uint32_t bank) | |||
8901 | * the software bank size (4, 8 or 64 KBytes) */ | 8898 | * the software bank size (4, 8 or 64 KBytes) */ |
8902 | flash_linear_address = bank * bank_size + j * sub_sector_size; | 8899 | flash_linear_address = bank * bank_size + j * sub_sector_size; |
8903 | flash_linear_address += hw->flash_base_addr; | 8900 | flash_linear_address += hw->flash_base_addr; |
8904 | flash_linear_address &= ICH8_FLASH_LINEAR_ADDR_MASK; | 8901 | flash_linear_address &= ICH_FLASH_LINEAR_ADDR_MASK; |
8905 | 8902 | ||
8906 | E1000_WRITE_ICH8_REG(hw, ICH8_FLASH_FADDR, flash_linear_address); | 8903 | E1000_WRITE_ICH_FLASH_REG(hw, ICH_FLASH_FADDR, flash_linear_address); |
8907 | 8904 | ||
8908 | error = e1000_ich8_flash_cycle(hw, ICH8_FLASH_ERASE_TIMEOUT); | 8905 | error = e1000_ich8_flash_cycle(hw, ICH_FLASH_ERASE_TIMEOUT); |
8909 | /* Check if FCERR is set to 1. If 1, clear it and try the whole | 8906 | /* Check if FCERR is set to 1. If 1, clear it and try the whole |
8910 | * sequence a few more times else Done */ | 8907 | * sequence a few more times else Done */ |
8911 | if (error == E1000_SUCCESS) { | 8908 | if (error == E1000_SUCCESS) { |
8912 | break; | 8909 | break; |
8913 | } else { | 8910 | } else { |
8914 | hsfsts.regval = E1000_READ_ICH8_REG16(hw, ICH8_FLASH_HSFSTS); | 8911 | hsfsts.regval = E1000_READ_ICH_FLASH_REG16(hw, ICH_FLASH_HSFSTS); |
8915 | if (hsfsts.hsf_status.flcerr == 1) { | 8912 | if (hsfsts.hsf_status.flcerr == 1) { |
8916 | /* repeat for some time before giving up */ | 8913 | /* repeat for some time before giving up */ |
8917 | continue; | 8914 | continue; |
@@ -8920,7 +8917,7 @@ e1000_erase_ich8_4k_segment(struct e1000_hw *hw, uint32_t bank) | |||
8920 | break; | 8917 | break; |
8921 | } | 8918 | } |
8922 | } | 8919 | } |
8923 | } while ((count < ICH8_FLASH_CYCLE_REPEAT_COUNT) && !error_flag); | 8920 | } while ((count < ICH_FLASH_CYCLE_REPEAT_COUNT) && !error_flag); |
8924 | if (error_flag == 1) | 8921 | if (error_flag == 1) |
8925 | break; | 8922 | break; |
8926 | } | 8923 | } |