Home | History | Annotate | Download | only in booke

Lines Matching defs:tlb1

147 	 * If tlbassoc is the same as tlbentries (like in TLB1) then the TLB is
287 struct e500_tlb1 * const tlb1 = &e500_tlb1;
289 return &tlb1->tlb1_entries[slot].e_hwtlb;
295 struct e500_tlb1 * const tlb1 = &e500_tlb1;
296 for (u_int slot = 1; slot < tlb1->tlb1_numentries; slot++) {
298 &tlb1->tlb1_entries[slot].e_hwtlb;
319 struct e500_tlb1 * const tlb1 = &e500_tlb1;
321 if (tlb1->tlb1_numfree == 0)
323 const u_int slot = tlb1->tlb1_freelist[--tlb1->tlb1_numfree];
324 KASSERT((tlb1->tlb1_entries[slot].e_hwtlb.hwtlb_mas1 & MAS1_V) == 0);
325 tlb1->tlb1_entries[slot].e_hwtlb.hwtlb_mas0 =
333 struct e500_tlb1 * const tlb1 = &e500_tlb1;
334 KASSERT(slot < tlb1->tlb1_numentries);
335 KASSERT(&tlb1->tlb1_entries[slot] == xtlb);
342 tlb1->tlb1_freelist[tlb1->tlb1_numfree++] = slot;
363 * We don't touch TLB1 since we don't expect those to be volatile.
682 struct e500_tlb1 * const tlb1 = &e500_tlb1;
683 struct e500_xtlb *xtlb = tlb1->tlb1_entries;
688 for (u_int i = 0; i < tlb1->tlb1_numentries; i++, xtlb++) {
704 struct e500_tlb1 * const tlb1 = &e500_tlb1;
705 struct e500_xtlb *xtlb = tlb1->tlb1_entries;
710 for (u_int i = 0; i < tlb1->tlb1_numentries; i++, xtlb++) {
726 struct e500_tlb1 * const tlb1 = &e500_tlb1;
727 struct e500_xtlb *xtlb = tlb1->tlb1_entries;
732 for (u_int i = 0; i < tlb1->tlb1_numentries; i++, xtlb++) {
777 struct e500_tlb1 * const tlb1 = &e500_tlb1;
799 xtlb = &tlb1->tlb1_entries[slot];
838 e500_tlbmemmap(paddr_t memstart, psize_t memsize, struct e500_tlb1 *tlb1)
842 KASSERT(tlb1->tlb1_numfree > 1);
846 psize_t size = uimin(1UL << (31 - (cnt | 1)), tlb1->tlb1_maxsize);
849 panic("%s: %d: can't map memory (%#lx) into TLB1: %s",
851 if (slots > tlb1->tlb1_numfree - 1)
852 panic("%s: %d: can't map memory (%#lx) into TLB1: %s",
858 &tlb1->tlb1_entries[freeslot];
902 struct e500_tlb1 * const tlb1 = &e500_tlb1;
910 tlb1->tlb1_numentries = TLBCFG_NENTRY(tlb1cfg);
911 KASSERT(tlb1->tlb1_numentries <= __arraycount(tlb1->tlb1_entries));
915 tlb1->tlb1_minsize = 1024 << (2 * TLBCFG_MINSIZE(tlb1cfg));
916 tlb1->tlb1_maxsize = 1024 << (2 * uimin(10, TLBCFG_MAXSIZE(tlb1cfg)));
920 tlb1cfg, tlb1->tlb1_numentries, tlb1->tlb1_minsize >> 10,
921 tlb1->tlb1_maxsize >> 10);
925 * Let's see what's in TLB1 and we need to invalidate any entry that
929 for (u_int i = 0; i < tlb1->tlb1_numentries; i++) {
930 struct e500_xtlb * const xtlb = &tlb1->tlb1_entries[i];
935 tlb1->tlb1_freelist[tlb1->tlb1_numfree++] = i;
937 printf(" TLB1[%u]=<unused>", i);
944 printf(" TLB1[%u]=<%#lx,%#lx,%#x,%#x>",
994 u_int slotmask = e500_tlbmemmap(0, memsize, tlb1);
1021 * Create a TLB1 mapping for the kernel in AS1.
1024 struct e500_xtlb * const kxtlb = &tlb1->tlb1_entries[kslot];
1049 *** Now let's see if we have any entries in TLB1 that would
1052 for (u_int i = 0; i < tlb1->tlb1_numentries; i++) {
1053 struct e500_xtlb * const xtlb = &tlb1->tlb1_entries[i];
1066 struct e500_xtlb *entries = tlb1->tlb1_entries;
1087 * Free the temporary TLB1 entry.
1107 struct e500_tlb1 * const tlb1 = &e500_tlb1;
1132 struct e500_xtlb * const tmp_xtlb = &tlb1->tlb1_entries[tmp_slot];
1142 struct e500_xtlb * const text_xtlb = &tlb1->tlb1_entries[text_slot];
1153 struct e500_xtlb * const data_xtlb = &tlb1->tlb1_entries[data_slot];