Lines Matching +full:no +full:- +full:eeprom

6 /*-----------------------------------------------------------------------
18 * This may be interrupted with Ctrl-C if "intr" is true, otherwise it will
31 /* Pre-read the control register */ in e1000_spi_xfer()
38 return -1; in e1000_spi_xfer()
69 din[i >> 3] &= ~((mask << 1) - 1); in e1000_spi_xfer()
89 printf("ERROR: No such e1000 device: e1000#%u\n", bus); in spi_setup_slave()
94 if (hw->eeprom.type != e1000_eeprom_spi) { in spi_setup_slave()
95 E1000_ERR(hw, "No attached SPI EEPROM found!\n"); in spi_setup_slave()
101 E1000_ERR(hw, "No such SPI chip: %u\n", cs); in spi_setup_slave()
105 E1000_ERR(hw, "Only SPI MODE-0 is supported!\n"); in spi_setup_slave()
110 E1000_DBG(hw->nic, "EEPROM SPI access requested\n"); in spi_setup_slave()
111 return &hw->spi; in spi_setup_slave()
117 E1000_DBG(hw->nic, "EEPROM SPI access released\n"); in spi_free_slave()
125 E1000_ERR(hw, "EEPROM SPI cannot be acquired!\n"); in spi_claim_bus()
126 return -1; in spi_claim_bus()
160 /* The EEPROM opcodes */
168 /* The EEPROM status bits */
181 * of the EEPROM commands at this time.
204 return -1; in e1000_spi_eeprom_read_status()
213 (off >> (hw->eeprom.address_bits - 8)) & 0xff, off & 0xff in e1000_spi_eeprom_write_page()
218 if (e1000_spi_xfer(hw, 8 + hw->eeprom.address_bits, op, NULL, intr)) in e1000_spi_eeprom_write_page()
219 return -1; in e1000_spi_eeprom_write_page()
221 return -1; in e1000_spi_eeprom_write_page()
231 (off >> (hw->eeprom.address_bits - 8)) & 0xff, off & 0xff in e1000_spi_eeprom_read_page()
236 if (e1000_spi_xfer(hw, 8 + hw->eeprom.address_bits, op, NULL, intr)) in e1000_spi_eeprom_read_page()
237 return -1; in e1000_spi_eeprom_read_page()
239 return -1; in e1000_spi_eeprom_read_page()
251 return -1; in e1000_spi_eeprom_poll_ready()
257 /* Interruptibly wait for the EEPROM to be ready */ in e1000_spi_eeprom_dump()
259 return -1; in e1000_spi_eeprom_dump()
264 u16 pg_off = off & (hw->eeprom.page_size - 1); in e1000_spi_eeprom_dump()
265 u16 pg_len = hw->eeprom.page_size - pg_off; in e1000_spi_eeprom_dump()
271 return -1; in e1000_spi_eeprom_dump()
274 len -= pg_len; in e1000_spi_eeprom_dump()
289 u16 pg_off = off & (hw->eeprom.page_size - 1); in e1000_spi_eeprom_program()
290 u16 pg_len = hw->eeprom.page_size - pg_off; in e1000_spi_eeprom_program()
294 /* Interruptibly wait for the EEPROM to be ready */ in e1000_spi_eeprom_program()
296 return -1; in e1000_spi_eeprom_program()
300 return -1; in e1000_spi_eeprom_program()
304 return -1; in e1000_spi_eeprom_program()
307 len -= pg_len; in e1000_spi_eeprom_program()
314 return -1; in e1000_spi_eeprom_program()
338 else if (offset < (hw->eeprom.word_size << 1)) in do_e1000_spi_show()
339 length = (hw->eeprom.word_size << 1) - offset; in do_e1000_spi_show()
343 E1000_ERR(hw, "Requested zero-sized dump!\n"); in do_e1000_spi_show()
346 if ((0x10000 < length) || (0x10000 - length < offset)) { in do_e1000_spi_show()
358 /* Acquire the EEPROM and perform the dump */ in do_e1000_spi_show()
360 E1000_ERR(hw, "EEPROM SPI cannot be acquired!\n"); in do_e1000_spi_show()
373 printf("%s: ===== Intel e1000 EEPROM (0x%04hX - 0x%04hX) =====", in do_e1000_spi_show()
374 hw->name, offset, offset + length - 1); in do_e1000_spi_show()
377 printf("\n%s: %04hX: ", hw->name, offset + i); in do_e1000_spi_show()
408 E1000_ERR(hw, "Requested zero-sized dump!\n"); in do_e1000_spi_dump()
411 if ((0x10000 < length) || (0x10000 - length < offset)) { in do_e1000_spi_dump()
416 /* Acquire the EEPROM */ in do_e1000_spi_dump()
418 E1000_ERR(hw, "EEPROM SPI cannot be acquired!\n"); in do_e1000_spi_dump()
430 printf("%s: ===== EEPROM DUMP COMPLETE =====\n", hw->name); in do_e1000_spi_dump()
451 /* Acquire the EEPROM */ in do_e1000_spi_program()
453 E1000_ERR(hw, "EEPROM SPI cannot be acquired!\n"); in do_e1000_spi_program()
465 printf("%s: ===== EEPROM PROGRAMMED =====\n", hw->name); in do_e1000_spi_program()
489 E1000_ERR(hw, "Unable to allocate EEPROM buffer!\n"); in do_e1000_spi_checksum()
493 /* Acquire the EEPROM */ in do_e1000_spi_checksum()
495 E1000_ERR(hw, "EEPROM SPI cannot be acquired!\n"); in do_e1000_spi_checksum()
499 /* Read the EEPROM */ in do_e1000_spi_checksum()
509 checksum = ((uint16_t)EEPROM_SUM) - checksum; in do_e1000_spi_checksum()
514 printf("%s: INFO: EEPROM checksum is correct! (0x%04hx)\n", in do_e1000_spi_checksum()
515 hw->name, checksum); in do_e1000_spi_checksum()
521 E1000_ERR(hw, "EEPROM checksum is incorrect!\n"); in do_e1000_spi_checksum()
532 printf("%s: Reprogramming the EEPROM checksum...\n", hw->name); in do_e1000_spi_checksum()
554 if (hw->eeprom.type != e1000_eeprom_spi) { in do_e1000_spi()
555 E1000_ERR(hw, "No attached SPI EEPROM found (%d)!\n", in do_e1000_spi()
556 hw->eeprom.type); in do_e1000_spi()
560 /* Check the eeprom sub-sub-command arguments */ in do_e1000_spi()
562 return do_e1000_spi_show(cmdtp, hw, argc - 1, argv + 1); in do_e1000_spi()
565 return do_e1000_spi_dump(cmdtp, hw, argc - 1, argv + 1); in do_e1000_spi()
568 return do_e1000_spi_program(cmdtp, hw, argc - 1, argv + 1); in do_e1000_spi()
571 return do_e1000_spi_checksum(cmdtp, hw, argc - 1, argv + 1); in do_e1000_spi()