/alps/pcitool

To get this branch, use:
bzr branch http://suren.me/webbzr/alps/pcitool

« back to all changes in this revision

Viewing changes to dma/ipe.h

  • Committer: Suren A. Chilingaryan
  • Date: 2015-04-20 20:01:04 UTC
  • Revision ID: csa@suren.me-20150420200104-b5xny65io8lvoz3w
Big redign of model structures

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
 
7
7
//#define PCILIB_NWL_MODIFICATION_IPECAMERA 0x100
8
8
 
9
 
pcilib_dma_context_t *dma_ipe_init(pcilib_t *ctx, pcilib_dma_modification_t type, void *arg);
 
9
pcilib_dma_context_t *dma_ipe_init(pcilib_t *ctx, const char *model, const void *arg);
10
10
void  dma_ipe_free(pcilib_dma_context_t *vctx);
11
11
 
12
12
int dma_ipe_get_status(pcilib_dma_context_t *vctx, pcilib_dma_engine_t dma, pcilib_dma_engine_status_t *status, size_t n_buffers, pcilib_dma_buffer_status_t *buffers);
13
13
 
14
 
 
15
14
int dma_ipe_start(pcilib_dma_context_t *ctx, pcilib_dma_engine_t dma, pcilib_dma_flags_t flags);
16
15
int dma_ipe_stop(pcilib_dma_context_t *ctx, pcilib_dma_engine_t dma, pcilib_dma_flags_t flags);
17
16
 
18
17
int dma_ipe_stream_read(pcilib_dma_context_t *vctx, pcilib_dma_engine_t dma, uintptr_t addr, size_t size, pcilib_dma_flags_t flags, pcilib_timeout_t timeout, pcilib_dma_callback_t cb, void *cbattr);
19
18
double dma_ipe_benchmark(pcilib_dma_context_t *vctx, pcilib_dma_engine_addr_t dma, uintptr_t addr, size_t size, size_t iterations, pcilib_dma_direction_t direction);
20
19
 
21
 
 
22
 
#ifdef _PCILIB_DMA_IPE_C
23
 
pcilib_dma_api_description_t ipe_dma_api = {
24
 
    "ipe_dma",
 
20
#ifdef _PCILIB_CONFIG_C
 
21
static const pcilib_dma_api_description_t ipe_dma_api = {
25
22
    dma_ipe_init,
26
23
    dma_ipe_free,
27
24
    dma_ipe_get_status,
34
31
    dma_ipe_stream_read,
35
32
    dma_ipe_benchmark
36
33
};
37
 
#else
38
 
extern pcilib_dma_api_description_t ipe_dma_api;
39
 
#endif
 
34
 
 
35
static const pcilib_dma_engine_description_t ipe_dma_engines[] = {
 
36
    { 0, PCILIB_DMA_TYPE_PACKET, PCILIB_DMA_FROM_DEVICE, 32, "dma", NULL },
 
37
    { 0 }
 
38
};
 
39
 
 
40
static const pcilib_register_bank_description_t ipe_dma_banks[] = {
 
41
    { PCILIB_REGISTER_BANK_DMA, PCILIB_BAR0, 0xA000, PCILIB_REGISTER_PROTOCOL_DEFAULT, 0,                        0,                        PCILIB_LITTLE_ENDIAN, 32, PCILIB_LITTLE_ENDIAN, "0x%lx", "dma", "DMA Registers"},
 
42
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL, NULL }
 
43
};
 
44
 
 
45
static const pcilib_register_description_t ipe_dma_registers[] = {
 
46
    {0x0000,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "dcr",                        "Device Control Status Register"},
 
47
    {0x0000,    0,      1,      0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "reset_dma",                      ""},
 
48
    {0x0000,    16,     4,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "datapath_width",                 ""},
 
49
    {0x0000,    24,     8,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "fpga_family",                    ""},
 
50
    {0x0004,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "ddmacr",                     "Device DMA Control Status Register"},
 
51
    {0x0004,    0,      1,      0,      0xFFFFFFFF,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_start",                      "Start writting memory"},
 
52
    {0x0004,    5,      1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_relxed_order",               ""},
 
53
    {0x0004,    6,      1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_nosnoop",                    ""},
 
54
    {0x0004,    7,      1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_int_dis",                    ""},
 
55
    {0x0004,    16,     1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mrd_start",                      ""},
 
56
    {0x0004,    21,     1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mrd_relaxed_order",              ""},
 
57
    {0x0004,    22,     1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mrd_nosnoop",                    ""},
 
58
    {0x0004,    23,     1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mrd_int_dis",                    ""},
 
59
    {0x000C,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "mwr_size",                   "DMA TLP size"},
 
60
    {0x000C,    0,      16,     0x20,   0xFFFFFFFF,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_len",                        "Max TLP size"},
 
61
    {0x000C,    16,     3,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_tlp_tc",                     "TC for TLP packets"},
 
62
    {0x000C,    19,     1,      0,      0xFFFFFFFF,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_64b_en",                     "Enable 64 bit memory addressing"},
 
63
    {0x000C,    20,     1,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_phant_func_dis",             "Disable MWR phantom function"},
 
64
    {0x000C,    24,     8,      0,      0xFFFFFFFF,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "mwr_up_addr",                    "Upper address for 64 bit memory addressing"},
 
65
    {0x0010,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "mwr_count",                  "Write DMA TLP Count"},
 
66
    {0x0014,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "mwr_pattern",                "DMA generator data pattern"},
 
67
    {0x0028,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "mwr_perf",                   "MWR Performance"},
 
68
    {0x003C,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "cfg_lnk_width",              "Negotiated and max width of PCIe Link"},
 
69
    {0x003C,    0,      6,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "cfg_cap_max_lnk_width",          "Max link width"},
 
70
    {0x003C,    8,      6,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "cfg_prg_max_lnk_width",          "Negotiated link width"},
 
71
    {0x0040,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "cfg_payload_size",           ""},
 
72
    {0x0040,    0,      4,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "cfg_cap_max_payload_size",       "Max payload size"},
 
73
    {0x0040,    8,      3,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "cfg_prg_max_payload_size",       "Prog max payload size"},
 
74
    {0x0040,    16,     3,      0,      0x00000000,     PCILIB_REGISTER_R   , PCILIB_REGISTER_BITS, PCILIB_REGISTER_BANK_DMA, "cfg_max_rd_req_size",            "Max read request size"},
 
75
    {0x0050,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "desc_mem_din",               "Descriptor memory"},
 
76
    {0x0054,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "update_addr",                "Address of progress register"},
 
77
    {0x0058,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "last_descriptor_read",       "Last descriptor read by the host"},
 
78
    {0x005C,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "desc_mem_addr",              "Number of descriptors configured"},
 
79
    {0x0060,    0,      32,     0,      0x00000000,     PCILIB_REGISTER_RW  , PCILIB_REGISTER_STANDARD, PCILIB_REGISTER_BANK_DMA, "update_thresh",              "Update threshold of progress register"},
 
80
    {0,         0,      0,      0,      0x00000000,     0,                                           0,                        0, NULL,                         NULL}
 
81
};
 
82
#endif /* _PCILIB_CONFIG_C */
40
83
 
41
84
 
42
85
#endif /* _PCILIB_DMA_IPE_H */