Merge pull request #1310 from sva-img/develop

Added mips I6500 core
This commit is contained in:
Martin Kroeker 2017-09-22 09:34:54 +02:00 committed by GitHub
commit 2ccd7f6e0c
7 changed files with 43 additions and 2 deletions

View 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)

View 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

View File

@ -63,6 +63,7 @@ LOONGSON3A
LOONGSON3B
I6400
P6600
I6500
5.IA64 CPU:
ITANIUM2

View 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");
}

View File

@ -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"

View File

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

View File

@ -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