Neoverse N2: DYNAMIC_ARCH
authorHonglin Zhu <zhuhonglin.zhl@alibaba-inc.com>
Mon, 11 Jul 2022 16:40:22 +0000 (00:40 +0800)
committerHonglin Zhu <zhuhonglin.zhl@alibaba-inc.com>
Mon, 11 Jul 2022 16:50:45 +0000 (00:50 +0800)
driver/others/dynamic_arm64.c

index 45ea9f1..f8fc5e5 100644 (file)
@@ -99,6 +99,11 @@ extern gotoblas_t  gotoblas_NEOVERSEN1;
 #else
 #define gotoblas_NEOVERSEN1 gotoblas_ARMV8
 #endif
+#ifdef DYN_NEOVERSEN2
+extern gotoblas_t gotoblas_NEOVERSEN2;
+#else
+#define gotoblas_NEOVERSEN2 gotoblas_ARMV8
+#endif
 #ifdef DYN_CORTEX_A55
 extern gotoblas_t  gotoblas_CORTEXA55;
 #else
@@ -115,6 +120,7 @@ extern gotoblas_t  gotoblas_THUNDERX2T99;
 extern gotoblas_t  gotoblas_TSV110;
 extern gotoblas_t  gotoblas_EMAG8180;
 extern gotoblas_t  gotoblas_NEOVERSEN1;
+extern gotoblas_t  gotoblas_NEOVERSEN2;
 extern gotoblas_t  gotoblas_THUNDERX3T110;
 extern gotoblas_t  gotoblas_CORTEXA55;
 #endif
@@ -166,8 +172,9 @@ char *gotoblas_corename(void) {
   if (gotoblas == &gotoblas_TSV110)       return corename[ 8];
   if (gotoblas == &gotoblas_EMAG8180)     return corename[ 9];
   if (gotoblas == &gotoblas_NEOVERSEN1)   return corename[10];
-  if (gotoblas == &gotoblas_THUNDERX3T110) return corename[11];
-  if (gotoblas == &gotoblas_CORTEXA55)    return corename[12];
+  if (gotoblas == &gotoblas_NEOVERSEN2)   return corename[12];
+  if (gotoblas == &gotoblas_THUNDERX3T110) return corename[13];
+  if (gotoblas == &gotoblas_CORTEXA55)    return corename[14];
   return corename[NUM_CORETYPES];
 }
 
@@ -258,6 +265,8 @@ static gotoblas_t *get_coretype(void) {
           return &gotoblas_CORTEXA73;
         case 0xd0c: // Neoverse N1
           return &gotoblas_NEOVERSEN1;
+        case 0xd49:
+          return &gotoblas_NEOVERSEN2;
        case 0xd05: // Cortex A55
          return &gotoblas_CORTEXA55;
       }