aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mpm: lib: ad937x: Change _get_arm_binary_pathMoritz Fischer2017-12-221-1/+1
| | | | | | | The firmware will be installed under /lib/firmware/adi/mykonos-m3.bin, so going forward this is the path we require. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: enable RX external LO set through argsTrung N Tran2017-12-227-7/+75
| | | | | | | | | 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-225-62/+185
| | | | | | | | | | | | | | | | | | | 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: ad937x: Make log functions go through central loggerMartin Braun2017-12-221-5/+26
| | | | Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mpm: Add log_buf classMartin Braun2017-12-224-0/+170
| | | | | | | This is a buffer for log messages, designed for getting log messages from C++ back into Python. Reviewed-By: Mark Meserve <mark.meserve@ni.com>
* mg: Add stubs for lo_locked sensorMartin Braun2017-12-221-1/+17
|
* 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-2210-291/+733
| | | | | 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
|
* mpm: n310: Load Liberio dispatcherMartin Braun2017-12-221-9/+39
| | | | | Note: The dispatcher is not yet used at this point. However, it will check the existence of certain devices.
* fpga load: mpmd property tree now uses the MPM list_updateable_componentsBrent Stapleton2017-12-221-2/+4
| | | | Dynamically generates property tree by querying MPM device for a list of updateable components.
* mpm: mg: Refactor some periph inits into __init__Martin Braun2017-12-221-40/+18
| | | | | | | SPI interfaces and -lock, user EEPROM, radio regs, CPLD, dboard clock control and GPIO expander can be initialized in Magnesium.__init__(). This shaves a little time off of the actual init() call and allows for earlier failures.
* mpm: mg: Fix linting issues and warningsMartin Braun2017-12-221-51/+47
| | | | | | - Removed superfluous code - Fixed most PyLint warnings - Reordered methods to match call order
* mpm: Fix minor logging issues with LMK04828 codeMartin Braun2017-12-223-7/+5
| | | | Log prefixes weren't properly being set.
* mpm: mg: Move CPLD controls to dedicated classMartin Braun2017-12-221-91/+163
|
* mpm: Add configurable log levelsMartin Braun2017-12-222-4/+30
|
* mg: Include Algorithm header so that std::max resolves properly.Andrew Lynch2017-12-221-0/+1
|
* mg: Stop sharing RX and TX LO sptrs across blocksMartin Braun2017-12-221-12/+0
| | | | All properties are already shared through the prop tree API.
* mg: Force updating of CPLD/ATR bits at initMartin Braun2017-12-223-34/+36
|
* uhd: Remove keys from device hashingMartin Braun2017-12-221-3/+16
|
* mg: Enable CAL and LO-CAL "antenna" inputsMartin Braun2017-12-223-15/+33
| | | | | For consistency, the LO-CAL antenna name is actually "LOCAL" (without the dash).
* mg: master and slave radio sharing frequencyTrung Tran2017-12-223-129/+62
| | | | | | | This addresses the fact that two Mg Radio RFNoC blocks share a single LO in both Tx and Rx direction. When setting the frequency on one, the appropriate actions are now triggered on the other side. The same goes for getters, they now actually tell the truth.
* mpmd: Bump initialization timeout to 45 secondsMartin Braun2017-12-221-1/+1
|
* mpm: Cache connection type in PeriphManagerBaseMartin Braun2017-12-222-1/+19
| | | | | | Now, when claiming a device, the connection type will be stored as a string in PeriphManagerBase. This way we can read out the current connection type even when not currently inside an RPC call.
* mpm: Add LiberioDispatcherTableTrung Tran2017-12-222-0/+74
|
* mykonos: turn on init cals and tracking calsTrung N Tran2017-12-221-13/+13
|
* mg: Keep on RX amplifier even when ATR state is idleMartin Braun2017-12-221-1/+1
|
* 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
|