| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org) |
| */ |
| |
| #define COMMON_USER_BOOKE (PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \ |
| PPC_FEATURE_BOOKE) |
| |
| static struct cpu_spec cpu_specs[] __initdata = { |
| { |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x40000850, |
| .cpu_name = "440GR Rev. A", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x40000858, |
| .cpu_name = "440EP Rev. A", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440ep, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x400008d3, |
| .cpu_name = "440GR Rev. B", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { /* Matches both physical and logical PVR for 440EP (logical pvr = pvr | 0x8) */ |
| .pvr_mask = 0xf0000ff7, |
| .pvr_value = 0x400008d4, |
| .cpu_name = "440EP Rev. C", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440ep, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { /* Use logical PVR for 440EP (logical pvr = pvr | 0x8) */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x400008db, |
| .cpu_name = "440EP Rev. B", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440ep, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { /* 440GRX */ |
| .pvr_mask = 0xf0000ffb, |
| .pvr_value = 0x200008D0, |
| .cpu_name = "440GRX", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440grx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* Use logical PVR for 440EPx (logical pvr = pvr | 0x8) */ |
| .pvr_mask = 0xf0000ffb, |
| .pvr_value = 0x200008D8, |
| .cpu_name = "440EPX", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440epx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440GP Rev. B */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x40000440, |
| .cpu_name = "440GP Rev. B", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440gp", |
| }, |
| { /* 440GP Rev. C */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x40000481, |
| .cpu_name = "440GP Rev. C", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440gp", |
| }, |
| { /* 440GX Rev. A */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x50000850, |
| .cpu_name = "440GX Rev. A", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440gx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440GX Rev. B */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x50000851, |
| .cpu_name = "440GX Rev. B", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440gx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440GX Rev. C */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x50000892, |
| .cpu_name = "440GX Rev. C", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440gx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440GX Rev. F */ |
| .pvr_mask = 0xf0000fff, |
| .pvr_value = 0x50000894, |
| .cpu_name = "440GX Rev. F", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440gx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440SP Rev. A */ |
| .pvr_mask = 0xfff00fff, |
| .pvr_value = 0x53200891, |
| .cpu_name = "440SP Rev. A", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| }, |
| { /* 440SPe Rev. A */ |
| .pvr_mask = 0xfff00fff, |
| .pvr_value = 0x53400890, |
| .cpu_name = "440SPe Rev. A", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440spe, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 440SPe Rev. B */ |
| .pvr_mask = 0xfff00fff, |
| .pvr_value = 0x53400891, |
| .cpu_name = "440SPe Rev. B", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_440spe, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 460EX */ |
| .pvr_mask = 0xffff0006, |
| .pvr_value = 0x13020002, |
| .cpu_name = "460EX", |
| .cpu_features = CPU_FTRS_440x6, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_460ex, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 460EX Rev B */ |
| .pvr_mask = 0xffff0007, |
| .pvr_value = 0x13020004, |
| .cpu_name = "460EX Rev. B", |
| .cpu_features = CPU_FTRS_440x6, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_460ex, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 460GT */ |
| .pvr_mask = 0xffff0006, |
| .pvr_value = 0x13020000, |
| .cpu_name = "460GT", |
| .cpu_features = CPU_FTRS_440x6, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_460gt, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 460GT Rev B */ |
| .pvr_mask = 0xffff0007, |
| .pvr_value = 0x13020005, |
| .cpu_name = "460GT Rev. B", |
| .cpu_features = CPU_FTRS_440x6, |
| .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_460gt, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 460SX */ |
| .pvr_mask = 0xffffff00, |
| .pvr_value = 0x13541800, |
| .cpu_name = "460SX", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_460sx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* 464 in APM821xx */ |
| .pvr_mask = 0xfffffff0, |
| .pvr_value = 0x12C41C80, |
| .cpu_name = "APM821XX", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE | |
| PPC_FEATURE_HAS_FPU, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .cpu_setup = __setup_cpu_apm821xx, |
| .machine_check = machine_check_440A, |
| .platform = "ppc440", |
| }, |
| { /* default match */ |
| .pvr_mask = 0x00000000, |
| .pvr_value = 0x00000000, |
| .cpu_name = "(generic 44x PPC)", |
| .cpu_features = CPU_FTRS_44X, |
| .cpu_user_features = COMMON_USER_BOOKE, |
| .mmu_features = MMU_FTR_TYPE_44x, |
| .icache_bsize = 32, |
| .dcache_bsize = 32, |
| .machine_check = machine_check_4xx, |
| .platform = "ppc440", |
| } |
| }; |