MPLAB Connect parity — feature checklist for the LAN7800 Linux app

Source: CONDUCTOR research scout. Match the MPLAB Connect Configurator GUI feature set. Docs to mirror: DS50002634D (GUI), DS50002552A Ch.11 (CLI/INI field schema), DS50002629 (CLI).

Transport (settles the access-method question)

LAN78xx is driven through Microchip's kernel network driver (NDIS miniport on Windows), NOT WinUSB/libusb — WinUSB is their USB-hub path only. The Linux analog is the in-tree lan78xx driver via ethtool -e/-E, which is exactly what Microchip's own support article "LAN78xx EEPROM/OTP Programming on Linux" recommends. → ethtool is the right primary.

CORE (v1 table-stakes parity)

  • EEPROM read → .bin dump, write image + verify, erase / restore defaults (EEPROM only, not OTP). Support both 256- and 512-byte parts.
  • Config file = raw binary .bin — byte-for-byte EEPROM image, NOT json. (JSON/.cfg is hub-line only; do not implement it for LAN78xx.) Load base → edit → Preview the exact .bin without touching hardware → Save.
  • MAC (single): colon hex; Microchip OUI 00:80:0F.
  • USB descriptor overrides: VID, PID, bcdDevice/DID (on LAN7800 set BOTH USB2 and USB3 VID/PID), string descriptors (Manufacturer, Product, Configuration, Interface — each enable/disable; empty string disables), serial number.
  • Signature contract (must be byte-exact): EEPROM byte0 = 0xA5; OTP 0xF3→payload@0x01, 0xF7→payload@0x100; 0xFF on OTP sig = permanently dead (guard hard in UI). Tools lay down the signature automatically when compiling settings→image.
  • Verify-after-write is mandatory — read back and compare on every write cycle.
  • Model EEPROM-over-OTP boot precedence in the UI (warn: if it boots from EEPROM, OTP writes appear to "do nothing").

ADVANCED (later)

  • OTP program (write-once, "fixed location"), MAC ranges / mass production (Start/Max/Increment for MAC + serial), multi-adapter targeting.
  • Config flags / raw register overrides (ConfigFlags0/3/4/5), LED (4 LEDs × 16 modes + behavior), GPIO, PME/wake-up-frame filters, power (Self/Bus, SSMaxPower/HSMaxPower), remote wakeup.
  • Live register R/W (control/status + PHY), production test harness (ping/loopback/speed).
  • Optional human-readable source format (INI/TOML) that compiles to the .bin (that's what MPLAB's INI layer is). Not required for v1.

LED modes (16), for later parity

0 Link/Act,1 Link1000/Act,2 Link100/Act,3 Link10/Act,4 Link100+1000/Act,5 Link10+1000/Act, 6 Link10+100/Act,7 rsvd,8 Duplex/Collision,9 Collision,10 Activity,11 rsvd,12 AutoNeg Fault, 13 Serial Mode,14 Force Off,15 Force On. + behavior reg (blink 2.5/5/10/20Hz, 5kHz pulse).

Reading order (sources)

  1. DS50002552A Ch.11 (definitive INI/BIN field schema) 2. DS50002634D (GUI) 3. DS50002629 (CLI)
  2. EVB-LAN7800 UG DS50002482A (boot precedence) 5. support.microchip.com "LAN78xx EEPROM/OTP Programming on Linux". Local PDFs saved this session under scratchpad (lan7800_sw_guide.pdf, mplab_gui.pdf).