aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Szymaniak <jon.szymaniak@gmail.com>2013-10-26 16:26:16 -0400
committerDimitri Stolnikov <horiz0n@gmx.net>2013-11-04 21:22:00 +0100
commitdd3592129220daeed207bc61b0886dccf4b47f8c (patch)
tree344e0ab234d5e9d0207059473eba7c3245d104fc
parente7354182246a67ad4a9f5963cfa6786eaa2b2af7 (diff)
bladerf: Don't reload the FPGA unless the force-reload param is set
-rw-r--r--lib/bladerf/bladerf_common.cc25
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 )