57 for (i = 0; i < length; i++)
60 return (
u8) (0 - sum);
78 DEBUGFUNC(
"e1000_mng_enable_host_if_generic");
81 DEBUGOUT(
"ARC subsystem not valid.\n");
88 DEBUGOUT(
"E1000_HOST_EN bit disabled.\n");
100 DEBUGOUT(
"Previous command timeout failed .\n");
118 DEBUGFUNC(
"e1000_check_mng_mode_generic");
137 s32 ret_val, hdr_csum, csum;
140 DEBUGFUNC(
"e1000_enable_tx_pkt_filtering_generic");
162 for (i = 0; i < len; i++)
197 DEBUGFUNC(
"e1000_mng_write_cmd_header_generic");
205 for (i = 0; i < length; i++) {
232 u16 remaining, i, j, prev_bytes;
234 DEBUGFUNC(
"e1000_mng_host_if_write_generic");
242 prev_bytes = offset & 0x3;
247 for (j = prev_bytes; j <
sizeof(
u32); j++) {
248 *(tmp + j) = *bufptr++;
252 length -= j - prev_bytes;
256 remaining = length & 0x3;
265 for (i = 0; i < length; i++) {
266 for (j = 0; j <
sizeof(
u32); j++) {
267 *(tmp + j) = *bufptr++;
275 for (j = 0; j <
sizeof(
u32); j++) {
277 *(tmp + j) = *bufptr++;
305 DEBUGFUNC(
"e1000_mng_write_dhcp_info_generic");
401 DEBUGFUNC(
"e1000_host_interface_command");
404 DEBUGOUT(
"Hardware doesn't support host interface command.\n");
409 DEBUGOUT(
"Firmware is not present.\n");
413 if (length == 0 || length & 0x3 ||
415 DEBUGOUT(
"Buffer length failure.\n");
422 DEBUGOUT(
"E1000_HOST_EN bit disabled.\n");
432 for (i = 0; i < length; i++)
434 *((
u32 *)buffer + i));
449 DEBUGOUT(
"Command has failed with no status valid.\n");
453 for (i = 0; i < length; i++)
473 u32 hicr, hibba, fwsm, icr, i;
478 DEBUGOUT(
"Hardware doesn't support loading FW by the driver\n");
485 DEBUGOUT(
"E1000_HOST_EN bit disabled.\n");
489 DEBUGOUT(
"E1000_HICR_MEMORY_BASE_EN bit disabled.\n");
494 DEBUGOUT(
"Buffer length failure.\n");
545 for (i = 0; i < length; i++) {
557 *((
u32 *)buffer + i));
573 DEBUGOUT(
"New FW did not start within timeout period.\n");
#define E1000_NVM_INIT_CTRL2_MNGM
s32 e1000_read_nvm(struct e1000_hw *hw, u16 offset, u16 words, u16 *data)
#define NVM_INIT_CONTROL2_REG
#define E1000_MANC_RCV_TCO_EN
#define E1000_MANC_SMBUS_EN
#define E1000_ERR_INVALID_ARGUMENT
#define E1000_ERR_HOST_INTERFACE_COMMAND
#define E1000_MANC_ASF_EN
#define E1000_HI_MAX_MNG_DATA_LENGTH
bool e1000_enable_tx_pkt_filtering_generic(struct e1000_hw *hw)
s32 e1000_mng_write_dhcp_info_generic(struct e1000_hw *hw, u8 *buffer, u16 length)
u8 e1000_calculate_checksum(u8 *buffer, u32 length)
s32 e1000_mng_enable_host_if_generic(struct e1000_hw *hw)
s32 e1000_mng_host_if_write_generic(struct e1000_hw *hw, u8 *buffer, u16 length, u16 offset, u8 *sum)
s32 e1000_mng_write_cmd_header_generic(struct e1000_hw *hw, struct e1000_host_mng_command_header *hdr)
s32 e1000_host_interface_command(struct e1000_hw *hw, u8 *buffer, u32 length)
bool e1000_enable_mng_pass_thru(struct e1000_hw *hw)
bool e1000_check_mng_mode_generic(struct e1000_hw *hw)
s32 e1000_load_firmware(struct e1000_hw *hw, u8 *buffer, u32 length)
#define E1000_HI_COMMAND_TIMEOUT
#define E1000_MNG_DHCP_COOKIE_OFFSET
#define E1000_FACTPS_MNGCG
#define E1000_MNG_DHCP_COMMAND_TIMEOUT
#define E1000_HI_FW_MAX_LENGTH
#define E1000_HICR_FW_RESET_ENABLE
#define E1000_FWSM_MODE_SHIFT
#define E1000_FWSM_HI_EN_ONLY_MODE
#define E1000_FWSM_FW_VALID
#define E1000_MNG_DHCP_COOKIE_STATUS_PARSING
#define E1000_MNG_DHCP_TX_PAYLOAD_CMD
#define E1000_HI_FW_BLOCK_DWORD_LENGTH
#define E1000_FWSM_MODE_MASK
#define E1000_HICR_MEMORY_BASE_EN
#define E1000_IAMT_SIGNATURE
#define E1000_MNG_DHCP_COOKIE_LENGTH
#define E1000_HI_FW_BASE_ADDRESS
#define E1000_HI_MAX_BLOCK_BYTE_LENGTH
#define E1000_MNG_IAMT_MODE
#define E1000_HICR_FW_RESET
#define E1000_READ_REG_ARRAY_DWORD
#define E1000_WRITE_REG_ARRAY_DWORD
#define E1000_WRITE_FLUSH(a)
#define E1000_WRITE_REG(hw, reg, value)
#define msec_delay_irq(x)
#define E1000_READ_REG(hw, reg)
struct e1000_mac_info mac
struct e1000_host_mng_dhcp_cookie mng_cookie
bool asf_firmware_present
struct e1000_mac_operations ops
bool(* check_mng_mode)(struct e1000_hw *)