| /* 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", | |
| } | |
| }; |