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.
The existing SPI read command is set for half-duplex 8-bit
or 16-bit writes followed by an equivalent sized read.
This patch adds a new command, VRQ_SPI_TRANSACT, which
performs a full-duplex transaction up to 4-bytes. Since the
data buffer of the USB control transfer is not available
for outbound data on IN requests, the 4 bytes of write data
are sent through the request parameters. Enables are sent
in the previsouly unused high byte of the length parameter.
The USB field mappings are shown below. Only rising edge
and MSB operation is supported.
Field (8-bit) Description
===== =====
bmRequestType 0x80 (USB Device IN request)
bRequest 0x83 (VRQ_SPI_TRANSACT)
wValueH OUT data(0)
wValueL OUT data(1)
wIndexH OUT data(2)
wIndexL OUT data(3)
wLengthH SPI enables
wLengthL Number of bytes to transfer (1-4)
EP0BUF IN data