From: Anton F. <AD....@gm...> - 2010-04-02 22:59:54
|
Hello, This patch adds MMU support for Cortex A8: + virt2phys() can now convert virtual address to real + read_memory() and write_memory() are renamed to read_phys_memory() and write_phys_memory() + new read_memory() and write_memory() try to resolve real address if mmu is enambled than perform real address reading/writing + if address is bellow 0xc000000 than TTB0 is used for page table dereference, if above - than TTB1. Linux style of user/kernel address separation + if above fails (i.e address is unspecified) than mode is checked whether it is Supervisor (than TTB1) or User (than TTB0) - Software breakpoints doesn't work. You should invoke "gdb_breakpoint_override hard" before you start debugging + cortex_a8_mmu(), cortex_a8_enable_mmu_caches(), cortex_a8_disable_mmu_caches() are implemented This patch is not perfect. It needs at least some cleaning. And it shouldn't be commited in current state. But it works. I've tested it on DevKit8000 with Olimex ARM-USB-TINY. Both MMU disabled u-boot and MMU enabled Linux can be debugged without a problem. Maybe it will help someone. Signed-off-by: Anton Fedotov <AD.Fedotov at gmail.com> |