Skip to content
Snippets Groups Projects
Commit d53b193e authored by Patrick Robbe's avatar Patrick Robbe
Browse files

Remove old files

parent c44d7eea
No related branches found
No related tags found
No related merge requests found
lib/
obj/
CC=gcc -fPIC -g
CFLAGS= -c -Wall
LDFLAGS=
#defined global variables and programs to build
include Makefile.conf
#Globals Directories
# necessary to access Paolo includes to build interface to its library (contains includes and libs)
#
# used if no rpm
# PCIE40_INC_DIR=$(pcie40DaqDir)
# PCIE40_DYN_LIB=$(pcie40DaqDir)/pcie40_ecs/libpcie40_ecs.so
# PCIE40_STAT_LIB=$(pcie40DaqDir)/pcie40_ecs/libpcie40_ecs.a
# used if rpm (normally useless because default
# but need to be defined later or build crashes because include in -I are missing
#PCIE40_INC_DIR=/usr/include/
#PCIE40_DYN_LIB=/usr/lib64
#PCIE40_STAT_LIB=/usr/lib64
PCIE40_INC_DIR=../Driver
PCIE40_DYN_LIB=../Driver/pcie40
PCIE40_STAT_LIB=../Driver/pcie40
OBJ_DIR=obj/
SRC_DIR=src/
INC_DIR=inc/
LIB_DIR=lib/
#SubDirectories
ECS_DIR=ecs/
MINIPODS_DIR=minipods/
USER_DIR=user/
SYSTEM_DIR=system/
LTC2990_DIR=ltc2990/
#Files ------------------------------------------------------------------------
#ECS
ECS_SRC= $(wildcard $(SRC_DIR)$(ECS_DIR)*.c)
ECS_OBJ=$(ECS_SRC:$(SRC_DIR)$(ECS_DIR)%.c=$(OBJ_DIR)%.o)
#Minipods
MINIPODS_SRC= $(wildcard $(SRC_DIR)$(MINIPODS_DIR)*.c)
MINIPODS_OBJ=$(MINIPODS_SRC:$(SRC_DIR)$(MINIPODS_DIR)%.c=$(OBJ_DIR)%.o)
#User
USER_SRC= $(wildcard $(SRC_DIR)$(USER_DIR)*.c)
USER_OBJ=$(USER_SRC:$(SRC_DIR)$(USER_DIR)%.c=$(OBJ_DIR)%.o)
#LTC2990
LTC2990_SRC= $(wildcard $(SRC_DIR)$(LTC2990_DIR)*.c)
LTC2990_OBJ=$(LTC2990_SRC:$(SRC_DIR)$(LTC2990_DIR)%.c=$(OBJ_DIR)%.o)
# static libraries
ECS_LIB= libecs.a
MINIPODS_LIB= libminipods.a
USER_LIB= libuser.a
LTC2990_LIB= libltc2990.a
# dynamic libraries
USER_DYNLIB= libuser-dyn.so
LLI_DYNLIB= lli-dyn.so
all: $(ECS_OBJ) $(ECS_LIB) $(MINIPODS_OBJ) $(MINIPODS_LIB) $(LTC2990_OBJ) $(LTC2990_LIB) $(LLI_DYNLIB) $(USER_LIB) $(USER_DYNLIB)
$(ECS_OBJ): $(OBJ_DIR)%.o : $(SRC_DIR)$(ECS_DIR)%.c
@echo "Construction of ecs objects $@ from $<"
mkdir -p obj
$(CC) $(CFLAGS) -I $(INC_DIR)$(ECS_DIR) -I $(INC_DIR)$(SYSTEM_DIR) -I $(PCIE40_INC_DIR) $< -o $@
$(ECS_LIB) : $(ECS_OBJ)
@echo "Construction of ECS Library"
mkdir -p lib
ar -q $(LIB_DIR)$(ECS_LIB) $(ECS_OBJ)
@echo ""
$(MINIPODS_OBJ): $(OBJ_DIR)%.o : $(SRC_DIR)$(MINIPODS_DIR)%.c
@echo "Construction of $@ from $<"
$(CC) $(CFLAGS) -I $(INC_DIR)$(MINIPODS_DIR) -I $(INC_DIR)$(SYSTEM_DIR) -I $(INC_DIR)$(ECS_DIR) -I $(PCIE40_INC_DIR) $< -o $@
@echo ""
$(MINIPODS_LIB) : $(MINIPODS_OBJ)
@echo "Construction of MINIPODS Library"
ar -q $(LIB_DIR)$(MINIPODS_LIB) $(MINIPODS_OBJ)
@echo ""
$(LTC2990_OBJ): $(OBJ_DIR)%.o : $(SRC_DIR)$(LTC2990_DIR)%.c
@echo "Construction of $@ from $<"
$(CC) $(CFLAGS) -I $(INC_DIR)$(PLL_DIR) -I $(INC_DIR)$(LTC2990_DIR) -I $(INC_DIR)$(SYSTEM_DIR) -I $(INC_DIR)$(MINIPODS_DIR) -I $(INC_DIR)$(LTC2990_DIR) -I $(PCIE40_INC_DIR) $< -o $@
@echo ""
$(LTC2990_LIB) : $(LTC2990_OBJ)
@echo "Construction of LTC2990 Library"
ar -q $(LIB_DIR)$(LTC2990_LIB) $(LTC2990_OBJ)
@echo ""
$(USER_OBJ): $(OBJ_DIR)%.o : $(SRC_DIR)$(USER_DIR)%.c
@echo "Construction of $@ from $<"
$(CC) $(CFLAGS) -I $(INC_DIR)$(USER_DIR) -I $(INC_DIR)$(SYSTEM_DIR) -I $(INC_DIR)$(ECS_DIR) -I $(PCIE40_INC_DIR) $< -o $@
@echo ""
$(USER_LIB) : $(USER_OBJ)
@echo "Construction of USER Library"
ar -q $(LIB_DIR)$(USER_LIB) $(USER_OBJ) $(ECS_OBJ)
@echo ""
$(USER_DYNLIB) : $(USER_OBJ)
@echo "Construction of dynamic USER Library"
$(CC) -o $(LIB_DIR)$(USER_DYNLIB) -shared $(USER_OBJ) $(ECS_OBJ)
@echo
$(LLI_DYNLIB) : $(ECS_OBJ) $(MINIPODS_OBJ)
@echo "Construction of dynamic LLI technical Library for V2"
# with locally built ecs library
mkdir -p lib
$(CC) -o $(LIB_DIR)$(LLI_DYNLIB) -shared $(ECS_OBJ) $(PLL_OBJ) $(MINIPODS_OBJ) -L $(PCIE40_DYN_LIB) -lpcie40_ecs
# with rpm installed ecs library
# $(CC) -o $(LIB_DIR)$(LLI_DYNLIB) -shared $(ECS_OBJ) $(MINIPODS_OBJ) -lpcie40_ecs
@echo
clean: mrproper
@echo "removing lli objects"
-rm $(OBJ_DIR)*.o
@echo ""
@echo "removing $(ECS_LIB)"
-rm $(LIB_DIR)$(ECS_LIB)
@echo ""
@echo "removing $(MINIPODS_LIB)"
-rm $(LIB_DIR)$(MINIPODS_LIB)
@echo ""
@echo "removing $(LTC2990_LIB)"
-rm $(LIB_DIR)$(LTC2990_LIB)
@echo ""
@echo "removing $(USER_LIB)"
-rm $(LIB_DIR)$(USER_LIB)
-rm $(LIB_DIR)$(USER_DYNLIB)
-rm $(LIB_DIR)$(LLI_DYNLIB)
@echo ""
mrproper:
@echo "Removing all *~ files"
-find . -name "*~" -exec rm {} \;
@echo ""
# +----------------------------------------------------+"
# | Library Construction, flags |"
# +----------------------------------------------------+"
path=$(PWD)
libdir=$(path)/lli/lib/$(ES)
includedir=$(path)/lli/inc
ecsdir=ecs
systemdir=system
minipodsdir=minipods
ltc2990dir=ltc2990
# used with locally built ecs libraies
# ECS_ROOT_DIR=/home/upgrade/shared-PCIe40/lhcb-daq40-software
# pcie40DaqDir=$(ECS_ROOT_DIR)
# pcie40Dir=$(pcie40DaqDir)/pcie40_ecs/
# pcie40EcsInc=$(pcie40Dir)
# pcie40EcsLib=$(pcie40Dir)/libpcie40_ecs.a
#
# OR
#
# used with rpm
# includes
# /usr/include/lhcb/pcie40 write lhcb/pcie40 in code so that you use system default
# libraries
# /usr/lib64 = system default
#
# use locally ecs built library for INCLUDES
#LLI_CFLAGS= -I$(includedir)/$(plldir) -I$(includedir)/$(ecsdir) -I$(includedir)/$(systemdir) -I$(includedir)/$(minipodsdir) -I$(includedir)/$(phydir) -I$(includedir)/$(ltc2990dir) -I$(pcie40DaqDir)
# use rpm installed ecs library for INCLUDES (don't exist the 19/06/2017)
LLI_CFLAGS= -I/usr/include/lhcb -I$(includedir)/$(ecsdir) -I$(includedir)/$(systemdir) -I$(includedir)/$(minipodsdir) -I$(includedir)/$(ltc2990dir)
# use locally ecs built library
#LLI_LIBS= -L${libdir} -L$(includedir)/$(ltc2990dir) -lltc2990 -lpll -lminipods -lphy -lecs $(pcie40EcsLib)
LLI_LIBS= -L${libdir} -lminipods -lecs -lpcie40_ecs
userdir=user
# use locally built library
# LLI_USER_LIBS= -L$(libdir) -luser $(pcie40EcsLib)
# use rpm installed library
LLI_USER_LIBS= -L$(libdir) -luser
LLI_USER_CFLAGS= -I$(includedir)/$(userdir)
export LLI_LIBS
export LLI_CFLAGS
export LLI_USER_LIBS
export LLI_USER_CFLAGS
#ifndef ECS_H
#define ECS_H
#include <linux/ioctl.h>
typedef struct {
int size;
} ecs_arg_t;
#define ECS_IOCTL_SET_SIZE _IOW('e',0, ecs_arg_t *)
#define ECS_IOCTL_GET_SIZE _IOR('e',1, ecs_arg_t *)
void ecs_printSetup();
int ecs_open(int dev, int bar);
void ecs_close(int dev, int bar);
int ecs_write(int dev, int bar, unsigned add, int val);
unsigned ecs_read(int dev, int bar, unsigned add);
int ecs_writeBloc(int dev, int bar, unsigned add, int size, unsigned *val);
int ecs_readBloc(int dev, int bar, int unsigned, int size, unsigned *val);
//Adaptation with old library
int ecs_iowrBar(int dev, int bar, unsigned add, unsigned *val);
int ecs_iordBar(int dev, int bar, unsigned add, unsigned *val);
int ecs_iowrBarBloc(int dev, int bar, unsigned add, int size, unsigned *val);
int ecs_iordBarBloc(int dev, int bar, unsigned add, int size, unsigned *val);
// functions to use for user space registers R/W
int ecs_openUser(int dev);
void ecs_closeUser(int dev);
int ecs_iordUser(int dev, unsigned add, unsigned *val);
int ecs_iowrUser(int dev, unsigned add, unsigned *val);
int ecs_iordBlocUser(int dev, unsigned add, int size, unsigned *val);
int ecs_iowrBlocUser(int dev, unsigned add, int size, unsigned *val);
// functions to use to access the LLI ressources
int ecs_openLli(int dev);
void ecs_closeLli(int dev);
int ecs_iordLli(int dev, unsigned add, unsigned *val);
int ecs_iowrLli(int dev, unsigned add, unsigned *val);
int ecs_iordBlocLli(int dev, unsigned add, int size, unsigned *val);
int ecs_iowrBlocLli(int dev, unsigned add, int size, unsigned *val);
// functions to use to access the I2C core registers
int ecs_iordI2c(int dev, unsigned add, unsigned *val);
int ecs_iowrI2c(int dev, unsigned add, unsigned *val);
int ecs_iordI2c_slow(int dev, unsigned add, unsigned *val);
int ecs_iowrI2c_slow(int dev, unsigned add, unsigned *val);
// function to access the PHY registers space
int ecs_iordPhy(int dev, unsigned add, unsigned *val);
int ecs_iowrPhy(int dev, unsigned add, unsigned *val);
#endif
/****************************************************************************************//**
* \file i2cDriver.h
*
* \brief This unit is the includes for a simple driver library for I2C bus based
on the Open-Core I2C-master.
*
* \author PYD : 12/6/2013
* \version 0.1
* \date 12/6/2013
* PYD : 12/6/2013 initial version
* PYD : 12/6/2015 add a second bus for PCIe40
*//******************************************************************************************/
// USER ORIENTED PROCEDURES FOR EXTERNAL USE
int i2c_init(int dev, int bus, unsigned inCLK, unsigned SCLfreq);
void i2c_getInit(int dev, int bus, unsigned *inCLK, unsigned *SCLfreq);
int i2c_readMem(int dev, int bus, unsigned slaveAdd, unsigned regIndex, unsigned *val);
int i2c_writeMem(int dev, int bus, unsigned slaveAdd, unsigned regIndex, unsigned *val);
int i2c_multReadMem(int dev, int bus, unsigned slaveAdd, unsigned regIndex, int nb, unsigned **data);
#ifndef SYSTEM_CONFIG_H
#define SYSTEM_CONFIG_H
// max number of used borad in a PC
#define MAX_DEV 16
//================= BAR DEFINE =================
#define BAR_USER 0
#define BAR_LLI 2
#define BAR_I2C 2
//================= I2C ========================
// Makes the association between the BUS number and the BUS BASE
#define I2C_BUS_BASE_TEMPERATURES 0x10000
#define I2C_BUS_TEMPERATURES 0
#define I2C_BUS_BASE_PLL_CLEANER1 0x10020
#define I2C_BUS_PLL_CLEANER1 1
#define I2C_BUS_BASE_PLL_CLEANER2 0x10040
#define I2C_BUS_PLL_CLEANER2 2
#define I2C_BUS_BASE_PLL_TFC 0x10060
#define I2C_BUS_PLL_TFC 3
#define I2C_BUS_BASE_FANOUT 0x10080
#define I2C_BUS_FANOUT 4
#define I2C_BUS_BASE_SFP1 0x100A0
#define I2C_BUS_SFP1 5
#define I2C_BUS_BASE_SFP2 0x100C0
#define I2C_BUS_SFP2 6
#define I2C_BUS_BASE_MINIPODS 0x100E0
#define I2C_BUS_MINIPODS 7
#define I2C_BUS_BASE_TEMP_MEZZANINE 0x10100
#define I2C_BUS_TEMP_MEZZANINE 8
#define I2C_BUS_BASE_FPGA_EEPROM 0x10120
#define I2C_BUS_FPGA_EEPROM 9
#define I2C_BUS_BASE_CURRENT1 0x20000
#define I2C_BUS_CURRENT1 10
#define I2C_BUS_BASE_CURRENT2 0x20020
#define I2C_BUS_CURRENT2 11
//============== FPGA Transceivers =====================
#define NB_RECONFIG 1 //Number of reconfig blocs (transceivers) (Max 6 link by reconfig)
#define RECONFIG_BASE_ADDR_LIST {0x0200} //{addr_reconf0, addr_reconf1, addr_reconf2, addr_reconf3, ...}
#define RECONFIG_MGMT_BASE 0x0200
#define PHY_MGMT_BASE 0x0800
//================= USER_SPACE Master (BRIDGE) ==========
#define USER_SPACE_MASTER 0x80000
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment