MIPS: Support extended ASIDs
Add support for extended ASIDs as determined by the Config4.AE bit. Since the only supported CPUs known to implement this are Netlogic XLP and MIPS I6400, select this variable ASID support based upon CONFIG_CPU_XLP and CONFIG_CPU_MIPSR6. Signed-off-by: Paul Burton <paul.burton@imgtec.com> Signed-off-by: James Hogan <james.hogan@imgtec.com> Cc: Jayachandran C. <jchandra@broadcom.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Radim Krčmář <rkrcmar@redhat.com> Cc: linux-mips@linux-mips.org Cc: kvm@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/13211/ Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:

committed by
Ralf Baechle

parent
4edf00a46b
commit
2db003a5dd
@@ -40,6 +40,9 @@ struct cache_desc {
|
||||
|
||||
struct cpuinfo_mips {
|
||||
unsigned long asid_cache;
|
||||
#ifdef CONFIG_MIPS_ASID_BITS_VARIABLE
|
||||
unsigned long asid_mask;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Capability and feature descriptor structure for MIPS CPU
|
||||
@@ -139,7 +142,18 @@ static inline unsigned long cpu_asid_inc(void)
|
||||
|
||||
static inline unsigned long cpu_asid_mask(struct cpuinfo_mips *cpuinfo)
|
||||
{
|
||||
#ifdef CONFIG_MIPS_ASID_BITS_VARIABLE
|
||||
return cpuinfo->asid_mask;
|
||||
#endif
|
||||
return ((1 << CONFIG_MIPS_ASID_BITS) - 1) << CONFIG_MIPS_ASID_SHIFT;
|
||||
}
|
||||
|
||||
static inline void set_cpu_asid_mask(struct cpuinfo_mips *cpuinfo,
|
||||
unsigned long asid_mask)
|
||||
{
|
||||
#ifdef CONFIG_MIPS_ASID_BITS_VARIABLE
|
||||
cpuinfo->asid_mask = asid_mask;
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* __ASM_CPU_INFO_H */
|
||||
|
Reference in New Issue
Block a user