diff options
-rw-r--r-- | host/lib/usrp/e300/e300_eeprom_manager.cpp | 4 | ||||
-rw-r--r-- | host/lib/usrp/e300/e300_impl.cpp | 13 |
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); |