aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/tools
Commit message (Collapse)AuthorAgeFilesLines
* mpm: eeprom: Fix default values in EEPROM utilitiesMartin Braun2022-02-245-34/+113
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* mpm: cmake: Remove installation of non-relevant EEPROM toolsMartin Braun2022-02-162-15/+15
| | | | | On N3x0 and E3x0 devices, we were erroneously installing EEPROM utilities that are only relevant on X410.
* uhd: Add support for the USRP X410Lars Amsel2021-06-104-3/+454
| | | | | | | | | | | | | | | | Co-authored-by: Lars Amsel <lars.amsel@ni.com> Co-authored-by: Michael Auchter <michael.auchter@ni.com> Co-authored-by: Martin Braun <martin.braun@ettus.com> Co-authored-by: Paul Butler <paul.butler@ni.com> Co-authored-by: Cristina Fuentes <cristina.fuentes-curiel@ni.com> Co-authored-by: Humberto Jimenez <humberto.jimenez@ni.com> Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Lane Kolbly <lane.kolbly@ni.com> Co-authored-by: Max Köhler <max.koehler@ni.com> Co-authored-by: Andrew Lynch <andrew.lynch@ni.com> Co-authored-by: Grant Meyerhoff <grant.meyerhoff@ni.com> Co-authored-by: Ciro Nishiguchi <ciro.nishiguchi@ni.com> Co-authored-by: Thomas Vogel <thomas.vogel@ni.com>
* mpm: check-filesystem: liberalize version checkMichael Auchter2021-06-021-2/+2
| | | | | | | | | | check-filesystem assumed that UHD's version string always had the format of <version>-<git_count>-<git_hash>. However, this is not always the case; see ./host/cmake/Modules/UHDVersion.cmake for more details. Instead of trying to parse the version string into components, just check to make sure the version and git hash are present in the version string.
* tlv_eeprom: add eeprom-set-autoboot helper scriptMichael Auchter2021-05-312-0/+60
| | | | | | | This adds a simple script to control the autoboot flag (i.e., whether the device will automatically boot when power is connected or not). Signed-off-by: Michael Auchter <michael.auchter@ni.com>
* mpm: add tlv_eepromMichael Auchter2021-05-3115-2/+1238
| | | | | | | | | Add support for parsing an eeprom that uses tag-length-value to store contents. Co-authored-by: Michael Auchter <michael.auchter@ni.com> Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Co-authored-by: Cristina Fuentes <cristina.fuentes@ni.com>
* mpm: Fix issue with check-filesystem test executionJoerg Hofrichter2020-11-111-6/+6
| | | | | | | | | | This fixes tests that are invoked with arguments `--dt-overlays-loaded`, `--dt-overlays-available`, `--systemd-init-successful`, and `--mpm-init-successful`. Without this fix, the following error is generated: `ERROR: test_mpm_init_successful (name '_assert_filesystem_root_is_not_set' is not defined)`
* mpm: added check-filesystem utilityJoerg Hofrichter2020-10-062-0/+157
|
* MPM: add ability to run scripts to MPM shellLars Amsel2020-02-071-34/+83
| | | | | | | | | | | | | | | MPM shell now supports script execution. It utilizes the cmdqueue of Pythons cmd.Cmd class for this. The script to execute is a text file containing the commands one per line. The output decoration of MPM shell changed. Commands are decorated with ">" whereas responses use "<" at line start. Multiline responses are decorated in each line. Cleanup overwritten methods of cmd.Cmd to allow proper shutdow in interactive as well as in scripted mode. Improved pylint score.
* mpm: include the failed mpm_shell commandbidavis2020-01-061-1/+1
| | | | This commit changes an mpm_shell error message to include the command that failed when the mpm_shell does not have the claim token.
* mpm: Add MB-EEPROMv3Martin Braun2019-05-103-11/+34
| | | | | | | | | | This includes a rev_compat field, which we can use to identify the last hardware revision this hardware is compatible with. Example: Say the current hardware revision is 7, but it is compatible with version 5, then we store 7 as the current rev, and 5 as the rev_compat. Software can now check the rev_compat rather than the current rev for compatibility. This makes MPM more future-proof against minor, compatible hardware changes.
* e310/e320: Move E310 to MPM architecture and refactorSugandha Gupta2019-05-011-2/+2
| | | | | | | | | | | | - Turns the E310 into an MPM device (like N3xx, E320) - Factor out common code between E320 and E310, maximize sharing between the two devices - Remove all pre-MPM E310 code that is no longer needed - Modify MPM to remove all existing overlays before applying new ones (this is necessary to enable idle image mode for E310) Co-authored-by: Virendra Kakade <virendra.kakade@ni.com> Signed-off-by: Virendra Kakade <virendra.kakade@ni.com>
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-081-1/+1
| | | | Updating all SPDX license identifiers to include "-or-later"
* mpm_shell: Multiprocessing instead of threading for claimer loopAlex Williams2018-12-171-53/+86
| | | | | | If we use threading, the claimer loop's thread won't get scheduled in a timely manner on n3xx. Using multiprocessing frees the claimer loop from using the same GIL and gives back timely reclaim calls.
* cmake: Update coding style to use lowercase commandsMartin Braun2018-11-141-18/+18
| | | | | | | | | | | | | | | | | Also updates our coding style file. Ancient CMake versions required upper-case commands. Later command names became case-insensitive. Now the preferred style is lower-case. Run the following shell code (with GNU compliant sed): cmake --help-command-list | grep -v "cmake version" | while read c; do echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g' done > convert.sed \ && git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \ '*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed (Make sure the backslashes don't get mangled!)
* mpm: tools: Added Rhodium ID to db-id utilityDerek Kozel2018-10-251-1/+3
|
* tools: Fix handling of 0-valued dt-compatAlex Williams2018-09-121-1/+3
| | | | | | A value of 0 for dt-compat would cause db-init to use the rev instead. This fixes the check to be on number of args instead of the dt-compat value.
* mpm: Fix eeprom-tools in CMakeBrent Stapleton2018-07-191-2/+2
| | | | | | | Fixes the list of epprom-tools to be built in CMake. The list of tools is appended, instead of being overwritten by device-specific tools. Fixes: 300a5e3f6e5e [mpm: initial commit of E320 code]
* mpm: tools: eeprom-id: Add E320 product id to eeprom-idMoritz Fischer2018-07-181-0/+3
| | | | | | Add E320 product id to eeprom-id executable Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: initial commit of E320 codeBrent Stapleton2018-07-181-7/+14
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* mpm: tools: eeprom-init: Fix issue with dt/mcu-compat numberMoritz Fischer2018-07-121-4/+8
| | | | | | | | | | | Fix issue with dt-compat and mcu-compat numbers not working for the case where 0 is a legitimate dt/mcu compat number. This can happen if a Rev2 board (1 in hardware) shares a DT or MCU firmware with the Rev1 board (0 in hardware). Fixes 91a5518443f ("mpm: tools: Introduce dt-compat ...") Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: tools: Introduce dt-compat and mcu-compat fieldsMoritz Fischer2018-06-205-29/+113
| | | | | | | | | | | | | | | | Introduce dt-compat and mcu-compat fields into the eeprom structure. For the motherboard eeprom this is straightforward, since there's still padding bytes that could be (ab)used for this. On the dboard side more creativity is required and the original revision field of 2 bytes is reduced to only one byte revision and one byte dt-compat. Since this will only affect new units being backwards compatible with older versions of the bootloader is not an issue. Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com> Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: Fixed db slot typo in db-idDerek Kozel2018-04-231-1/+1
|
* mpm: break up device compilationBrent Stapleton2018-03-051-3/+3
| | | | Breaking up dboard compilation based on the target MPM_DEVICE.
* mpm: Update EEPROM tools to allow setting PIDMartin Braun2018-03-052-7/+23
| | | | | | Default behaviour is to fall back to writing the N310 PID (0x4242). Reviewed-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: Update all license headersMartin Braun2018-02-1913-15/+15
| | | | | - Fix typo in company name (missing 'a') - Updated SPDX license identifier to version 3.0
* mpm: Changed mpm_shell to support scripted useDerek Kozel2018-01-241-14/+16
|
* mpm: Add EEPROM utilities for N310Martin Braun2018-01-1212-4/+960
| | | | Actually-written-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: Harmonize all license headerMartin Braun2017-12-223-28/+11
| | | | Now uses SPDX headers everywhere.
* mpm: Add 'hijack' mode to mpm_shellMartin Braun2017-12-221-1/+42
|
* mpm: RPC methods now tell us if they need a claimMartin Braun2017-12-221-10/+24
| | | | | | On the RPC server side, we keep track of which methods require a claim token. MPM shell uses this info to automatically add claim tokens when required.
* mpm: Added mpm_shell.pyMartin Braun2017-12-223-117/+356
| | | | | Was actually the old rpc_shell.py, was renamed and heavily refactored. Now includes claim logic and other fancy features.
* mpm: Replaced xrange with range for better Python future-proofingMartin Braun2017-12-221-1/+1
|
* mpm: mpm reorganizationAndrej Rode2017-12-221-2/+28
|
* mpm: CMake cleanup, Python code enhancementsAndrej Rode2017-12-223-24/+128
| | | | | - Send user defined data in ping - Improve rpc_shell, add mpm_debug.py, fix tracebacks in multiprocessing
* Initial commit for N3xx development.Martin Braun2017-12-221-0/+96
- Creates mpm/ subdirectory - First pass at hardware daemon/MPM - New code for LMK04828, AD9371 - spidev integration Contributions by: Martin Braun <martin.braun@ettus.com> Derek Kozel <derek.kozel@ettus.com> Mark Meserve <mark.meserve@ni.com> Andrej Rode <andrej.rode@ettus.com>