Added mips I6500 core
authorShivraj Patil <shivraj.patil@imgtec.com>
Fri, 22 Sep 2017 06:27:43 +0000 (11:57 +0530)
committerShivraj Patil <shivraj.patil@imgtec.com>
Fri, 22 Sep 2017 06:27:43 +0000 (11:57 +0530)
Signed-off-by: Shivraj Patil <shivraj.patil@imgtec.com>
Makefile.prebuild
Makefile.system
TargetList.txt
cpuid_mips64.c
getarch.c
kernel/mips64/KERNEL.I6500 [new file with mode: 0644]
param.h

index 524f0a7..daa556f 100644 (file)
@@ -29,6 +29,10 @@ ifeq ($(TARGET), P6600)
 TARGET_FLAGS = -mips64r6
 endif
 
+ifeq ($(TARGET), I6500)
+TARGET_FLAGS = -mips64r6
+endif
+
 all: getarch_2nd
        ./getarch_2nd  0 >> $(TARGET_MAKE)
        ./getarch_2nd  1 >> $(TARGET_CONF)
index 74bc5cd..972238f 100644 (file)
@@ -568,6 +568,11 @@ CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
 FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS)
 endif
 
+ifeq ($(CORE), I6500)
+CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
+FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=i6400 $(MSA_FLAGS)
+endif
+
 ifeq ($(OSNAME), AIX)
 BINARY_DEFINED = 1
 endif
index 7f27058..d40545c 100644 (file)
@@ -63,6 +63,7 @@ LOONGSON3A
 LOONGSON3B
 I6400
 P6600
+I6500
 
 5.IA64 CPU:
 ITANIUM2
index ac1554c..dcb559a 100644 (file)
@@ -76,6 +76,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define CPU_LOONGSON3B  3
 #define CPU_I6400       4
 #define CPU_P6600       5
+#define CPU_I6500       6
 
 static char *cpuname[] = {
   "UNKOWN",
@@ -83,7 +84,8 @@ static char *cpuname[] = {
   "LOONGSON3A",
   "LOONGSON3B",
   "I6400",
-  "P6600"
+  "P6600",
+  "I6500"
 };
 
 int detect(void){
@@ -165,6 +167,8 @@ void get_subarchitecture(void){
     printf("I6400");
   }else if(detect()==CPU_P6600){
     printf("P6600");
+  }else if(detect()==CPU_I6500){
+    printf("I6500");
   }else{
     printf("SICORTEX");
   }
@@ -211,6 +215,15 @@ void get_cpuconfig(void){
     printf("#define DTB_DEFAULT_ENTRIES 64\n");
     printf("#define DTB_SIZE 4096\n");
     printf("#define L2_ASSOCIATIVE 8\n");
+  }else if(detect()==CPU_I6500){
+    printf("#define I6500\n");
+    printf("#define L1_DATA_SIZE 65536\n");
+    printf("#define L1_DATA_LINESIZE 32\n");
+    printf("#define L2_SIZE 1048576\n");
+    printf("#define L2_LINESIZE 32\n");
+    printf("#define DTB_DEFAULT_ENTRIES 64\n");
+    printf("#define DTB_SIZE 4096\n");
+    printf("#define L2_ASSOCIATIVE 8\n");
   }else{
     printf("#define SICORTEX\n");
     printf("#define L1_DATA_SIZE 32768\n");
@@ -232,6 +245,8 @@ void get_libname(void){
     printf("i6400\n");
   }else if(detect()==CPU_P6600) {
     printf("p6600\n");
+  }else if(detect()==CPU_I6500) {
+    printf("i6500\n");
   }else{
     printf("mips64\n");
   }
index 2728b80..c0fff04 100644 (file)
--- a/getarch.c
+++ b/getarch.c
@@ -134,6 +134,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 /* #define FORCE_I6400         */
 /* #define FORCE_P6600         */
 /* #define FORCE_P5600         */
+/* #define FORCE_I6500         */
 /* #define FORCE_ITANIUM2      */
 /* #define FORCE_SPARC         */
 /* #define FORCE_SPARCV7       */
@@ -765,6 +766,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #else
 #endif
 
+#ifdef FORCE_I6500
+#define FORCE
+#define ARCHITECTURE    "MIPS"
+#define SUBARCHITECTURE "I6500"
+#define SUBDIRNAME      "mips64"
+#define ARCHCONFIG   "-DI6500 " \
+       "-DL1_DATA_SIZE=65536 -DL1_DATA_LINESIZE=32 " \
+       "-DL2_SIZE=1048576 -DL2_LINESIZE=32 " \
+       "-DDTB_DEFAULT_ENTRIES=64 -DDTB_SIZE=4096 -DL2_ASSOCIATIVE=8 "
+#define LIBNAME   "i6500"
+#define CORENAME  "I6500"
+#else
+#endif
+
 #ifdef FORCE_ITANIUM2
 #define FORCE
 #define ARCHITECTURE    "IA64"
diff --git a/kernel/mips64/KERNEL.I6500 b/kernel/mips64/KERNEL.I6500
new file mode 100644 (file)
index 0000000..abf4481
--- /dev/null
@@ -0,0 +1 @@
+include $(KERNELDIR)/../mips/KERNEL.P5600
diff --git a/param.h b/param.h
index 2d5bcce..189cdc4 100644 (file)
--- a/param.h
+++ b/param.h
@@ -2291,7 +2291,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #define SYMV_P 16
 #endif
 
-#if defined(P5600) || defined(I6400) || defined(P6600)
+#if defined(P5600) || defined(I6400) || defined(P6600) || defined(I6500)
 #define SNUMOPT  2
 #define DNUMOPT  2