aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python
Commit message (Collapse)AuthorAgeFilesLines
* mpm: adding GPS sensor functionsBrent Stapleton2017-12-224-0/+198
| | | | | | Adding GPS TPV and SKY sensors to MPM, and their respective getters. Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: Harmonize imports, tidy + sort modulesMartin Braun2017-12-2234-71/+88
| | | | | | | | - Moved nijesdcore to cores/ - Moved udev, net, dtoverlay, uio to sys_utils/ - Made all imports non-relative (except in __init__.py files) - Removed some unnecessary imports - Reordered some imports for Python conventions
* n3xx: enable DRP access to DB MGTS & QPLLsdjepson12017-12-222-36/+249
| | | | | | | | - re-structured Magnesium.init_jesd() sequence to accomodate the reconfiguration - added DRP access protocols to nijesdcore.py - cleaned up a few comments and log statements in nijesdcore.py for flow Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: bfrfs: Assert reference buffer is a byte stringMartin Braun2017-12-221-0/+1
| | | | Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: Enable TX external LO set through args, simplify codeTrung N Tran2017-12-221-11/+19
| | | | | | | Simplify the process of setting external LO without calling through many API layers. Reviewed-By: Martin Braun <martin.braun@ettus.com>
* tdc: fix bug in pps capture reportingDaniel Jepson2017-12-222-8/+19
| | | | Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: add all time_source options and complete MB clk controlDaniel Jepson2017-12-221-10/+96
| | | | | | | | - complete time_source options to match updates to fpga registers - add methods for each of the bitfields in the clock control register - add init sequences for the meas_clk MMCM and PPS output Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: added uio for motherboard regssugandhagupta2017-12-221-7/+47
| | | | Reviewed-By: Martin Braun <martin.braun@ettus.com>
* mpm: Factor out xport managers as own objectsMartin Braun2017-12-229-233/+328
| | | | | | - Move XportMgr classes out of n310.py - Subclass them there and apply N310-specific settings - Remove chdr_interfaces option from PeriphManagerBase
* mpm: utils: Add string conversion utilitiesMartin Braun2017-12-221-0/+42
| | | | | | | Adds conversions for: - Any-to-binary - Any-to-UTF8 - Any-to-native
* mpm: close unused pyroute objectsTrung N Tran2017-12-221-33/+39
| | | | | | Current code have couple places that open pyroute2 without closing it. That seems to cause the file descriptor leakage. This change effectively fix the issue #1964
* mpm: Return correct value for usrp_hwd.py --init-onlyMartin Braun2017-12-221-1/+1
| | | | Before, it would always return success even if that failed.
* mpm: Fix python2 vs python3 zlib.crc32 output differenceSteven Bingler2017-12-221-1/+1
| | | | | | | Zlib's crc32 outputs signed values in python2 and unsigned values in python3. As per this page (https://docs.python.org/2/library/zlib.html) 0xffffffff can be AND'd to the result to get the same value between Python versions
* mpm: n310: Compile .dts files to .dtbo on updateMartin Braun2017-12-221-7/+31
| | | | Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: mg: Refactor init(), limit object scopesMartin Braun2017-12-221-39/+53
| | | | | | - ClockSynchronizer object has no more permanent lifetime - DboardClockControl object lives within `with' statement - dboard_ctrl_regs are limited to init()
* mpm: Add temporary failure for FPGA reloadMartin Braun2017-12-221-0/+9
| | | | | Note: This is subject to removal, but makes the FPGA reloading code available to all until we fix the reload bug.
* mpm: Reset periph manager on updateBrent Stapleton2017-12-224-15/+105
| | | | | | | | | | Upon updating certain components (the FPGA, for example), the Peripheral Manager is restarted, and the overlay is reapplied. In order to facilitate this, the RPC server intercepts and handles the update_component function. Tested on the RJ45 ethernet connection. It probably won't work as well if the SFP connection goes down when the overlay is removed.
* mpm: adding destructor for UIOBrent Stapleton2017-12-221-0/+11
| | | | UIO object now has an explicit destructor to properly tear down.
* mpm: PeriphManager decides and applies overlayBrent Stapleton2017-12-225-57/+14
| | | | | | | Previously, the daughterboard requested an overlay file based on SFP preference using magic values. This commit moves the decision making to the peripheral manager, which uses our singular name (ie 'n3xx' for the N310).
* fpga load: Components file paths in component dictBrent Stapleton2017-12-221-9/+12
| | | | | | Paths to the component files is now stored in the updateable_components dictionary. This makes them accessible in the base class, and generally cleans up the member variables.
* fpga load: Atomic updating of multiple componentsBrent Stapleton2017-12-222-40/+46
| | | | | | | - The MPM function update_component now accepts multiple components to be updated in one RPC call. - Updated the property tree and image loader to match this change. - Also added DTS loading to the image loader.
* mpm: mg: Add ref lock sensorMartin Braun2017-12-221-0/+15
| | | | | Note: The sensor API for this lives in n310, but it queries the dboards for a ref lock status, which is now no longer a stub.
* mpm: lmk04828: Fix docstringMartin Braun2017-12-221-2/+2
| | | | Says check_plls_locked() would throw an exception. That's not true.
* mpm: mg: Add flag to see if master clock rate is being changedMartin Braun2017-12-221-10/+26
| | | | Note: On the first run, this flag will always assert.
* mpm: mg: Fix linter errors, compacted SPI factoriesMartin Braun2017-12-221-27/+16
|
* mpm: mg: Move some class attributes to local scopesMartin Braun2017-12-222-32/+38
| | | | | | The clock_synchronizer, jesdcore, and dboard_clk_control objects don't need to exist for the full lifetime of the Magnesium class. Having them around complicates management of UIO file descriptors.
* mpm: n310: Remove unused imports (linter warnings)Martin Braun2017-12-221-2/+1
|
* mpm: mg: Remove unused spi_factories keyTrung N Tran2017-12-221-5/+3
|
* mpm: mg: Set default master_clock_rate to 125 MHz at every initTrung Tran2017-12-221-0/+2
|
* mpm: mykonos: Add API to change master clock rateTrung N Tran2017-12-221-1/+5
|
* jesd: add reset routine and make portions more generic for various linksdjepson12017-12-221-33/+101
|
* n3xx: add support for 122.88 and 153.6 MHz sample clock ratesMartin Braun2017-12-225-91/+207
| | | | | | - re-wrote portions of the LMK driver for flexible rates and configuration - tweaked TDC driver for compatibility and ease of debugging - updated comments and log statements throughout for uniformity
* mg: Enable variable master clock ratesMartin Braun2017-12-221-2/+6
| | | | | | | | | | The master_clock_rate argument is passed to init() during initialization; this change allows to query the correct MCR at initialization time. It does not allow changing the MCR while a session is active. The MCR also affects the LO settings; it is the reference clock for the lowband LOs.
* mpm: mg: Add dboard sensors for low- and highband LO lock statusMartin Braun2017-12-222-14/+26
| | | | | | | | | - Add LO locked APIs to Magnesium - Add LO locked sensor APIs for RX/TX and highband/lowband LOs - Poll all those sensors from magnesium_radio_ctrl_impl Reviewed-By: Steven Bingler <steven.bingler@ni.com> Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: Let usrp_hwd.py --init-only show init status and durationMartin Braun2017-12-221-1/+10
| | | | Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: mg: Optionally parallelize init calls to dboardMartin Braun2017-12-221-3/+19
| | | | | | Default is to run in parallel. serialize_init=1 will run them serially. Reviewed-By: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: n310: Made n310.__init__() more exception-safeMartin Braun2017-12-221-1/+15
|
* mpm: Made PeriphManagerBase.__init__ more exception-safeMartin Braun2017-12-221-4/+13
|
* mpm: discovery returns 'product' informationBrent Stapleton2017-12-222-2/+5
| | | | | - Added 'product' information to N310 - MPM discovery checks for 'product' field
* n3xx_bist: remove unused python packageTrung N Tran2017-12-221-1/+0
| | | | | This tqdm is not using anywhere and causing trouble for the sdimage; so I remove it.
* mpm: mg: Make Magnesium __init__ exception-safeMartin Braun2017-12-221-5/+33
|
* mpm: Make dboard manager __init__ exception-safeMartin Braun2017-12-221-12/+17
|
* mpm: net: Add ip_addr_to_iface() functionMartin Braun2017-12-221-0/+17
| | | | Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: n310: Allow Ethernet connections to both SFPsMartin Braun2017-12-221-16/+30
| | | | Reviewed-By: Trung Tran <trung.tran@ettus.com>
* mpm: enable RX external LO set through argsTrung N Tran2017-12-221-0/+11
| | | | | | | | | This change allow user to set RX LO of ad9371 to external or internal from args constructor of usrp device. new args is rx_lo_source value can be either internal or external: If there's no rx_lo_source specified or invalid value, default rx_lo is used; which is internal LO. Usage example: usrp_application --args "rx_lo_source=external"
* mg: enable init and track calibration APITrung Tran2017-12-221-2/+21
| | | | | | | | | | | | | | | | | | | Currently, AD9371 turned on most of the calibration and hard coding the turning on process during bringup time. This change enables users to pass in a mask field for init ARM calibration and tracking arm calibration at the time creating USRP device reference. This mask field can be passed through device arguments of: 1/ init_cals : for init ARM calibration masks. This is defined in AD9371 UG-992 table 65. Default to 0x4DFF 2/ tracking_cals : for tracking calibration masks. This is defined in AD9371 UG-992 table 66. Default to 0xC3 Example of pasing in init calibration and tracking calibration mask usrp_application --args "init_cals=0x4f, tracking_cals=0xC3" NOTE: UHD currently expect user to input the correct init_cals and tracking_cals. There's no mechanism to check if init mask and tracking mask are valid. For example if the init mask field not mask 0x4f, the AD9371 will failed to setup.
* mpm: Run C++ logger through central loggingMartin Braun2017-12-221-0/+16
| | | | Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mpm: mg: Add lowband LO lock and AD9371 lock sensorsMartin Braun2017-12-222-3/+55
| | | | Note: The AD9371 lock sensors are only stubbed out for now.
* mpm/mpmd: Move to request_xport()/commit_xport() architectureMartin Braun2017-12-225-166/+386
| | | | | This commit combines code from various branches to finally enable both UDP and Liberio transports.
* mpm: Lower logging level for PeriphManagerBase.deinit()Martin Braun2017-12-221-2/+2
|