/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 pcitool/cli.c

  • Committer: Suren A. Chilingaryan
  • Date: 2015-11-19 02:19:51 UTC
  • Revision ID: csa@suren.me-20151119021951-00bae7ma1vqy561h
Support setting payload size

Show diffs side-by-side

added added

removed removed

Lines of Context:
97
97
    MODE_ACK_IRQ,
98
98
    MODE_WAIT_IRQ,
99
99
    MODE_SET_DMASK,
 
100
    MODE_SET_MPS,
100
101
    MODE_ALLOC_KMEM,
101
102
    MODE_LIST_KMEM,
102
103
    MODE_READ_KMEM,
173
174
    OPT_WAIT_IRQ,
174
175
    OPT_ITERATIONS,
175
176
    OPT_SET_DMASK,
 
177
    OPT_SET_MPS,
176
178
    OPT_ALLOC_KMEM,
177
179
    OPT_LIST_KMEM,
178
180
    OPT_FREE_KMEM,
227
229
    {"acknowledge-irq",         optional_argument, 0, OPT_ACK_IRQ },
228
230
    {"wait-irq",                optional_argument, 0, OPT_WAIT_IRQ },
229
231
    {"set-dma-mask",            required_argument, 0, OPT_SET_DMASK },
 
232
    {"set-mps",                 required_argument, 0, OPT_SET_MPS },
230
233
    {"list-kernel-memory",      optional_argument, 0, OPT_LIST_KMEM },
231
234
    {"read-kernel-memory",      required_argument, 0, OPT_READ_KMEM },
232
235
    {"alloc-kernel-memory",     required_argument, 0, OPT_ALLOC_KMEM },
303
306
"   --list-dma-buffers <dma>    - List buffers for specified DMA engine\n"
304
307
"   --read-dma-buffer <dma:buf> - Read the specified buffer\n"
305
308
"\n"
306
 
"  Kernel Modes:\n"
 
309
"  PCI Configuration:\n"
307
310
"   --set-dma-mask [bits]       - Set DMA address width (DANGEROUS)\n"
 
311
"   --set-mps [bits]            - Set PCIe Payload Size (DANGEROUS)\n"
 
312
"\n"
 
313
"  Kernel Memory Modes:\n"
308
314
"   --list-kernel-memory [use]  - List kernel buffers\n"
309
315
"   --read-kernel-memory <blk>  - Read the specified block of the kernel memory\n"
310
316
"                                 block is specified as: use:block_number\n"
3089
3095
    size_t iterations = BENCHMARK_ITERATIONS;
3090
3096
 
3091
3097
    unsigned long dma_mask = 0;
 
3098
    unsigned long pcie_mps = 0;
3092
3099
 
3093
3100
    pcilib_t *handle;
3094
3101
 
3290
3297
                if ((!isnumber(optarg))||(sscanf(optarg, "%lu", &dma_mask) != 1)||(dma_mask<24)||(dma_mask>64))
3291
3298
                        Usage(argc, argv, "Invalid DMA mask is specified (%s)", optarg);
3292
3299
            break;
 
3300
            case OPT_SET_MPS:
 
3301
                if (mode != MODE_INVALID) Usage(argc, argv, "Multiple operations are not supported");
 
3302
                mode = MODE_SET_MPS;
 
3303
 
 
3304
                if ((!isnumber(optarg))||(sscanf(optarg, "%lu", &pcie_mps) != 1)||(pcie_mps<128)||(pcie_mps>2048))
 
3305
                        Usage(argc, argv, "Invalid payload size is specified (%s)", optarg);
 
3306
            break;
3293
3307
            case OPT_LIST_KMEM:
3294
3308
                if (mode != MODE_INVALID) Usage(argc, argv, "Multiple operations are not supported");
3295
3309
                mode = MODE_LIST_KMEM;
3888
3902
     case MODE_SET_DMASK:
3889
3903
        pcilib_set_dma_mask(handle, dma_mask);
3890
3904
     break;
 
3905
     case MODE_SET_MPS:
 
3906
        pcilib_set_mps(handle, pcie_mps);
 
3907
     break;
3891
3908
     case MODE_LIST_KMEM:
3892
3909
        if (use) DetailKMEM(handle, fpga_device, use, block);
3893
3910
        else ListKMEM(handle, fpga_device);