WB TEST en
Version 2 (Dmitry Smekhov, 07/01/2013 02:01 am)
| 1 | 1 | h1. WB TEST |
|
|---|---|---|---|
| 2 | 1 | ||
| 3 | 1 | The program is designed to test the operation of the module with the FPGA project WISHBONE. |
|
| 4 | 1 | ||
| 5 | 1 | h2. Features |
|
| 6 | 1 | ||
| 7 | 1 | * Display information BAR0 - list of control units |
|
| 8 | 1 | * Display information BAR1 - list of control units TEST_CHECK, TEST_GENERATE |
|
| 9 | 1 | * Checking of the data input from the TEST_GENERATE |
|
| 10 | 1 | * Checking of the data output to the TEST_CHECK |
|
| 11 | 1 | * Synchronous data input from the TEST_GENERATE and data output to the TEST_CHECK |
|
| 12 | 1 | * The calculation of the current exchange rate - in the interval 4 seconds |
|
| 13 | 1 | * Calculating the average exchange rate - with the launch of |
|
| 14 | 1 | * Error logging |
|
| 15 | 1 | ||
| 16 | 1 | h2. Source code |
|
| 17 | 1 | ||
| 18 | 1 | The source code of the program is in the repository: *trunk/soft/linux/application/wb_test* |
|
| 19 | 1 | ||
| 20 | 1 | Catalogs: |
|
| 21 | 1 | * *bin* - executable and configuration files |
|
| 22 | 1 | * *src* - source code |
|
| 23 | 1 | ||
| 24 | 1 | Catalog *src* |
|
| 25 | 1 | * *Makefile* - for build |
|
| 26 | 1 | * *work* - source code |
|
| 27 | 1 | ||
| 28 | 1 | The program uses the files in the directory *trunk/soft/linux/common/* |
|
| 29 | 1 | * *pex* - contains class files: *pex_board* |
|
| 30 | 1 | * *utils* - contains useful files |
|
| 31 | 1 | ||
| 32 | 1 | ||
| 33 | 1 | h2. Starting the program |
|
| 34 | 1 | ||
| 35 | 1 | Before starting the program you want to load driver *pexdrv*. |
|
| 36 | 1 | To load the driver script is used *insert* from the directory *soft/linux/driver* |
|
| 37 | 1 | Loading the driver: *sudo ./Insert*. |
|
| 38 | 1 | Unloading Driver: *sudo rmmod pexdrv* |
|
| 39 | 1 | ||
| 40 | 1 | ||
| 41 | 1 | To view a list of available devices can run the command *ls /dev/AMB* * |
|
| 42 | 1 | The device name is formed as follows: /dev/<device name> <sequencenumber of the device> |
|
| 43 | 1 | For example: /dev/AMBPEX50 |
|
| 44 | 1 | ||
| 45 | 1 | Launch: |
|
| 46 | 1 | *./wb_test <device name> <configuration file> [<configuration file>]* |
|
| 47 | 1 | ||
| 48 | 1 | * <device name> - logical device name, for example */dev/pexdrv0* (not currently implemented, is always used *pexdrv0*) |
|
| 49 | 1 | * <configuration file> - cfg file with parameters |
|
| 50 | 1 | ||
| 51 | 1 | List of configuration files: |
|
| 52 | 1 | * *test_gen.cfg* - inputs from the TEST_GENERATE |
|
| 53 | 1 | * *out_check.cfg* - output to the TEST_CHECK |
|
| 54 | 1 | ||
| 55 | 1 | If given two file that runs two of the testing process, if only one file is only one testing process. |
|
| 56 | 2 | Dmitry Smekhov | |
| 57 | 2 | Dmitry Smekhov | h2. Example: |
| 58 | 2 | Dmitry Smekhov | |
| 59 | 2 | Dmitry Smekhov | Command: *./wb_test test_gen.cfg* |
| 60 | 2 | Dmitry Smekhov | Output: |
| 61 | 2 | Dmitry Smekhov | <pre> |
| 62 | 2 | Dmitry Smekhov | |
| 63 | 2 | Dmitry Smekhov | dsmv@dsmv-linux:~/pcie_ds_dma/trunk/soft/linux/application/wb_test/bin$ ./wb_test test_gen.cfg |
| 64 | 2 | Dmitry Smekhov | Map BAR0: 0xfe800000 -> 0x7f4b4ff03000 |
| 65 | 2 | Dmitry Smekhov | Map BAR1: 0xfe600000 -> 0x7f4b4fd03000 |
| 66 | 2 | Dmitry Smekhov | core_init() |
| 67 | 2 | Dmitry Smekhov | core_init(): BlockID = 0x1013, BlockVER = 0x101. |
| 68 | 2 | Dmitry Smekhov | core_init(): DeviceID = 0x5504, DeviceRev = 0x210. |
| 69 | 2 | Dmitry Smekhov | core_init(): PldVER = 0x104. |
| 70 | 2 | Dmitry Smekhov | core_init(): Block count = 8. |
| 71 | 2 | Dmitry Smekhov | core_init(): Channel(ID) = 0(0x18), FIFO size = 4096 Bytes, DMA Dir = 3, Max DMA size = 1024 MBytes, resource = 0x2. |
| 72 | 2 | Dmitry Smekhov | core_init(): Channel(ID) = 1(0x18), FIFO size = 4096 Bytes, DMA Dir = 3, Max DMA size = 1024 MBytes, resource = 0x2. |
| 73 | 2 | Dmitry Smekhov | core_init(): Prepare ADM PLD. |
| 74 | 2 | Dmitry Smekhov | Board PEXDRV open succesfully |
| 75 | 2 | Dmitry Smekhov | FPGA WB |
| 76 | 2 | Dmitry Smekhov | |
| 77 | 2 | Dmitry Smekhov | WB block info: |
| 78 | 2 | Dmitry Smekhov | |
| 79 | 2 | Dmitry Smekhov | 0 0x001A TEST_CHECK MOD: 0 VER: 1.0 |
| 80 | 2 | Dmitry Smekhov | 1 0x001B TEST_GENERATE MOD: 0 VER: 1.0 |
| 81 | 2 | Dmitry Smekhov | |
| 82 | 2 | Dmitry Smekhov | |
| 83 | 2 | Dmitry Smekhov | Read parameters from file: test_gen.cfg |
| 84 | 2 | Dmitry Smekhov | |
| 85 | 2 | Dmitry Smekhov | |
| 86 | 2 | Dmitry Smekhov | |
| 87 | 2 | Dmitry Smekhov | |
| 88 | 2 | Dmitry Smekhov | |
| 89 | 2 | Dmitry Smekhov | Parameters: |
| 90 | 2 | Dmitry Smekhov | |
| 91 | 2 | Dmitry Smekhov | CntBuffer 8 |
| 92 | 2 | Dmitry Smekhov | CntBlockInBuffer 1 |
| 93 | 2 | Dmitry Smekhov | SizeBlockOfWords 262144 |
| 94 | 2 | Dmitry Smekhov | isCycle 1 |
| 95 | 2 | Dmitry Smekhov | isSystem 1 |
| 96 | 2 | Dmitry Smekhov | isAgreeMode 1 |
| 97 | 2 | Dmitry Smekhov | strmNo 1 |
| 98 | 2 | Dmitry Smekhov | isTest 2 |
| 99 | 2 | Dmitry Smekhov | FifoRdy 1 |
| 100 | 2 | Dmitry Smekhov | Cnt1 0 |
| 101 | 2 | Dmitry Smekhov | Cnt2 0 |
| 102 | 2 | Dmitry Smekhov | DataType 6 |
| 103 | 2 | Dmitry Smekhov | DataFix 1 |
| 104 | 2 | Dmitry Smekhov | |
| 105 | 2 | Dmitry Smekhov | |
| 106 | 2 | Dmitry Smekhov | |
| 107 | 2 | Dmitry Smekhov | Allocation memory: |
| 108 | 2 | Dmitry Smekhov | Type of buffer: system memory |
| 109 | 2 | Dmitry Smekhov | Buffer size: 8 MB (8x1 MB) |
| 110 | 2 | Dmitry Smekhov | |
| 111 | 2 | Dmitry Smekhov | 0: 0x8f400000 -> 0x7f4b513ef000 |
| 112 | 2 | Dmitry Smekhov | 1: 0x8f500000 -> 0x7f4b4fc03000 |
| 113 | 2 | Dmitry Smekhov | 2: 0x8f600000 -> 0x7f4b4fb03000 |
| 114 | 2 | Dmitry Smekhov | 3: 0x8f700000 -> 0x7f4b4fa03000 |
| 115 | 2 | Dmitry Smekhov | 4: 0x89800000 -> 0x7f4b4f903000 |
| 116 | 2 | Dmitry Smekhov | 5: 0x89900000 -> 0x7f4b4f803000 |
| 117 | 2 | Dmitry Smekhov | 6: 0x89a00000 -> 0x7f4b4f703000 |
| 118 | 2 | Dmitry Smekhov | 7: 0x89b00000 -> 0x7f4b4f603000 |
| 119 | 2 | Dmitry Smekhov | Stub: 0xb5bcd000 -> 0x7f4b5150a000 |
| 120 | 2 | Dmitry Smekhov | Allocate stream memory - Ok |
| 121 | 2 | Dmitry Smekhov | core_set_local_addr(): DmaChan=1 addr=0x00003000 |
| 122 | 2 | Dmitry Smekhov | Stream working in adjust mode |
| 123 | 2 | Dmitry Smekhov | core_start_dma(): DmaChan=1 IsCycling=1 |
| 124 | 2 | Dmitry Smekhov | core_start_dma(): IOCTL_AMB_START_MEMIO core_start_dma - OK |
| 125 | 2 | Dmitry Smekhov | ID=0x001B |
| 126 | 2 | Dmitry Smekhov | VER=0x0100 |
| 127 | 2 | Dmitry Smekhov | GEN_CTRL=0x0001 |
| 128 | 2 | Dmitry Smekhov | GEN_CTRL=0x06A0 |
| 129 | 2 | Dmitry Smekhov | BLOCK_WR BLOCK_RD BLOCK_OK BLOCK_ERR SPD_CURR SPD_AVR STATUS SIG TIME |
| 130 | 2 | Dmitry Smekhov | |
| 131 | 2 | Dmitry Smekhov | TRD : 0 245366 245366 245366 0 799.8 799.8 0x0309 0xAAAAAAAA 5:06 |
| 132 | 2 | Dmitry Smekhov | |
| 133 | 2 | Dmitry Smekhov | </pre> |
| 134 | 2 | Dmitry Smekhov | |
| 135 | 2 | Dmitry Smekhov | There is parameters in the last line. |
| 136 | 2 | Dmitry Smekhov | |
| 137 | 2 | Dmitry Smekhov | |
| 138 | 2 | Dmitry Smekhov | * *BLOCK_WR* - number of the transmitten blocks |
| 139 | 2 | Dmitry Smekhov | * *BLOCK_RD* - number of the received blocks |
| 140 | 2 | Dmitry Smekhov | * *BLOCK_OK* - number of the blocks with correct data |
| 141 | 2 | Dmitry Smekhov | * *BLOCK_ERR* - number of the blocks with errors |
| 142 | 2 | Dmitry Smekhov | * *SPD_CURR* - speed of data transfer during of last 4 second [Mbytes per second] |
| 143 | 2 | Dmitry Smekhov | * *SPD_AVR* - speed of data transfer with program start [Mbytes per second] |
| 144 | 2 | Dmitry Smekhov | * *STATUS* - content of STATUS register |
| 145 | 2 | Dmitry Smekhov | * *SIG* - value of SIG register |
| 146 | 2 | Dmitry Smekhov | * *TIME* - current time of test |
| 147 | 2 | Dmitry Smekhov | |
| 148 | 2 | Dmitry Smekhov | Press Ctrl-C for exit; |
| 149 | 2 | Dmitry Smekhov | |
| 150 | 2 | Dmitry Smekhov | Result of test: |
| 151 | 2 | Dmitry Smekhov | |
| 152 | 2 | Dmitry Smekhov | <pre> |
| 153 | 2 | Dmitry Smekhov | Cancel |
| 154 | 2 | Dmitry Smekhov | TRD : 0 245490 245489 245489 0 799.8 799.8 0x0309 0xAAAAAAAA 5:06 |
| 155 | 2 | Dmitry Smekhov | |
| 156 | 2 | Dmitry Smekhov | Result of receiving data |
| 157 | 2 | Dmitry Smekhov | |
| 158 | 2 | Dmitry Smekhov | Recieved blocks : 245490 |
| 159 | 2 | Dmitry Smekhov | Correct blocks : 245489 |
| 160 | 2 | Dmitry Smekhov | Incorrect blocks: 0 |
| 161 | 2 | Dmitry Smekhov | Total errors : 0 |
| 162 | 2 | Dmitry Smekhov | |
| 163 | 2 | Dmitry Smekhov | Speed : 799.8 [Mbytes/s] |
| 164 | 2 | Dmitry Smekhov | Time of test : 5 min 07 sec |
| 165 | 2 | Dmitry Smekhov | |
| 166 | 2 | Dmitry Smekhov | All data is correct. No error |
| 167 | 2 | Dmitry Smekhov | |
| 168 | 2 | Dmitry Smekhov | </pre> |
| 169 | 2 | Dmitry Smekhov | |
| 170 | 2 | Dmitry Smekhov | 799.8 - PCI Express v1.1 x4 - project AMBPEX5_v20_SX50T_WISHBONE |