diff options
author | Moritz Fischer <moritz.fischer@ettus.com> | 2015-11-24 14:59:24 -0800 |
---|---|---|
committer | Martin Braun <martin.braun@ettus.com> | 2015-12-16 15:40:18 -0800 |
commit | 789784fc7e8aeb12b8d8092d6874dee49712a156 (patch) | |
tree | 95d48e6cdc9b323b0106042d250ec0f021c4e6f2 | |
parent | 10178875a154e58af6c14774621776d13e7e3daa (diff) | |
download | uhd-789784fc7e8aeb12b8d8092d6874dee49712a156.tar.gz uhd-789784fc7e8aeb12b8d8092d6874dee49712a156.tar.bz2 uhd-789784fc7e8aeb12b8d8092d6874dee49712a156.zip |
e3xx: Added FPGA loading code for speedgrade 3 devices.
Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
-rw-r--r-- | host/lib/usrp/e300/e300_eeprom_manager.cpp | 10 | ||||
-rw-r--r-- | host/lib/usrp/e300/e300_eeprom_manager.hpp | 5 | ||||
-rw-r--r-- | host/lib/usrp/e300/e300_impl.cpp | 15 | ||||
-rw-r--r-- | host/lib/usrp/e300/e300_impl.hpp | 7 | ||||
-rw-r--r-- | host/lib/usrp/e300/e300_network.cpp | 7 |
5 files changed, 29 insertions, 15 deletions
diff --git a/host/lib/usrp/e300/e300_eeprom_manager.cpp b/host/lib/usrp/e300/e300_eeprom_manager.cpp index 752bd3768..00200747d 100644 --- a/host/lib/usrp/e300/e300_eeprom_manager.cpp +++ b/host/lib/usrp/e300/e300_eeprom_manager.cpp @@ -210,8 +210,11 @@ e300_eeprom_manager::mboard_t e300_eeprom_manager::get_mb_type( case E300_MB_PID: return USRP_E300_MB; - case E310_MB_PID: - return USRP_E310_MB; + case E310_SG1_MB_PID: + return USRP_E310_SG1_MB; + + case E310_SG3_MB_PID: + return USRP_E310_SG3_MB; default: return UNKNOWN; @@ -228,7 +231,8 @@ std::string e300_eeprom_manager::get_mb_type_string(void) const case E300_MB_PID: return "E3XX"; - case E310_MB_PID: + case E310_SG1_MB_PID: + case E310_SG3_MB_PID: return "E3XX"; default: diff --git a/host/lib/usrp/e300/e300_eeprom_manager.hpp b/host/lib/usrp/e300/e300_eeprom_manager.hpp index 86d7c3463..b06eeada9 100644 --- a/host/lib/usrp/e300/e300_eeprom_manager.hpp +++ b/host/lib/usrp/e300/e300_eeprom_manager.hpp @@ -29,7 +29,8 @@ namespace uhd { namespace usrp { namespace e300 { static const boost::uint16_t E300_MB_PID = 0x77d1; -static const boost::uint16_t E310_MB_PID = 0x77d2; +static const boost::uint16_t E310_SG1_MB_PID = 0x77d2; +static const boost::uint16_t E310_SG3_MB_PID = 0x77d3; static const boost::uint16_t E300_DB_PID = 0x0100; static const boost::uint16_t E310_DB_PID = 0x0110; @@ -68,7 +69,7 @@ public: i2c::sptr get_i2c_sptr(void); - enum mboard_t {USRP_E300_MB, USRP_E310_MB, UNKNOWN}; + enum mboard_t {USRP_E300_MB, USRP_E310_SG1_MB, USRP_E310_SG3_MB, UNKNOWN}; mboard_t get_mb_type(void) const; static mboard_t get_mb_type(boost::uint16_t pid); diff --git a/host/lib/usrp/e300/e300_impl.cpp b/host/lib/usrp/e300/e300_impl.cpp index 0003dddb0..a57c86c1d 100644 --- a/host/lib/usrp/e300/e300_impl.cpp +++ b/host/lib/usrp/e300/e300_impl.cpp @@ -277,15 +277,20 @@ void get_e3x0_fpga_images(const uhd::device_addr_t &device_addr, //extract the FPGA path for the e300 switch(e300_eeprom_manager::get_mb_type(pid)) { - case e300_eeprom_manager::USRP_E310_MB: + case e300_eeprom_manager::USRP_E310_SG1_MB: fpga_image = device_addr.cast<std::string>("fpga", - find_image_path(E310_FPGA_FILE_NAME)); - idle_image = find_image_path(E310_FPGA_IDLE_FILE_NAME); + find_image_path(E310_SG1_FPGA_FILE_NAME)); + idle_image = find_image_path(E3XX_SG1_FPGA_IDLE_FILE_NAME); + break; + case e300_eeprom_manager::USRP_E310_SG3_MB: + fpga_image = device_addr.cast<std::string>("fpga", + find_image_path(E310_SG3_FPGA_FILE_NAME)); + idle_image = find_image_path(E3XX_SG3_FPGA_IDLE_FILE_NAME); break; case e300_eeprom_manager::USRP_E300_MB: fpga_image = device_addr.cast<std::string>("fpga", find_image_path(E300_FPGA_FILE_NAME)); - idle_image = find_image_path(E300_FPGA_IDLE_FILE_NAME); + idle_image = find_image_path(E3XX_SG1_FPGA_IDLE_FILE_NAME); break; case e300_eeprom_manager::UNKNOWN: default: @@ -293,7 +298,7 @@ void get_e3x0_fpga_images(const uhd::device_addr_t &device_addr, << std::endl; fpga_image = device_addr.cast<std::string>("fpga", find_image_path(E300_FPGA_FILE_NAME)); - idle_image = find_image_path(E300_FPGA_IDLE_FILE_NAME); + idle_image = find_image_path(E3XX_SG1_FPGA_IDLE_FILE_NAME); break; } } diff --git a/host/lib/usrp/e300/e300_impl.hpp b/host/lib/usrp/e300/e300_impl.hpp index 764059c1b..595b42679 100644 --- a/host/lib/usrp/e300/e300_impl.hpp +++ b/host/lib/usrp/e300/e300_impl.hpp @@ -56,10 +56,11 @@ namespace uhd { namespace usrp { namespace e300 { static const std::string E300_FPGA_FILE_NAME = "usrp_e300_fpga.bit"; -static const std::string E310_FPGA_FILE_NAME = "usrp_e310_fpga.bit"; +static const std::string E310_SG1_FPGA_FILE_NAME = "usrp_e310_fpga.bit"; +static const std::string E310_SG3_FPGA_FILE_NAME = "usrp_e310_fpga_sg3.bit"; -static const std::string E300_FPGA_IDLE_FILE_NAME = "usrp_e300_fpga_idle.bit"; -static const std::string E310_FPGA_IDLE_FILE_NAME = "usrp_e310_fpga_idle.bit"; +static const std::string E3XX_SG1_FPGA_IDLE_FILE_NAME = "usrp_e3xx_fpga_idle.bit"; +static const std::string E3XX_SG3_FPGA_IDLE_FILE_NAME = "usrp_e3xx_fpga_idle_sg3.bit"; static const std::string E300_TEMP_SYSFS = "iio:device0"; static const std::string E300_SPIDEV_DEVICE = "/dev/spidev0.1"; diff --git a/host/lib/usrp/e300/e300_network.cpp b/host/lib/usrp/e300/e300_network.cpp index 96387d6f7..0aa5a21ae 100644 --- a/host/lib/usrp/e300/e300_network.cpp +++ b/host/lib/usrp/e300/e300_network.cpp @@ -575,8 +575,11 @@ network_server_impl::network_server_impl(const uhd::device_addr_t &device_addr) _eeprom_manager->get_mb_eeprom()["product"]); std::string fpga_image; switch(e300_eeprom_manager::get_mb_type(pid)) { - case e300_eeprom_manager::USRP_E310_MB: - fpga_image = find_image_path(E310_FPGA_FILE_NAME); + case e300_eeprom_manager::USRP_E310_SG1_MB: + fpga_image = find_image_path(E310_SG1_FPGA_FILE_NAME); + break; + case e300_eeprom_manager::USRP_E310_SG3_MB: + fpga_image = find_image_path(E310_SG3_FPGA_FILE_NAME); break; case e300_eeprom_manager::USRP_E300_MB: fpga_image = find_image_path(E300_FPGA_FILE_NAME); |