Commit Graph

370 Commits

Author SHA1 Message Date
Martin Anderseck
1907032f7b firmware: Add descriptors for B2xx mini variants
The current firmware missed descriptors for B200-mini and
B205-mini. Added the missing descriptors.

Also this commit ammends the firmware howto. It specifies
the SDK version we are using as well as some additional
command applied to the SDK files to make the patch successful.

Co-authored-by: Lars Amsel <lars.amsel@emerson.com>
2026-09-30 11:54:00 +02:00
Martin Anderseck
155dfbf352 fx3: Upgrade B2xx build
This is an upgrade to the latest FX3 SDK (1.3.5) and to the ARM gcc in
version 15.3.rel1 for the build of the B2xx firmware and bootloader. All
required steps are explained in the updated readme file.
Additionally, some bounds checks were added both in the firmware and the
bootloader, as well as some more validations and checks to prevent over-
and underflows. Newly introduced checks were documented in the code.
2026-09-30 11:54:00 +02:00
Martin Braun
5f73667284 host/firmware/tools: Update minimum CMake versions
Various sub-projects around the UHD repository specify their own minimum
CMake versions (independent of UHD). We modify the minimum CMake
versions in the following way:

- All CMake files under firmware/ are bumped from 2.6 to 3.5. This is to
  allow newer CMake versions to work with these files (CMake 4 and
  beyond do no longer work if the minimum version is below 3.5). However,
  note that these CMake files are so simple they will keep working with
  older CMake versions, but that will require manually demoting the
  minimum version. Because more people are using CMake versions newer
  than 3.5 (especially with recent checkouts of UHD), this seems the
  more compatible solution.
- The CMake files for extension_example and init_usrp are bumped to
  3.12. This matches the version that UHD uses, which increases
  compatibility.
2025-09-24 13:48:07 +02:00
Lars Amsel
bfaa556600 Move ignore of build folders into top level
Move ignored build folder to into top level and ignore all folders
that starts with build.
2025-07-18 11:19:52 +02:00
Xhovani Mali
89cb249553 Fix binary file reading in bin_to_coe.py
Co-authored-by: Virendra Kakade <virendra.kakade@ni.com>
2024-07-05 13:50:54 +02:00
Martin Braun
89fb75288e x300: Update firmware for TA control
- Bump firmware compat to 6.1
- Remove crossbar counter logic (the FPGA does *not* support crossbar
  counters anymore, so we remove it from the firmware as well)
- Remove crossbar programming control (this is now provided by RFNoC
  management packets)
- Remove UDP framing control (this is also provided by RFNoC management
  packets)
- Remove Ethernet link/activity LED control (this has been handled by
  the FPGA directly for years now)
- Add functionality to program transport adapter. The TA is programmed
  directly on the settings bus, so for the most part, this is already
  possible from the firmware. The only exception is the 'virtual'
  register to program IP address and MAC at the same time. In the
  firmware, it will perform an ARP lookup of the MAC address, and then
  write the "normal" IPv4 address register in the TA, as well as the MAC
  address registers.
- Updated bootram.coe
2023-01-10 14:19:00 -08:00
Martin Braun
1da0db3dae firmware: Remove N230 firmware
USRP N230 is no longer supported starting with UHD 4, and thus, the
firmware code is also no longer required.
2022-02-24 13:32:01 -06:00
michael-west
f405c24bc6 firmware: b2xx: Update to newer Cypress FX3 SDK
- Updated README with instructions on how to build using new SDK
(1.3.4 as of this change)
- Updated makefiles
- Updated memory map patch

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-25 07:28:22 -05:00
michael-west
0f52366533 B2xx: firmware: Fix address for serial number
The address for the serial number was off by 2 bytes, causing a bad
value in the USB descriptor.  This only occurred if the bootloader
image was loaded on the device.

Signed-off-by: michael-west <michael.west@ettus.com>
2020-08-25 07:11:10 -05:00
Mark Meserve
c1e0e73296 b200: add custom bootloader
- Adds custom bootloader code
- Refactor common functions in firmware and bootloader
2019-04-11 15:21:53 -07:00
Martin Braun
a69ab0c23a cmake: Update coding style to use lowercase commands
Also updates our coding style file.

Ancient CMake versions required upper-case commands.  Later command
names became case-insensitive.  Now the preferred style is lower-case.

Run the following shell code (with GNU compliant sed):

cmake --help-command-list | grep -v "cmake version" | while read c; do
  echo 's/\b'"$(echo $c | tr '[:lower:]' '[:upper:]')"'\(\s*\)(/'"$c"'\1(/g'
done > convert.sed \
&& git ls-files -z -- bootstrap '*.cmake' '*.cmake.in' \
'*CMakeLists.txt' | xargs -0 gsed -i -f convert.sed && rm convert.sed

(Make sure the backslashes don't get mangled!)
2018-11-14 14:10:09 -08:00
fenggnef
47f12a1e9c Definitions of MASK_GPIO_SHDN_SW and GPIO_AUX_PWR_ON Errors
MASK_GPIO_SHDN_SW ( GPIO[52] ) should be shifted by "GPIO_SHDN_SW" but "GPIO_FX3_SCLK ".
Otherwise GPIOs of FX3 will initial GPIO_FX3_SCLK ( GPIO[53] ) as GPIO and SPI respectively. 
It will make GPIO[53] conflict between SPI and GPIO, and SHDN_SW will not work properly as a power switch.
2018-08-01 15:49:41 -07:00
Martin Braun
82aef3c8dd b200: fw: Change USB2 Buffer Size and Buffer Count
Change FX3 firmware for USB2 so the eob flag is always seen,
particularly on packets that are a multiple of 512 bytes
in size.
2018-07-12 16:45:50 -07:00
Ashish Chaudhari
c0a09e2f06 x300: Fixed processor clock rate in ZPU firmware
- Fix for regression that was introduced after the bus_clk freq change
- Firmware compat number bumped to 6.0 (was 5.2)
2018-02-23 14:13:44 -08:00
Ashish Chaudhari
d5109ae99e rfnoc,x300: Multiple clocking changes
- Moved bus_clk <=> ce_clk crossing to axi_wrapper in FPGA
  which resulted in a noc_shell compat bump
- Change x300 bus_clk frequency to 187.5 MHz
2018-02-21 16:50:18 -08:00
Paul David
3c6f37019e X3xx: Updated firmware to support reading FPGA image data 2017-06-30 10:50:37 -07:00
Marcus Müller
d9bcf00f69 made FX2 EEPROMS and firmware build with modern SDCC 3.6 2017-06-29 15:53:15 -07:00
Martin Braun
f3cabe9ffd Merge branch 'maint' 2017-03-24 19:06:32 -07:00
Paul David
51cbfdfd7e Firmware: fix failures due to fw_comm_protocol.h path 2017-03-22 14:18:57 -07:00
Derek Kozel
5b1d415f6e Docs: Updated FX3 SDK link in readme 2017-03-21 11:02:20 -07:00
Martin Braun
211c590f59 Merge branch 'maint' 2017-01-30 09:40:02 +01:00
michael-west
a7d7c9d520 X300: Made claim status update with every loop of the firmware to make it atomic from the host perspective 2017-01-30 09:37:44 +01:00
Marcus Müller
aacaa4b1c2 Added make target to produce C array from eeprom.bin 2017-01-26 16:22:49 +01:00
michael-west
0a2261a8cb B200: FX3 performance optimizations based on Cypress AN86947 2017-01-20 10:42:50 -08:00
Martin Braun
52ca2e0b80 Merge branch 'maint' 2017-01-17 10:00:47 -08:00
michael-west
64b4c1f5d7 X300: Prevent MB EEPROM Corruption
- Load EEPROM data into firmware memory to access from there instead of driving the I2C bus directly
- Fixed firmware performance issues by removing the popcntll() function and reducing frequency of background tasks to once every 10ms
- Added x300_mb_eeprom_iface to handle cases of devices with older and newer firmware
- Added checks for claim to device before driving the I2C bus
2017-01-10 13:51:53 -08:00
Ashish Chaudhari
01181d2fa6 x300: Updated Aurora BIST script after FPGA changes
- Fixed latency computation bug
- Pulled in new rate throttling mechanism
2016-12-20 15:53:57 -08:00
Martin Braun
83912104a9 Merge branch 'UHD-3.9.LTS' into maint
This provides the GPS fixes.

Conflicts:
	host/CMakeLists.txt
	tools/debs/upload_debs.sh
2016-09-02 11:27:37 -07:00
michael-west
7ea624b179 X300: GPSDO fixes
- Optimize writes so full 32-bit words are written at a time
- Simplify UART so it does not strip or add characters
2016-09-02 11:10:46 -07:00
Ryan
8cfc8edbea changed clk constant to match new zpu clk changes 2016-08-22 14:35:03 -04:00
Ashish Chaudhari
eb6ceee433 x300: Added latency test to Aurora tester script 2016-08-18 17:49:45 -07:00
Martin Braun
3bf4b000f7 Merging RFNoC support for X310 2016-08-09 12:42:52 -07:00
Martin Braun
3df0f6e9e4 Merge branch 'maint'
Conflicts:
	host/lib/usrp/dboard/db_wbx_version2.cpp
	host/lib/usrp/dboard/db_wbx_version3.cpp
2016-08-01 18:49:22 -07:00
Ashish Chaudhari
fd8a34c7e0 x300: Made FW utilities python3 compatible 2016-07-12 11:03:48 -07:00
Ashish Chaudhari
7cc16e5be0 x300: UHD is now compatible with FPGA images with Aurora support
- UHD and ZPU is now aware of Aurora SFP+ transceivers in the FPGA image
- Added script to exercise Aurora BIST features
2016-07-07 18:37:43 -07:00
211217613
23a04bf3ed Close file handlers the python way, changed var bytes to out_bytes 2016-06-27 09:58:04 -07:00
Ashish Chaudhari
abc4790ae4 x300: Fixed FW debug script after N230 merge breakage 2016-06-23 11:15:30 -07:00
Martin Braun
f693349f12 Merge branch 'maint' 2016-06-17 14:35:17 -07:00
Nicholas Corgan
aa16659587 octoclock: bugfixes, bumped firmware compat number to 4
* host: consistency in setting packet sequence numbers
* firmware: populate packet length field when setting GPSDO cache
* both: logic for dealing with mismatching compatibility numbers

Reviewed-By: Michael West <michael.west@ettus.com>
Reviewed-By: Martin Braun <martin.braun@ettus.com>
2016-06-17 11:37:45 -07:00
Martin Braun
2855abc807 Merge branch 'maint' 2016-02-29 12:42:16 -08:00
Derek Kozel
f212665812 Added srec_cat dependency for building the firmware 2016-02-29 12:10:15 -08:00
Moritz Fischer
12bf3c6a54 firmware: e3xx: Bump minor version to 2.2
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:27:32 +01:00
Moritz Fischer
d432506509 firmware: e3xx: This fixes an issue with the autoboot value.
The bug is a result of wrong order of evaluation:

The '|' operator takes precedence over '?'. Therefore
the intended expression a = x | (y ? 1 : 0) got evaluated
as a = (x | y) ? 1 : 0.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:27:22 +01:00
Moritz Fischer
2ba7395f88 firmware: e3xx: Added .eeprom section that gets written.
The EEPROM section was not getting written by make install,
so whatever was in there is in there.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:27:09 +01:00
Moritz Fischer
69be2678f7 firmware: e3xx: Bump minor version to 2.2
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:25:44 +01:00
Moritz Fischer
bbeacff2b1 firmware: e3xx: This fixes an issue with the autoboot value.
The bug is a result of wrong order of evaluation:

The '|' operator takes precedence over '?'. Therefore
the intended expression a = x | (y ? 1 : 0) got evaluated
as a = (x | y) ? 1 : 0.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:25:37 +01:00
Moritz Fischer
ea3040da12 firmware: e3xx: Added .eeprom section that gets written.
The EEPROM section was not getting written by make install,
so whatever was in there is in there.

Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:25:24 +01:00
Moritz Fischer
71bce47ecf firmware: e3xx: Bump minor version.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:19:28 +01:00
Moritz Fischer
9b8fdb0182 firmware: e3xx: Add panic button functionality.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:19:07 +01:00
Moritz Fischer
106405aace firmware: e3xx: Turn off overzealous shutdown.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
2016-01-26 18:18:56 +01:00