uhd/mpm/tools
Abhishek Verma 1da439c020 host/mpm: change MPM_RPC_PORT to avoid UHD<4.10 discovery crash
UHD hosts <4.10 speak mprpc and unconditionally connect to the RPC port
(49601) of any device they discover. When they reach a gRPC-based MPM
device, the protocol mismatch crashes uhd_find_device.

UHd host 4.10, prevents this by using rpc_version key from discovery
response and skips RPC attempt if mprpc device found during
uhd_find_devices.

This change moves the RPC port to 49602. Now, old UHD <4.10 hosts can
still discover both mprpc and grpc devices. But their mprpc connection
attempt on 49601 during uhd_find_devices is refused by grpc device
(running on new rpc port 49602) and is marked as not reachable instead
of crashing.
2026-08-25 12:11:37 +02:00
..
tlv_eeprom mpm: tlv_eeprom: added eeprom IDs for X4XX L variants 2026-08-10 16:40:53 +02:00
check-filesystem mpm: check-filesystem: correct condition for mpm init successful 2026-07-23 10:49:27 +02:00
CMakeLists.txt mpm: tools: Use dts labels for mb, db eeproms 2026-06-25 14:47:14 +02:00
db-dump.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
db-id.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
db-init.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-blank.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-dump.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-id.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-init.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-pids.h mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom-set-flags.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
eeprom.h mpm: tools: Use dts labels for mb, db eeproms 2026-06-25 14:47:14 +02:00
fan-limits.c mpm: tools: apply clang-format 2026-06-25 14:47:14 +02:00
mpm_debug.py mpm: apply "ni-python-styleguide fix" to usrp_mpm 2026-02-04 14:02:15 +01:00
mpm_shell.py host/mpm: change MPM_RPC_PORT to avoid UHD<4.10 discovery crash 2026-08-25 12:11:37 +02:00
program_x4xx_clkaux_lmk05318.py mpm: apply "ni-python-styleguide fix" to usrp_mpm 2026-02-04 14:02:15 +01: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.