diff options
author | Jon Szymaniak <jon.szymaniak@gmail.com> | 2013-10-26 16:26:16 -0400 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2013-11-04 21:22:00 +0100 |
commit | dd3592129220daeed207bc61b0886dccf4b47f8c (patch) | |
tree | 344e0ab234d5e9d0207059473eba7c3245d104fc | |
parent | e7354182246a67ad4a9f5963cfa6786eaa2b2af7 (diff) |
bladerf: Don't reload the FPGA unless the force-reload param is set
-rw-r--r-- | lib/bladerf/bladerf_common.cc | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/lib/bladerf/bladerf_common.cc b/lib/bladerf/bladerf_common.cc index 3833f34..60fc95a 100644 --- a/lib/bladerf/bladerf_common.cc +++ b/lib/bladerf/bladerf_common.cc @@ -149,14 +149,23 @@ void bladerf_common::init(dict_t &dict, const char *type) /* Load an FPGA */ if ( dict.count("fpga") ) { - std::string fpga = dict["fpga"]; - - std::cerr << _pfx << "Loading FPGA bitstream " << fpga << "..." << std::endl; - ret = bladerf_load_fpga( _dev.get(), fpga.c_str() ); - if ( ret != 0 ) - std::cerr << _pfx << "bladerf_load_fpga has failed with " << ret << std::endl; - else - std::cerr << _pfx << "The FPGA bitstream has been successfully loaded." << std::endl; + + if ( dict.count("fpga-reload") == 0 && + bladerf_is_fpga_configured( _dev.get() ) == 1 ) { + + std::cerr << _pfx << "FPGA is already loaded. Set fpga-reload=1 " + << "to force a reload." << std::endl; + + } else { + std::string fpga = dict["fpga"]; + + std::cerr << _pfx << "Loading FPGA bitstream " << fpga << "..." << std::endl; + ret = bladerf_load_fpga( _dev.get(), fpga.c_str() ); + if ( ret != 0 ) + std::cerr << _pfx << "bladerf_load_fpga has failed with " << ret << std::endl; + else + std::cerr << _pfx << "The FPGA bitstream has been successfully loaded." << std::endl; + } } if ( bladerf_is_fpga_configured( _dev.get() ) != 1 ) |