Commit Graph
53 Commits
Author SHA1 Message Date
Nick Hedberg e6b307bf6e Indent correctly 2025-10-31 11:31:42 +01:00
Robert Schmidt ce4e647fd8 USRP: move time/clock source setting to later
Doing this before using set_master_clock_rate() on the B200 seems to
invalidate clock settings:

    [HW]   USRP clock set to 1759836386.000000 sec
    [...]
    [HW]   current pps at 3.286750, starting streaming at 4.286750

In other words, the current time setting was reset. With this change
now, we see

    [HW]   USRP clock set to 1759929873.000000 sec
    [...]
    [HW]   current pps at 1759929873.000000, starting streaming at 1759929874.000000

This is because changing clock sources (I assume setting the master
clock rate impacts the clock) can result in changing the time.  From the
documentation of set_time_next_pps() [1]:

> Note: When changing clock sources, a previously set time will most
> likely be lost. It is recommended to set the time after changing the
> clock source. Otherwise, an unexpected time may line up with future PPS
> edges.

[1] https://files.ettus.com/manual/classuhd_1_1usrp_1_1multi__usrp.html#a75b1c5375549e6a446d686ee7d9b4e14
2025-10-10 12:49:29 +02:00
Robert Schmidt 19813283fb Avoid T error on radio libraries
These libraries have an (indirect) dependency on T, either by using the
logging module (which in turn depends on T), or through other includes.

The easiest is to depend on the logging module, which will fulfil also
the T dependency.

It would equally be feasible to use the utils target (which in turn
depends on log_headers), but this would necessitate to compile, and does
not seem to be necessary.
2025-09-29 09:04:02 +02:00
Guido CasatiandAlexandre Serio a41be56b2a USRP lib: fix incorrect config check for time_source fallback
Corrected a logic bug in usrp_lib.cpp where the code mistakenly checked
openair0_cfg[0].clock_source instead of time_source when a time_source
was already specified in usrp_args.

Also improved the warning log to clarify that the config value is being
ignored in favor of the explicit user-provided usrp_args.

Co-authored-by: Alexandre Serio <alexandre.j.serio@altice.pt>
2025-06-16 11:25:30 +02:00
21dafbcde7 New threadpool
- removed some whitespace noise.
 - cleaned up CMakeLists.txt
 - reintegrated task_manager.c into thread-pool.c
 - cleaned up some unnecessary code

Co-authored-by: Cedric Roux <cedric.roux@eurecom.fr>
Co-authored-by: Mikel Irazabal <mikel.irazabal@openairinterface.com>
2024-12-04 17:54:51 +01:00
francescomani 014338105e remove unused bf_weights feild from config files 2024-10-11 08:02:06 +02:00
francescomani 2a9a038dbd improvements in RU beamforming handling procedures 2024-10-11 07:59:31 +02:00
Jaroslava Fiedlerova f30e354b77 Merge remote-tracking branch 'origin/T-usrp-tx-sample-trace' into integration_2024_w30 2024-07-26 18:07:42 +02:00
Cedric Roux 181ec25a23 USRP: add a T trace to record the TX IQ data on antenna 0 2024-07-26 12:54:55 +02:00
Raghavendra Dinavahi 95a8767383 Automatic update of USRP RX gain during initial search using --agc option
- if search fails, keeps increasing the rx gain (set by --ue-rxgain) by
  3 db until USRP max rx gain
- if initial sync is success, sets the rxgain to the value of
  (TARGET_RX_POWER (50) - pbch digital power in dB/RE)
2024-07-25 15:33:44 +02:00
Robert Schmidt 18125459dc Merge remote-tracking branch 'origin/t-usrp-rx-ant0' into integration_2024_w23 2024-06-06 08:40:42 +02:00
Cedric Roux 1dfb30b857 USRP: add a T trace to record the RX IQ data on antenna 0 2024-06-05 15:11:59 +02:00
Florian Kaltenberger 6d5a0ab454 synch the USRP time accross devices using the host clock 2024-06-05 09:52:26 +02:00
luis_pereira87 615284c5c8 Add support for USRP X410 to run with 200 MHz bandwidth in FR2 at 120 kHz SCS 2024-04-26 08:23:19 +01:00
Laurent THOMAS c92cbe67b5 fix b210 usrp tx sample error compemsation 2024-03-04 10:07:07 +01:00
Laurent THOMAS 7466297568 move command line sample offset and 3/4 sampling option at top level, as it is common option for 4G,5G xNB and UE 2024-03-04 10:07:07 +01:00
Robert Schmidt 4226daee7f USRP doc: Include b205-mini, improve markup 2024-01-12 09:10:46 +01:00
Raphael Defosseux 7241520072 Merge remote-tracking branch 'origin/dreibh-trx_usrp_read-memory-access-fix' into integration_2023_w37 2023-09-15 10:52:37 +02:00
Raymond Knopp a7bc282302 First-level of support for new aarch64 machines
Testing on Neoverse N1 (Ampere 3GHz). Tested only on a subset of phy-simulators.

- Changes:
- use SIMDE consistently
- adaptations of LDPC decoder generator for ARMv8 performance
- SIMDe modifications of Intel CRC to allow for aarch64 build.
  optimizations for 128-bit to improve performance of LDPC encode/decode
  on aarch64 (Neoverse 1)
- added BG2 files for 128-bit ldpc encoder (aarch64)
- testing on Xeon
- testing on x86
- minor changes to build/run on x86
- change in crc.h after returning to aarch64
- removed some warning in ldpc decoder generator for x86_64
- char
- Delete irrelevant constants
- Correctly declare variables
- Define stdbool for all architectures
- Remove definition of _MM_SHUFFLE and use SIMDE_MM_SHUFFLE
- Remove commented code
- Fix CMakeLists.txt
- Include SIMDE avx2 functions in tools_defs.h
2023-09-13 17:19:20 +02:00
Thomas Dreibholz 445a51f5c1 Bugfix: Fix for segfault, due to invalid pointer. 2023-09-13 15:49:51 +02:00
wan-sdr 1936bc06d8 Use UHD_INCLUDE_DIRS and UHD_LIBRARIES to link to UHD. This way works when UHD is installed to /usr/local or a custom prefix
Signed-off-by: wan-sdr <11093-wan-sdr@users.noreply.gitlab.eurecom.fr>
2023-08-28 12:33:12 -04:00
Imad Al Samman 66df72d1f8 USRP driver: Make it compile for UHD < 4.0.0 2023-08-11 11:23:28 +02:00
Imad Al Samman 76ccc2f5f3 FR2: GPIO configuration for Interdigital Radio Unit
For FR2 and including analog beamforming, we control the beams via GPIO
on radio units.

In this commit, introduce a configuration option to switch the GPIO
control for different devices: "generic" is the current GPIO control,
"interdigital" configures the GPIO configuration to be used with an
InterDigital device.
2023-07-28 14:49:37 +02:00
Robert Schmidt 66893739b8 Make USRP compile, depends on T
USRP code uses the logging module, which has a dependency on T, if
configured. Therefore, include UTIL to satisfy this dependency
2023-07-13 10:29:33 +02:00
Robert Schmidt c25ee6fd32 Move symlink creation to radio/transport device to cmake 2023-07-08 13:28:52 +02:00
Robert Schmidt ddf549b1f3 Move radio CMakeLists.txt to subdirectory
- move following radios: AW2S, BladeRF, IRIS, LMSSDR, RFsimulator, USRP
- move following transports: Ethernet, benetel4g, benetel5g
- for each: create independent cmake variable to switch compilation
  on/off, in order: OAI_AW2S, OAI_BLADERF, OAI_IRIS, OAI_LMSSDR,
  OAI_SIMU, OAI_USRP, OAI_ETHERNET, OAI_BENETEL4G, OAI_BENETEL5G
- Remove RF_BOARD variable, allows to compile multiple boards at once
- where applicable: remove USERSPACE/LIB in path, i.e., move files up to
  directories, as all are userspace libraries

Note that with the above, it is now mandatory to enable a radio
implementation before compiling it, e.g., for USRP:

./build_oai -w USRP
cmake .. -DOAI_USRP=ON && ninja oai_usrpdevif
2023-07-07 08:35:28 +02:00
Robert Schmidt af923d6e0b Merge remote-tracking branch 'origin/100MHz_on_x310' into integration_2023_w23 2023-06-08 18:23:55 +02:00
luis_pereira87 8bffe28ed3 Set kernel parameters for X4x0 2023-05-19 12:26:13 +01:00
rakesh mundlamuri 08a8a23011 enabling 100MHz on usrp x310 2023-05-17 12:07:41 +02:00
Raymond Knopp a3c7af0a7a Merge remote-tracking branch 'origin/develop' into threading-rk 2023-04-28 22:28:18 +02:00
Arash Sahbafard c63edad48b Update radio/USRP/README.md 2023-04-19 16:02:45 +02:00
Raymond Knopp 455e2203e7 Merge remote-tracking branch 'origin/develop' into threading-rk 2023-04-09 18:29:42 +02:00
Florian Kaltenberger daa1a911ac Update radio/USRP/README.md 2023-04-07 10:04:13 +00:00
Raymond Knopp 48d04bbffd Merge remote-tracking branch 'origin/develop' into threading-rk 2023-03-27 16:09:33 +02:00
Robert Schmidt 52d7d2881a Merge remote-tracking branch 'origin/multi_usrp' into integration_2023_w10b 2023-03-11 11:57:38 +01:00
Florian Kaltenberger 7631381a98 adding documentation for USRP 2023-03-10 22:03:28 +01:00
Robert Schmidt 6d97394f28 Merge remote-tracking branch 'origin/bugfix-tx-usrp-thread-priority' into integration_2023_w10 2023-03-08 19:04:36 +01:00
Raymond Knopp 9a91ed0eeb priorities/policy on usrp-tx-thread. Thread id for ru_thread 2023-03-06 06:54:55 +01:00
Cedric Roux 3084ae89dd bugfix: set max priority to trx_usrp_write_thread 2023-03-04 16:42:01 +01:00
Florian Kaltenberger 30f0942dbc fix for the case multiple USRP devices are specified in the config string 2023-02-23 13:35:57 +01:00
Bruno Mongazon-Cazavet 9db78ab4d6 fix warnings introduced by changes in _Assert_Exit_ macro 2023-02-23 09:56:24 +01:00
Bruno Mongazon-Cazavet f7b4d18146 Merge branch 'develop' into iqfixes_nrue 2023-02-17 17:24:04 +01:00
Bruno Mongazon-Cazavet 8601b8c990 Fix IQ recorder/player for nrUE 2023-02-17 12:00:46 +01:00
Robert Schmidt adb02aa2ee Merge remote-tracking branch 'origin/bugfix-release-usrp' into integration_2022_wk06 2023-02-09 19:23:04 +01:00
Cedric Roux 344f8b75e6 bugfix: try to handle USRP devices correctly to avoid crashes
Some problems when we release the device:

    - Calling the destructors is wrong, we should set the pointers to NULL.
      These are shared pointers, this is C++.
    - We have to stop rx by doing a STREAM_MODE_STOP_CONTINUOUS.
    - The end-of-burst for tx has been simplified.

This problem when we acquire the device:

    - Calling get_rx_stream() many times seems to be problematic.

We now should have a better behavior with UHD 4.2 and N310. (Hopefully with
others too.) No crash seen so far.
2023-02-04 23:37:58 +01:00
Florian Kaltenberger 3d03e522d3 patch from Robert to fix segfault 2023-01-19 14:32:01 +01:00
Robert Schmidt 9948d97230 Use GPIO flag and fix bug 2023-01-19 14:32:01 +01:00
Robert Schmidt 72460cec61 Use TX Burst enum consistently
- By convention, enums are uppercase in C
- Use it everywhere
2023-01-19 14:32:01 +01:00
Florian Kaltenberger faba9ac244 Make USRP GPIO control more flexible
- adding support for x410 GPIO
2023-01-19 14:32:01 +01:00
Robert Schmidt 24fceb43c2 Unlock mutex after condition signal in USRP driver 2022-11-29 14:14:19 +01:00