mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 18:23:57 -06:00
target/ppc: Support for POWER9 native hash
(Might need more patch splitting) Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Cédric Le Goater <clg@kaod.org> Message-Id: <20190215170029.15641-12-clg@kaod.org> [dwg: Hack to fix compile with some earlier include tweaks of mine] Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
79825f4d58
commit
3367c62f52
4 changed files with 70 additions and 20 deletions
|
@ -63,6 +63,7 @@ void ppc_hash64_filter_pagesizes(PowerPCCPU *cpu,
|
|||
#define SDR_64_HTABORG 0x0FFFFFFFFFFC0000ULL
|
||||
#define SDR_64_HTABSIZE 0x000000000000001FULL
|
||||
|
||||
#define PATE0_HTABORG 0x0FFFFFFFFFFC0000ULL
|
||||
#define HPTES_PER_GROUP 8
|
||||
#define HASH_PTE_SIZE_64 16
|
||||
#define HASH_PTEG_SIZE_64 (HASH_PTE_SIZE_64 * HPTES_PER_GROUP)
|
||||
|
@ -107,24 +108,6 @@ void ppc_hash64_filter_pagesizes(PowerPCCPU *cpu,
|
|||
#define HPTE64_R_3_0_SSIZE_SHIFT 58
|
||||
#define HPTE64_R_3_0_SSIZE_MASK (3ULL << HPTE64_R_3_0_SSIZE_SHIFT)
|
||||
|
||||
static inline hwaddr ppc_hash64_hpt_base(PowerPCCPU *cpu)
|
||||
{
|
||||
if (cpu->vhyp) {
|
||||
return 0;
|
||||
}
|
||||
return cpu->env.spr[SPR_SDR1] & SDR_64_HTABORG;
|
||||
}
|
||||
|
||||
static inline hwaddr ppc_hash64_hpt_mask(PowerPCCPU *cpu)
|
||||
{
|
||||
if (cpu->vhyp) {
|
||||
PPCVirtualHypervisorClass *vhc =
|
||||
PPC_VIRTUAL_HYPERVISOR_GET_CLASS(cpu->vhyp);
|
||||
return vhc->hpt_mask(cpu->vhyp);
|
||||
}
|
||||
return (1ULL << ((cpu->env.spr[SPR_SDR1] & SDR_64_HTABSIZE) + 18 - 7)) - 1;
|
||||
}
|
||||
|
||||
struct ppc_hash_pte64 {
|
||||
uint64_t pte0, pte1;
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue