1384740dcSRalf Baechle /* 2384740dcSRalf Baechle * cpu.h: Values of the PRId register used to match up 3384740dcSRalf Baechle * various MIPS cpu types. 4384740dcSRalf Baechle * 579add627SJustin P. Mattock * Copyright (C) 1996 David S. Miller (davem@davemloft.net) 6384740dcSRalf Baechle * Copyright (C) 2004 Maciej W. Rozycki 7384740dcSRalf Baechle */ 8384740dcSRalf Baechle #ifndef _ASM_CPU_H 9384740dcSRalf Baechle #define _ASM_CPU_H 10384740dcSRalf Baechle 11384740dcSRalf Baechle /* Assigned Company values for bits 23:16 of the PRId Register 12384740dcSRalf Baechle (CP0 register 15, select 0). As of the MIPS32 and MIPS64 specs from 13384740dcSRalf Baechle MTI, the PRId register is defined in this (backwards compatible) 14384740dcSRalf Baechle way: 15384740dcSRalf Baechle 16384740dcSRalf Baechle +----------------+----------------+----------------+----------------+ 17384740dcSRalf Baechle | Company Options| Company ID | Processor ID | Revision | 18384740dcSRalf Baechle +----------------+----------------+----------------+----------------+ 19384740dcSRalf Baechle 31 24 23 16 15 8 7 20384740dcSRalf Baechle 21384740dcSRalf Baechle I don't have docs for all the previous processors, but my impression is 22384740dcSRalf Baechle that bits 16-23 have been 0 for all MIPS processors before the MIPS32/64 23384740dcSRalf Baechle spec. 24384740dcSRalf Baechle */ 25384740dcSRalf Baechle 26384740dcSRalf Baechle #define PRID_COMP_LEGACY 0x000000 27384740dcSRalf Baechle #define PRID_COMP_MIPS 0x010000 28384740dcSRalf Baechle #define PRID_COMP_BROADCOM 0x020000 29384740dcSRalf Baechle #define PRID_COMP_ALCHEMY 0x030000 30384740dcSRalf Baechle #define PRID_COMP_SIBYTE 0x040000 31384740dcSRalf Baechle #define PRID_COMP_SANDCRAFT 0x050000 32384740dcSRalf Baechle #define PRID_COMP_NXP 0x060000 33384740dcSRalf Baechle #define PRID_COMP_TOSHIBA 0x070000 34384740dcSRalf Baechle #define PRID_COMP_LSI 0x080000 35384740dcSRalf Baechle #define PRID_COMP_LEXRA 0x0b0000 36a7117c6bSJayachandran C #define PRID_COMP_NETLOGIC 0x0c0000 370dd4781bSDavid Daney #define PRID_COMP_CAVIUM 0x0d0000 3883ccf69dSLars-Peter Clausen #define PRID_COMP_INGENIC 0xd00000 39384740dcSRalf Baechle 40384740dcSRalf Baechle /* 41384740dcSRalf Baechle * Assigned values for the product ID register. In order to detect a 42384740dcSRalf Baechle * certain CPU type exactly eventually additional registers may need to 43384740dcSRalf Baechle * be examined. These are valid when 23:16 == PRID_COMP_LEGACY 44384740dcSRalf Baechle */ 45384740dcSRalf Baechle #define PRID_IMP_R2000 0x0100 46384740dcSRalf Baechle #define PRID_IMP_AU1_REV1 0x0100 47384740dcSRalf Baechle #define PRID_IMP_AU1_REV2 0x0200 48384740dcSRalf Baechle #define PRID_IMP_R3000 0x0200 /* Same as R2000A */ 49384740dcSRalf Baechle #define PRID_IMP_R6000 0x0300 /* Same as R3000A */ 50384740dcSRalf Baechle #define PRID_IMP_R4000 0x0400 51384740dcSRalf Baechle #define PRID_IMP_R6000A 0x0600 52384740dcSRalf Baechle #define PRID_IMP_R10000 0x0900 53384740dcSRalf Baechle #define PRID_IMP_R4300 0x0b00 54384740dcSRalf Baechle #define PRID_IMP_VR41XX 0x0c00 55384740dcSRalf Baechle #define PRID_IMP_R12000 0x0e00 56384740dcSRalf Baechle #define PRID_IMP_R14000 0x0f00 57384740dcSRalf Baechle #define PRID_IMP_R8000 0x1000 58384740dcSRalf Baechle #define PRID_IMP_PR4450 0x1200 59384740dcSRalf Baechle #define PRID_IMP_R4600 0x2000 60384740dcSRalf Baechle #define PRID_IMP_R4700 0x2100 61384740dcSRalf Baechle #define PRID_IMP_TX39 0x2200 62384740dcSRalf Baechle #define PRID_IMP_R4640 0x2200 63384740dcSRalf Baechle #define PRID_IMP_R4650 0x2200 /* Same as R4640 */ 64384740dcSRalf Baechle #define PRID_IMP_R5000 0x2300 65384740dcSRalf Baechle #define PRID_IMP_TX49 0x2d00 66384740dcSRalf Baechle #define PRID_IMP_SONIC 0x2400 67384740dcSRalf Baechle #define PRID_IMP_MAGIC 0x2500 68384740dcSRalf Baechle #define PRID_IMP_RM7000 0x2700 69384740dcSRalf Baechle #define PRID_IMP_NEVADA 0x2800 /* RM5260 ??? */ 70384740dcSRalf Baechle #define PRID_IMP_RM9000 0x3400 71384740dcSRalf Baechle #define PRID_IMP_LOONGSON1 0x4200 72384740dcSRalf Baechle #define PRID_IMP_R5432 0x5400 73384740dcSRalf Baechle #define PRID_IMP_R5500 0x5500 74384740dcSRalf Baechle #define PRID_IMP_LOONGSON2 0x6300 75384740dcSRalf Baechle 76384740dcSRalf Baechle #define PRID_IMP_UNKNOWN 0xff00 77384740dcSRalf Baechle 78384740dcSRalf Baechle /* 79384740dcSRalf Baechle * These are the PRID's for when 23:16 == PRID_COMP_MIPS 80384740dcSRalf Baechle */ 81384740dcSRalf Baechle 82384740dcSRalf Baechle #define PRID_IMP_4KC 0x8000 83384740dcSRalf Baechle #define PRID_IMP_5KC 0x8100 84384740dcSRalf Baechle #define PRID_IMP_20KC 0x8200 85384740dcSRalf Baechle #define PRID_IMP_4KEC 0x8400 86384740dcSRalf Baechle #define PRID_IMP_4KSC 0x8600 87384740dcSRalf Baechle #define PRID_IMP_25KF 0x8800 88384740dcSRalf Baechle #define PRID_IMP_5KE 0x8900 89384740dcSRalf Baechle #define PRID_IMP_4KECR2 0x9000 90384740dcSRalf Baechle #define PRID_IMP_4KEMPR2 0x9100 91384740dcSRalf Baechle #define PRID_IMP_4KSD 0x9200 92384740dcSRalf Baechle #define PRID_IMP_24K 0x9300 93384740dcSRalf Baechle #define PRID_IMP_34K 0x9500 94384740dcSRalf Baechle #define PRID_IMP_24KE 0x9600 95384740dcSRalf Baechle #define PRID_IMP_74K 0x9700 96384740dcSRalf Baechle #define PRID_IMP_1004K 0x9900 97006a851bSSteven J. Hill #define PRID_IMP_1074K 0x9a00 98113c62d9SSteven J. Hill #define PRID_IMP_M14KC 0x9c00 99f8fa4811SSteven J. Hill #define PRID_IMP_M14KEC 0x9e00 100384740dcSRalf Baechle 101384740dcSRalf Baechle /* 102384740dcSRalf Baechle * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE 103384740dcSRalf Baechle */ 104384740dcSRalf Baechle 105384740dcSRalf Baechle #define PRID_IMP_SB1 0x0100 106384740dcSRalf Baechle #define PRID_IMP_SB1A 0x1100 107384740dcSRalf Baechle 108384740dcSRalf Baechle /* 109384740dcSRalf Baechle * These are the PRID's for when 23:16 == PRID_COMP_SANDCRAFT 110384740dcSRalf Baechle */ 111384740dcSRalf Baechle 112384740dcSRalf Baechle #define PRID_IMP_SR71000 0x0400 113384740dcSRalf Baechle 114384740dcSRalf Baechle /* 115384740dcSRalf Baechle * These are the PRID's for when 23:16 == PRID_COMP_BROADCOM 116384740dcSRalf Baechle */ 117384740dcSRalf Baechle 118190fca3eSKevin Cernekee #define PRID_IMP_BMIPS32_REV4 0x4000 119190fca3eSKevin Cernekee #define PRID_IMP_BMIPS32_REV8 0x8000 120602977b0SKevin Cernekee #define PRID_IMP_BMIPS3300 0x9000 121602977b0SKevin Cernekee #define PRID_IMP_BMIPS3300_ALT 0x9100 122602977b0SKevin Cernekee #define PRID_IMP_BMIPS3300_BUG 0x0000 123602977b0SKevin Cernekee #define PRID_IMP_BMIPS43XX 0xa000 124602977b0SKevin Cernekee #define PRID_IMP_BMIPS5000 0x5a00 125602977b0SKevin Cernekee 126602977b0SKevin Cernekee #define PRID_REV_BMIPS4380_LO 0x0040 127602977b0SKevin Cernekee #define PRID_REV_BMIPS4380_HI 0x006f 128384740dcSRalf Baechle 129384740dcSRalf Baechle /* 1300dd4781bSDavid Daney * These are the PRID's for when 23:16 == PRID_COMP_CAVIUM 1310dd4781bSDavid Daney */ 1320dd4781bSDavid Daney 1330dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN38XX 0x0000 1340dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN31XX 0x0100 1350dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN30XX 0x0200 1360dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN58XX 0x0300 1370dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN56XX 0x0400 1380dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN50XX 0x0600 1390dd4781bSDavid Daney #define PRID_IMP_CAVIUM_CN52XX 0x0700 1401584d7f2SDavid Daney #define PRID_IMP_CAVIUM_CN63XX 0x9000 141074ef0d2SDavid Daney #define PRID_IMP_CAVIUM_CN68XX 0x9100 142074ef0d2SDavid Daney #define PRID_IMP_CAVIUM_CN66XX 0x9200 143074ef0d2SDavid Daney #define PRID_IMP_CAVIUM_CN61XX 0x9300 144*71a8b7d8SDavid Daney #define PRID_IMP_CAVIUM_CNF71XX 0x9400 145*71a8b7d8SDavid Daney #define PRID_IMP_CAVIUM_CN78XX 0x9500 146*71a8b7d8SDavid Daney #define PRID_IMP_CAVIUM_CN70XX 0x9600 1470dd4781bSDavid Daney 1480dd4781bSDavid Daney /* 14983ccf69dSLars-Peter Clausen * These are the PRID's for when 23:16 == PRID_COMP_INGENIC 15083ccf69dSLars-Peter Clausen */ 15183ccf69dSLars-Peter Clausen 15283ccf69dSLars-Peter Clausen #define PRID_IMP_JZRISC 0x0200 15383ccf69dSLars-Peter Clausen 15483ccf69dSLars-Peter Clausen /* 155a7117c6bSJayachandran C * These are the PRID's for when 23:16 == PRID_COMP_NETLOGIC 156a7117c6bSJayachandran C */ 157a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR732 0x0000 158a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR716 0x0200 159a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR532 0x0900 160a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR308 0x0600 161a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR532C 0x0800 162a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR516C 0x0a00 163a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR508C 0x0b00 164a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLR308C 0x0f00 165a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS608 0x8000 166a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS408 0x8800 167a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS404 0x8c00 168a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS208 0x8e00 169a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS204 0x8f00 170a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS108 0xce00 171a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS104 0xcf00 172a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS616B 0x4000 173a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS608B 0x4a00 174a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS416B 0x4400 175a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS412B 0x4c00 176a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS408B 0x4e00 177a7117c6bSJayachandran C #define PRID_IMP_NETLOGIC_XLS404B 0x4f00 178809f36c6SManuel Lauss #define PRID_IMP_NETLOGIC_AU13XX 0x8000 179a7117c6bSJayachandran C 1802aa54b20SJayachandran C #define PRID_IMP_NETLOGIC_XLP8XX 0x1000 1812aa54b20SJayachandran C #define PRID_IMP_NETLOGIC_XLP3XX 0x1100 182a7117c6bSJayachandran C 183a7117c6bSJayachandran C /* 184384740dcSRalf Baechle * Definitions for 7:0 on legacy processors 185384740dcSRalf Baechle */ 186384740dcSRalf Baechle 187384740dcSRalf Baechle #define PRID_REV_MASK 0x00ff 188384740dcSRalf Baechle 189384740dcSRalf Baechle #define PRID_REV_TX4927 0x0022 190384740dcSRalf Baechle #define PRID_REV_TX4937 0x0030 191384740dcSRalf Baechle #define PRID_REV_R4400 0x0040 192384740dcSRalf Baechle #define PRID_REV_R3000A 0x0030 193384740dcSRalf Baechle #define PRID_REV_R3000 0x0020 194384740dcSRalf Baechle #define PRID_REV_R2000A 0x0010 195384740dcSRalf Baechle #define PRID_REV_TX3912 0x0010 196384740dcSRalf Baechle #define PRID_REV_TX3922 0x0030 197384740dcSRalf Baechle #define PRID_REV_TX3927 0x0040 198384740dcSRalf Baechle #define PRID_REV_VR4111 0x0050 199384740dcSRalf Baechle #define PRID_REV_VR4181 0x0050 /* Same as VR4111 */ 200384740dcSRalf Baechle #define PRID_REV_VR4121 0x0060 201384740dcSRalf Baechle #define PRID_REV_VR4122 0x0070 202384740dcSRalf Baechle #define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */ 203384740dcSRalf Baechle #define PRID_REV_VR4130 0x0080 204384740dcSRalf Baechle #define PRID_REV_34K_V1_0_2 0x0022 2052fa36399SKelvin Cheung #define PRID_REV_LOONGSON1B 0x0020 206f8ede0f7SWu Zhangjin #define PRID_REV_LOONGSON2E 0x0002 207f8ede0f7SWu Zhangjin #define PRID_REV_LOONGSON2F 0x0003 208384740dcSRalf Baechle 209384740dcSRalf Baechle /* 210384740dcSRalf Baechle * Older processors used to encode processor version and revision in two 211384740dcSRalf Baechle * 4-bit bitfields, the 4K seems to simply count up and even newer MTI cores 212384740dcSRalf Baechle * have switched to use the 8-bits as 3:3:2 bitfield with the last field as 213384740dcSRalf Baechle * the patch number. *ARGH* 214384740dcSRalf Baechle */ 215384740dcSRalf Baechle #define PRID_REV_ENCODE_44(ver, rev) \ 216384740dcSRalf Baechle ((ver) << 4 | (rev)) 217384740dcSRalf Baechle #define PRID_REV_ENCODE_332(ver, rev, patch) \ 218384740dcSRalf Baechle ((ver) << 5 | (rev) << 2 | (patch)) 219384740dcSRalf Baechle 220384740dcSRalf Baechle /* 221384740dcSRalf Baechle * FPU implementation/revision register (CP1 control register 0). 222384740dcSRalf Baechle * 223384740dcSRalf Baechle * +---------------------------------+----------------+----------------+ 224384740dcSRalf Baechle * | 0 | Implementation | Revision | 225384740dcSRalf Baechle * +---------------------------------+----------------+----------------+ 226384740dcSRalf Baechle * 31 16 15 8 7 0 227384740dcSRalf Baechle */ 228384740dcSRalf Baechle 229384740dcSRalf Baechle #define FPIR_IMP_NONE 0x0000 230384740dcSRalf Baechle 231384740dcSRalf Baechle enum cpu_type_enum { 232384740dcSRalf Baechle CPU_UNKNOWN, 233384740dcSRalf Baechle 234384740dcSRalf Baechle /* 235384740dcSRalf Baechle * R2000 class processors 236384740dcSRalf Baechle */ 237384740dcSRalf Baechle CPU_R2000, CPU_R3000, CPU_R3000A, CPU_R3041, CPU_R3051, CPU_R3052, 238384740dcSRalf Baechle CPU_R3081, CPU_R3081E, 239384740dcSRalf Baechle 240384740dcSRalf Baechle /* 241384740dcSRalf Baechle * R6000 class processors 242384740dcSRalf Baechle */ 243384740dcSRalf Baechle CPU_R6000, CPU_R6000A, 244384740dcSRalf Baechle 245384740dcSRalf Baechle /* 246384740dcSRalf Baechle * R4000 class processors 247384740dcSRalf Baechle */ 248384740dcSRalf Baechle CPU_R4000PC, CPU_R4000SC, CPU_R4000MC, CPU_R4200, CPU_R4300, CPU_R4310, 249384740dcSRalf Baechle CPU_R4400PC, CPU_R4400SC, CPU_R4400MC, CPU_R4600, CPU_R4640, CPU_R4650, 250fb2b1dbaSRalf Baechle CPU_R4700, CPU_R5000, CPU_R5500, CPU_NEVADA, CPU_R5432, CPU_R10000, 251fb2b1dbaSRalf Baechle CPU_R12000, CPU_R14000, CPU_VR41XX, CPU_VR4111, CPU_VR4121, CPU_VR4122, 252fb2b1dbaSRalf Baechle CPU_VR4131, CPU_VR4133, CPU_VR4181, CPU_VR4181A, CPU_RM7000, 253384740dcSRalf Baechle CPU_SR71000, CPU_RM9000, CPU_TX49XX, 254384740dcSRalf Baechle 255384740dcSRalf Baechle /* 256384740dcSRalf Baechle * R8000 class processors 257384740dcSRalf Baechle */ 258384740dcSRalf Baechle CPU_R8000, 259384740dcSRalf Baechle 260384740dcSRalf Baechle /* 261384740dcSRalf Baechle * TX3900 class processors 262384740dcSRalf Baechle */ 263384740dcSRalf Baechle CPU_TX3912, CPU_TX3922, CPU_TX3927, 264384740dcSRalf Baechle 265384740dcSRalf Baechle /* 266384740dcSRalf Baechle * MIPS32 class processors 267384740dcSRalf Baechle */ 268384740dcSRalf Baechle CPU_4KC, CPU_4KEC, CPU_4KSC, CPU_24K, CPU_34K, CPU_1004K, CPU_74K, 269602977b0SKevin Cernekee CPU_ALCHEMY, CPU_PR4450, CPU_BMIPS32, CPU_BMIPS3300, CPU_BMIPS4350, 2702fa36399SKelvin Cheung CPU_BMIPS4380, CPU_BMIPS5000, CPU_JZRISC, CPU_LOONGSON1, CPU_M14KC, 271f8fa4811SSteven J. Hill CPU_M14KEC, 272384740dcSRalf Baechle 273384740dcSRalf Baechle /* 274384740dcSRalf Baechle * MIPS64 class processors 275384740dcSRalf Baechle */ 27678d4803fSLeonid Yegoshin CPU_5KC, CPU_5KE, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, 2771584d7f2SDavid Daney CPU_CAVIUM_OCTEON, CPU_CAVIUM_OCTEON_PLUS, CPU_CAVIUM_OCTEON2, 278*71a8b7d8SDavid Daney CPU_CAVIUM_OCTEON3, CPU_XLR, CPU_XLP, 279384740dcSRalf Baechle 280384740dcSRalf Baechle CPU_LAST 281384740dcSRalf Baechle }; 282384740dcSRalf Baechle 283384740dcSRalf Baechle 284384740dcSRalf Baechle /* 285384740dcSRalf Baechle * ISA Level encodings 286384740dcSRalf Baechle * 287384740dcSRalf Baechle */ 2881990e542SRalf Baechle #define MIPS_CPU_ISA_II 0x00000001 2891990e542SRalf Baechle #define MIPS_CPU_ISA_III 0x00000002 2901990e542SRalf Baechle #define MIPS_CPU_ISA_IV 0x00000004 2911990e542SRalf Baechle #define MIPS_CPU_ISA_V 0x00000008 2921990e542SRalf Baechle #define MIPS_CPU_ISA_M32R1 0x00000010 2931990e542SRalf Baechle #define MIPS_CPU_ISA_M32R2 0x00000020 2941990e542SRalf Baechle #define MIPS_CPU_ISA_M64R1 0x00000040 2951990e542SRalf Baechle #define MIPS_CPU_ISA_M64R2 0x00000080 296384740dcSRalf Baechle 2971990e542SRalf Baechle #define MIPS_CPU_ISA_32BIT (MIPS_CPU_ISA_II | MIPS_CPU_ISA_M32R1 | \ 2981990e542SRalf Baechle MIPS_CPU_ISA_M32R2) 299384740dcSRalf Baechle #define MIPS_CPU_ISA_64BIT (MIPS_CPU_ISA_III | MIPS_CPU_ISA_IV | \ 300384740dcSRalf Baechle MIPS_CPU_ISA_V | MIPS_CPU_ISA_M64R1 | MIPS_CPU_ISA_M64R2) 301384740dcSRalf Baechle 302384740dcSRalf Baechle /* 303384740dcSRalf Baechle * CPU Option encodings 304384740dcSRalf Baechle */ 305384740dcSRalf Baechle #define MIPS_CPU_TLB 0x00000001 /* CPU has TLB */ 306384740dcSRalf Baechle #define MIPS_CPU_4KEX 0x00000002 /* "R4K" exception model */ 307384740dcSRalf Baechle #define MIPS_CPU_3K_CACHE 0x00000004 /* R3000-style caches */ 308384740dcSRalf Baechle #define MIPS_CPU_4K_CACHE 0x00000008 /* R4000-style caches */ 309384740dcSRalf Baechle #define MIPS_CPU_TX39_CACHE 0x00000010 /* TX3900-style caches */ 310384740dcSRalf Baechle #define MIPS_CPU_FPU 0x00000020 /* CPU has FPU */ 311384740dcSRalf Baechle #define MIPS_CPU_32FPR 0x00000040 /* 32 dbl. prec. FP registers */ 312384740dcSRalf Baechle #define MIPS_CPU_COUNTER 0x00000080 /* Cycle count/compare */ 313384740dcSRalf Baechle #define MIPS_CPU_WATCH 0x00000100 /* watchpoint registers */ 314384740dcSRalf Baechle #define MIPS_CPU_DIVEC 0x00000200 /* dedicated interrupt vector */ 315384740dcSRalf Baechle #define MIPS_CPU_VCE 0x00000400 /* virt. coherence conflict possible */ 316384740dcSRalf Baechle #define MIPS_CPU_CACHE_CDEX_P 0x00000800 /* Create_Dirty_Exclusive CACHE op */ 317384740dcSRalf Baechle #define MIPS_CPU_CACHE_CDEX_S 0x00001000 /* ... same for seconary cache ... */ 318384740dcSRalf Baechle #define MIPS_CPU_MCHECK 0x00002000 /* Machine check exception */ 319384740dcSRalf Baechle #define MIPS_CPU_EJTAG 0x00004000 /* EJTAG exception */ 320384740dcSRalf Baechle #define MIPS_CPU_NOFPUEX 0x00008000 /* no FPU exception */ 321384740dcSRalf Baechle #define MIPS_CPU_LLSC 0x00010000 /* CPU has ll/sc instructions */ 322384740dcSRalf Baechle #define MIPS_CPU_INCLUSIVE_CACHES 0x00020000 /* P-cache subset enforced */ 323384740dcSRalf Baechle #define MIPS_CPU_PREFETCH 0x00040000 /* CPU has usable prefetch */ 324384740dcSRalf Baechle #define MIPS_CPU_VINT 0x00080000 /* CPU supports MIPSR2 vectored interrupts */ 325384740dcSRalf Baechle #define MIPS_CPU_VEIC 0x00100000 /* CPU supports MIPSR2 external interrupt controller mode */ 326384740dcSRalf Baechle #define MIPS_CPU_ULRI 0x00200000 /* CPU has ULRI feature */ 327da4b62cdSAl Cooper #define MIPS_CPU_PCI 0x00400000 /* CPU has Perf Ctr Int indicator */ 328da4b62cdSAl Cooper #define MIPS_CPU_RIXI 0x00800000 /* CPU has TLB Read/eXec Inhibit */ 329f8fa4811SSteven J. Hill #define MIPS_CPU_MICROMIPS 0x01000000 /* CPU has microMIPS capability */ 330384740dcSRalf Baechle 331384740dcSRalf Baechle /* 332384740dcSRalf Baechle * CPU ASE encodings 333384740dcSRalf Baechle */ 334384740dcSRalf Baechle #define MIPS_ASE_MIPS16 0x00000001 /* code compression */ 335384740dcSRalf Baechle #define MIPS_ASE_MDMX 0x00000002 /* MIPS digital media extension */ 336384740dcSRalf Baechle #define MIPS_ASE_MIPS3D 0x00000004 /* MIPS-3D */ 337384740dcSRalf Baechle #define MIPS_ASE_SMARTMIPS 0x00000008 /* SmartMIPS */ 338384740dcSRalf Baechle #define MIPS_ASE_DSP 0x00000010 /* Signal Processing ASE */ 339384740dcSRalf Baechle #define MIPS_ASE_MIPSMT 0x00000020 /* CPU supports MIPS MT */ 340ee80f7c7SSteven J. Hill #define MIPS_ASE_DSP2P 0x00000040 /* Signal Processing ASE Rev 2 */ 3411e7decdbSDavid Daney #define MIPS_ASE_VZ 0x00000080 /* Virtualization ASE */ 342384740dcSRalf Baechle 343384740dcSRalf Baechle #endif /* _ASM_CPU_H */ 344