mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
ppc: booke206: use MAV=2.0 TSIZE definition, fix 4G pages
This definition is backward compatible with MAV=1.0 as long as the guest does not set reserved bits in MAS1/MAS4. Also, fix the shift in booke206_tlb_to_page_size -- it's the base that should be able to hold a 4G page size, not the shift count. Signed-off-by: Scott Wood <scottwood@freescale.com> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
bebabbc7aa
commit
2bd9543cd3
3 changed files with 6 additions and 5 deletions
|
@ -1293,7 +1293,7 @@ target_phys_addr_t booke206_tlb_to_page_size(CPUState *env, ppcmas_tlb_t *tlb)
|
|||
{
|
||||
uint32_t tlbncfg;
|
||||
int tlbn = booke206_tlbm_to_tlbn(env, tlb);
|
||||
target_phys_addr_t tlbm_size;
|
||||
int tlbm_size;
|
||||
|
||||
tlbncfg = env->spr[SPR_BOOKE_TLB0CFG + tlbn];
|
||||
|
||||
|
@ -1301,9 +1301,10 @@ target_phys_addr_t booke206_tlb_to_page_size(CPUState *env, ppcmas_tlb_t *tlb)
|
|||
tlbm_size = (tlb->mas1 & MAS1_TSIZE_MASK) >> MAS1_TSIZE_SHIFT;
|
||||
} else {
|
||||
tlbm_size = (tlbncfg & TLBnCFG_MINSIZE) >> TLBnCFG_MINSIZE_SHIFT;
|
||||
tlbm_size <<= 1;
|
||||
}
|
||||
|
||||
return (1 << (tlbm_size << 1)) << 10;
|
||||
return 1024ULL << tlbm_size;
|
||||
}
|
||||
|
||||
/* TLB check function for MAS based SoftTLBs */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue