commit 0cb9160baf1fba6944d9b96bef153cfcd8dad962 Author: Brandon Bergren Date: Thu Jun 6 16:04:59 2019 -0500 show slb command diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c index 7ad86d5f189..eef17e12b80 100644 --- a/sys/powerpc/aim/mmu_oea64.c +++ b/sys/powerpc/aim/mmu_oea64.c @@ -45,6 +45,7 @@ __FBSDID("$FreeBSD$"); * correct. */ +#include "opt_ddb.h" #include "opt_kstack_pages.h" #include @@ -2932,3 +2933,34 @@ moea64_scan_init(mmu_t mmu) } } +#if defined(DDB) && defined(__powerpc64__) +#include +#include + +DB_SHOW_COMMAND(slb, moea64_show_slb) +{ + struct slb *cache; +// struct slb entry; + uint64_t slbv, slbe; + uint64_t i; + +/* +struct slb { + uint64_t slbv; + uint64_t slbe; +}; +*/ + + cache = PCPU_GET(aim.slb); + //esid = esid_from_va(va); + + //slbe = slbe_from_esid(esid) | SLBE_VALID; + + for (i = 0; i < n_slbs; i++) { + __asm __volatile ("slbmfev %0,%1" : "=r"(slbv) : "r"(i)); + __asm __volatile ("slbmfee %0,%1" : "=r"(slbe) : "r"(i)); + db_printf("IDX: %ld SLBV: 0x%lx SLBE: 0x%lx (HW SLBV: 0x%lx SLBE: 0x%lx)\n", + i, cache[i].slbv, cache[i].slbe, slbv, slbe); + } +} +#endif