This is an automated email from Gerrit.

Salvador Arroyo ([email protected]) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/1564

-- gerrit

commit b4ca193b7bdf6b0cfe1d38116255f35467e6e642
Author: Salvador Arroyo <[email protected]>
Date:   Sat Aug 24 14:18:09 2013 +0200

    mips: load fast data transfer handler code with mips32_pracc_write_mem()
    
    Currently the code is loaded calling mips32_pracc_write_mem_generic().
    Cache synchronization is not performed.
    If configured as write back cache there is no chance to execute the
    handler. If configured as write through cache and the cache
    lines written to are not cache resident (I-side cache miss) may work.
    The patch makes possible to execute the handler in a cached active
    memory segment (mainly from KSEG0), but nothing else. The data
    is still loaded without performing cache synchronization, code loaded
    may not be executable.
    Performance may not be faster. At start, for example, the code resides in
    main memory, not in cache, and the core must transfer code from
    memory. We can really modify the code to force a wait for the first
    transfer like we do with start and end addresses, making sure the code
    is cache resident for the rest of the queued transfers.
    This can also may happen if we execute code (greater than the I cache size)
    and the handler code is evicted from the cache.
    Code tested on ar7241.
    
    Change-Id: Iffdb4dae108b872fef0e7bacc5ea99649cdc1630
    Signed-off-by: Salvador Arroyo <[email protected]>

diff --git a/src/target/mips32_pracc.c b/src/target/mips32_pracc.c
index f4a0a72..bf1c6ca 100644
--- a/src/target/mips32_pracc.c
+++ b/src/target/mips32_pracc.c
@@ -984,7 +984,7 @@ int mips32_pracc_fastdata_xfer(struct mips_ejtag 
*ejtag_info, struct working_are
 
        /* write program into RAM */
        if (write_t != ejtag_info->fast_access_save) {
-               mips32_pracc_write_mem_generic(ejtag_info, source->address, 4, 
ARRAY_SIZE(handler_code), handler_code);
+               mips32_pracc_write_mem(ejtag_info, source->address, 4, 
ARRAY_SIZE(handler_code), handler_code);
                /* save previous operation to speed to any consecutive 
read/writes */
                ejtag_info->fast_access_save = write_t;
        }

-- 

------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to