162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *  Copyright (C) 2001 Ben. Herrenschmidt (benh@kernel.crashing.org)
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *  Modifications for ppc64:
662306a36Sopenharmony_ci *      Copyright (C) 2003 Dave Engebretsen <engebret@us.ibm.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#ifdef CONFIG_PPC64
1062306a36Sopenharmony_ci#define COMMON_USER_BOOKE	(PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
1162306a36Sopenharmony_ci				 PPC_FEATURE_HAS_FPU | PPC_FEATURE_64 | \
1262306a36Sopenharmony_ci				 PPC_FEATURE_BOOKE)
1362306a36Sopenharmony_ci#else
1462306a36Sopenharmony_ci#define COMMON_USER_BOOKE	(PPC_FEATURE_32 | PPC_FEATURE_HAS_MMU | \
1562306a36Sopenharmony_ci				 PPC_FEATURE_BOOKE)
1662306a36Sopenharmony_ci#endif
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_cistatic struct cpu_spec cpu_specs[] __initdata = {
1962306a36Sopenharmony_ci#ifdef CONFIG_PPC32
2062306a36Sopenharmony_ci	{	/* e500mc */
2162306a36Sopenharmony_ci		.pvr_mask		= 0xffff0000,
2262306a36Sopenharmony_ci		.pvr_value		= 0x80230000,
2362306a36Sopenharmony_ci		.cpu_name		= "e500mc",
2462306a36Sopenharmony_ci		.cpu_features		= CPU_FTRS_E500MC,
2562306a36Sopenharmony_ci		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
2662306a36Sopenharmony_ci		.cpu_user_features2	= PPC_FEATURE2_ISEL,
2762306a36Sopenharmony_ci		.mmu_features		= MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
2862306a36Sopenharmony_ci		.icache_bsize		= 64,
2962306a36Sopenharmony_ci		.dcache_bsize		= 64,
3062306a36Sopenharmony_ci		.num_pmcs		= 4,
3162306a36Sopenharmony_ci		.cpu_setup		= __setup_cpu_e500mc,
3262306a36Sopenharmony_ci		.machine_check		= machine_check_e500mc,
3362306a36Sopenharmony_ci		.platform		= "ppce500mc",
3462306a36Sopenharmony_ci		.cpu_down_flush		= cpu_down_flush_e500mc,
3562306a36Sopenharmony_ci	},
3662306a36Sopenharmony_ci#endif /* CONFIG_PPC32 */
3762306a36Sopenharmony_ci	{	/* e5500 */
3862306a36Sopenharmony_ci		.pvr_mask		= 0xffff0000,
3962306a36Sopenharmony_ci		.pvr_value		= 0x80240000,
4062306a36Sopenharmony_ci		.cpu_name		= "e5500",
4162306a36Sopenharmony_ci		.cpu_features		= CPU_FTRS_E5500,
4262306a36Sopenharmony_ci		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
4362306a36Sopenharmony_ci		.cpu_user_features2	= PPC_FEATURE2_ISEL,
4462306a36Sopenharmony_ci		.mmu_features		= MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
4562306a36Sopenharmony_ci		.icache_bsize		= 64,
4662306a36Sopenharmony_ci		.dcache_bsize		= 64,
4762306a36Sopenharmony_ci		.num_pmcs		= 4,
4862306a36Sopenharmony_ci		.cpu_setup		= __setup_cpu_e5500,
4962306a36Sopenharmony_ci#ifndef CONFIG_PPC32
5062306a36Sopenharmony_ci		.cpu_restore		= __restore_cpu_e5500,
5162306a36Sopenharmony_ci#endif
5262306a36Sopenharmony_ci		.machine_check		= machine_check_e500mc,
5362306a36Sopenharmony_ci		.platform		= "ppce5500",
5462306a36Sopenharmony_ci		.cpu_down_flush		= cpu_down_flush_e5500,
5562306a36Sopenharmony_ci	},
5662306a36Sopenharmony_ci	{	/* e6500 */
5762306a36Sopenharmony_ci		.pvr_mask		= 0xffff0000,
5862306a36Sopenharmony_ci		.pvr_value		= 0x80400000,
5962306a36Sopenharmony_ci		.cpu_name		= "e6500",
6062306a36Sopenharmony_ci		.cpu_features		= CPU_FTRS_E6500,
6162306a36Sopenharmony_ci		.cpu_user_features	= COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU |
6262306a36Sopenharmony_ci					  PPC_FEATURE_HAS_ALTIVEC_COMP,
6362306a36Sopenharmony_ci		.cpu_user_features2	= PPC_FEATURE2_ISEL,
6462306a36Sopenharmony_ci		.mmu_features		= MMU_FTR_TYPE_FSL_E | MMU_FTR_BIG_PHYS | MMU_FTR_USE_TLBILX,
6562306a36Sopenharmony_ci		.icache_bsize		= 64,
6662306a36Sopenharmony_ci		.dcache_bsize		= 64,
6762306a36Sopenharmony_ci		.num_pmcs		= 6,
6862306a36Sopenharmony_ci		.cpu_setup		= __setup_cpu_e6500,
6962306a36Sopenharmony_ci#ifndef CONFIG_PPC32
7062306a36Sopenharmony_ci		.cpu_restore		= __restore_cpu_e6500,
7162306a36Sopenharmony_ci#endif
7262306a36Sopenharmony_ci		.machine_check		= machine_check_e500mc,
7362306a36Sopenharmony_ci		.platform		= "ppce6500",
7462306a36Sopenharmony_ci		.cpu_down_flush		= cpu_down_flush_e6500,
7562306a36Sopenharmony_ci	},
7662306a36Sopenharmony_ci};
77