Skip to content
Snippets Groups Projects
Commit 409e7b7a authored by qzhou's avatar qzhou
Browse files

fixed the print out for pll info

parent 18f10c31
No related branches found
No related tags found
1 merge request!13fixed the print out for pll info
...@@ -29,7 +29,6 @@ extern "C" void ecs_close(int dev, int bar); ...@@ -29,7 +29,6 @@ extern "C" void ecs_close(int dev, int bar);
#define SIZE_MEMO_FPGA 1024 // maximum size of memory in FPGA #define SIZE_MEMO_FPGA 1024 // maximum size of memory in FPGA
bool INFO = false; bool INFO = false;
bool USAGE = false;
#ifndef D #ifndef D
#define D(a,b,c) (((a)>>(c))&((1<<((b)+1-(c)))-1)) #define D(a,b,c) (((a)>>(c))&((1<<((b)+1-(c)))-1))
...@@ -58,6 +57,7 @@ void argument(int argc, char **argv){ ...@@ -58,6 +57,7 @@ void argument(int argc, char **argv){
dev_slot = atoi(argv[++i]); dev_slot = atoi(argv[++i]);
if( dev_slot<0 || dev_slot >= MAX_SLOT){ if( dev_slot<0 || dev_slot >= MAX_SLOT){
fprintf(stderr, "Invalid device slot %d, Valid slot [0, %d]\n", dev_slot, MAX_SLOT); fprintf(stderr, "Invalid device slot %d, Valid slot [0, %d]\n", dev_slot, MAX_SLOT);
exit(1);
} }
} }
if(ss=="--info"){ if(ss=="--info"){
...@@ -68,6 +68,7 @@ void argument(int argc, char **argv){ ...@@ -68,6 +68,7 @@ void argument(int argc, char **argv){
ch = atoi(argv[j]); ch = atoi(argv[j]);
if( ch<0 || ch >= MAX_NUM_CH){ if( ch<0 || ch >= MAX_NUM_CH){
fprintf(stderr, "Invalid channel ID %d, Valid ID [0, %d]\n", ch, MAX_NUM_CH); fprintf(stderr, "Invalid channel ID %d, Valid ID [0, %d]\n", ch, MAX_NUM_CH);
exit(1);
} }
en_link.reset(); en_link.reset();
en_link.set(ch, true); en_link.set(ch, true);
...@@ -77,14 +78,13 @@ void argument(int argc, char **argv){ ...@@ -77,14 +78,13 @@ void argument(int argc, char **argv){
} }
} }
if(ss=="-h" || ss=="-help"){ if(ss=="-h" || ss=="-help"){
USAGE = true;
fprintf(stderr, "%s version %d.%02d date %d\n" fprintf(stderr, "%s version %d.%02d date %d\n"
, ARGV0, VERSION/100, VERSION%100, MOD_DATE); , ARGV0, VERSION/100, VERSION%100, MOD_DATE);
fprintf(stderr, "usage: %s --ch 0 \n" fprintf(stderr, "usage: %s --ch 0 \n"
" --dev xx #device slot number which installed PCIe40\n" " --dev xx #device slot number which installed PCIe40\n"
" --ch xx xx ... #link channel number\n" " --ch xx xx ... #link channel number\n"
, ARGV0); , ARGV0);
return; exit(1);
} }
} }
} }
...@@ -115,26 +115,33 @@ statpice40(pcie40reg_t pcie40reg) ...@@ -115,26 +115,33 @@ statpice40(pcie40reg_t pcie40reg)
B(pcie40_sta, 3)?"ERROR":"OK", B(pcie40_sta, 3)?"ERROR":"OK",
B(pcie40_sta, 4)?"ERROR":"OK"); B(pcie40_sta, 4)?"ERROR":"OK");
if(INFO){ if(INFO){
printf("Input frequency = %f\nPLL[0-23] : %s | %s | %s | %s | %s\nPLL[24-47]: %s | %s | %s | %s | %s\nPLL[FTSW] : %s | %s | %s | %s | %s\n", printf("__________________________________\n");
(double)pcie40_inputPLLFrequency(dev_slot)/1000000, printf("Input frequency = %f [MHz]\n",(double)pcie40_inputPLLFrequency(dev_slot)/1000000);
pcie40_pllInputStatus(dev_slot, 1)?"OK":"BAD", printf("--------\n");
pcie40_pllFrequencyStatus(dev_slot, 1)?"OK":"BAD", printf("PLL No. : Lock sta | Input sta | Fre. sta | Lock cnt | Input. cnt | Fre. cnt\n");
pcie40_pllLockCounter(dev_slot, 1)?"OK":"LOL", printf("PLL[0-23] : %*s | %s | %s | %s | %s | %s\n", 10,
pcie40_pllInputCounter(dev_slot, 1)?"OK":"LOS", pcie40_pllLockStatus(dev_slot, 1)?"LOCKED":"NOT LOCKED",
pcie40_pllFrequencyCounter(dev_slot, 1)?"OK":"OOF", pcie40_pllInputStatus(dev_slot, 1)?"OK ":"BAD",
pcie40_pllLockStatus(dev_slot, 2)?"LOCKED":"LOL", pcie40_pllFrequencyStatus(dev_slot, 1)?"OK ":"BAD",
pcie40_pllInputStatus(dev_slot, 2)?"OK":"BAD", pcie40_pllLockCounter(dev_slot, 1)?"OK ":"LOL",
pcie40_pllFrequencyStatus(dev_slot, 2)?"OK":"BAD", pcie40_pllInputCounter(dev_slot, 1)?"OK ":"LOS",
pcie40_pllLockCounter(dev_slot, 2)?"OK":"LOL", pcie40_pllFrequencyCounter(dev_slot, 1)?"OK ":"OOF");
pcie40_pllInputCounter(dev_slot, 2)?"OK":"LOS", printf("PLL[24-47]: %*s | %s | %s | %s | %s | %s\n", 10,
pcie40_pllFrequencyCounter(dev_slot, 2)?"OK":"OOF", pcie40_pllLockStatus(dev_slot, 2)?"LOCKED":"NOT LOCKED",
pcie40_pllLockStatus(dev_slot, 3)?"LOCKED":"LOL", pcie40_pllInputStatus(dev_slot, 2)?"OK ":"BAD",
pcie40_pllInputStatus(dev_slot, 3)?"OK":"BAD", pcie40_pllFrequencyStatus(dev_slot, 2)?"OK ":"BAD",
pcie40_pllFrequencyStatus(dev_slot, 3)?"OK":"BAD", pcie40_pllLockCounter(dev_slot, 2)?"OK ":"LOL",
pcie40_pllLockCounter(dev_slot, 3)?"OK":"LOL", pcie40_pllInputCounter(dev_slot, 2)?"OK ":"LOS",
pcie40_pllInputCounter(dev_slot, 3)?"OK":"LOS", pcie40_pllFrequencyCounter(dev_slot, 2)?"OK ":"OOF");
pcie40_pllFrequencyCounter(dev_slot, 3)?"OK":"OOF"); printf("PLL[FTSW] : %*s | %s | %s | %s | %s | %s\n", 10,
} pcie40_pllLockStatus(dev_slot, 3)?"LOCKED":"NOT LOCKED",
pcie40_pllInputStatus(dev_slot, 3)?"OK ":"BAD",
pcie40_pllFrequencyStatus(dev_slot, 3)?"OK ":"BAD",
pcie40_pllLockCounter(dev_slot, 3)?"OK ":"LOL",
pcie40_pllInputCounter(dev_slot, 3)?"OK ":"LOS",
pcie40_pllFrequencyCounter(dev_slot, 3)?"OK ":"OOF");
printf("__________________________________\n");
}
return 0; return 0;
} }
...@@ -182,7 +189,7 @@ readregs(std::bitset<48> link_mask, pcie40reg_t pcie40reg[]) ...@@ -182,7 +189,7 @@ readregs(std::bitset<48> link_mask, pcie40reg_t pcie40reg[])
if (!link_mask[i]) continue; if (!link_mask[i]) continue;
if ( !pcie40_b2l_status(dev_slot, i) ) { if ( !pcie40_b2l_status(dev_slot, i) ) {
printf("b2link-%02d is down\n", i); //printf("b2link-%02d is down\n", i);
continue; continue;
} }
pcie->xbusy = pcie40_readfee32(dev_slot, ch, PCIE40REG_CCLK); pcie->xbusy = pcie40_readfee32(dev_slot, ch, PCIE40REG_CCLK);
...@@ -306,19 +313,17 @@ int main(int argc, char** argv){ ...@@ -306,19 +313,17 @@ int main(int argc, char** argv){
pcie40reg_t pcie40; pcie40reg_t pcie40;
pcie40reg_t pcie40reg[48]; pcie40reg_t pcie40reg[48];
if(!USAGE){ // open pcie40 device driver for current process
// open pcie40 device driver for current process ecs_open( dev_slot , SLC_BAR );
ecs_open( dev_slot , SLC_BAR );
printf("statlink version %d (%d) / ", VERSION, MOD_DATE);
printf("statlink version %d (%d) / ", VERSION, MOD_DATE); statpice40(pcie40);
statpice40(pcie40);
readregs(link_mask, pcie40reg);
readregs(link_mask, pcie40reg); statlink(link_mask, pcie40reg);
statlink(link_mask, pcie40reg);
// close pcie40 device driver for current process
// close pcie40 device driver for current process ecs_close( dev_slot , SLC_BAR) ;
ecs_close( dev_slot , SLC_BAR) ;
}
return 0 ; return 0 ;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment