1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) 4 */ 5 6 static struct cpu_spec cpu_specs[] __initdata = { 7 { /* STB 04xxx */ 8 .pvr_mask = 0xffff0000, 9 .pvr_value = 0x41810000, 10 .cpu_name = "STB04xxx", 11 .cpu_features = CPU_FTRS_40X, 12 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 13 PPC_FEATURE_HAS_4xxMAC, 14 .mmu_features = MMU_FTR_TYPE_40x, 15 .icache_bsize = 32, 16 .dcache_bsize = 32, 17 .machine_check = machine_check_4xx, 18 .platform = "ppc405", 19 }, 20 { /* NP405L */ 21 .pvr_mask = 0xffff0000, 22 .pvr_value = 0x41610000, 23 .cpu_name = "NP405L", 24 .cpu_features = CPU_FTRS_40X, 25 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 26 PPC_FEATURE_HAS_4xxMAC, 27 .mmu_features = MMU_FTR_TYPE_40x, 28 .icache_bsize = 32, 29 .dcache_bsize = 32, 30 .machine_check = machine_check_4xx, 31 .platform = "ppc405", 32 }, 33 { /* NP4GS3 */ 34 .pvr_mask = 0xffff0000, 35 .pvr_value = 0x40B10000, 36 .cpu_name = "NP4GS3", 37 .cpu_features = CPU_FTRS_40X, 38 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 39 PPC_FEATURE_HAS_4xxMAC, 40 .mmu_features = MMU_FTR_TYPE_40x, 41 .icache_bsize = 32, 42 .dcache_bsize = 32, 43 .machine_check = machine_check_4xx, 44 .platform = "ppc405", 45 }, 46 { /* NP405H */ 47 .pvr_mask = 0xffff0000, 48 .pvr_value = 0x41410000, 49 .cpu_name = "NP405H", 50 .cpu_features = CPU_FTRS_40X, 51 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 52 PPC_FEATURE_HAS_4xxMAC, 53 .mmu_features = MMU_FTR_TYPE_40x, 54 .icache_bsize = 32, 55 .dcache_bsize = 32, 56 .machine_check = machine_check_4xx, 57 .platform = "ppc405", 58 }, 59 { /* 405GPr */ 60 .pvr_mask = 0xffff0000, 61 .pvr_value = 0x50910000, 62 .cpu_name = "405GPr", 63 .cpu_features = CPU_FTRS_40X, 64 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 65 PPC_FEATURE_HAS_4xxMAC, 66 .mmu_features = MMU_FTR_TYPE_40x, 67 .icache_bsize = 32, 68 .dcache_bsize = 32, 69 .machine_check = machine_check_4xx, 70 .platform = "ppc405", 71 }, 72 { /* STBx25xx */ 73 .pvr_mask = 0xffff0000, 74 .pvr_value = 0x51510000, 75 .cpu_name = "STBx25xx", 76 .cpu_features = CPU_FTRS_40X, 77 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 78 PPC_FEATURE_HAS_4xxMAC, 79 .mmu_features = MMU_FTR_TYPE_40x, 80 .icache_bsize = 32, 81 .dcache_bsize = 32, 82 .machine_check = machine_check_4xx, 83 .platform = "ppc405", 84 }, 85 { /* 405LP */ 86 .pvr_mask = 0xffff0000, 87 .pvr_value = 0x41F10000, 88 .cpu_name = "405LP", 89 .cpu_features = CPU_FTRS_40X, 90 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU, 91 .mmu_features = MMU_FTR_TYPE_40x, 92 .icache_bsize = 32, 93 .dcache_bsize = 32, 94 .machine_check = machine_check_4xx, 95 .platform = "ppc405", 96 }, 97 { /* 405EP */ 98 .pvr_mask = 0xffff0000, 99 .pvr_value = 0x51210000, 100 .cpu_name = "405EP", 101 .cpu_features = CPU_FTRS_40X, 102 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 103 PPC_FEATURE_HAS_4xxMAC, 104 .mmu_features = MMU_FTR_TYPE_40x, 105 .icache_bsize = 32, 106 .dcache_bsize = 32, 107 .machine_check = machine_check_4xx, 108 .platform = "ppc405", 109 }, 110 { /* 405EX Rev. A/B with Security */ 111 .pvr_mask = 0xffff000f, 112 .pvr_value = 0x12910007, 113 .cpu_name = "405EX Rev. A/B", 114 .cpu_features = CPU_FTRS_40X, 115 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 116 PPC_FEATURE_HAS_4xxMAC, 117 .mmu_features = MMU_FTR_TYPE_40x, 118 .icache_bsize = 32, 119 .dcache_bsize = 32, 120 .machine_check = machine_check_4xx, 121 .platform = "ppc405", 122 }, 123 { /* 405EX Rev. C without Security */ 124 .pvr_mask = 0xffff000f, 125 .pvr_value = 0x1291000d, 126 .cpu_name = "405EX Rev. C", 127 .cpu_features = CPU_FTRS_40X, 128 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 129 PPC_FEATURE_HAS_4xxMAC, 130 .mmu_features = MMU_FTR_TYPE_40x, 131 .icache_bsize = 32, 132 .dcache_bsize = 32, 133 .machine_check = machine_check_4xx, 134 .platform = "ppc405", 135 }, 136 { /* 405EX Rev. C with Security */ 137 .pvr_mask = 0xffff000f, 138 .pvr_value = 0x1291000f, 139 .cpu_name = "405EX Rev. C", 140 .cpu_features = CPU_FTRS_40X, 141 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 142 PPC_FEATURE_HAS_4xxMAC, 143 .mmu_features = MMU_FTR_TYPE_40x, 144 .icache_bsize = 32, 145 .dcache_bsize = 32, 146 .machine_check = machine_check_4xx, 147 .platform = "ppc405", 148 }, 149 { /* 405EX Rev. D without Security */ 150 .pvr_mask = 0xffff000f, 151 .pvr_value = 0x12910003, 152 .cpu_name = "405EX Rev. D", 153 .cpu_features = CPU_FTRS_40X, 154 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 155 PPC_FEATURE_HAS_4xxMAC, 156 .mmu_features = MMU_FTR_TYPE_40x, 157 .icache_bsize = 32, 158 .dcache_bsize = 32, 159 .machine_check = machine_check_4xx, 160 .platform = "ppc405", 161 }, 162 { /* 405EX Rev. D with Security */ 163 .pvr_mask = 0xffff000f, 164 .pvr_value = 0x12910005, 165 .cpu_name = "405EX Rev. D", 166 .cpu_features = CPU_FTRS_40X, 167 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 168 PPC_FEATURE_HAS_4xxMAC, 169 .mmu_features = MMU_FTR_TYPE_40x, 170 .icache_bsize = 32, 171 .dcache_bsize = 32, 172 .machine_check = machine_check_4xx, 173 .platform = "ppc405", 174 }, 175 { /* 405EXr Rev. A/B without Security */ 176 .pvr_mask = 0xffff000f, 177 .pvr_value = 0x12910001, 178 .cpu_name = "405EXr Rev. A/B", 179 .cpu_features = CPU_FTRS_40X, 180 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 181 PPC_FEATURE_HAS_4xxMAC, 182 .mmu_features = MMU_FTR_TYPE_40x, 183 .icache_bsize = 32, 184 .dcache_bsize = 32, 185 .machine_check = machine_check_4xx, 186 .platform = "ppc405", 187 }, 188 { /* 405EXr Rev. C without Security */ 189 .pvr_mask = 0xffff000f, 190 .pvr_value = 0x12910009, 191 .cpu_name = "405EXr Rev. C", 192 .cpu_features = CPU_FTRS_40X, 193 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 194 PPC_FEATURE_HAS_4xxMAC, 195 .mmu_features = MMU_FTR_TYPE_40x, 196 .icache_bsize = 32, 197 .dcache_bsize = 32, 198 .machine_check = machine_check_4xx, 199 .platform = "ppc405", 200 }, 201 { /* 405EXr Rev. C with Security */ 202 .pvr_mask = 0xffff000f, 203 .pvr_value = 0x1291000b, 204 .cpu_name = "405EXr Rev. C", 205 .cpu_features = CPU_FTRS_40X, 206 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 207 PPC_FEATURE_HAS_4xxMAC, 208 .mmu_features = MMU_FTR_TYPE_40x, 209 .icache_bsize = 32, 210 .dcache_bsize = 32, 211 .machine_check = machine_check_4xx, 212 .platform = "ppc405", 213 }, 214 { /* 405EXr Rev. D without Security */ 215 .pvr_mask = 0xffff000f, 216 .pvr_value = 0x12910000, 217 .cpu_name = "405EXr Rev. D", 218 .cpu_features = CPU_FTRS_40X, 219 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 220 PPC_FEATURE_HAS_4xxMAC, 221 .mmu_features = MMU_FTR_TYPE_40x, 222 .icache_bsize = 32, 223 .dcache_bsize = 32, 224 .machine_check = machine_check_4xx, 225 .platform = "ppc405", 226 }, 227 { /* 405EXr Rev. D with Security */ 228 .pvr_mask = 0xffff000f, 229 .pvr_value = 0x12910002, 230 .cpu_name = "405EXr Rev. D", 231 .cpu_features = CPU_FTRS_40X, 232 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 233 PPC_FEATURE_HAS_4xxMAC, 234 .mmu_features = MMU_FTR_TYPE_40x, 235 .icache_bsize = 32, 236 .dcache_bsize = 32, 237 .machine_check = machine_check_4xx, 238 .platform = "ppc405", 239 }, 240 { 241 /* 405EZ */ 242 .pvr_mask = 0xffff0000, 243 .pvr_value = 0x41510000, 244 .cpu_name = "405EZ", 245 .cpu_features = CPU_FTRS_40X, 246 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 247 PPC_FEATURE_HAS_4xxMAC, 248 .mmu_features = MMU_FTR_TYPE_40x, 249 .icache_bsize = 32, 250 .dcache_bsize = 32, 251 .machine_check = machine_check_4xx, 252 .platform = "ppc405", 253 }, 254 { /* APM8018X */ 255 .pvr_mask = 0xffff0000, 256 .pvr_value = 0x7ff11432, 257 .cpu_name = "APM8018X", 258 .cpu_features = CPU_FTRS_40X, 259 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 260 PPC_FEATURE_HAS_4xxMAC, 261 .mmu_features = MMU_FTR_TYPE_40x, 262 .icache_bsize = 32, 263 .dcache_bsize = 32, 264 .machine_check = machine_check_4xx, 265 .platform = "ppc405", 266 }, 267 { /* default match */ 268 .pvr_mask = 0x00000000, 269 .pvr_value = 0x00000000, 270 .cpu_name = "(generic 40x PPC)", 271 .cpu_features = CPU_FTRS_40X, 272 .cpu_user_features = PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | 273 PPC_FEATURE_HAS_4xxMAC, 274 .mmu_features = MMU_FTR_TYPE_40x, 275 .icache_bsize = 32, 276 .dcache_bsize = 32, 277 .machine_check = machine_check_4xx, 278 .platform = "ppc405", 279 } 280 }; 281