- The regular color was set to black, which would not read well on dark
terminals. It now uses the default
- Some other colors were adapted. Some effort was made to make 'debug'
not stand out, but that always depends on the terminal color theme
that is chosen.
Starting from UHD4.7/Yocto release kirkstone, only the first
partition is populated in the .sdimg filesystem image and the
second rootfs partition is empty.
The image builder will currently emit a warning if a NoC-block has
unconnected ports. This requires specifying `-W` to continue building,
which is the intended behaviour.
However, there are cases where there are legitimate reasons to not
connect a block, e.g., in the X310, where the radio block has 2x2 ports,
but we only connect 2 RX ports, and 1 TX port.
This adds a way to declare a "null" connection, which makes it explicit
in the image core YAML that a connection was deliberately omitted. Such
connections are created by connecting to a port called "_none_", e.g.:
```
connections:
- { srcblk: _device_, srcport: _none_, dstblk: radio0, dstport: in_1 }
```
The block name is irrelevant, but the schema requires providing a block
name.
This commit also amends the x3xx_radio_base.yml to avoid warnings when
building X3x0 bitfiles.
- If there are any warnings during the image core parsing, the build is
now skipped unless --no-warnings (-W) is also given.
- Exceptions in the ImageBuilderConfig are now caught in
rfnoc_image_builder and an error message is logged, instead of
printing the Python exception backtrace.
When -S is provided without -K (--secure-core without --secure-key), the
build fails without comment. This provides a default value for -K based
on the default Vivado key.
This adds some checks for:
- DRAM parameters
- Whether or not CHDR DMA and QSFP IO ports are connected
This will cause old image core files to fail with the new image builder,
unless --no-warnings is added, or the image core files are updated to
include these transport adapters.
When an image core file has a missing, required IO port connection, the
tool will now suggest which ports may be sensible options for
connecting.
When there is a single available option, it will even suggest which line
to add to the image core YAML to fix.
- Blocks, modules, and transport adapter YAMLs may include a `checks`
section and define validation checks there
- IO ports can declare if they require a connection or not
- Unconnected NoC-Block data ports trigger a warning now
This example had some sections commented out using `#ifdef __linux__`,
but not consistently. This enables or disables all relevant code, which
reduces warnings on non-Linux systems.
When introducing the guided mode in FBX, we used to cast to int which
is not sufficient for the upper half of our frequency spectrum. uint_32
is just enough to fix the issue for frequencies up to 4 GHz.
The ECHO send error occurs if the sender tries a MTU size which
is greater than what is supported in the direction from the MPM
device back to the sender. This is uncritical as the sender will
try with a smaller MTU size afterwards. Hence, demote the log
level of this message to debug and add information about the
packet size to better understand what is happening.
This will result into use of the in-tree version on Ubuntu 20,
and address an observed crash during object cleanup at program
shutdown that was only observed on Ubuntu 20. This restores the
behavior earlier UHD version to use the in-tree pybind11 module
for Ubuntu 20.
Also corrected some logic determining when the in-tree module
was used to avoid that both a public and our in-tree modules are
part of the INCLUDE_DIRS.
Created new command argument to specify transmit delay, and utilize it in all
three code path (MultiUSRP, DRAM send, and DRAM upload + issue_stream_cmd.
For the first code path use of predefined transmit start time is new behavior,
and could also result into unexpected errors if the tx_delay is selected to small.
Since X440 is special in terms of operation in different Nyquist zones
users may stumble upon unexpected RF performance compared to other
devices if frequencies are chosen close to a Nyquist boundary. The
guided mode provides more information about the Nyquist zone in which
the chosen frequency is located in the info log. For disabling the
guided mode, `guided_mode=false` can be added to the UHD config file
in the "Global" section.
Moved Code block section for clock sync setup block from later stage to
earlier stage before check Ref and LO Lock detect block. Specifically
moved `//clock sync setup is complete do timed tuning of LOs and NCOs`
section.
This helped resolve the `Error: AssertionError: lo_locked.to_bool()`
A digital DC bias caused by various truncations in the DDC chain was
previously noticable with small signal levels, especially with high
decimation rates. This patch eliminates the bias by replacing the
truncation with rounding or simply keeping more bits for longer where it
makes sense.
This is essentially a forward port of a similar prior fix to the usrp2
DDC chain: https://github.com/EttusResearch/fpga/pull/4.
Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
Importing from usrp_mpm.rpc_server imports a lot of dependencies which are
unnecessary if the rpc_server functionality is not actually needed.
Move the decorator functions to a new file rpc_utils.py and import only
from this file inside periph_manager.
usrp_hwd.py needs additional dependencies which are specifically imported:
- usrp_mpm.rpc_server.spawn_rpc_process
- usrp_mpm.discovery.spawn_discovery_process
Introduce the class AcquiredPlace which automatically acquires
and releases the associated place when instantiating the class
using the 'with' statement. This ensures that the place is
always released, removing the need for implementing a forced
release using the '--kick' option.