/* * GigaSpaceWire switch driver for MC-30SF6EM-6U evaluation kit * * Copyright (c) 2019 Elvees (support@elvees.com) * Author: Dmitry Evtushenko * */ #ifndef __test_h #define __test_h #include #define SYS_CP0_FIRST_REG 0 #define SYS_CP0_LAST_REG 30 extern u32 read_cp0_reg( u32 addr); extern void write_cp0_reg( u32 addr, u32 val); #ifdef USE_DMA_TEST // test structure: struct dma_test_s { // cfg: int is_created_chains; u32 qnt_rx_desc; //- RX buffer descriptor quantity u32 qnt_rx_data; //- RX data buffer quantity u32 qnt_tx_desc; //- TX buffer descriptor quantity u32 qnt_tx_data; //- TX data buffer quantity u32 sz_rx_data_buf; //- RX data buffer size u32 sz_tx_data_buf; //- TX data buffer size // work: int is_work; int is_ena_print_ih; dma_desc_fi_t *pdes_rx_last; //- last processed RX buffer descriptor dma_data_fi_t *pdat_rx_last; //- last processed RX data buffer dma_desc_fi_t *pdes_tx_last; //- last processed TX buffer descriptor dma_data_fi_t *pdat_tx_last; //- last processed TX data buffer u32 cnt_rx_desc; //- RX descriptor buffer counter u32 cnt_rx_data; //- RX data buffer counter u32 cnt_tx_desc; //- TX descriptor buffer counter u32 cnt_tx_data; //- TX data buffer counter u64 cnt_send_data; //- sending data counter u64 cnt_rec_data; //- receiving data counter u64 tm_beg; //- beginning test time u64 tm_end; //- final test time u32 cnt_more1_rx_desc; u32 cnt_more1_rx_data; u32 cnt_more1_tx_desc; u32 cnt_more1_tx_data; }; typedef struct dma_test_s dma_test_t; extern void dma_test_init( dma_test_t *pt); extern void dma_test_free( gspw_cfg_ctrl_t *pcfg); extern int dma_test_create( gspw_cfg_ctrl_t *pcfg); extern void dma_test_reset( dma_test_t *pt); extern void gspw_dma_internal_test_start( gspw_cfg_ctrl_t *pcfg); extern void gspw_dma_internal_test_stop ( gspw_cfg_ctrl_t *pcfg); extern irqreturn_t dma_test_registrate_rx_desc( gspw_cfg_ctrl_t *pcfg); extern irqreturn_t dma_test_registrate_rx_data( gspw_cfg_ctrl_t *pcfg); extern irqreturn_t dma_test_registrate_tx_desc( gspw_cfg_ctrl_t *pcfg); extern irqreturn_t dma_test_registrate_tx_data( gspw_cfg_ctrl_t *pcfg); extern void gspw_dma_internal_test_print( dma_test_t *pt); #endif //USE_DMA_TEST #endif //!__test_h