bug fix: changes for the multipurpose reg in configuremac

This commit is contained in:
Dhanya Maliakal 2017-08-04 11:21:32 +02:00
parent fbee70818a
commit 039092f292
5 changed files with 37 additions and 32 deletions

View File

@ -1430,7 +1430,7 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d
tse_conf *tse_conf_regs; tse_conf *tse_conf_regs;
long int sum = 0; long int sum = 0;
long int checksum; long int checksum;
int count,val; int count;
unsigned short *addr; unsigned short *addr;
mac_conf_regs=(mac_conf*)(CSP0BASE+offset*2); mac_conf_regs=(mac_conf*)(CSP0BASE+offset*2);
@ -1440,35 +1440,40 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d
printf("***Configuring MAC*** \n"); printf("***Configuring MAC*** \n");
#endif #endif
if(ival) if(ival)
bus_w(addrr,(RESET_BIT|DIGITAL_TEST_BIT)); //0x080,reset mac (reset) bus_w(addrr, bus_r(addrr) | (RESET_BIT|DIGITAL_TEST_BIT)); //0x080,reset mac (reset)
else else
bus_w(addrr,RESET_BIT); //0x080,reset mac (reset) bus_w(addrr, bus_r(addrr) | RESET_BIT); //0x080,reset mac (reset)
val=bus_r(addrr);
#ifdef VERBOSE #ifdef VERBOSE
printf("Value read from Multi-purpose Reg:%x\n",val); printf("Value read from Multi-purpose Reg:%x\n",bus_r(addrr));
#endif #endif
// if(val!=0x080) return -1; // if(val!=0x080) return -1;
usleep(500000); usleep(500000);
bus_w(addrr, bus_r(addrr) &(~ RESET_BIT));/* release reset */
if(ival) if(ival)
bus_w(addrr,(ENET_RESETN_BIT|WRITE_BACK_BIT|DIGITAL_TEST_BIT)); //0x840,write shadow regs(enet reset,write bak) bus_w(addrr, bus_r(addrr) | (ENET_RESETN_BIT|WRITE_BACK_BIT|DIGITAL_TEST_BIT)); //0x840,write shadow regs(enet reset,write bak)
else else
bus_w(addrr,(ENET_RESETN_BIT|WRITE_BACK_BIT)); //0x840,write shadow regs(enet reset,write bak) bus_w(addrr, bus_r(addrr) | (ENET_RESETN_BIT|WRITE_BACK_BIT)); //0x840,write shadow regs(enet reset,write bak)
val=bus_r(addrr);
#ifdef VERBOSE #ifdef VERBOSE
printf("Value read from Multi-purpose Reg:%x\n",val); printf("Value read from Multi-purpose Reg:%x\n",bus_r(addrr));
#endif #endif
// if(val!=0x840) return -1; // if(val!=0x840) return -1;
bus_w(addrr, bus_r(addrr) &(~WRITE_BACK_BIT));/* release write_back */
if(ival) if(ival)
bus_w(addrr,(ENET_RESETN_BIT|DIGITAL_TEST_BIT)); //0x800,nreset phy(enet reset) bus_w(addrr, bus_r(addrr) | (ENET_RESETN_BIT|DIGITAL_TEST_BIT)); //0x800,nreset phy(enet reset)
else else
bus_w(addrr,ENET_RESETN_BIT); //0x800,nreset phy(enet reset) bus_w(addrr, bus_r(addrr) | ENET_RESETN_BIT); //0x800,nreset phy(enet reset)
val=bus_r(addrr);
#ifdef VERBOSE #ifdef VERBOSE
printf("Value read from Multi-purpose Reg:%x\n",val); printf("Value read from Multi-purpose Reg:%x\n",bus_r(addrr));
#endif #endif
// if(val!=0x800) return -1; // if(val!=0x800) return -1;
@ -1573,26 +1578,26 @@ int configureMAC(int ipad,long long int macad,long long int detectormacad, int d
if(ival) if(ival)
bus_w(addrr,(INT_RSTN_BIT|ENET_RESETN_BIT|WRITE_BACK_BIT|DIGITAL_TEST_BIT)); //0x2840,write shadow regs.. bus_w(addrr, bus_r(addrr) | (INT_RSTN_BIT|ENET_RESETN_BIT|WRITE_BACK_BIT|DIGITAL_TEST_BIT)); //0x2840,write shadow regs..
else else
bus_w(addrr,(INT_RSTN_BIT|ENET_RESETN_BIT|WRITE_BACK_BIT)); //0x2840,write shadow regs.. bus_w(addrr, bus_r(addrr) | (INT_RSTN_BIT|ENET_RESETN_BIT|WRITE_BACK_BIT)); //0x2840,write shadow regs..
val=bus_r(addrr);
#ifdef VERBOSE #ifdef VERBOSE
printf("Value read from Multi-purpose Reg:%x\n",val); printf("Value read from Multi-purpose Reg:%x\n",bus_r(addrr));
#endif #endif
// if(val!=0x2840) return -1; // if(val!=0x2840) return -1;
usleep(100000); usleep(100000);
if(ival) bus_w(addrr, bus_r(addrr) &(~WRITE_BACK_BIT));
bus_w(addrr,(INT_RSTN_BIT|ENET_RESETN_BIT|SW1_BIT|DIGITAL_TEST_BIT)); //0x2820,write shadow regs..
else if(ival)
bus_w(addrr,(INT_RSTN_BIT|ENET_RESETN_BIT|SW1_BIT)); //0x2820,write shadow regs.. bus_w(addrr, bus_r(addrr) | (INT_RSTN_BIT|ENET_RESETN_BIT|SW1_BIT|DIGITAL_TEST_BIT)); //0x2820,write shadow regs..
else
bus_w(addrr, bus_r(addrr) | (INT_RSTN_BIT|ENET_RESETN_BIT|SW1_BIT)); //0x2820,write shadow regs..
val=bus_r(addrr);
#ifdef VERBOSE #ifdef VERBOSE
printf("Value read from Multi-purpose Reg:%x\n",val); printf("Value read from Multi-purpose Reg:%x\n",bus_r(addrr));
#endif #endif
// if(val!=0x2820) return -1; // if(val!=0x2820) return -1;

View File

@ -1,9 +1,9 @@
Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer Path: slsDetectorsPackage/slsDetectorSoftware/gotthardDetectorServer
URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git URL: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git
Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git Repository Root: origin git@git.psi.ch:sls_detectors_software/sls_detector_software.git
Repsitory UUID: dc7806552a0a896870c4dd94dd47931c39180de7 Repsitory UUID: a0ae3985068425e7142df8271eac6ce09a238dc9
Revision: 205 Revision: 206
Branch: gotthard25um Branch: developer
Last Changed Author: Dhanya_Maliakal Last Changed Author: Dhanya_Maliakal
Last Changed Rev: 1453 Last Changed Rev: 1454
Last Changed Date: 2017-08-03 10:03:31.000000002 +0200 ./firmware_funcs.c Last Changed Date: 2017-08-04 09:28:44.000000002 +0200 ./firmware_funcs.c

View File

@ -1,11 +1,11 @@
//#define SVNPATH "" //#define SVNPATH ""
#define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git" #define SVNURL "git@git.psi.ch:sls_detectors_software/sls_detector_software.git"
//#define SVNREPPATH "" //#define SVNREPPATH ""
#define SVNREPUUID "dc7806552a0a896870c4dd94dd47931c39180de7" #define SVNREPUUID "a0ae3985068425e7142df8271eac6ce09a238dc9"
//#define SVNREV 0x1453 //#define SVNREV 0x1454
//#define SVNKIND "" //#define SVNKIND ""
//#define SVNSCHED "" //#define SVNSCHED ""
#define SVNAUTH "Dhanya_Maliakal" #define SVNAUTH "Dhanya_Maliakal"
#define SVNREV 0x1453 #define SVNREV 0x1454
#define SVNDATE 0x20170803 #define SVNDATE 0x20170804
// //