mips32_pracc_synchronize_cache() is only used within OpenOCD.
 
Symbols
loading...
Files
loading...
CodeScopeDevelopment ToolsOpenOCDmips32_pracc_synchronize_cache()

mips32_pracc_synchronize_cache() function

\b mips32_pracc_sync_cache Synchronize Caches to Make Instruction Writes Effective (ref. doc. MIPS32 Architecture For Programmers Volume II: The MIPS32 Instruction Set, Document Number: MD00086, Revision 2.00, June 9, 2003) When the instruction stream is written, the SYNCI instruction should be used in conjunction with other instructions to make the newly-written instructions effective. Explanation : A program that loads another program into memory is actually writing the D- side cache. The instructions it has loaded can't be executed until they reach the I-cache. After the instructions have been written, the loader should arrange to write back any containing D-cache line and invalidate any locations already in the I-cache. If the cache coherency attribute (CCA) is set to zero, it's a write through cache, there is no need to write back. In the latest MIPS32/64 CPUs, MIPS provides the synci instruction, which does the whole job for a cache-line-sized chunk of the memory you just loaded: That is, it arranges a D-cache write-back (if CCA = 3) and an I-cache invalidate. The line size is obtained with the rdhwr SYNCI_Step in release 2 or from cp0 config 1 register in release 1.

Syntax

static int mips32_pracc_synchronize_cache(struct mips_ejtag *ejtag_info,     uint32_t start_addr,     uint32_t end_addr,     int cached,     int rel);

Arguments

ejtag_info

start_addr

end_addr

cached

rel

References

LocationReferrerText
mips32_pracc.c:638
static int mips32_pracc_synchronize_cache(struct mips_ejtag *ejtag_info,
mips32_pracc.c:851mips32_pracc_write_mem()
retval = mips32_pracc_synchronize_cache(ejtag_info, start_addr, end_addr, cached, rel);
mips32_pracc.c:1213mips32_pracc_fastdata_xfer_synchronize_cache()
retval = mips32_pracc_synchronize_cache(ejtag_info, start_addr, end_addr, cached, rel);

Call Tree

Functions calling mips32_pracc_synchronize_cache()
Functions called by mips32_pracc_synchronize_cache()
mips32_pracc_synchronize_cache()
Data read by mips32_pracc_synchronize_cache()
Data written by mips32_pracc_synchronize_cache()
mips32_pracc_synchronize_cache()::ctx
mips32_pracc_synchronize_cache()::clsiz
mips32_pracc_synchronize_cache()::conf
mips32_pracc_synchronize_cache()::dl
mips32_pracc_synchronize_cache()::_x
mips32_pracc_synchronize_cache()::count
mips32_pracc_synchronize_cache()::last_upper_base_addr
mips32_pracc_synchronize_cache()::upper_base_addr
all items filtered out
mips32_pracc_synchronize_cache()
mips32_pracc_synchronize_cache()::clsiz
mips32_pracc_synchronize_cache()::count
mips32_pracc_synchronize_cache()::last_upper_base_addr
all items filtered out
Type of mips32_pracc_synchronize_cache()
mips32_pracc_synchronize_cache()
uint32_t
all items filtered out