From 8972fa11433355b91a43085da29928e30b6495c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Br=C3=BCckner?= Date: Thu, 8 Oct 2015 17:29:13 +0200 Subject: [PATCH] EigerDetectorServer for firmware version 11, changes: direct write into udp block ram --- .../commonFiles/sls_detector_defs.h | 2 +- slsDetectorSoftware/eigerDetectorServer/Beb.c | 67 +++++++++++++----- .../bin/eigerDetectorServer | Bin 251436 -> 250896 bytes 3 files changed, 51 insertions(+), 18 deletions(-) diff --git a/slsDetectorSoftware/commonFiles/sls_detector_defs.h b/slsDetectorSoftware/commonFiles/sls_detector_defs.h index 1c911c9d5..4b660f649 100755 --- a/slsDetectorSoftware/commonFiles/sls_detector_defs.h +++ b/slsDetectorSoftware/commonFiles/sls_detector_defs.h @@ -10,7 +10,7 @@ //#include #include "sls_receiver_defs.h" -#define REQUIRED_FIRMWARE_VERSION 10 +#define REQUIRED_FIRMWARE_VERSION 11 /** default maximum string length */ #define MAX_SCAN_STEPS 2000 diff --git a/slsDetectorSoftware/eigerDetectorServer/Beb.c b/slsDetectorSoftware/eigerDetectorServer/Beb.c index 9e80e1307..f3a3c50c2 100644 --- a/slsDetectorSoftware/eigerDetectorServer/Beb.c +++ b/slsDetectorSoftware/eigerDetectorServer/Beb.c @@ -136,10 +136,10 @@ void Beb_Beb(){ Beb_bit_mode = 4; - ll_beb = &ll_beb_local; - Local_LocalLinkInterface1(ll_beb,XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR); +// ll_beb = &ll_beb_local; +// Local_LocalLinkInterface1(ll_beb,XPAR_PLB_LL_FIFO_AURORA_DUAL_CTRL_FEB_LEFT_BASEADDR); - Beb_SetByteOrder(); +// Beb_SetByteOrder(); } @@ -370,6 +370,7 @@ void Beb_SwapDataFun(int little_endian, unsigned int n, unsigned int *d){ int Beb_SetByteOrder(){ +/* Beb_send_data_raw[0] = 0x8fff0000; if(Local_Write(ll_beb,4,Beb_send_data_raw)!=4) return 0; @@ -392,31 +393,63 @@ int Beb_SetByteOrder(){ Beb_WriteTo(0); printf("\tSetting Byte Order .............. ok\n"); - +*/ return 1; } - - int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port){ - unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/ + u_int32_t bram_phy_addr; + volatile u_int32_t* bram_ptr; + bram_ptr = NULL; + if (ten_gig) + bram_phy_addr = 0xC6002000; + else + bram_phy_addr = 0xC6001000; - /***********************************if(!i) return 0; *************************************///i must be greater than 0, zero is the global send + if(!Beb_SetHeaderData(beb_number,ten_gig,dst_mac,dst_ip,dst_port)) return 0; - Beb_send_ndata = 14; - Beb_send_data[0] = ten_gig ? 0x00020000 : 0x00010000; //write to fanout numbers 1 or 2 - Beb_send_data[1] = ((header_number*8)<<16); - if(!Beb_SetHeaderData(beb_number,ten_gig,dst_mac,dst_ip,dst_port)) return 0; + int fd = open("/dev/mem", O_RDWR | O_SYNC, 0); + if (fd == -1) + cprintf(BG_RED,"\nCan't find /dev/mem!\n"); + else{ +#ifdef VERBOSE + printf("/dev/mem opened\n"); +#endif + bram_ptr = mmap(0, 0x1000, PROT_READ|PROT_WRITE, MAP_FILE|MAP_SHARED, fd, bram_phy_addr); + if (bram_ptr == MAP_FAILED) { + cprintf(BG_RED,"\nCan't map memmory area!!\n"); + fd = -1; + } +#ifdef VERBOSE + else printf("CSP0 mapped\n"); +#endif + } - Beb_SwapDataFun(1,12,&(Beb_send_data[2])); - - if(!Beb_WriteTo(i)) return 0; - printf("beb dst_port:%d\n",dst_port); - return 1; + memcpy(bram_ptr+header_number*16, &udp_header, sizeof(udp_header)); + close(fd); + return 1; } +//int Beb_SetUpUDPHeader(unsigned int beb_number, int ten_gig, unsigned int header_number, char* dst_mac, char* dst_ip, unsigned int dst_port){ +// unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/ +// +// /***********************************if(!i) return 0; *************************************///i must be greater than 0, zero is the global send +// +// Beb_send_ndata = 14; +// Beb_send_data[0] = ten_gig ? 0x00020000 : 0x00010000; //write to fanout numbers 1 or 2 +// Beb_send_data[1] = ((header_number*8)<<16); +// if(!Beb_SetHeaderData(beb_number,ten_gig,dst_mac,dst_ip,dst_port)) return 0; +// +// Beb_SwapDataFun(1,12,&(Beb_send_data[2])); +// +// if(!Beb_WriteTo(i)) return 0; +// printf("beb dst_port:%d\n",dst_port); +// return 1; +//} + + int Beb_SetHeaderData(unsigned int beb_number, int ten_gig, char* dst_mac, char* dst_ip, unsigned int dst_port){ unsigned int i = 1;/*Beb_GetBebInfoIndex(beb_number);*/ /***********************************if(!i) return 0; *************************************///i must be greater than 0, zero is the global send diff --git a/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer b/slsDetectorSoftware/eigerDetectorServer/bin/eigerDetectorServer index 91af79a118aaa157ccac8698e63aaf3231464bd5..cfff38d8544c6fc722784917435f41b372d25f9a 100755 GIT binary patch delta 39363 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 L{@J#HSw{^3FUvoO delta 41417 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