aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mpm: Remove leading _ from _get_device_info()Martin Braun2017-12-223-4/+5
| | | | Use @norpc instead. This fixes some linting issues.
* mpm: Make list_updateable_components return somethingMartin Braun2017-12-221-2/+1
|
* mpmd: Use the get_last_error feature from the RPC clientMartin Braun2017-12-222-2/+6
| | | | | The RPC client will now query the MPM server for details when an error occured.
* mpm: Improve exception/error handlingMartin Braun2017-12-221-19/+75
| | | | | | | | - Any RPC call with uncaught exceptions will result in additional logging on MPM side - Adds get_last_error() API call - get_last_error() is populated by various methods within rpc_server.py, but also from every uncaught exception
* rpc: Add feature to retrieve an error stringMartin Braun2017-12-221-6/+58
| | | | | | It can be helpful to go back to the RPC server for clarification on what just happened. This adds an optional argument to the RPC client for how to retrieve that info.
* fpga load: adding MPMD image loader functionBrent Stapleton2017-12-222-0/+107
| | | | uhd_image_loader now supports type=n310, and loads the FPGA provided in the arguments.
* fpga load: adding updateable components to mpmd property treeBrent Stapleton2017-12-221-0/+38
| | | | The FPGA image, and other components, can now be set from the property tree. The registered function expects a component_file_t, which combines the data file and metadata dictionary.
* mg: Add static gain tables and -supportMartin Braun2017-12-229-279/+799
| | | | | | | | | - Adds two new compilation units (magnesium_gain_table.* and magnesium_radio_ctrl_gain.cpp) - Static gain tables are hard-coded in that file, includes method to look up gain table entries for a given frequency and gain - DSA code moved back to accept attenuation - TX/RX switch code needed update to enable bypass for certain gains
* mg: Make CPLD API more fine-grainedMartin Braun2017-12-223-99/+250
| | | | | | | | | All ATR settings were on one big API call for each TX and RX, respectively. This splits up the ATR settings into related components, such as: - Antenna input for RX side - Frequency-related (RX LNAs) - TRX switch
* mg: Added stubs for LO controlsMartin Braun2017-12-222-0/+77
|
* mg: Refactor magnesium_radio_ctrl and friendsMartin Braun2017-12-229-1014/+1275
| | | | | | - Spin out AD9371 control into its own class - Split file into multiple compilation units - Fixed many minor code formatting issues
* mg: Add defer_commit argument to CPLD controlsMartin Braun2017-12-222-15/+32
| | | | | This will set you call setters on the CPLD control object without immediately triggering a SPI transaction.
* mg: Add support for TX switches.Alex Williams2017-12-221-2/+58
|
* n3xx: add atr switch update for tx directionTrung N Tran2017-12-222-3/+29
|
* mpmd: added support for the skip_init key in the device argsBrent Stapleton2017-12-222-16/+30
| | | | Adding skip_init to the device args makes it so rfnoc blocks, etc. are not initialized.
* fpga load: add N310 update FPGA functionBrent Stapleton2017-12-221-0/+14
| | | | | -update_fpga loads the FPGA image from the base class's update_component function -checks if FPGA image is a bit or bin file, and converts to Zynq-compatible binfile if necessary
* fpga load: add update_component function to MPMBrent Stapleton2017-12-222-0/+95
| | | | | | | | -update_component takes a byte array containing the data to be written, and a dictionary containing the metadata of the component to be updated -The metadata must contain 'id' and 'filename' -The metadata may contain an md5 hash ('md5')
* mg: Add DSA, AD9371, and total gainTrung N Tran2017-12-223-54/+246
| | | | | | | - Adds gains to gain group: dsa, ad9371 - Defaults to splitting gains evenly across group members - Adds gain_mode which allows automatic gain setting, or manually setting DSA vs. AD9371
* n3xx: Configure antenna switchingTrung N Tran2017-12-222-46/+72
| | | | | This enables the various bands for the Magnesium dboard. Note: Tx support is not part of this commit.
* mg: Add support for low band LOs and RX switchesAlex Williams2017-12-222-4/+272
|
* mg: Add controls for frontpanel- and internal GPIOsMartin Braun2017-12-222-1/+46
| | | | | | | | - FP-GPIOs are currently unconnected, we just create the object (pending FPGA changes) - One ATR/GPIO controller per radio - Internal GPIOs (controlling DSA and AD9371 gain bits) are set to MODE_GPIO, they don't toggle on ATR state change
* mg: Add peripheral controls for CPLD and LO synthesizersMartin Braun2017-12-222-2/+106
|
* mg: Refactored control classMartin Braun2017-12-222-185/+282
| | | | | | | - Reordered methods - Renamed AD9371-specfic functions with _myk prefix - Renamed _slot_prefix to _rpc_prefix - Moved to 4-radio model (one RFNoC block per channel)
* mg: Add control object for CPLDMartin Braun2017-12-223-0/+634
|
* ic_reg_maps: Add reg map for the Magnesium CPLDMartin Braun2017-12-222-0/+170
|
* mpm: Minor refactoring of PeriphManagerBase attributesMartin Braun2017-12-222-8/+3
|
* sync: add PDAC BIST testdjepson12017-12-221-0/+80
|
* n3xx_bist: Fix spurious reference to self.REVMartin Braun2017-12-221-2/+1
|
* mpm: server supports binary strings being sent across rpcBrent Stapleton2017-12-221-2/+7
|
* n3xx_bist: Specify localhost for opening UHD sessionsMartin Braun2017-12-221-1/+1
|
* mpm: tdc_sync: Fix number of samples, formatting issuesMartin Braun2017-12-221-7/+9
| | | | | | - Number of samples for TDC measurement bumped back up to 512 (was previously reduced because of slow sampling speed) - Non-functional changes: Modified formatting to pacify PyLint
* mpm: Replace MMCM lock and TDC PPS sleeps with poll_with_timeoutMartin Braun2017-12-222-12/+18
| | | | This increases init speed by replacing worst-case sleeps with polls.
* mpm: Add mpmutils module, includes poll_with_timeoutMartin Braun2017-12-222-2/+41
| | | | This is a convenience function for polling with sleeps and timeouts.
* mpm: tdc_sync: Remove sleeps in offset pollingMartin Braun2017-12-221-7/+7
| | | | | | | On the N310, there's a penalty for calling time.sleep(). This means the polling loop was extremely slow for polling TDC updates. Now, it simply polls as fast as possible. Note: This could hog the bus if run outside of an initialization sequence, where no one else is using the bus.
* lmk: change holdover settings to reduce lock timedjepson12017-12-223-14/+25
| | | | | - Register 0x150 bit [1] to '0' - Change lock detect to poll operation
* mpm: mg: Minor cleanup in __init__Martin Braun2017-12-221-6/+26
| | | | | - Moved AD9371 API generation around - Fixed some PyLint warnings
* mpm: mg: Enable user EEPROM data read/writeMartin Braun2017-12-221-2/+100
|
* mpm: n310: Enable read/write of user EEPROM dataMartin Braun2017-12-221-0/+67
| | | | | | This exposes two new API calls to read and write arbitrary data to the device's EEPROM. Please keep in mind that EEPROMs have limited write cycles!
* mpm: Add BufferFS serialization libraryMartin Braun2017-12-223-0/+401
| | | | | | | | | | BufferFS is a serialization format with CRC checking and optional byte-alignment for records. It allows storing arbitrary blobs, together with a 8-character identifier, in a contiguous buffer that supports random access. This is suitable for storing arbitrary blobs in EEPROM, but could also support other things. Signed-off-by: Martin Braun <martin.braun@ettus.com>
* mg: Add dboard EEPROM propertiesMartin Braun2017-12-221-2/+18
| | | | Signed-off-by: Martin Braun <martin.braun@ettus.com>
* n3xx: enable 1G clock with gpio settings.Ryan Marlow2017-12-221-0/+17
|
* mpm: mg: Specify I2C parents for GPIO devicesTrung N Tran2017-12-221-3/+77
| | | | | | The Magnesium daughterboards have GPIO port expanders, but both have the same udev label. In order to specify which port expander to use, we pass in the parent udev I2c device.
* mpm: n3xx: Add GPS locked sensorTrung N Tran2017-12-221-0/+13
|
* mpm: mg: Specify the required overlay for FPGA auto-loadingMartin Braun2017-12-221-0/+15
|
* mpm: Provide default dboard EEPROM getter/settersMartin Braun2017-12-221-0/+28
| | | | | The setter will throw an exception though. It is supposed to be overriden by device-specific classes.
* mpm: Properly populate device_info dict for dboard classesMartin Braun2017-12-221-1/+18
| | | | | | | | | | | Prior to this commit, device_info was always an empty dictionary on all dboard classes. The device_info dict is now auto-populated from the EEPROM contents, if any were provided. Dboard classes can still opt to amend that dictionary in specific class implementations. Signed-off-by: Martin Braun <martin.braun@ettus.com>
* mpm: sysfsgpio: Allow to filter by parent deviceTrung Tran2017-12-221-11/+22
| | | | | | There are cases where we need to specify a parent device in order to disambiguate GPIO devices with the same label. This lets you passing in a parent udev device to clarify.
* mg: Fix lambda-related warnings in block controlMartin Braun2017-12-221-12/+15
| | | | We're not using C++14 yet, so named captures are not yet available.
* bit to bin: initial commit of converter scriptBrent Stapleton2017-12-221-0/+121
|
* mpm: n310: Add mboard EEPROM supportMartin Braun2017-12-221-0/+15
| | | | | This is a specific override for the N310. It returns all the default device info as a dict.