aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--host/lib/usrp/e300/e300_eeprom_manager.cpp4
-rw-r--r--host/lib/usrp/e300/e300_impl.cpp13
2 files changed, 13 insertions, 4 deletions
diff --git a/host/lib/usrp/e300/e300_eeprom_manager.cpp b/host/lib/usrp/e300/e300_eeprom_manager.cpp
index f994ec996..9db9a2ba5 100644
--- a/host/lib/usrp/e300/e300_eeprom_manager.cpp
+++ b/host/lib/usrp/e300/e300_eeprom_manager.cpp
@@ -232,8 +232,10 @@ std::string e300_eeprom_manager::get_mb_type_string(void) const
return "E3XX";
case E310_SG1_MB_PID:
+ return "E3XX SG1";
+
case E310_SG3_MB_PID:
- return "E3XX";
+ return "E3XX SG3";
default:
return "UNKNOWN";
diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp
index 538eded79..7e99e2f70 100644
--- a/host/lib/usrp/e300/e300_impl.cpp
+++ b/host/lib/usrp/e300/e300_impl.cpp
@@ -200,7 +200,7 @@ device_addrs_t e300_find(const device_addr_t &multi_dev_hint)
const mboard_eeprom_t eeprom = eeprom_manager.get_mb_eeprom();
new_addr["name"] = eeprom["name"];
new_addr["serial"] = eeprom["serial"];
- new_addr["product"] = eeprom["product"];
+ new_addr["product"] = eeprom_manager.get_mb_type_string();
} catch (...) {
// set these values as empty string, so the device may still be found
// and the filters below can still operate on the discovered device
@@ -236,7 +236,7 @@ device_addrs_t e300_find(const device_addr_t &multi_dev_hint)
const mboard_eeprom_t eeprom = eeprom_manager.get_mb_eeprom();
new_addr["name"] = eeprom["name"];
new_addr["serial"] = eeprom["serial"];
- new_addr["product"] = eeprom["product"];
+ new_addr["product"] = eeprom_manager.get_mb_type_string();
} catch (...) {
// set these values as empty string, so the device may still be found
// and the filters below can still operate on the discovered device
@@ -323,7 +323,14 @@ e300_impl::e300_impl(const uhd::device_addr_t &device_addr)
_do_not_reload = device_addr.has_key("no_reload_fpga");
if (not _do_not_reload) {
std::string fpga_image;
- get_e3x0_fpga_images(device_addr,
+
+ // need to re-read product ID code because of conversion into string in find function
+ e300_eeprom_manager eeprom_manager(i2c::make_i2cdev(E300_I2CDEV_DEVICE));
+ const mboard_eeprom_t eeprom = eeprom_manager.get_mb_eeprom();
+ device_addr_t device_addr_cp;
+ device_addr_cp["product"] = eeprom["product"];
+
+ get_e3x0_fpga_images(device_addr_cp,
fpga_image,
_idle_image);
common::load_fpga_image(fpga_image);