Commit 7c664e2f4efbf27b1fa47ceed0c4e661fb681238
1 parent
0cfe11ea
SH4: Added monitoring of TLBs
This patch might interest some people trying (as I try to do) to fix some tlbs for kernel/user space data sharing. Signed-off-by: Lionel Landwerlin <lionel.landwerlin@openwide.fr> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net> git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6670 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
32 additions
and
1 deletions
monitor.c
... | ... | @@ -1245,6 +1245,35 @@ static void mem_info(void) |
1245 | 1245 | } |
1246 | 1246 | #endif |
1247 | 1247 | |
1248 | +#if defined(TARGET_SH4) | |
1249 | + | |
1250 | +static void print_tlb(int idx, tlb_t *tlb) | |
1251 | +{ | |
1252 | + term_printf(" tlb%i:\t" | |
1253 | + "asid=%hhu vpn=%x\tppn=%x\tsz=%hhu size=%u\t" | |
1254 | + "v=%hhu shared=%hhu cached=%hhu prot=%hhu " | |
1255 | + "dirty=%hhu writethrough=%hhu\n", | |
1256 | + idx, | |
1257 | + tlb->asid, tlb->vpn, tlb->ppn, tlb->sz, tlb->size, | |
1258 | + tlb->v, tlb->sh, tlb->c, tlb->pr, | |
1259 | + tlb->d, tlb->wt); | |
1260 | +} | |
1261 | + | |
1262 | +static void tlb_info(void) | |
1263 | +{ | |
1264 | + CPUState *env = mon_get_cpu(); | |
1265 | + int i; | |
1266 | + | |
1267 | + term_printf ("ITLB:\n"); | |
1268 | + for (i = 0 ; i < ITLB_SIZE ; i++) | |
1269 | + print_tlb (i, &env->itlb[i]); | |
1270 | + term_printf ("UTLB:\n"); | |
1271 | + for (i = 0 ; i < UTLB_SIZE ; i++) | |
1272 | + print_tlb (i, &env->utlb[i]); | |
1273 | +} | |
1274 | + | |
1275 | +#endif | |
1276 | + | |
1248 | 1277 | static void do_info_kqemu(void) |
1249 | 1278 | { |
1250 | 1279 | #ifdef USE_KQEMU |
... | ... | @@ -1556,9 +1585,11 @@ static const term_cmd_t info_cmds[] = { |
1556 | 1585 | "", "show i8259 (PIC) state", }, |
1557 | 1586 | { "pci", "", pci_info, |
1558 | 1587 | "", "show PCI info", }, |
1559 | -#if defined(TARGET_I386) | |
1588 | +#if defined(TARGET_I386) || defined(TARGET_SH4) | |
1560 | 1589 | { "tlb", "", tlb_info, |
1561 | 1590 | "", "show virtual to physical memory mappings", }, |
1591 | +#endif | |
1592 | +#if defined(TARGET_I386) | |
1562 | 1593 | { "mem", "", mem_info, |
1563 | 1594 | "", "show the active virtual memory mappings", }, |
1564 | 1595 | { "hpet", "", do_info_hpet, | ... | ... |