Browse Source

Split VORTEXM4 from VORTEX target due to SME support

pull/5423/head
Martin Kroeker GitHub 5 months ago
parent
commit
4e2a8c18e5
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
1 changed files with 26 additions and 3 deletions
  1. +26
    -3
      cpuid_arm64.c

+ 26
- 3
cpuid_arm64.c View File

@@ -82,6 +82,7 @@ size_t length64=sizeof(value64);
#define CPU_AMPERE1 25
// Apple
#define CPU_VORTEX 13
#define CPU_VORTEXM4 26
// Fujitsu
#define CPU_A64FX 15
// Phytium
@@ -113,7 +114,8 @@ static char *cpuname[] = {
"FT2000",
"CORTEXA76",
"NEOVERSEV2",
"AMPERE1"
"AMPERE1",
"VORTEXM4",
};

static char *cpuname_lower[] = {
@@ -143,7 +145,7 @@ static char *cpuname_lower[] = {
"cortexa76",
"neoversev2",
"ampere1",
"ampere1a"
"vortexm4"
};

static int cpulowperf=0;
@@ -400,7 +402,7 @@ int detect(void)
if (value64 ==131287967|| value64 == 458787763 ) return CPU_VORTEX; //A12/M1
if (value64 == 3660830781) return CPU_VORTEX; //A15/M2
if (value64 == 2271604202) return CPU_VORTEX; //A16/M3
if (value64 == 1867590060) return CPU_VORTEX; //M4
if (value64 == 1867590060) return CPU_VORTEXM4; //M4
#else
#ifdef OS_WINDOWS
HKEY reghandle;
@@ -740,6 +742,27 @@ void get_cpuconfig(void)
length64 = sizeof(value64);
sysctlbyname("hw.l2cachesize",&value64,&length64,NULL,0);
printf("#define L2_SIZE %lld \n",value64);
#endif
printf("#define DTB_DEFAULT_ENTRIES 64 \n");
printf("#define DTB_SIZE 4096 \n");
break;
case CPU_VORTEXM4:
printf("#define VORTEXM4 \n");
printf("#define HAVE_SME 1 \n");
#ifdef __APPLE__
length64 = sizeof(value64);
sysctlbyname("hw.l1icachesize",&value64,&length64,NULL,0);
printf("#define L1_CODE_SIZE %lld \n",value64);
length64 = sizeof(value64);
sysctlbyname("hw.cachelinesize",&value64,&length64,NULL,0);
printf("#define L1_CODE_LINESIZE %lld \n",value64);
printf("#define L1_DATA_LINESIZE %lld \n",value64);
length64 = sizeof(value64);
sysctlbyname("hw.l1dcachesize",&value64,&length64,NULL,0);
printf("#define L1_DATA_SIZE %lld \n",value64);
length64 = sizeof(value64);
sysctlbyname("hw.l2cachesize",&value64,&length64,NULL,0);
printf("#define L2_SIZE %lld \n",value64);
#endif
printf("#define DTB_DEFAULT_ENTRIES 64 \n");
printf("#define DTB_SIZE 4096 \n");


Loading…
Cancel
Save