fix previous commit
This commit is contained in:
parent
2dc71ea612
commit
d9805dd1cf
14
src/jtag.hpp
14
src/jtag.hpp
|
|
@ -72,8 +72,18 @@ class Jtag {
|
|||
//bool insert_first(uint32_t device_id, uint16_t irlength);
|
||||
bool insert_first(uint32_t idcode, bool is_misc, uint16_t irlength, device_model *device);
|
||||
|
||||
int get_nb_targets() {
|
||||
int nb = 0;
|
||||
/*!
|
||||
* \brief return hown many devices were detected (supported and misc devices)
|
||||
* \return device list length
|
||||
*/
|
||||
size_t get_chain_length() { return _f_device_list.size(); }
|
||||
|
||||
/*!
|
||||
* \brief return hown many supported devices were detected (misc devices not included)
|
||||
* \return device list length
|
||||
*/
|
||||
size_t get_nb_targets() {
|
||||
size_t nb = 0;
|
||||
for (auto t: _f_device_list)
|
||||
if (!t.is_misc)
|
||||
nb++;
|
||||
|
|
|
|||
22
src/main.cpp
22
src/main.cpp
|
|
@ -453,8 +453,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
/* chain detection */
|
||||
//vector<int> listDev = jtag->get_devices_list();
|
||||
int found = listDev.size();
|
||||
int found = jtag->get_chain_length();
|
||||
int idcode = -1, index = 0;
|
||||
|
||||
if (args.verbose > 0)
|
||||
|
|
@ -484,26 +483,11 @@ int main(int argc, char **argv)
|
|||
if (jtag->get_nb_targets() != 1) {
|
||||
printError("Error: more than one FPGA found");
|
||||
printError("Use --index-chain to force selection");
|
||||
for (int i = 0; i < found; i++)
|
||||
printf("0x%08x\n", listDev[i]);
|
||||
for (auto f: jtag->get_devices_list())
|
||||
printf("0x%08x\n", f.idcode);
|
||||
delete(jtag);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
/*for (int i = 0; i < found; i++) {
|
||||
if (fpga_list.find(listDev[i]) != fpga_list.end()) {
|
||||
index = i;
|
||||
if (idcode != -1) {
|
||||
printError("Error: more than one FPGA found");
|
||||
printError("Use --index-chain to force selection");
|
||||
for (int i = 0; i < found; i++)
|
||||
printf("0x%08x\n", listDev[i]);
|
||||
delete(jtag);
|
||||
return EXIT_FAILURE;
|
||||
} else {
|
||||
idcode = listDev[i];
|
||||
}
|
||||
}
|
||||
}*/
|
||||
} else {
|
||||
index = args.index_chain;
|
||||
if (index > found || index < 0) {
|
||||
|
|
|
|||
|
|
@ -283,7 +283,7 @@ bool Xilinx::zynqmp_init(const std::string &family)
|
|||
* ARM at position 1
|
||||
*/
|
||||
char mess[256];
|
||||
std::vector<int> listDev = _jtag->get_devices_list();
|
||||
std::vector<Jtag::found_device> listDev = _jtag->get_devices_list();
|
||||
if (listDev.size() != 2) {
|
||||
snprintf(mess, sizeof(mess), "ZynqMP error: wrong"
|
||||
" JTAG length: %zu instead of 2\n",
|
||||
|
|
@ -292,18 +292,18 @@ bool Xilinx::zynqmp_init(const std::string &family)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (fpga_list[listDev[0]].family != "zynqmp") {
|
||||
if (listDev[0].model && listDev[0].model->family != "zynqmp") {
|
||||
snprintf(mess, sizeof(mess), "ZynqMP error: first device"
|
||||
" is not the PL TAP -> 0x%08x\n",
|
||||
listDev[0]);
|
||||
listDev[0].idcode);
|
||||
printError(mess);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (listDev[1] != 0x5ba00477) {
|
||||
if (listDev[1].idcode != 0x5ba00477) {
|
||||
snprintf(mess, sizeof(mess), "ZynqMP error: second device"
|
||||
" is not the ARM DAP cortex A53 -> 0x%08x\n",
|
||||
listDev[1]);
|
||||
listDev[1].idcode);
|
||||
printError(mess);
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue