FlxCard
Loading...
Searching...
No Matches
FlxCard Class Reference

Public Member Functions

 FlxCard ()
 The constructor of an FlxCard object only initializes a few class variables. It does not interact with the FELIX H/W.
 
void card_open (int device_nr, u_int lock_mask, bool read_config=false, bool ignore_version=false)
 
void card_close ()
 
u_int lock_mask (int device_nr)
 
u_int get_lock_mask (int device_nr)
 
u_long openBackDoor (int bar)
 
u_long bar0Address ()
 
u_long bar1Address ()
 
u_long bar2Address ()
 
int dma_max_tlp_bytes ()
 
void dma_to_host (u_int dma_id, u_long dst, size_t size, u_int flags)
 
void dma_from_host (u_int dma_id, u_long src, size_t size, u_int flags)
 
bool dma_enabled (u_int dma_id)
 
void dma_wait (u_int dma_id)
 
void dma_stop (u_int dma_id)
 
void dma_advance_ptr (u_int dma_id, u_long dst, size_t size, size_t bytes)
 
void dma_set_ptr (u_int dma_id, u_long dst)
 
u_long dma_get_ptr (u_int dma_id)
 
u_long dma_get_read_ptr (u_int dma_id)
 
void dma_reset ()
 
u_long dma_get_fw_ptr (u_int dma_id)
 
u_long dma_get_current_address (u_int dma_id)
 
bool dma_cmp_even_bits (u_int dma_id)
 
void i2c_read (const char *device_str, u_char reg_addr, u_char *value, int nbytes=1)
 
void i2c_write (const char *device_str, u_char reg_addr, u_char data)
 
void i2c_write (const char *device_str, u_char reg_addr, u_char *data, int nbytes)
 
void i2c_write_byte (u_char dev_addr, u_char byte)
 
void i2c_write_byte (u_char dev_addr, u_char reg_addr, u_char byte)
 
u_char i2c_read_byte (u_char dev_addr, u_char reg_addr)
 
bool i2c_flush (u_int *count=0)
 
void i2c_write_bytes (uint8_t dev_addr, uint8_t reg_addr, int nbytes, uint8_t *bytes)
 
void i2c_read_bytes (uint8_t dev_addr, uint8_t reg_addr, int nbytes, uint8_t *bytes)
 
u_int gbt_setup (int alignment, int channel_mode)
 
long int gbt_version_delay (u_long svn_version, char *filename)
 
u_long rxusrclk_freq (u_int channel)
 
void gth_rx_reset (int quad=-1)
 
void irq_enable (u_int interrupt=ALL_IRQS)
 
void irq_disable (u_int interrupt=ALL_IRQS)
 
void irq_wait (u_int interrupt)
 
void irq_clear (u_int interrupt=ALL_IRQS)
 
void irq_cancel (u_int interrupt=ALL_IRQS)
 
void irq_reset_counters (u_int interrupt=ALL_IRQS)
 
u_long cfg_get_option (const char *key, bool show_options=false)
 
void cfg_set_option (const char *key, u_long value, bool show_options=false)
 
u_long cfg_get_reg (const char *key)
 
void cfg_set_reg (const char *key, u_long value)
 
void registers_reset ()
 
u_int card_model ()
 
u_int card_type ()
 
u_int firmware_type ()
 
std::string firmware_type_string ()
 
std::string firmware_string ()
 
bool lpgbt_type ()
 
bool lpgbt_fec12 ()
 
bool lpgbt_5gbps ()
 
bool fullmode_type ()
 
void soft_reset ()
 
void cr_fromhost_reset ()
 
u_int number_of_channels ()
 
std::pair< int, int > ec_elink_indices ()
 
std::pair< int, int > ic_elink_indices ()
 
fpga_monitoring_t fpga_monitoring ()
 
ltc_monitoring_t power_monitoring_ltc2991 ()
 
ina_monitoring_t power_monitoring_ina226 (int *ina_count=0)
 
tmp_monitoring_t temperature_monitoring_tmp435 (int *tmp_count=0)
 
ltm_monitoring_t power_monitoring_ltm4700 ()
 
adm_monitoring_t powersequencer_monitoring_adm1x66 (int *adm_count=0)
 
minipod_monitoring_t minipod_monitoring (u_int selection, int *number_of_pods=0)
 
firefly_monitoring_t firefly_monitoring (int *tx_count=0, int *rx_count=0, int *tr_count=0)
 
monitoring_data_t get_monitoring_data (u_int mon_mask)
 
float fpga_temperature ()
 
int fpga_fanspeed ()
 
std::vector< int > minipods_temperature ()
 
std::vector< int > minipods_optical_power ()
 
bool firefly_detect (const std::string &device_name, std::string &vendor_part, std::string &vendor_sn)
 
void configure (std::string filename, bool do_links=true, bool do_registers=true)
 
void readConfiguration (std::string filename)
 
void readConfiguration ()
 
u_int number_of_elinks_tohost (int dma_index=-1)
 
u_int number_of_elinks_toflx ()
 
u_int number_of_elinks_fromhost ()
 
std::vector< flxcard::elink_descr_t > elinks_tohost (int dma_index=-1)
 
std::vector< flxcard::elink_descr_t > elinks_toflx ()
 
std::vector< flxcard::elink_descr_t > elinks_fromhost ()
 
std::vector< flxcard::elink_descr_t > elinks_toflx_broadcast ()
 
std::vector< flxcard::elink_descr_t > elinks_fromhost_broadcast ()
 
u_int number_of_dma_tohost ()
 
bool uses_dma_index_mask ()
 
void set_hdlc_instant_timeout (bool b)
 
bool hdlc_instant_timeout ()
 
unsigned int link_mode ()
 
bool is_elink_enabled (u_int channel, u_int egroup, u_int epath, bool is_to_flx)
 
unsigned int tohost_elink_dmaid (u_int channel, u_int egroup, u_int epath)
 
unsigned int tohost_elink_dmaid (uint16_t elinknr)
 
bool has_tohost_elink_streams (u_int channel, u_int egroup, u_int epath)
 
uint8_t detector_id ()
 
uint16_t connector_id (uint16_t channel)
 

Static Public Member Functions

static u_int number_of_cards ()
 
static u_int number_of_devices ()
 
static device_list_t device_list ()
 
static int card_to_device_number (int card_number)
 
static regmap_register_t * cfg_register (const char *name)
 
static regmap_bitfield_t * cfg_bitfield (const char *name)
 
static std::string cfg_bitfield_options (const char *name, bool include_all_substr=true)
 

Public Attributes

volatile flxcard_bar0_regs_tm_bar0
 
volatile flxcard_bar1_regs_tm_bar1
 
volatile flxcard_bar2_regs_t * m_bar2
 
i2c_device_t const * m_i2cDevices
 

The documentation for this class was generated from the following file: