aboutsummaryrefslogtreecommitdiffstats
path: root/host
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2016-08-23 16:29:59 -0700
committerMartin Braun <martin.braun@ettus.com>2016-08-23 16:29:59 -0700
commit3e3524294629f3ad3c1ca0c0011aeadceab90120 (patch)
tree9f6bb9dfcc59e5907a1db72453d5f2dc21a93210 /host
parent186e156277f61eb6fea276e84ce8e1c7b12b62ff (diff)
parent70ec54a8d084bd1f96803e6b272f49478d414dd8 (diff)
downloaduhd-3e3524294629f3ad3c1ca0c0011aeadceab90120.tar.gz
uhd-3e3524294629f3ad3c1ca0c0011aeadceab90120.tar.bz2
uhd-3e3524294629f3ad3c1ca0c0011aeadceab90120.zip
Merge branch 'maint'
Diffstat (limited to 'host')
-rw-r--r--host/CMakeLists.txt4
-rw-r--r--host/cmake/debian/changelog18
-rw-r--r--host/lib/usrp/dboard/db_ubx.cpp45
-rw-r--r--host/lib/usrp/x300/x300_fw_common.h4
-rw-r--r--host/lib/usrp/x300/x300_impl.cpp2
5 files changed, 58 insertions, 15 deletions
diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt
index 643857708..4d1654c21 100644
--- a/host/CMakeLists.txt
+++ b/host/CMakeLists.txt
@@ -332,8 +332,8 @@ UHD_INSTALL(FILES
#{{{IMG_SECTION
# This section is written automatically by /images/create_imgs_package.py
# Any manual changes in here will be overwritten.
-SET(UHD_IMAGES_MD5SUM "26473d4f18d2c9a207062e107bda1d11")
-SET(UHD_IMAGES_DOWNLOAD_SRC "uhd-images_003.010.000.000-release.zip")
+SET(UHD_IMAGES_MD5SUM "4f4a6c229f5a3906dc63533d3a505feb")
+SET(UHD_IMAGES_DOWNLOAD_SRC "uhd-images_003.010.000.000-36-g967897e0.zip")
#}}}
########################################################################
diff --git a/host/cmake/debian/changelog b/host/cmake/debian/changelog
index 48732ca38..f38aab406 100644
--- a/host/cmake/debian/changelog
+++ b/host/cmake/debian/changelog
@@ -22,6 +22,24 @@ uhd (3.10.0.0-0ubuntu1) trusty; urgency=low
-- Ettus Research <packages@ettus.com> Thu, 11 Aug 2016 04:48:49 -0800
+uhd (3.9.5-0ubuntu1) trusty; urgency=low
+
+ - B200: Update DSPs after changing tick rate
+ - X300: Added option to disable ADC self test, prevent DAC from
+ underrunning
+ - UBX: Fixed noise issues, reduced power consumption/heat, added codes for
+ upcoming board revisions, force RX LNAs on (reduces rx settling time)
+ - WBX: Fixed rev2 and rev3 boards on X300
+ - Utils/Examples: Cleaned up query_gpsdo_sensors, test_dboard_coercion,
+ - Manual: Minor fixes and updates
+ - CMake: Fix lib64 detection, better platform detection, Doxygen may use shorter
+ filenames
+ - Octoclock: GPSDO-related fixes, sequence number consistency fixes, UART
+ fixes (off-by-one errors). uhd_usrp_probe will pick up an OC now,
+ added Wireshark dissector for OC packets
+
+ -- Ettus Research <packages@ettus.com> Mon, 22 Aug 2016 02:36:40 -0800
+
uhd (3.9.4-0ubuntu1) trusty; urgency=low
- GPIO control: Fix address mismatch for RX and full duplex.
diff --git a/host/lib/usrp/dboard/db_ubx.cpp b/host/lib/usrp/dboard/db_ubx.cpp
index be3bdd17d..7416de735 100644
--- a/host/lib/usrp/dboard/db_ubx.cpp
+++ b/host/lib/usrp/dboard/db_ubx.cpp
@@ -154,6 +154,12 @@ static const dboard_id_t UBX_V1_40MHZ_TX_ID(0x77);
static const dboard_id_t UBX_V1_40MHZ_RX_ID(0x78);
static const dboard_id_t UBX_V1_160MHZ_TX_ID(0x79);
static const dboard_id_t UBX_V1_160MHZ_RX_ID(0x7A);
+static const dboard_id_t UBX_V2_40MHZ_TX_ID(0x7B);
+static const dboard_id_t UBX_V2_40MHZ_RX_ID(0x7C);
+static const dboard_id_t UBX_V2_160MHZ_TX_ID(0x7D);
+static const dboard_id_t UBX_V2_160MHZ_RX_ID(0x7E);
+static const dboard_id_t UBX_LP_160MHZ_TX_ID(0x0200);
+static const dboard_id_t UBX_LP_160MHZ_RX_ID(0x0201);
static const freq_range_t ubx_freq_range(10e6, 6.0e9);
static const gain_range_t ubx_tx_gain_range(0, 31.5, double(0.5));
static const gain_range_t ubx_rx_gain_range(0, 31.5, double(0.5));
@@ -221,19 +227,34 @@ public:
_iface = get_iface();
dboard_id_t rx_id = get_rx_id();
dboard_id_t tx_id = get_tx_id();
- if (rx_id == UBX_PROTO_V3_RX_ID and tx_id == UBX_PROTO_V3_TX_ID)
+ if (rx_id == UBX_PROTO_V3_RX_ID and tx_id == UBX_PROTO_V3_TX_ID) {
_rev = 0;
- else if (rx_id == UBX_PROTO_V4_RX_ID and tx_id == UBX_PROTO_V4_TX_ID)
+ }
+ else if (rx_id == UBX_PROTO_V4_RX_ID and tx_id == UBX_PROTO_V4_TX_ID) {
_rev = 1;
- else if (rx_id == UBX_V1_40MHZ_RX_ID and tx_id == UBX_V1_40MHZ_TX_ID)
+ }
+ else if (rx_id == UBX_V1_40MHZ_RX_ID and tx_id == UBX_V1_40MHZ_TX_ID) {
_rev = 1;
- else if (rx_id == UBX_V1_160MHZ_RX_ID and tx_id == UBX_V1_160MHZ_TX_ID)
- {
+ }
+ else if (rx_id == UBX_V2_40MHZ_RX_ID and tx_id == UBX_V2_40MHZ_TX_ID) {
+ _rev = 2;
+ }
+ else if (rx_id == UBX_V1_160MHZ_RX_ID and tx_id == UBX_V1_160MHZ_TX_ID) {
bw = 160e6;
_rev = 1;
}
- else
+ else if (rx_id == UBX_V2_160MHZ_RX_ID and tx_id == UBX_V2_160MHZ_TX_ID) {
+ bw = 160e6;
+ _rev = 2;
+ }
+ else if (rx_id == UBX_LP_160MHZ_RX_ID and tx_id == UBX_LP_160MHZ_TX_ID) {
+ // The LP version behaves and looks like a regular UBX-160 v2
+ bw = 160e6;
+ _rev = 2;
+ }
+ else {
UHD_THROW_INVALID_CODE_PATH();
+ }
switch(_rev)
{
@@ -243,6 +264,7 @@ public:
pfd_freq_max = 25e6;
break;
case 1:
+ case 2:
for (size_t i = 0; i < sizeof(ubx_v1_gpio_info) / sizeof(ubx_gpio_field_info_t); i++)
_gpio_map[ubx_v1_gpio_info[i].id] = ubx_v1_gpio_info[i];
pfd_freq_max = 50e6;
@@ -355,7 +377,7 @@ public:
lo->set_ld_pin_mode(max287x_iface::LD_PIN_MODE_DLD);
}
}
- else if (_rev == 1)
+ else if (_rev == 1 or _rev == 2)
{
_txlo1 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO1, _1));
_txlo2 = max287x_iface::make<max2871>(boost::bind(&ubx_xcvr::write_spi_regs, this, TXLO2, _1));
@@ -1242,8 +1264,11 @@ static dboard_base::sptr make_ubx(dboard_base::ctor_args_t args)
UHD_STATIC_BLOCK(reg_ubx_dboards)
{
- dboard_manager::register_dboard(UBX_PROTO_V3_RX_ID, UBX_PROTO_V3_TX_ID, &make_ubx, "UBX v0.3");
- dboard_manager::register_dboard(UBX_PROTO_V4_RX_ID, UBX_PROTO_V4_TX_ID, &make_ubx, "UBX v0.4");
- dboard_manager::register_dboard(UBX_V1_40MHZ_RX_ID, UBX_V1_40MHZ_TX_ID, &make_ubx, "UBX-40 v1");
+ dboard_manager::register_dboard(UBX_PROTO_V3_RX_ID, UBX_PROTO_V3_TX_ID, &make_ubx, "UBX v0.3");
+ dboard_manager::register_dboard(UBX_PROTO_V4_RX_ID, UBX_PROTO_V4_TX_ID, &make_ubx, "UBX v0.4");
+ dboard_manager::register_dboard(UBX_V1_40MHZ_RX_ID, UBX_V1_40MHZ_TX_ID, &make_ubx, "UBX-40 v1");
dboard_manager::register_dboard(UBX_V1_160MHZ_RX_ID, UBX_V1_160MHZ_TX_ID, &make_ubx, "UBX-160 v1");
+ dboard_manager::register_dboard(UBX_V2_40MHZ_RX_ID, UBX_V2_40MHZ_TX_ID, &make_ubx, "UBX-40 v2");
+ dboard_manager::register_dboard(UBX_V2_160MHZ_RX_ID, UBX_V2_160MHZ_TX_ID, &make_ubx, "UBX-160 v2");
+ dboard_manager::register_dboard(UBX_LP_160MHZ_RX_ID, UBX_LP_160MHZ_TX_ID, &make_ubx, "UBX-160-LP");
}
diff --git a/host/lib/usrp/x300/x300_fw_common.h b/host/lib/usrp/x300/x300_fw_common.h
index e05cd9ec7..aae0f769c 100644
--- a/host/lib/usrp/x300/x300_fw_common.h
+++ b/host/lib/usrp/x300/x300_fw_common.h
@@ -31,9 +31,9 @@ extern "C" {
#define X300_REVISION_COMPAT 7
#define X300_REVISION_MIN 2
-#define X300_FW_COMPAT_MAJOR 4
+#define X300_FW_COMPAT_MAJOR 5
#define X300_FW_COMPAT_MINOR 0
-#define X300_FPGA_COMPAT_MAJOR 0x20
+#define X300_FPGA_COMPAT_MAJOR 0x21
//shared memory sections - in between the stack and the program space
#define X300_FW_SHMEM_BASE 0x6000
diff --git a/host/lib/usrp/x300/x300_impl.cpp b/host/lib/usrp/x300/x300_impl.cpp
index 6ebe30739..5f47c35ed 100644
--- a/host/lib/usrp/x300/x300_impl.cpp
+++ b/host/lib/usrp/x300/x300_impl.cpp
@@ -694,7 +694,7 @@ void x300_impl::setup_mb(const size_t mb_i, const uhd::device_addr_t &dev_addr)
mb.zpu_spi = spi_core_3000::make(mb.zpu_ctrl, SR_ADDR(SET0_BASE, ZPU_SR_SPI),
SR_ADDR(SET0_BASE, ZPU_RB_SPI));
mb.zpu_i2c = i2c_core_100_wb32::make(mb.zpu_ctrl, I2C1_BASE);
- mb.zpu_i2c->set_clock_rate(X300_BUS_CLOCK_RATE);
+ mb.zpu_i2c->set_clock_rate(X300_BUS_CLOCK_RATE/2);
////////////////////////////////////////////////////////////////////
// print network routes mapping