summaryrefslogtreecommitdiff
path: root/utils/hwstub/stub/asm (follow)
Commit message (Collapse)AuthorAge
* hwstub: rewrite exception catchingAmaury Pouly2017-01-24
| | | | | | | | | | | | | | | | | Since we can catch exceptions like data aborts on read/write, it takes very little to also catch exceptions in calls. When extending this with the catching of illegal instructions, the call instruction now becomes much more robust and also for address and instruction probing. Since we can catch several types of exception, rename set_data_abort_jmp to set_exception_jmp. At the same time, simplify the logic in read/write request handlers. Also fix a bug in ARM jump code: it was using stmia r1, {..., pc} as if pc would get current pc + 8 but this is actually implementation defined on older ARMs (typically pc + 12) and deprecated on newer ARMs, so rewrite the code avoid that. The set_exception_jmp() function now also reports the exception type. Change-Id: Icd0dd52d2456b361b27c4776be09c3d13528ed93
* hwstub/jz460b: implement exception recoveryAmaury Pouly2017-01-24
| | | | | | | | | Now that we now that jz4760b implements EBASE, we can use it to rebase exceptions to use a k1seg address, that maps to the physical address of the TCSM0. It requires to enable HAB1 to have this translation. This most the most inefficient way to access tighly coupled memory ever, but it works. Change-Id: I894ca929c9835696102eb2fef44b06e6eaf96d44
* hwstub: add the possibility to flush caches before execAmaury Pouly2017-01-24
| | | | | | | | | | This is needed on the jz4760b because if some data is loaded to DRAM, then it is cached and a disaster lurks if dcaches/icache are not flushed. Targets that needs this must define CONFIG_FLUSH_CACHES in target-config.h and implement target_flush_caches(). Currently MIPS has some generic code for mips32r1 that requires to define {D,I}CACHE_SIZE and {D,I}CACHE_LINE_SIZE in target-config.h Change-Id: I5a3fc085de9445d8c8a2eb61ae4e2dc9bb6b4e8e
* hwstub: implement read/write data abort recoveryAmaury Pouly2015-01-13
| | | | Change-Id: I1625873b6864584c40984723d82548ad242ee08e
* hwstub/qeditor: add support for atomic read/writesMarcin Bukat2014-11-18
| | | | | | | | | | The current code assumed that READ/WRITE would produce atomic read/writes for 8/16/32-bit words, which in turned put assumption on the memcpy function. Since some memcpy implementation do not always guarantee such strong assumption, introduce two new operation READ/WRITE_ATOMIC which provide the necessary tools to do correct read and write to register in a single memory access. Change-Id: I37451bd5057bb0dcaf5a800d8aef8791c792a090
* hwstub: Add atj213x supportMarcin Bukat2014-11-05
| | | | Change-Id: Ic32200f9ab2c6977e503307a9cbe43a1328d0341
* hwstub: Prepare for multi arch supportMarcin Bukat2013-12-06
Change-Id: Id38411ff95660e60ee23f99350b275b92b3e4578 Reviewed-on: http://gerrit.rockbox.org/690 Reviewed-by: Amaury Pouly <amaury.pouly@gmail.com>