aboutsummaryrefslogtreecommitdiffstats
path: root/mpm/python
Commit message (Collapse)AuthorAgeFilesLines
* mpm: e320_bist: Add tests for running BIST on E320Sugandha Gupta2018-07-181-0/+769
|
* e320: mpm: Add dboard and mboard sensorsSugandha Gupta2018-07-183-30/+148
| | | | | | | | Adding the following sensors: - Catalina temperature, RSSI, and LO Lock sensors - GPS lock, time, TPV, and SKY sensors Co-authored-by: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: initial commit of E320 codeBrent Stapleton2018-07-188-10/+1399
| | | | Co-authored-by: Sugandha Gupta <sugandha.gupta@ettus.com>
* mpm: mg: Adding fast-reinit modeMartin Braun2018-07-172-19/+99
| | | | | | | | | | When a device is re-initialized without any changes (e.g., master_clock_rate, ref_clock_freq) then we can skip the initialization sequence and move on. This shaves a significant amount of time from the init sequence. Fast re-init can be overridden by providing the `force_reinit=1` device arg.
* mpm: mg: Move RF cal initialization after JESD initMartin Braun2018-07-171-2/+1
|
* mpm: mg: Store init args between runsMartin Braun2018-07-171-2/+6
|
* mpm: Remove unused _init_args from PeriphManagerBaseMartin Braun2018-07-171-4/+0
|
* mpm: n3xx: mg: Refactor init codeMartin Braun2018-07-174-499/+585
| | | | | | | All code relevant to initializing an N310/N300 daughterboard is moved to its own module (mg_init.py). No functional changes.
* mpm: n3xx: Remove unused importsMartin Braun2018-07-171-2/+0
|
* mpm: mg: Print AD9371 info as debug message during initMartin Braun2018-07-171-0/+8
|
* mpm: n3xx: Factor out component updatingBrent Stapleton2018-07-114-73/+105
| | | | | | | | | - Refactoring component (FPGA, DTS) updating functions out of n3xx.py into their own components.py. The ZynqComponent class now defines the methods to update these two components. - Adding super().__init__() to the PeriphManagerBase class. This is needed to get the multiple inheritance used in N3XX now to work, and (apparently) good Python practice.
* mpm: n3xx: Factor out GPSd Iface functionsBrent Stapleton2018-07-062-70/+129
| | | | | | | | | | | | | | - Refactoring GPSd interface to be instead wrapped by a GPSDIfaceExtension class. This class will faciliate "extending" an object, allowing that object to call the GPSDIfaceExtension methods as their own. - New MPM devices (or whatever else) can now use the GPSDIfaceExtension class instead of writing their own GPSDIface handling functions. - N3XX now instantiates a GPSDIfaceExtension object, and extends itself. This means that an n3xx object can call the `get_gps_time` method as its own, for example. - N3XX must get through initialization in order for the GPSd methods to be registered.
* mpm: n3xx: Overridable crossbar base portBrent Stapleton2018-07-062-1/+5
| | | | | | Moving the RFNoC crossbar base port to the class overridables. MPM devices may need to reserve different numbers of ports for non-blocks; this can now be done by overriding the crossbar_base_port.
* mpm: adding adf400x support to chipsBrent Stapleton2018-06-273-2/+216
| | | | | Adding ADF400X driver to MPM. This uses the Boost.Python bound spidev, and is largely a translation from the C++ driver in UHD.
* mpm: tools: Introduce dt-compat and mcu-compat fieldsMoritz Fischer2018-06-201-1/+27
| | | | | | | | | | | | | | | | Introduce dt-compat and mcu-compat fields into the eeprom structure. For the motherboard eeprom this is straightforward, since there's still padding bytes that could be (ab)used for this. On the dboard side more creativity is required and the original revision field of 2 bytes is reduced to only one byte revision and one byte dt-compat. Since this will only affect new units being backwards compatible with older versions of the bootloader is not an issue. Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com> Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* mpm: dboard_manager: Fix docstring for get_serial()Martin Braun2018-06-181-1/+2
|
* mpm: fix sanity check in _init_peripheralsMark Meserve2018-06-131-23/+24
| | | | - change scoping of product_map in n3xx
* mpm: xportmgr_udp: Catch inconsistent Ethernet device detectionsMartin Braun2018-06-081-7/+26
| | | | | | | This manager first detects all valid Ethernet devices. The checks for validity happen across multiple calls in a non-atomic fashion, so it's possible to end up with inconsistent results. To avoid such issues, we filter results without talking to the network stack as a final pass.
* mpm: net: Fix rare failures for IP addr detectionMartin Braun2018-06-081-12/+13
| | | | | | | Because the detection of valid Ethernet devices happens across multiple calls in a non-atomic fashion, we cannot assume that a device passed to net.get_iface_info() actually has a valid IP address, so we don't make that assumption.
* mpm: Use device_info to determine overlay listMartin Braun2018-06-082-9/+7
|
* mpm: n3xx: Derive product key programmaticallyMartin Braun2018-06-082-5/+40
| | | | | | Since there is no simple mapping from an arbitrary tuple of mboard- and dboard info dictionaries, we use generate_device_info() to figure out the product key.
* mpm: Distinguish mboard_info and device_infoMartin Braun2018-06-082-21/+34
| | | | | | In the N3xx series, the motherboard ID and the device ID can differ. For example, the N310 could share the same motherboard with a different device that uses different daughterboards.
* mpm: Remove 'test' periph_managerMartin Braun2018-06-082-68/+1
|
* mpm: Refactor periph manager init; split EEPROM read from restMartin Braun2018-06-081-104/+135
| | | | | The readout of EEPROMs is moved to their own functions. This will allow us to read out EEPROM values before starting the initialization.
* mpm: Adding FPGA type to device infoBrent Stapleton2018-06-061-1/+2
|
* mpm: allow multiple spi device objects to use the same chip selectMark Meserve2018-05-141-2/+2
|
* n3x0: Pick different standard tests for BISTMartin Braun2018-05-141-1/+1
| | | | Replaced 'clock_int' (which is not implemented) with 'fan'.
* mpm: n3xx: Refactor n3xx_periphs into its own moduleMartin Braun2018-05-084-390/+404
|
* mpm: xportmgr_udp: Assign xports to previously used SFPsMartin Braun2018-04-301-1/+29
| | | | | | This changes the sorting algorithm for the xport<->SFP mapping. When multiple SFPs are used, this sorting will avoid a criss-cross mapping (e.g., mapping ports 0 and 1 of 0/Radio_0 to different SFPs).
* mpm: types: Add getters for dst_ep and dts_block to SIDTrung Tran2018-04-301-4/+12
|
* mpm: rpc server: Remove disable_commit for init()Trung Trang2018-04-301-2/+0
| | | | | The async calls to long C++ methods allows the claimer loop to smoothly continue during init, so this hack is no longer necessary.
* mpm: replace long execution function with async callTrung N Tran2018-04-302-6/+24
| | | | | | - Replace mykonos finish_initialization with async version - Replace myknonos setup_cal with async version - Remove disable_timeout on rpc_server init()
* mpm: rpc server: Increase claim timeout to 5 secondsTrung Trang2018-04-301-1/+1
| | | | | | Usually, the current timeout is fine, but there are cases when a lot of RPC traffic could drown out the reclaim calls. 5 seconds is an experimentally derived safe value.
* mpm: add device-specific Boost.Python bindingsBrent Stapleton2018-04-183-14/+5
| | | | | | Separating Boost.Python bindings into device-specific files. N3XX code now lives in n3xx/pyusrp_periphs. Only one src file should be added for pyusrp_periphs.so by CMake.
* mpm: Use configurable components for build systemAlex Williams2018-04-182-0/+13
| | | | | For a minimal build, default to off for components unless the MPM_DEVICE or the user requests it specifically.
* mpm: n3xx: Bump maximum supported revision to 5 (RevF)Moritz Fischer2018-04-171-1/+1
| | | | | | | Bump maximum supported motherboard revision to 5 (RevF), to support upcoming motherboard revisions. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* jesd: add rx and tx SYSREF delay control in MPMDaniel Jepson2018-04-101-1/+6
|
* mg: implement digital loopback arg for the rficDaniel Jepson2018-04-101-1/+6
|
* fixup! n3xx: add White Rabbit supportDaniel Jepson2018-04-031-12/+0
|
* mpm: cmake: Add git hash and version info to Python moduleMartin Braun2018-04-023-0/+10
| | | | Reviewed-by: Brent Stapleton <brent.stapleton@ettus.com>
* mpm: increase timeout interval for claimingTrung N Tran2018-04-021-1/+1
|
* mpm: n3xx: Disable PPS out during initializationMartin Braun2018-04-021-1/+12
|
* n3xx: add White Rabbit supportDaniel Jepson2018-03-306-101/+263
| | | | Reviewed-by: Martin Braun <martin.braun@ettus.com>
* mpm: improve logging on exceptionTrung N Tran2018-03-301-4/+5
|
* mpm: Adding offset to EEPROM readsBrent Stapleton2018-03-203-1/+18
| | | | | | Adding address offset to all MBoard and DBoard EEPROM reads. This matches what we're doing for the user portion of the EEPROM, and allows us to share access to an EEPROM.
* mpm: adding reference counters to UIOBrent Stapleton2018-03-141-5/+39
| | | | | | | | | | | | UIO objects now count references on open and close calls. This should prevent problems with nested function calls that open/close the same UIO object. References counts are not atomic -- this is intended for nesting with statements within the same thread context. Reviewed-by: Martin Braun <martin.braun@ettus.com> Reviewed-by: Trung Tran <trung.tran@ettus.com>
* mpm: Add INFO log statements on MPM reset and component updateMartin Braun2018-03-132-0/+2
|
* mpm: n3xx: Fix failure on get_device_info() when uninitializedMartin Braun2018-03-131-2/+3
|
* mpm: n300: Warn when user tries to use external LOsMartin Braun2018-03-091-0/+10
| | | | | The N300-variant has no front-panel LO connectors, so we need to warn ther user when trying to use them.
* mpm: sysfs_gpio: Throw exception on unsuccessful initMartin Braun2018-03-081-3/+8
| | | | | In case of a lost connection to a sysfs-gpio device, this will trigger the correct errors.