uhd/mpm/tools
Martin Braun 8ca640b922 mpm: eeprom: Fix default values in EEPROM utilities
When executing eeprom-init on E320 (which was originally written for
N310), it would use defaults from N310, potentially causing issues.
These issues would have arisen if we letter-revved the E320 one more
time (because at rev 5, N310 had a compatibility cutover).

Summary of changes:
- eeprom-init will now read values *not* given on the command line from
  the existing content of the EEPROM, if it contains valid data. This
  means that DT, MCU, and rev compat values will no longer get
  auto-derived if the EEPROM already contained "good" values.
- If the EEPROM is empty or corrupted, eeprom-init will no longer run if
  the pid value is not provided. This is to avoid N310 defaults being
  written to E320 EEPROMs.
- A README is added to explain which devices use which utilities.
- PID checks are more strict now. It is unlikely we'll build new devices
  using the old EEPROM format (prior to TLV), so we can check
  specifically for E320, N3x0.
- The hard-coded list of PIDs for the EEPROM tools are moved to
  a central location (eeprom-pids.h).
- The code to derive values for DT/MCU/rev compat from the rev is now
  pid-specific and no longer device-agnostic.
2022-02-24 14:00:07 -06:00
..
tlv_eeprom mpm: cmake: Remove installation of non-relevant EEPROM tools 2022-02-16 14:52:55 -06:00
check-filesystem uhd: Add support for the USRP X410 2021-06-10 12:01:53 -05:00
CMakeLists.txt mpm: cmake: Remove installation of non-relevant EEPROM tools 2022-02-16 14:52:55 -06:00
db-dump.c mpm: Update all license headers 2018-02-19 16:55:08 -08:00
db-id.c mpm: tools: Added Rhodium ID to db-id utility 2018-10-25 10:30:59 -07:00
db-init.c tools: Fix handling of 0-valued dt-compat 2018-09-12 11:55:46 -07:00
eeprom-blank.c mpm: Update all license headers 2018-02-19 16:55:08 -08:00
eeprom-dump.c mpm: Update all license headers 2018-02-19 16:55:08 -08:00
eeprom-id.c mpm: eeprom: Fix default values in EEPROM utilities 2022-02-24 14:00:07 -06:00
eeprom-init.c mpm: eeprom: Fix default values in EEPROM utilities 2022-02-24 14:00:07 -06:00
eeprom-pids.h mpm: eeprom: Fix default values in EEPROM utilities 2022-02-24 14:00:07 -06:00
eeprom-set-flags.c mpm: Update all license headers 2018-02-19 16:55:08 -08:00
eeprom.c mpm: Add MB-EEPROMv3 2019-05-10 16:59:58 -07:00
eeprom.h mpm: eeprom: Fix default values in EEPROM utilities 2022-02-24 14:00:07 -06:00
fan-limits.c mpm: Update all license headers 2018-02-19 16:55:08 -08:00
mpm_debug.py mpm: Update all license headers 2018-02-19 16:55:08 -08:00
mpm_shell.py MPM: add ability to run scripts to MPM shell 2020-02-07 09:14:41 -06:00
program_x4xx_clkaux_lmk05318.py uhd: Add support for the USRP X410 2021-06-10 12:01:53 -05:00
README.md mpm: eeprom: Fix default values in EEPROM utilities 2022-02-24 14:00:07 -06:00
x4xx_clkaux_lmk05318_regs_revB.txt uhd: Add support for the USRP X410 2021-06-10 12:01:53 -05:00

EEPROM Utilities for embedded USRP devices

N3x0 and E320

The USRP N3x0 and E320 series share the same EEPROM formats. They are initialized, configured, and queried using the utilities in this folder (mainly, eeprom-dump and eeprom-id to read the EEPROM, eeprom-init to configure it, eeprom-blank to erase it, and eeprom-set-flags to configure the MCU flags).

The N3x0 series, which has additional EEPROMs on the daughterboard, has additional tools for those (db-dump, db-id, db-init).

The structure of the data is fixed. A good overview of how data is stored can be looked up either in usrp_mpm/eeprom.py or the structs in eeprom.h in this directory.

X410

The USRP X410 uses a different EEPROM data format (tag/length/value, TLV). It is more flexible than the format used on the previous devices. The tools to operate on the EEPROMs for those devices are stored under tlv_eeprom.

E31x

The USRP E31x series is not supported by these tools.