arm64: Move mixed endian support detection
Move the mixed endian support detection code to cpufeature.c from cpuinfo.c. This also moves the update_cpu_features() used by mixed endian detection code, which will get more functionality. Also moves the ID register field shifts to asm/sysreg.h, where all the useful definitions will end up in later patches. Signed-off-by: Suzuki K. Poulose <suzuki.poulose@arm.com> Tested-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
This commit is contained in:

committed by
Catalin Marinas

orang tua
9cdf8ec4a8
melakukan
cdcf817b7e
@@ -22,7 +22,9 @@
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/cpufeature.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/sysreg.h>
|
||||
|
||||
static bool mixed_endian_el0 = true;
|
||||
unsigned long elf_hwcap __read_mostly;
|
||||
EXPORT_SYMBOL_GPL(elf_hwcap);
|
||||
|
||||
@@ -41,6 +43,26 @@ unsigned int compat_elf_hwcap2 __read_mostly;
|
||||
DECLARE_BITMAP(cpu_hwcaps, ARM64_NCAPS);
|
||||
|
||||
|
||||
bool cpu_supports_mixed_endian_el0(void)
|
||||
{
|
||||
return id_aa64mmfr0_mixed_endian_el0(read_cpuid(ID_AA64MMFR0_EL1));
|
||||
}
|
||||
|
||||
bool system_supports_mixed_endian_el0(void)
|
||||
{
|
||||
return mixed_endian_el0;
|
||||
}
|
||||
|
||||
static void update_mixed_endian_el0_support(struct cpuinfo_arm64 *info)
|
||||
{
|
||||
mixed_endian_el0 &= id_aa64mmfr0_mixed_endian_el0(info->reg_id_aa64mmfr0);
|
||||
}
|
||||
|
||||
void update_cpu_features(struct cpuinfo_arm64 *info)
|
||||
{
|
||||
update_mixed_endian_el0_support(info);
|
||||
}
|
||||
|
||||
static bool
|
||||
feature_matches(u64 reg, const struct arm64_cpu_capabilities *entry)
|
||||
{
|
||||
|
Reference in New Issue
Block a user