Commit Graph

10738 Commits

Author SHA1 Message Date
Marian Koop
a5ed1872be 4.7.0.0 Release 2024-06-28 15:31:02 +02:00
Joerg Hofrichter
bdcca9761a doc: Update description of partitions
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.
2024-06-28 14:08:27 +02:00
Martin Braun
f646ff838b examples: Move setup time in tx_waveforms after tuning
This avoids potential LO-lock-detect failures.
2024-06-28 13:16:32 +02:00
Martin Braun
52860eeb67 fpga: Fix warnings from building N3xx AA images
These bitfiles use four-port DRAM FIFOs and only connect two of those
ports. We skip the warnings as that is the intended build behaviour.
2024-06-27 13:21:03 +02:00
Martin Braun
6758966a5a image builder: Allow missing connections
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.
2024-06-26 15:08:39 +02:00
Lars Amsel
4289cc1eef examples: Don't do timed commands for X410 in tx_waveform examples
X410 cannot reliably tune using timed command. Therefore explicitly
disable that in TX examples for X410.
2024-06-26 14:49:20 +02:00
Joerg Hofrichter
e0564299ed images: update x440 FPGA image
The X440 FPGA binaries from x4xx_x440_fpga_default-g7acd179.zip
were successfully validated to synchronize the second timekeeper.
2024-06-26 11:54:08 +02:00
Max Köhler
f7efcbf5b3 fpga: ci: centralizing common setup steps and add nuget clean task 2024-06-26 09:07:30 +02:00
Martin Braun
b3c663d14b image builder: Improve error checking during build
- 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.
2024-06-25 17:19:51 +02:00
Martin Braun
942502f121 image builder: Provide default for -K
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.
2024-06-25 17:19:51 +02:00
Martin Braun
1ddecf19af rfnoc: Add BSP checks to X4x0 BSP YAMLs
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.
2024-06-25 17:19:51 +02:00
Martin Braun
d0e9a8d8fe image builder: Add ability to run checks on BSP level
The 'checks' section that was available for block definition YAMLs is
now also available at the BSP level.
2024-06-25 17:19:51 +02:00
Martin Braun
1ba6fdaf9c fpga: rfnoc: Harmonize x410_X4_400_rfnoc_image_core.yml
This file was repeating entries from x410_radio_base.yml, which none of
the other x410 image core YAML files do.
2024-06-25 17:19:51 +02:00
Martin Braun
84bf24402e image builder: Improve missing-connection logging
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.
2024-06-25 17:19:51 +02:00
Martin Braun
eddbd91f3d rfnoc: Improve several block YAMLs
- Add checks/conditions using the new feature
- Add more comments in radio.yml
- In radio.yml, specify which IO ports are required
2024-06-25 17:19:51 +02:00
Martin Braun
66597a484a image builder: Add improved error checking
- 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
2024-06-25 17:19:51 +02:00
Martin Braun
c545a115f4 image builder: Improve logging
- Demote some info logs to debug that are not really required for
  regular operation.
- Reformat some log messages for better readability
2024-06-25 17:19:51 +02:00
Martin Braun
0d2426c86f image builder: Use config.family instead of hardcoded dev type
This avoids having to specify ULTRASCALE or 7SERIES where necessary.
2024-06-25 17:19:51 +02:00
Lars Amsel
3a6d4ef1d7 host: remove superfluous usage of const in return values
Returning a const value does not ensure value constness. Instead,
it prevent move semantics (see C++ core guidelines F.49).
2024-06-25 16:59:56 +02:00
Martin Braun
d3b034911f examples: Consistently comment out sections in rx_samples_to_file
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.
2024-06-25 16:57:59 +02:00
Max Köhler
7acd179537 fpga: ci: switching to latest hwtools version 2024-06-24 17:45:17 +02:00
Wade Fife
d0a6c2b3a4 fpga: ci: Run pipelines when simulations change 2024-06-20 11:35:27 +02:00
Wade Fife
72295360e6 fpga: sim: Initialize test_status
Initialize test_status for backwards compatability with testbenches
that don't call start_tb().
2024-06-20 11:35:27 +02:00
Martin Anderseck
1020b6e9a3 fbx: Fix guided mode messages
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.
2024-06-20 10:58:40 +02:00
Joerg Hofrichter
3da007b679 mpm: discovery: demote log level of ECHO send error
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.
2024-06-19 11:33:38 +02:00
Joerg Hofrichter
9fe006660e mpm: don't print iptables errors when setting up forwarding 2024-06-19 11:33:12 +02:00
Marian Koop
327f294e27 lib: Bump version to 4.7.0.0 2024-06-18 17:11:49 +02:00
Marian Koop
3752ed83fa docs: CHANGELOG: Added change log for UHD 4.7.0.0 2024-06-18 17:11:49 +02:00
Marian Koop
97d4e3e2d9 images: update x4xx/n3xx/e3xx filesystem images 2024-06-18 17:11:49 +02:00
Joerg Hofrichter
5827a57456 images: update x4xx/x3xx/n3xx/e3xx/b2xx fpga images 2024-06-12 10:21:51 +02:00
Joerg Hofrichter
c37b3189ab ci: build filesystem from kirkstone branch 2024-06-11 10:20:08 +02:00
Joerg Hofrichter
594c23b22d ci: hardware dev test: use kirkstone branch 2024-06-11 10:20:08 +02:00
Marian Koop
1d1226f768 python: pybind: Bump min pybind11 version to 2.7 (default on Ubuntu 22)
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.
2024-06-11 10:20:08 +02:00
Marian Koop
675ab7c824 example: python: Make use of timespec consistent in MultiUSRP and RFNoC use cases
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.
2024-06-11 10:20:08 +02:00
Marian Koop
52467d3261 python: Update pyuhd wrapper functions to make freq tuning use timedcmds 2024-06-11 10:20:08 +02:00
Martin Anderseck
5de584251c doc: Add info about global section in config file
...and about the guided mode and how to turn it off.
2024-06-11 10:20:08 +02:00
Martin Anderseck
7f6e8e3276 fbx: Add guided mode for X440
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.
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
479f65d9d6 ci: streaming tests: don't use hardcoded dutMgmtAddr
The IP address (eth0 interface) of the DUT is already known by the
variable $USRP_EMB_TARGET_IP
2024-06-11 10:20:08 +02:00
Sheikh Usman Ali
ad35a0f4eb example: cpp: Fix bug error lo_locked.to_bool()
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()`
2024-06-11 10:20:08 +02:00
Ryan Volz
a57c162a0d fpga/usrp3: Fix DC truncation bias by adding rounding to DDC chain.
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>
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
ba5028cf57 mpm: avoid importing from rpc_server when importing usrp_mpm
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
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
a94202a2b4 ci: Cleanup acquire device via labgrid-client (2)
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.
2024-06-11 10:20:08 +02:00
Lars Amsel
c2a159f3fd Host: Add Python Bindings for time_spec
Add bindings to allow comparision of time specs.
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
7e6dee2784 mpm: usrp_update_fs: correct outdated mender command in prints
'mender -commit' is outdated, 'mender commit' needs to be used instead.
2024-06-11 10:20:08 +02:00
Lars Amsel
df24ae22c6 Docu: Clarify usage of usrp_update_fs 2024-06-11 10:20:08 +02:00
Lars Amsel
27083d0089 CI: Cleanup aquire device via labgrid-client
Current labgrid-client prints out (unwanted) error during aquire
when `release --kick` has nothing to release. This change first
checks whether there is anything to kick. Also, it raises an
runtime error if any of the calls to labgrid-client fails.
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
f077a17602 mpm: deactivate Duplicate Address Detection (DAD) on int0 interface
Starting from systemd v245, Duplicate Address Detection (DAD) is automatically
enabled for static IPv4 addresses if the IP address is a link local address.
DuplicateAddressDetection=none (or DuplicateAddressDetection=true for historical
reasons) deactivates this.

Important notes on compatibility:
- systemd v243.2 (Yocto release zeus) does not support DuplicateAddressDetection=none
  and errors out without applying the IPv4 address -> use the historical
  parameter DuplicateAddressDetection=true to remain backward compatibility
- systemd v250.5 (Yocto release kirkstone) ignores the DuplicateAddressDetection=none
  (or DuplicateAddressDetection=true) parameter for link local addresses and enables
  DAD unconditionally. This is fixed by commit a9efd16090baee492e9dd9ae832b5b548e7c6fcf
  ("network: do not enable IPv4 ACD for IPv4 link-local address if ACD is disabled explicitly")
  which is not part of default Yocto systemd v250.5. In meta-ettus we have applied
  the patch so that the DuplicateAddressDetection=none (or DuplicateAddressDetection=true)
  parameter is honored for link local addresses
2024-06-11 10:20:08 +02:00
Marian Koop
aedb8ac79f example: python: Changed setting frequency to use time commands
Modified example to support demonstratig the X440 phase repeatability
performance when using dram feature. Change is compatible with all supported
rfnoc devices that utilize the RFNoC Replay Block, but only improves
phase repeatability performance of X440.

Separated loops configuring radio properties and converted setting carrier
frequency into timed commands. This required moving this code to a later
part in the programming flow, after all the clock source settings are
applied and the LO locks are confirmed.
2024-06-11 10:20:08 +02:00
Marian Koop
de1542331f example: cpp: Changed setting frequency to use time commands
Modified example to support demonstratig the X440 phase repeatability
performance. Change is compatible with all supported devices, but only
improves phase repeatability performance of X440.

Separated loops configuring radio properties and converted setting carrier
frequency into timed commands. This required moving this code to a later
part in the programming flow, after all the clock source settings are
applied and the LO locks are confirmed.
2024-06-11 10:20:08 +02:00
Joerg Hofrichter
7d951856b5 mpm: tdc: fix compatibility with Python >= 3.9.0 2024-06-11 10:20:08 +02:00