| @@ -29,6 +29,10 @@ ifeq ($(TARGET), P6600) | |||||
| TARGET_FLAGS = -mips64r6 | TARGET_FLAGS = -mips64r6 | ||||
| endif | endif | ||||
| ifeq ($(TARGET), I6500) | |||||
| TARGET_FLAGS = -mips64r6 | |||||
| endif | |||||
| all: getarch_2nd | all: getarch_2nd | ||||
| ./getarch_2nd 0 >> $(TARGET_MAKE) | ./getarch_2nd 0 >> $(TARGET_MAKE) | ||||
| ./getarch_2nd 1 >> $(TARGET_CONF) | ./getarch_2nd 1 >> $(TARGET_CONF) | ||||
| @@ -568,6 +568,11 @@ CCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS) | |||||
| FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS) | FCOMMON_OPT += -mips64r6 -mnan=2008 -mtune=p6600 $(MSA_FLAGS) | ||||
| endif | 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) | ifeq ($(OSNAME), AIX) | ||||
| BINARY_DEFINED = 1 | BINARY_DEFINED = 1 | ||||
| endif | endif | ||||
| @@ -63,6 +63,7 @@ LOONGSON3A | |||||
| LOONGSON3B | LOONGSON3B | ||||
| I6400 | I6400 | ||||
| P6600 | P6600 | ||||
| I6500 | |||||
| 5.IA64 CPU: | 5.IA64 CPU: | ||||
| ITANIUM2 | ITANIUM2 | ||||
| @@ -76,6 +76,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #define CPU_LOONGSON3B 3 | #define CPU_LOONGSON3B 3 | ||||
| #define CPU_I6400 4 | #define CPU_I6400 4 | ||||
| #define CPU_P6600 5 | #define CPU_P6600 5 | ||||
| #define CPU_I6500 6 | |||||
| static char *cpuname[] = { | static char *cpuname[] = { | ||||
| "UNKOWN", | "UNKOWN", | ||||
| @@ -83,7 +84,8 @@ static char *cpuname[] = { | |||||
| "LOONGSON3A", | "LOONGSON3A", | ||||
| "LOONGSON3B", | "LOONGSON3B", | ||||
| "I6400", | "I6400", | ||||
| "P6600" | |||||
| "P6600", | |||||
| "I6500" | |||||
| }; | }; | ||||
| int detect(void){ | int detect(void){ | ||||
| @@ -165,6 +167,8 @@ void get_subarchitecture(void){ | |||||
| printf("I6400"); | printf("I6400"); | ||||
| }else if(detect()==CPU_P6600){ | }else if(detect()==CPU_P6600){ | ||||
| printf("P6600"); | printf("P6600"); | ||||
| }else if(detect()==CPU_I6500){ | |||||
| printf("I6500"); | |||||
| }else{ | }else{ | ||||
| printf("SICORTEX"); | printf("SICORTEX"); | ||||
| } | } | ||||
| @@ -211,6 +215,15 @@ void get_cpuconfig(void){ | |||||
| printf("#define DTB_DEFAULT_ENTRIES 64\n"); | printf("#define DTB_DEFAULT_ENTRIES 64\n"); | ||||
| printf("#define DTB_SIZE 4096\n"); | printf("#define DTB_SIZE 4096\n"); | ||||
| printf("#define L2_ASSOCIATIVE 8\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{ | }else{ | ||||
| printf("#define SICORTEX\n"); | printf("#define SICORTEX\n"); | ||||
| printf("#define L1_DATA_SIZE 32768\n"); | printf("#define L1_DATA_SIZE 32768\n"); | ||||
| @@ -232,6 +245,8 @@ void get_libname(void){ | |||||
| printf("i6400\n"); | printf("i6400\n"); | ||||
| }else if(detect()==CPU_P6600) { | }else if(detect()==CPU_P6600) { | ||||
| printf("p6600\n"); | printf("p6600\n"); | ||||
| }else if(detect()==CPU_I6500) { | |||||
| printf("i6500\n"); | |||||
| }else{ | }else{ | ||||
| printf("mips64\n"); | printf("mips64\n"); | ||||
| } | } | ||||
| @@ -134,6 +134,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| /* #define FORCE_I6400 */ | /* #define FORCE_I6400 */ | ||||
| /* #define FORCE_P6600 */ | /* #define FORCE_P6600 */ | ||||
| /* #define FORCE_P5600 */ | /* #define FORCE_P5600 */ | ||||
| /* #define FORCE_I6500 */ | |||||
| /* #define FORCE_ITANIUM2 */ | /* #define FORCE_ITANIUM2 */ | ||||
| /* #define FORCE_SPARC */ | /* #define FORCE_SPARC */ | ||||
| /* #define FORCE_SPARCV7 */ | /* #define FORCE_SPARCV7 */ | ||||
| @@ -765,6 +766,20 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #else | #else | ||||
| #endif | #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 | #ifdef FORCE_ITANIUM2 | ||||
| #define FORCE | #define FORCE | ||||
| #define ARCHITECTURE "IA64" | #define ARCHITECTURE "IA64" | ||||
| @@ -0,0 +1 @@ | |||||
| include $(KERNELDIR)/../mips/KERNEL.P5600 | |||||
| @@ -2291,7 +2291,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |||||
| #define SYMV_P 16 | #define SYMV_P 16 | ||||
| #endif | #endif | ||||
| #if defined(P5600) || defined(I6400) || defined(P6600) | |||||
| #if defined(P5600) || defined(I6400) || defined(P6600) || defined(I6500) | |||||
| #define SNUMOPT 2 | #define SNUMOPT 2 | ||||
| #define DNUMOPT 2 | #define DNUMOPT 2 | ||||