aboutsummaryrefslogtreecommitdiffstats
path: root/mpm
Commit message (Collapse)AuthorAgeFilesLines
* host: Add static_assert to prevent meta_range_t(0,0)Lane Kolbly2021-07-141-1/+1
| | | | | | | meta_range_t(0,0) actually calls the iterator-based constructor for meta_range_t, which is almost certainly not the intended constructor for that call syntax. Therefore, we add a static_assert to prevent such usage, and fix all failing instances.
* 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-1082-93/+28524
| | | | | | | | | | | | | | | | 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>
* transport: Set mtu to 9000 for all 10GbE use casesmattprost2021-06-101-1/+1
| | | | | | | | An default MTU value of 9000 gives the devices the most flexibility using 10GbE. Many interfaces and docs have already been updated. This is bringing all devices into alignment with this paradigm. Signed-off-by: mattprost <matt.prost@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: systemd: Add UseDomains=true to eth0.networkLars Amsel2021-06-031-0/+1
|
* mpm: Fix MD5 hashing of opkg statusLars Amsel2021-06-031-1/+1
|
* mpm: check-filesystem: liberalize version checkMichael Auchter2021-06-022-12/+3
| | | | | | | | | | 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 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-3117-3/+1386
| | | | | | | | | 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: Remove logging for mmap_regs_ifaceMartin Braun2021-04-121-2/+0
| | | | | These are very noisy, and the signal-to-noise ratio suffers when these are enabled.
* 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: Implement 32 bit register interface with SPIToni Jones2021-03-048-14/+120
| | | | | | | | | Implement SPI transfers which are 12 bytes in length to support access for 32 bit register interfaces. 12 byte transactions are necessary for Titanium MB PS CPLD SPI transactions. This implementation supports 48 bits of TX data per transfer and offsets all flags and data shifts from the end of the TX data portion of the transfer buffer rather than the end of the entire transfer buffer.
* 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.