aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python
Commit message (Collapse)AuthorAgeFilesLines
* mpmd: Add discoverable feature for trig i/o modeGrant Meyerhoff2021-09-021-1/+1
|
* mpm: x4xx: update mboard_max_revAndrew Lynch2021-08-251-1/+1
|
* MPM: add X410 support for 250e6 master clock rateMichael Dickens2021-08-241-0/+1
|
* n3xx: Add support for rev 10michael-west2021-08-161-1/+1
| | | | | | No hardware interface change, so just bumping max revision. Signed-off-by: michael-west <michael.west@ettus.com>
* N320: Reduce PLL lock timemichael-west2021-08-161-5/+5
| | | | | | | - Reduce PLL1 DLD lock count to 4,000 (0xFA0), or 100ms - Change loop to check for lock every 10ms Signed-off-by: michael-west <michael.west@ettus.com>
* mpm: Expose motherboard regs for debuggingSam O'Brien2021-08-131-0/+9
| | | | | | | | | There currently isn't a way to access the motherboard register using MPM (the ones defined in x4xx_global_regs). This commit adds a simple interface to peek and poke them which is very similar to the current interface for the daughter board registers. Signed-off-by: Sam O'Brien <sam.obrien@ni.com>
* mpm: Skip DTS compatibility check if DTS is not being updated.Andrew Lynch2021-07-091-1/+2
|
* mpm: zbx: Fix revision compat checkMartin Braun2021-07-081-11/+35
| | | | | | | | | | | | | | | The revision compat check for ZBX hardware is broken. It requires the rev_compat register to read 1. However, that is the value for RevA, which we are deliberately *not* supporting. Supported revisions are B and C, which have a rev_compat value of 2. We therefore change the check to support revision 2, but not 1. In the future, we would support revisions 2 and up if there are more revs to ZBX. Valid rev_compat values are tracked in a whitelist (which we need to update as we produce more revisions). This patch fixes an issue where MPM wouldn't start when ZBX revisions B or C are plugged in.
* mpm: Update usrp_update_fs to support X410Martin Braun2021-07-081-8/+13
| | | | | | | | | With this patch, we can, for example, run usrp_update_fs -t master to download the currently most up-to-date filesystem and apply to the device.
* mpm: max10_cpld_flash_ctrl: improve programming logHumberto Jimenez2021-07-071-4/+4
|
* mpm: update x410 fpga minor compat numberHumberto Jimenez2021-06-241-1/+1
|
* mpm: Bump MPM compat version to 4.0Lane Kolbly2021-06-241-1/+1
|
* mpm: Move cal freeze defaults to x4xxLane Kolbly2021-06-232-3/+27
| | | | | | | | This fixes an issue where the slot 0 ADC blocks would erroneously report that they were unfrozen. Additionally, adds logic to restore a saved cal freeze state on sync source change.
* mpm: restore rfdc nco frequency after setting sync sourceGrant Meyerhoff2021-06-222-0/+31
| | | | After setting sync sources, the RFDCs get reset, we need to restore the previously set frequencies so that the device continues to transmit/receive at the requested frequency
* mpm: tests: Add lib/ to library load pathAaron Rossetto2021-06-181-1/+8
| | | | | Ensure that DYLD_LIBRARY_PATH on OS X or LD_LIBRARY_PATH on Linux platforms is set appropriately before invoking MPM's Python unit tests.
* mpm: install cpld update scripts in runtime dirMichael Auchter2021-06-161-0/+10
|
* mpm: x4xx_bist: run spi_flash tests on both DBsMichael Auchter2021-06-151-9/+29
| | | | | By default, run the spi_flash tests on both daughterboards instead of only the first one.
* mpm: max10_cpld_flash_ctrl: only reprogram cpld if necessaryMichael Auchter2021-06-101-0/+8
| | | | | | | When updating the CPLD via the flash method, first read back the CPLD image from flash and compare it with the image to be programmed. If they match, the CPLD is already running the correct image and reprogramming it is not necessary.
* uhd: Add support for the USRP X410Lars Amsel2021-06-1043-74/+9642
| | | | | | | | | | | | | | | | 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: Add chip driver for LMK05318 PLLThomas Vogel2021-06-033-0/+198
|
* mpm: gpsd_iface: Make GPGGA generation more robustMartin Braun2021-06-031-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | The GPGGA string generation relies on TPV and SKY messages being accurate, meaning they are a list of dictionaries. There have been cases where this was inaccurate (an empty list was returned). MPM would show errors as such: [ERROR] [MPM.RPCServer] Uncaught exception in method get_mb_sensor :list index out of range Traceback (most recent call last): File "/usr/lib/python3.7/site-packages/usrp_mpm/rpc_server.py", line 184, in new_claimed_function return function(*args) File "/usr/lib/python3.7/site-packages/usrp_mpm/periph_manager/base.py", line 1000, in get_mb_sensor self, self.mboard_sensor_callback_map.get(sensor_name) File "/usr/lib/python3.7/site-packages/usrp_mpm/gpsd_iface.py", line 313, in get_gps_gpgga_sensor tpv_sensor_data = gps_info.get('tpv', [{}])[0] IndexError: list index out of range This is a patch to check that the lists are not empty before directly referencing index 0 therein.
* mpm: sys_utils: add libgpiod-based Gpio helperMichael Auchter2021-06-034-6/+143
| | | | | | This adds a new Gpio helper class, which uses libgpiod under the hood instead of the deprecated sysfs GPIO access. This class provides the ability to get/set a specific GPIO, which is looked up by name.
* mpm: Remove helper classes from RPC APILars Amsel2021-06-031-9/+9
| | | | | | | | All public callables are exported as part of the RPC API. Because classes are callable in Python they are now protected to prevent export. Having theses inner helper classes marked as protected also matches better their purpose as the are not meant to be used outside the class.
* mpm: Fix MD5 hashing of opkg statusLars Amsel2021-06-031-1/+1
|
* mpm: check-filesystem: liberalize version checkMichael Auchter2021-06-021-10/+1
| | | | | | | | | | 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.
* mpm: add unit tests for EEPROM readersLars Amsel2021-05-3110-0/+201
|
* mpm: Add symbol name based EEPROM read, cleanup EEPROM handlingLars Amsel2021-05-312-71/+217
| | | | | | | | | | | | Handling of EEPROM read was cleanup in PeriphManagerBase such that EEPROM reading for mother and daugther board have similar names and signatures. Base class supports symbol names for the nvmem files which make it easy to find them by name such as db0_eeprom instead of addresses like ff020000.i2c:cros-ec@3c:db0-i2c-tunnel. Base class furthermore reads out all available auxiliary board EEPROM files and stores them in a dictionary member.
* mpm: add tlv_eepromMichael Auchter2021-05-312-1/+148
| | | | | | | | | 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>
* fixup! ic_reg_maps: Remove SPCC core reg mapmichael-west2021-05-281-4/+0
|
* mpm: gpsd_iface: Refactor classMartin Braun2021-05-241-94/+103
| | | | | | - There's a lengthy conversion of TPV/SKY dicts into GPGGA which is removed from the class to enhance readability - The file had some Pylint issues, including a Python2-ism
* mpm: remove unnecessary importsMichael Dickens2021-05-201-2/+0
|
* mpm: add FPGA type to the info returned during discoveryMichael Dickens2021-05-203-0/+8
| | | | Also update this info upon server reset, such as when a new FPGA image is loaded
* mpm: remove unused argument infoMichael Dickens2021-05-201-2/+0
|
* MPM for N32x: Add 'XQ' image as valid when using sfp0 as time_sourceMichael Dickens2021-05-181-1/+1
|
* mpm: lmk04832: Clean up driverMartin Braun2021-05-101-12/+23
| | | | Mostly cosmetic and Pylint fixes.
* mpm: PeriphManagerBase: Add _add_public_methods()Martin Braun2021-04-291-0/+41
| | | | This allows conditionally adding public API methods.
* mpm: Fix minor log formatting issueMartin Braun2021-04-271-1/+1
|
* mpm: db_flash: Check mount status before mountingMartin Braun2021-04-261-7/+13
| | | | | This will make sure the flash partition is not already mounted before trying to re-mount.
* fixup! mpm: rpc: don't expose reset_mgr call via RPCGrant Meyerhoff2021-04-221-1/+1
|
* mpm: sysutils: mount: Check both mount point and data pathMartin Braun2021-04-211-4/+5
| | | | | This will return False on ismounted() if a Mount class is mounted, but in the wrong spot.
* mpm: mount: Demote already-mounted warningMartin Braun2021-04-211-1/+1
| | | | | | | | The class Mount defines a mount point and device path. It currently warns if mount() is called twice, but that warning is at odds with the contract of that API. It even returns 'True' (== success) after printing the warning, and the outcome is the desired one. For that reason, we demote the warning to a debug statement.
* mpm: periph_mgr: Demote "no SPI nodes" warningMartin Braun2021-04-211-1/+1
| | | | | | | | | When there are SPI nodes declared for a daughterboard, MPM will emit a warning: "No SPI nodes for dboard". The warning is misleading, because this only occurs when no SPI nodes where *declared*, not when they were declared but not found. This is entirely normal for USRPs where the daughterboards do not have SPI nodes, and thus, not even worth a debug statement.
* mpm: mg: periphs: Read lowband lo lock status from cpldmattprost2021-04-191-1/+2
| | | | | | | Fix the issue where N310 did not correctly read the lo lock status from the cpld. Signed-off-by: mattprost <matt.prost@ni.com>
* mpm: Remove references to rfnoc_num_blocksMartin Braun2021-04-122-4/+4
| | | | | | | | | | | rfnoc_num_blocks is a device arg that could be used in UHD 3.15 (and below) to artificially skip enumeration of RFNoC blocks. Since the block enumeration works very differently in UHD 4, this arg was never supported there. This removes references to this arg in some BIST files. It is not harmful, but also serves no purpose, and could be construed as being useful upon lecture of these codes.
* mpm: periph manager: Fix get_mb_eeprom() return value formattingMartin Braun2021-03-251-1/+4
| | | | | | | | | | The get_mb_eeprom() RPC call is supposed to return a string -> string map and thus converts all EEPROM entries to strings. However, for raw strings, the existing conversion (using str()) was not correct (we need to decode raw strings first). This would lead to things like the serial being returned as b'ABCD123' instead of just ABCD123.
* mpm: rpc: don't expose reset_mgr call via RPCThomas Vogel2021-03-111-2/+2
|
* mpm: Add i2c_dev lookup using sys_nameToni Jones2021-03-081-7/+51
| | | | | | | | | | | Add i2c_dev adapter device lookup which uses a the sys_name value instead of OF_NAME to find the adapter. OF_NAME is not unique for some i2c device nodes. The logic for finding the adapter from the parent node was pulled into a helper function and is shared across both lookup functions. Co-authored-by: Michael Auchter <michael.auchter@ni.com> Co-authored-by: Toni Jones <toni.jones@ni.com>
* mpm: rpc: Use contextmanager for claim timeoutsToni Jones2021-03-041-13/+12
| | | | | Modify the RPC claim timeout mechanism to use a contextmanager helper function when enabling/disabling timeouts.
* mpm: add helper for symbol lookupCiro Nishiguchi2021-03-041-0/+81
| | | | | | | Add a helper that can lookup a device via a device tree symbol. Co-authored-by: Lars Amsel <lars.amsel@ni.com> Co-authored-by: Michael Auchter <michael.auchter@ni.com>
* mpm: Add DboardIface for MB DB driver controlToni Jones2021-03-044-0/+111
| | | | | | | | Add DboardIface class which will act as an interface to bridge the gap between MB and DB drivers in MPM. The DboardIface will be implemented by each Motherboard with MB specific information. Dboard objects will then instantiate the class in order to utilize the implemented control functions.