openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

cmicx_sim_pcid.h (3049B)


      1 /*
      2  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      3  * 
      4  * Copyright 2007-2019 Broadcom Inc. All rights reserved.
      5  */
      6 
      7 
      8 /*
      9  * cmicx_sim_pcid.h
     10  *
     11  * header for the cmic module
     12  */
     13 
     14 
     15 #ifndef _CMICX_SIM_PCID_H_
     16 #define _CMICX_SIM_PCID_H_
     17 
     18 
     19 /* includes */
     20 #include "pcid.h"
     21 
     22 
     23 /* pcid functions */
     24 bool cmicx_update(pcid_info_t *pcid_info);
     25 bool cmicx_pcid_register_add(addr_t,pcid_read_func_t*,pcid_write_func_t*);
     26 bool cmicx_pcid_register_read(addr_t addr,reg_t *reg);
     27 bool cmicx_pcid_register_write(addr_t addr,reg_t reg);
     28 bool cmicx_pcid_interrupt_send(pcid_info_t *pcid_info);
     29 bool cmicx_pcid_mem_read(pcid_info_t *pcid_info, addr_t addr,void *mem,int amount);
     30 bool cmicx_pcid_mem_write(pcid_info_t *pcid_info, addr_t addr,void *mem,int amount);
     31 void cmicx_pcid_mem_dump(void);
     32 
     33 
     34 /* main schan access functions */
     35 bool cmicx_schan_init(cmicx_schan_data_t *schan_data,char *id_string);
     36 bool cmicx_schan_update(pcid_info_t *pcid_info, cmicx_schan_data_t *schan_data);
     37 
     38 /* schan support functions */
     39 bool cmic_schan_access_start(cmicx_schan_data_t *schan_data);
     40 bool cmic_schan_access_abort(cmicx_schan_data_t *schan_data);
     41 bool cmic_schan_ctrl_read(reg_t *val,cmicx_schan_data_t *schan_data);
     42 bool cmic_schan_ctrl_write(reg_t val,cmicx_schan_data_t *schan_data);
     43 bool cmic_schan_err_read(reg_t *val,cmicx_schan_data_t *schan_data);
     44 bool cmic_schan_ack_data_beat_count_read(reg_t *val,cmicx_schan_data_t *schan_data);
     45 
     46 /* sbus specific support functions (may be used by sbus dma also) */
     47 void cmic_schan_command_build(schan_command_opcode opcode,int dport,int dlen,bool err,char ecode,bool dma,char bank,bool nack,reg_t *command);
     48 void cmic_schan_sbus_ring_get(int blockid,int *ringnum);
     49 bool cmic_schan_sbus_command_start(reg_t sbus_command,bool *is_write);
     50 bool cmic_schan_sbus_command_complete(pcid_info_t *pcid_info, reg_t *sbus_command,reg_t *sbus_command_ack,int expected_resp_words,int *num_words_in_command);
     51 
     52 /*  main sbus_dma access functions */
     53 bool cmicx_sbus_dma_init(cmicx_sbus_dma_data_t *sbus_dma_data,char *id_string);
     54 bool cmicx_sbus_dma_update(pcid_info_t *pcid_info, cmicx_sbus_dma_data_t *sbus_dma_data);
     55 
     56 /* main packet dma access functions */
     57 bool cmicx_packet_dma_global_init(char *ip_file_name,char *ep_file_name,char *loopback_file_name);
     58 bool cmicx_packet_dma_init(cmicx_packet_dma_data_t *packet_dma_data,char *id_string,int chan);
     59 bool cmicx_packet_dma_global_update(void);
     60 bool cmicx_packet_dma_update(pcid_info_t *pcid_info, cmicx_packet_dma_data_t *packet_dma_data);
     61 
     62 /* support functions */
     63 bool cmic_pktdma_access_start(cmicx_packet_dma_data_t *packet_dma_data);
     64 bool cmic_pktdma_access_abort(cmicx_packet_dma_data_t *packet_dma_data);
     65 void cmic_packet_dma_descriptor_done(pcid_info_t *pcid_info, cmicx_packet_dma_data_t *packet_dma_data);
     66 void cmic_packet_dma_chain_done(cmicx_packet_dma_data_t *packet_dma_data);
     67 void cmic_packet_dma_interrupts_post(cmicx_packet_dma_data_t *packet_dma_data);
     68 
     69 
     70 
     71 #endif   /* CMICX_SIM_PCID_H */
     72