This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3 DMA Issue

Other Parts Discussed in Thread: OMAP3530, DM3730

Hi All,

I'm working on a project that uses the Beagleboard (OMAP3530) for high speed data acquisition. The data is sampled quickly using either a McSPI interface or through a custom parallel interface using the expansion interface on the Beagleboard. In both cases DMA is used to write directly to memory. The high level problem is that we appear to be missing DMA transactions (up to 2) when a DMA packet is written, i.e every 4096 bytes.

There are some comments either in an Errata to datasheet or technical reference manual that dscuss missed DMA events. I'm wondering if this is how the hardware issues would manifest themselves at the operating system level and I'm hoping for some advice on how to rectify the situation, i.e. do we need to re-write the DMA drivers to work around the issue?

JT

______________

More background:

We've based the system on the Arago build of Linux.

The sample sizes we've been working with are between 10 to 50Mbytes but can be smaller or much larger.

The serial data rates are less then 20Mbps.

The parallel word capture rate is approximately 5MSPS.

The DMA packet size is 4032 bytes plus 64 bytes of administrative information.

  • Hi John,

    Thanks for your patience on this issue. The team is currently investigating the missing transactions, but I havent seen an erratum that would indicate this being a known issue. I'll (or other members of the team) will provide an update soon.  The current errata I've looked at doesn't directly apply to this issue (for example, its c64x DMAing or USB DMAing). Anything more you can provide about your implementation (or the applicable errata) would be greatly appreciated. Can you provide a code snippet where you performing the DMAing? 

  • Hello,

    Is there any updates on this issue. I am also missing some data.

    My processor is DM3730. I am using burst size of 16, and my element size is 2 bytes. When the DMA misses, it completely ignores multiples of 2*burst_size*element_size bytes, and I see those bytes not set in memory. What I mean by 'multiples' is that, missed block can be 64, 128, 192, 256 ... Bytes, and it occurs more frequently when I do successive DMA reads.

    My other problem is about the single index modes:

    When writing, I use post_increment at source and single_index at destination: my aim is to increase the address by 2 element_size at destination.

    When reading, I use single_index at source and post_increment at destination: my aim is again to read the even elements from the source.

    What I write and read in order is the following:

    Write: a b c d e f

    Read: a c e x x x 

    x is some random value, but it is always the same value in one whole read.

    Address should be incremented like:

    Write:

    1) Source 0 1 2 3 4 5

    2) Destination 0 2 4 6 8 10

    Read:

    3) Source 0 2 4 6 8 10

    4) Destination 0 1 2 3 4 5

    I am almost sure about 1) 2) and 3). But I have no idea about what's happening at 4).

    It seems like DMA_read misses data b d and f and in addition addresses are wrong in 4).

    Could you please guide me about these two problems? And also excuse my writing as I am posting from a mobile device.

    Thanks!

  • Hello Inanc,

    The software developer tried numberous configuration options for the DMA controller but he was never able to solve our problem. He ultimately concluded it was a fault with the DMA controller hardware. Fortuneately for us, we were able to detect when these errors occurred and found a way to deal with them in our system.

    I passed  your posting along to the software developer but he didn't offer any insights, sorry.  I am curious to know what solutions you find, this was an issue that caused us quite a bit of grief.

    JT

  • Hello John,

    Sorry for replying late, I was busy with experimenting and other things. I've got some statistical results now. I will try to post them soon. In summary, DMA behavior I observed is as follows:

    Note: I think, in my previous post,  I forgot to mention that I use DMA through the GPMC bus. I also decreased the GPMC_FCLK to 100 Mhz (it was 200 Mhz originally), and my GPMC_CLK that I sent to the peripheral (FPGA) is 50 Mhz. Burst size is 16 and element size 2 bytes (16bit GPMC bus).

    1. As the total number of bytes read with a single DMA read instruction increases, the error rate decreases; with more than 10 MB, DMA read succeeds most of the time. When I read relatively less (e.g. 10240 bytes) the error rate is considerably higher, in some cases even more than %30.

    2. In the beginning, it seemed that error occurred when the DMA controller missed multiples of 64 bytes not set in memory. E.g.

           XX: memory not set by DMA during read operation

           What I sent    [64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK]

           What I read    [64 bytes OK][64 bytes OK][64 bytes XX][64 bytes OK][64 bytes XX][64 bytes XX][64 bytes OK]

    3. With more testing I found some 64 bytes randomly set. E.g:

           YY: memory set randomly

           What I sent    [64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK][64 bytes OK]

           What I read    [64 bytes OK][64 bytes OK][64 bytes OK][64 bytes YY][64 bytes OK][64 bytes OK][64 bytes OK]

           In the beginning, I thought that these bytes were set wrong by the DMA read.

    4. To handle these errors I implemented a checksum for the DMA read operation, therefore I knew when I read successfully, and when I failed. In case of a fail, I tried again.

    5. However, I continued to read erroneous data although I used a read checksum. So, I suspected that the DMA write might be going wrong, in the same way the DMA read fails. Consequently, I put a write checksum for the DMA write as well. As the write checksum worked, now I am beginning to think that YY random bytes were due to the DMA writes sending random bytes. I reason this way, because I write to a fixed peripheral location with DMA and successively I read from the same fixed peripheral location with DMA. I finally compare the results.

    6. Above (at 2 and 5) I said erroneous reads and writes are aligned to 64 bytes and their lengths are multiples of 64 bytes. However, during my testings, a couple of times, I also observed errors aligned to 16 bytes and with lengths of 16, 32, or 40 bytes. I am not %100 percent sure with this observation of mine. I will do more testing if I find some free time.

    Now, with checksums, I am able to write and read with DMA successfully. And since most of the time I read or write MBs of data with DMA, I can tolerate DMA errors. Remember, DMA error rate decreases as the amount of data increases.

    However, my above solution will obviously not work when I read or write real-time data with hardware triggered DMA. Therefore I need to find why these errors occur.

    I didn't have time to investigate the "single_index_mode" error I mentioned in my previous post. So, it also continues to be an open case.

    John,

    Do your problems resemble with mine?

    The software developer you mentioned; is he a colleague of yours, or a TI employee?

    Thanks for your answer.

  • Hello,

    I gathered some results and I am posting the summary of results below. In each test, I try writing to a fixed GPMC peripheral location, and after the write is complete, I try reading from that same location back. I expect to read what I wrote.

    I implemented checksum algorithms for both the writing and the reading. Checksums are compared to decide if a write or read was successful. E.g. if checksums don't match for a read operation then I do that read again and again until the read operation is successful.

    Each test has 10 problems with varying lengths and each problem has 30 iterations. E.g. Problem #1 has 30 read and writes with length 6144 bytes.

    "Rd Trials" shows how many repeating reads were made due to unmatched checksums, and "Wr Trials" shows the number of failed writes.

    In some tests, I omitted 'read', 'write' or 'read and write' checksums. As you can see in those tests, I read corrupted data back.

    Upon a completion of test, if I ran another test without resetting DM3730 then I labeled that test with "2nd run", "3rd run", ..

    My Linux kernel version is 2.6.37 from a TI DVSDK. After each write/read I use all the "free" and "clear" functions of the DMA driver in kernel. Similarly before each read/write I call the DMA setup functions in kernel.

    DMA parameters are:
    Burst size is 16 and element size 2 bytes (16bit GPMC bus).


    GPMC parameters are:
    GPMC_FCLK is 100 Mhz and GPMC_CLK to 50 Mhz (I send GPMC_CLK to peripheral FPGA)
    Note: I also had DMA read errors when the GPMC_FCLK and GPMC_CLK were 200 and 100 Mhz, respectively.


    At the end of my post you can take a look at the results.

    - Main observation is that DMA tends to make more errors as the DMA read or write length gets smaller.

    Could anyone tell me what might be going wrong with DMA? Is it something that I set, leading to DMA malfunctioning? I can tell you more about the settings I made and the results if you need so.

    Notes:
    1. In tests 6 and 7 (with no checksums) and in test 4 (with only read checksum), there seems to be no errors in problems 5, 6, 7, 8, 9, 10. And in other tests, where I used checksums only writes seem to be problematic in problems 5, 6, 7, 8, 9, 10. I have no explanation why writes are successful when write checksum is not implemented, and why there are write errors when write checksum implemented.

    2. In note (1) and in results below, Problems 5, 6, 7, 8, 9, 10 seem to be always successful no matter read/write checksums are implemented or not. However, I have other test results where Problems 5, 6, 7, 8, 9, 10 are failing with no checksums. I just don't have those results with me now, and so I can't post them.

    3. Mysteriously to me, the behaviour of DMA also changes depending on the presence of checksums. E.g. With write checksum, more write errors but successful overall run; on the other hand without write checksum, less or no errors and unsuccessful overall run.


    Sorry about the long post.

    Regards.

    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
    == 1st Test: Run with read and write checksum
       DM3730 RESET
    == 2nd Test: Run with read and write checksum
    == 3rd Test: Run with read and write checksum (2nd run)
       DM3730 RESET
    == 4th Test: Run with only read checksum
       DM3730 RESET
    == 5th Test: Run with only write checksum
       DM3730 RESET
    == 6th Test: Run with no read or write checksum
    == 7th Test: Run with no read or write checksum (2nd run)
    == 8th Test: Run with read and write checksum (3rd run)
    |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||


    ============================================================
    == 1st Test: Run with read and write checksum
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+5+0+30+0+0+0+0+24+0+0+75+20+8+0+0+0+0+11+67+102+35+9+0+0+0+0+0+0 = 386
    -- Wr Trials : 0+0+1+0+0+0+5+1+1+0+0+0+1+0+0+0+0+1+0+1+0+0+1+1+1+0+2+0+0+0 = 16
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+22+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 22
    -- Wr Trials : 3+0+0+1+0+0+0+0+3+1+2+0+2+1+1+0+3+0+1+1+1+0+1+1+0+0+2+0+0+1 = 25
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+0+2+0+0+1+2+0+2+0+0+0+0+3+0+1+0+4+0+0+0+1+0+0+0+0+1+1+0+1 = 20
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+2+1+1+0+1+0+0+1+0+0+1+0+0+0+0+0+0+0+0+1+0+1+1+1+0+0+0+0 = 11
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+2+1+0+0+3+2+0+1+1+0+0+0+0+1+0+1+0+0+0+1+0+0+0+0+0+0+0+1+0 = 14
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+1+0+0+1+0+0+1+1+0+3+0+1+0+0+0+1+1+0+0+0+0+0+0+0+0+1+0+1 = 13
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+0+0+0+0+0+0+0+0+0+0+1+2+0+1+2+0+0+0+0+4+0+0+0+0+1+1+0+1 = 14
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+2+0+0+2+0+0+1+1+0+0+1+0+0+0+0+2+0+0+0+1+0+0+2+1+0 = 13
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+2+2+3+0+0+0+1+1+0+0+0+1+0+2+2+0+0+1+1+0+0+0+1+0+3+3+1+2+1 = 28
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+1+1+6+0+1+0+0+0+0+2+3+0+0+0+0+0+0+0+0+0+0+0+0+0+1+1+2+0 = 18
    --
    --
     === TEST PASSED !!! ===

     

    ============================================================
    == 2nd Test: Run with read and write checksum
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+16+0+0+0+23+35+0+33+0+0+45+54+8+24+46+72+73+5+53+25+15+11+0+0+0+0+0+0+0 = 538
    -- Wr Trials : 2+1+1+0+1+0+0+1+0+1+1+0+2+0+0+1+0+1+1+0+1+0+0+1+0+0+1+4+0+0 = 20
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+12+0+2+0+0+66+0+0 = 80
    -- Wr Trials : 0+1+0+1+0+1+0+0+0+1+0+0+1+0+0+0+0+2+1+3+1+1+0+2+0+1+0+1+1+7 = 25
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+3+0+0+0+0+0+0+1+1+0+0+0+0+0+1+1+0+1+0+1+1+0+2+0+0+0+0+1+1 = 14
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+1+0+0+1+1+0+0+1+0+0+1+2+0+0+0+1+1+1+0+2+0+0+1+1+1+2+0+1+0 = 19
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+1+2+1+0+0+1+0+0+0+0+1+0+3+0+0+2+0+1+1+1+0+0+0+2+0+0+0 = 16
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 =0
    -- Wr Trials : 0+0+0+4+0+0+0+1+0+0+1+1+0+0+0+4+0+1+1+1+0+0+0+2+0+0+0+0+1+2 = 19
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+3+1+0+0+0+0+0+0+0+1+0+1+0+1+1+0+1+0+3+1+0+0+1+0+0+3+1 = 18
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+0+0+0+1+3+0+0+0+0+0+0+0+0+2+0+0+1+3+2+0+1+0+2+1+4+1+1+1 = 24
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 5+0+2+0+3+0+0+2+0+0+1+0+1+0+0+6+3+0+0+0+0+1+0+2+0+1+0+0+0+2 = 29
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+1+0+1+0+0+1+0+0+0+1+1+0+0+2+1+0+0+1+1+0+1+0+2+0+1+1+0+2 = 17
    --
    --
     === TEST PASSED !!! ===

     

    ============================================================
    == 3rd Test: Run with read and write checksum (2nd run)
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+230+0+0+4191+1412+2107+148+771+96+776+140+955+5972+91+2512+88+345+402+329+656+1475+1119+293+1616+735+1248+673+1415+220 = 30015
    -- Wr Trials : 1+4+0+738+2+2+0+0+0+1+0+0+0+0+1+0+1+2+0+0+0+0+0+0+1+0+1+1+0+3 = 758
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 889+3592+274+1557+1792+1094+621+0+154+746+987+98+347+1421+1024+1534+1005+948+862+0+0+0+0+621+54+1296+2745+148+562+1252 = 25623
    -- Wr Trials : 0+0+0+0+0+1+0+579+1+1+0+0+587+0+1+2+1+0+0+576+116+552+794+54+64+1+4+0+184+2 = 3520
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+1+1+0+0+0+1+0+2+2+2+0+0+0+2+0+0+0+1+1+1+2+0+1+0 = 17
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 4+1+0+0+0+0+2+1+1+2+0+0+0+0+2+0+0+1+2+0+3+0+0+1+0+3+5+0+0+0 = 28
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+1+0+0+1+0+1+3+1+1+1+1+0+0+0+0+0+0+0+0+1+0+1+0+0+0+3+1+0 = 17
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+2+1+0+1+1+0+0+0+4+0+1+0+0+0+0+1+0+0+1+0+0+1+1+0+0+0+1+1+1 = 17
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+3+1+2+0+0+1+0+0+1+2+2+0+0+3+0+0+0+0+1+0+1+3 = 20
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 2+1+0+0+0+2+0+1+4+0+0+5+0+0+0+0+1+0+0+0+2+0+1+0+0+0+2+0+0+0 = 21
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+2+0+3+0+0+0+4+2+0+0+1+1+0+0+2+0+0+0+2+0+0+0+1+0+0+1+3+0 = 23
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+2+0+0+1+1+1+0+0+2+1+0+0+0+0+0+0+0+2+0+1+0+1+0+0+0+2+2+0+0 = 16
    --
    --
     === TEST PASSED !!! ===

     

    ============================================================
    == 4th Test: Run with only read checksum
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+62+40+0+0+0+0+0+0+46+0+24+30+10+23+44+94+12+11+33+68+29+92+0+0+0+1+0 = 619
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 128 --> % 0
    --     Variant bytes missed : 128 --> % (0 / 10)
    --     Variant blocks       : 2
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --
    --
    -- RANDOM VALUE READ
    --
    --
    -- ====== RANDOM BYTES ======
    -- Test number : 2
    -- Iteration   : 22
    -- Address     : 0xd80
    -- Ooops !     : Sent 0x82e2: Received 0xb4f2
    --
    --
     === TEST FAILED !!! ===

     

    ============================================================
    == 5th Test: Run with only write checksum
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 576 --> % 0
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+1+1+0+0+0+0+3+0+2+0+0+1+0+0+0+0+1+0+0+0+0+0+0+0+0+0+0+0+0 = 10
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 256 --> % 0
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+2+0+0+0+0+0+0+1+1+1+2+0+1+1+0+1+2+0+1+0+1+0+0+0+0+0+0+2+0 = 16
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+1+2+1+0+0+3+1+4+0+1+2+0+0+1+2+3+0+0+0+0+0+0+0+0+1+0+2+1 = 26
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+1+0+2+0+0+0+1+1+1+2+0+0+1+0+4+0+0+0+1+1+2+3+0+3 = 23
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+2+0+0+1+2+0+1+0+0+0+1+0+0+0+0+0+0+0+0+1+0+0+0+0+0+1+0+0+0 = 9
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+1+0+1+2+2+0+0+0+2+1+6+1+0+1+2+0+0+0+0+0+1+1+0+0+0+0+0+0 = 21
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 2+0+0+1+0+0+0+3+0+1+3+0+0+0+0+2+1+0+3+2+2+0+0+0+0+0+0+1+0+0 = 21
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+0+0+1+2+2+1+2+1+0+4+0+1+3+5+1+0+0+0+1+0+0+0+1+0+2+4+0+0+0 = 32
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 1+0+0+0+0+0+0+4+1+1+0+0+0+0+0+0+0+0+1+1+0+0+1+0+0+0+0+1+0+1 = 12
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+3+0+0+0+0+0+1+0+1+1+1+0+1+0+0+0+0+0+1+1+0+0+0+2+0+0+1+1 = 15
    --
    --
     === TEST FAILED !!! ===

     
     
    ============================================================
    == 6th Test: Run with no read or write checksum
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 960 --> % 0
    --     Variant bytes missed : 448 --> % (2 / 10)
    --     Variant blocks       : 7
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 4224 --> % 1
    --     Variant bytes missed : 1216 --> % (3 / 10)
    --     Variant blocks       : 17
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --
    --
    -- RANDOM VALUE READ
    --
    --
    -- ====== RANDOM BYTES ======
    -- Test number : 1
    -- Iteration   : 3
    -- Address     : 0x1440
    -- Ooops !     : Sent 0x486f: Received 0x6916
    --
    --
     === TEST FAILED !!! ===

     

    ============================================================
    == 7th Test: Run with no read or write checksum (2nd run)
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 28352 --> % 15
    --     Variant bytes missed : 4288 --> % (23 / 10)
    --     Variant blocks       : 61
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 37568 --> % 12
    --     Variant bytes missed : 13822 --> % (44 / 10)
    --     Variant blocks       : 173
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 128 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   FAIL
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --     Variant bytes missed : 0 --> % (0 / 10)
    --     Variant blocks       : 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    --
    --
    -- RANDOM VALUE READ
    --
    --
    -- ====== RANDOM BYTES ======
    -- Test number : 1
    -- Iteration   : 2
    -- Address     : 0x40
    -- Ooops !     : Sent 0x1d67: Received 0xfb66
    --
    --
    -- FALSE MATCH
    --
     === TEST FAILED !!! ===

     
     
    ============================================================
    == 8th Test: Run with read and write checksum (3rd run)
    ============================================================
    ---- SUMMARY ----
    -----------------
    --
    -- Problem 1 size  : 30 x 6144 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+86+850+227+646+870+1160+1539+864+597+1154+904+912+858+872+170+891+1104+1330+1706+1794+911+804+1119+843+590+0+0+186+1118 = 24105
    -- Wr Trials : 3+542+1+1+0+0+0+1+0+1+0+1+2+0+3+1+0+0+2+0+2+1+1+0+2+1+0+0+0+0 = 565
    --------------------------------------------------------------------------------------
    -- Problem 2 size  : 30 x 10240 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 493+1321+420+598+0+917+856+1200+2398+96+776+1928+728+0+512+1026+1582+100+0+0+673+351+676+795+861+885+1557+995+97+0 = 21841
    -- Wr Trials : 0+0+0+1+241+0+0+0+0+2+13+0+0+1348+325+0+0+0+518+83+184+0+2+0+1+1+0+0+0+130 = 2849
    --------------------------------------------------------------------------------------
    -- Problem 3 size  : 30 x 204800 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+91+0+0+0+0+0 = 91
    -- Wr Trials : 1+1+0+2+0+2+1+1+0+2+0+0+0+0+0+1+1+1+1+0+0+4+2+1+0+2+1+1+0+0 = 25
    --------------------------------------------------------------------------------------
    -- Problem 4 size  : 30 x 655360 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+0+0+1+1+0+0+0+2+0+1+0+6+1+0+1+1+0+0+0+1+1+0+0+2+2+2+0+0 = 22
    --------------------------------------------------------------------------------------
    -- Problem 5 size  : 30 x 1310720 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+1+0+1+1+0+0+0+3+2+0+0+0+2+0+0+3+1+0+1+0+1+0+0+1+0+0+0+0+2 = 19
    --------------------------------------------------------------------------------------
    -- Problem 6 size  : 30 x 2621440 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+1+1+0+0+0+1+0+2+0+0+1+1+0+0+0+0+0+0+0+0+0+0+0+2+0+0+3+0 = 12
    --------------------------------------------------------------------------------------
    -- Problem 7 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 3+0+0+1+6+0+1+1+1+0+1+0+1+0+0+0+0+0+0+0+1+1+0+0+1+1+1+3+4+0 = 27
    --------------------------------------------------------------------------------------
    -- Problem 8 size  : 30 x 5242880 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 0+0+1+1+1+0+0+0+0+0+0+0+1+1+0+0+0+4+2+1+1+2+0+0+1+0+0+0+0+0 = 16
    --------------------------------------------------------------------------------------
    -- Problem 9 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 4+0+1+1+1+0+0+0+0+0+0+1+1+0+0+0+0+0+1+0+1+1+1+1+2+1+0+0+0+1 = 18
    --------------------------------------------------------------------------------------
    -- Problem 10 size  : 30 x 10485760 bytes
    --     Bytes missed         : 0 --> % 0
    --                                                   PASS
    -- Rd Trials : 0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0+0 = 0
    -- Wr Trials : 2+0+2+0+0+0+0+0+0+0+2+1+1+0+0+0+0+1+0+0+1+1+1+0+0+1+0+0+0+0 = 13
    --
    --
     === TEST PASSED !!! ===

  • Hello again,

    I see there are no answers. Didn't anyone observe similar behavior of DMA?

    I need to solve these two problems, 

    1. Why am I missing data or reading/writing wrong data?

    2. Why can't I properly use the indexing modes?

    Please share your opinions.

    Thanks !

  • hey guys i' writing driver for dma for DM3730 processor & threadx rtos.  when i'm using dma for memory to memory transfer, everything is correct. interrupt is also generated (frame end interrupt, half of the current frame transfered) but when i'm printing destination string it's print only 4 byte.

    some basic setting i'm enabling for dma.

    1. dma_data_type = 8 bits.

    2. src & dest addressing mode = post increment.

    3. src & dest packing = packed.

    4. src & dest burst = disable.

    please, if anybody have some idea reple me...

  • Hi Tarun,

    I advice go through the TRM once again,

    Regads,