Commit 1ba7fec8 authored by Maciej Lipinski's avatar Maciej Lipinski

[wr-streamers] updated handling of wrong GW register version

Added detection of wrong version number (usually, this means
that something is seriously wrong)
parent 374b6b63
Pipeline #161 passed with stages
in 26 seconds
...@@ -12,6 +12,10 @@ ...@@ -12,6 +12,10 @@
#include <hw/wr_streamers.h> #include <hw/wr_streamers.h>
#define GW_REG_VER_ERROR -1
#define GW_REG_VER_OK 0
#define GW_REG_VER_DIFFERENT 1
static struct mapping_desc *wrstm = NULL; static struct mapping_desc *wrstm = NULL;
#define LEAP_SECONDS_DEFAULT 37 #define LEAP_SECONDS_DEFAULT 37
...@@ -828,13 +832,25 @@ static int verify_reg_version() ...@@ -828,13 +832,25 @@ static int verify_reg_version()
gw_reg_map_version = iomemr32(wrstm->is_be, ptr->VER); gw_reg_map_version = iomemr32(wrstm->is_be, ptr->VER);
fprintf(stderr, "Wishbone register version: in FPGA = 0x%x |" fprintf(stderr, "Wishbone register version: in FPGA = 0x%x |"
" in SW = 0x%x\n", gw_reg_map_version, WBGEN2_WR_STREAMERS_VERSION); " in SW = 0x%x\n", gw_reg_map_version, WBGEN2_WR_STREAMERS_VERSION);
if(gw_reg_map_version < WBGEN2_WR_STREAMERS_VERSION)
return -1;
else if(gw_reg_map_version > WBGEN2_WR_STREAMERS_VERSION)
return 1;
else if(gw_reg_map_version == WBGEN2_WR_STREAMERS_VERSION)
return 0; return GW_REG_VER_OK;
else if(gw_reg_map_version == 0xffffffff || gw_reg_map_version == 0x0){
fprintf(stderr, "\n\nWrong reading of version register, exiting ...\n\n");
return GW_REG_VER_ERROR;
}
else {
fprintf(stderr, "\n");
fprintf(stderr, "============== !!! WARNING !!! ===============\n");
fprintf(stderr, " Register version in FPGA and SW do not match\n");
if(gw_reg_map_version < WBGEN2_WR_STREAMERS_VERSION)
fprintf(stderr, " This software is the newer than the bitstream\n");
if(gw_reg_map_version > WBGEN2_WR_STREAMERS_VERSION)
fprintf(stderr, " This software is older than the bitstream\n");
fprintf(stderr, " Some commands may not be supported\n");
fprintf(stderr, "============== !!! WARNING !!! ===============\n\n");
return GW_REG_VER_DIFFERENT;
}
} }
int main(int argc, char *argv[]) int main(int argc, char *argv[])
...@@ -857,17 +873,8 @@ int main(int argc, char *argv[]) ...@@ -857,17 +873,8 @@ int main(int argc, char *argv[])
} }
ret = verify_reg_version(); ret = verify_reg_version();
if (ret !=0) { if (ret == GW_REG_VER_ERROR) //something is wrong if incorrection version value
fprintf(stderr, "\n"); return -1;
fprintf(stderr, "============== !!! WARNING !!! ===============\n");
fprintf(stderr, " Register version in FPGA and SW do not match\n");
if(ret>0)
fprintf(stderr, " Your software is older than the bitstream\n");
if(ret>0)
fprintf(stderr, " Your software is the newer than the bitstream\n");
fprintf(stderr, " Some commands may not be supported\n");
fprintf(stderr, "============== !!! WARNING !!! ===============\n\n");
}
ret = extest_register_user_cmd(wrstm_cmd, WRSTM_CMD_NB); ret = extest_register_user_cmd(wrstm_cmd, WRSTM_CMD_NB);
if (ret) { if (ret) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment