Browse Source

Add support for Ampere AmpereOne processors

pull/5309/head
davidz-ampere 3 months ago
parent
commit
aa90ab4142
5 changed files with 7 additions and 40 deletions
  1. +3
    -13
      Makefile.arm64
  2. +2
    -7
      cpuid_arm64.c
  3. +1
    -18
      getarch.c
  4. +0
    -1
      kernel/arm64/KERNEL.AMPERE1A
  5. +1
    -1
      param.h

+ 3
- 13
Makefile.arm64 View File

@@ -191,22 +191,12 @@ endif
endif
endif

# Detect Ampere AmpereOne(ampere1) processors.
# Detect Ampere AmpereOne(ampere1,ampere1a) processors.
ifeq ($(CORE), AMPERE1)
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ12) $(ISCLANG)))
CCOMMON_OPT += -march=armv8.6-a -mtune=ampere1
CCOMMON_OPT += -march=armv8.6-a+crypto+crc+fp16+sha3+rng
ifneq ($(F_COMPILER), NAG)
FCOMMON_OPT += -march=armv8.6-a -mtune=ampere1
endif
endif
endif

# Detect Ampere AmpereOne(ampere1a) processors.
ifeq ($(CORE), AMPERE1A)
ifeq (1, $(filter 1,$(GCCVERSIONGTEQ13) $(ISCLANG)))
CCOMMON_OPT += -march=armv8.6-a -mtune=ampere1a
ifneq ($(F_COMPILER), NAG)
FCOMMON_OPT += -march=armv8.6-a -mtune=ampere1a
FCOMMON_OPT += -march=armv8.6-a+crypto+crc+fp16+sha3+rng
endif
endif
endif


+ 2
- 7
cpuid_arm64.c View File

@@ -80,7 +80,6 @@ size_t length64=sizeof(value64);
// Ampere
#define CPU_EMAG8180 10
#define CPU_AMPERE1 25
#define CPU_AMPERE1A 26
// Apple
#define CPU_VORTEX 13
// Fujitsu
@@ -114,8 +113,7 @@ static char *cpuname[] = {
"FT2000",
"CORTEXA76",
"NEOVERSEV2",
"AMPERE1",
"AMPERE1A"
"AMPERE1"
};

static char *cpuname_lower[] = {
@@ -341,10 +339,8 @@ int detect(void)
else if (strstr(cpu_implementer, "0x50") && strstr(cpu_part, "0x000"))
return CPU_EMAG8180;
else if (strstr(cpu_implementer, "0xc0")) {
if (strstr(cpu_part, "0xac3"))
if (strstr(cpu_part, "0xac3") || strstr(cpu_part, "0xac4"))
return CPU_AMPERE1;
else if (strstr(cpu_part, "0xac4"))
return CPU_AMPERE1A;
}
// Fujitsu
else if (strstr(cpu_implementer, "0x46") && strstr(cpu_part, "0x001"))
@@ -697,7 +693,6 @@ void get_cpuconfig(void)
break;

case CPU_AMPERE1:
case CPU_AMPERE1A:
printf("#define %s\n", cpuname[d]);
printf("#define L1_CODE_SIZE 16384\n");
printf("#define L1_CODE_LINESIZE 64\n");


+ 1
- 18
getarch.c View File

@@ -159,7 +159,6 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
/* #define FORCE_CK860FV */
/* #define FORCE_GENERIC */
/* #define FORCE_AMPERE1 */
/* #define FORCE_AMPERE1A */

#ifdef FORCE_P2
#define FORCE
@@ -1603,27 +1602,11 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
"-DL2_SIZE=2097152 -DL2_LINESIZE=64 -DL2_ASSOCIATIVE=16 " \
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_VFPV4 -DHAVE_VFPV3 -DHAVE_VFP -DHAVE_NEON -DARMV8 " \
"-march=armv8.6-a -mtune=ampere1"
"-march=armv8.6-a+crypto+crc+fp16+sha3+rng"
#define LIBNAME "ampere1"
#define CORENAME "AMPERE1"
#endif

#ifdef FORCE_AMPERE1A
#define FORCE
#define ARCHITECTURE "ARM64"
#define SUBARCHITECTURE "AMPERE1A"
#define SUBDIRNAME "arm64"
#define ARCHCONFIG "-DAMPERE1A " \
"-DL1_CODE_SIZE=16384 -DL1_CODE_LINESIZE=64 -DL1_CODE_ASSOCIATIVE=4 " \
"-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=64 -DL1_DATA_ASSOCIATIVE=4 " \
"-DL2_SIZE=2097152 -DL2_LINESIZE=64 -DL2_ASSOCIATIVE=16 " \
"-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 " \
"-DHAVE_VFPV4 -DHAVE_VFPV3 -DHAVE_VFP -DHAVE_NEON -DARMV8 " \
"-march=armv8.6-a -mtune=ampere1a"
#define LIBNAME "ampere1a"
#define CORENAME "AMPERE1A"
#endif

#ifdef FORCE_THUNDERX3T110
#define ARMV8
#define FORCE


+ 0
- 1
kernel/arm64/KERNEL.AMPERE1A View File

@@ -1 +0,0 @@
include $(KERNELDIR)/KERNEL.NEOVERSEN1

+ 1
- 1
param.h View File

@@ -3635,7 +3635,7 @@ is a big desktop or server with abundant cache rather than a phone or embedded d
#define CGEMM_DEFAULT_R 4096
#define ZGEMM_DEFAULT_R 4096

#elif defined(AMPERE1) || defined(AMPERE1A)
#elif defined(AMPERE1)

#if defined(XDOUBLE) || defined(DOUBLE)
#define SWITCH_RATIO 8


Loading…
Cancel
Save