aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/cputable.c
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-02-23 16:07:41 -0500
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-03-26 08:19:16 -0400
commit464076a4b328946528998513c4ef799fd60de588 (patch)
tree5531bbf03e91426a89060c5317498789b57b4c69 /arch/powerpc/kernel/cputable.c
parentecc6cd73b7ccfa10c1f07d017fc7f62fe78eaab5 (diff)
[POWERPC] 4xx: Add AMCC 460EX/460GT support to cputable.c & cpu_setup_44x.S
This patch adds basic support for the AMCC 460EX/460GT PPC's to arch/powerpc. Currently those PPC's are still based on a 440 core and *not* a 460 core. Here some basic features of those SoC's: 460EX: - Up to 1.2GHz, 32kB L1 I-cache and D-cache, 256kB L2-cache, FPU - 1 * PCI (max 66MHz), 2 * PCIe (one 4-lane, one 1-lane) - 2 * GBit Ethernet with TCP/IP acceleration - USB 2.0 Host/Device OTG and Host interface - SATA controller - Optional security feature 460GT (only changes to 460EX): - 4 * GBit Ethernet with TCP/IP acceleration - RapidIO - No SATA - No USB Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/kernel/cputable.c')
-rw-r--r--arch/powerpc/kernel/cputable.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
index 2a8f5cc5184f..26ffb44e2701 100644
--- a/arch/powerpc/kernel/cputable.c
+++ b/arch/powerpc/kernel/cputable.c
@@ -36,6 +36,8 @@ extern void __setup_cpu_440epx(unsigned long offset, struct cpu_spec* spec);
36extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec); 36extern void __setup_cpu_440gx(unsigned long offset, struct cpu_spec* spec);
37extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec); 37extern void __setup_cpu_440grx(unsigned long offset, struct cpu_spec* spec);
38extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec); 38extern void __setup_cpu_440spe(unsigned long offset, struct cpu_spec* spec);
39extern void __setup_cpu_460ex(unsigned long offset, struct cpu_spec* spec);
40extern void __setup_cpu_460gt(unsigned long offset, struct cpu_spec* spec);
39extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec); 41extern void __setup_cpu_603(unsigned long offset, struct cpu_spec* spec);
40extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec); 42extern void __setup_cpu_604(unsigned long offset, struct cpu_spec* spec);
41extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec); 43extern void __setup_cpu_750(unsigned long offset, struct cpu_spec* spec);
@@ -1397,6 +1399,30 @@ static struct cpu_spec __initdata cpu_specs[] = {
1397 .machine_check = machine_check_440A, 1399 .machine_check = machine_check_440A,
1398 .platform = "ppc440", 1400 .platform = "ppc440",
1399 }, 1401 },
1402 { /* 460EX */
1403 .pvr_mask = 0xffff0002,
1404 .pvr_value = 0x13020002,
1405 .cpu_name = "460EX",
1406 .cpu_features = CPU_FTRS_44X,
1407 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
1408 .icache_bsize = 32,
1409 .dcache_bsize = 32,
1410 .cpu_setup = __setup_cpu_460ex,
1411 .machine_check = machine_check_440A,
1412 .platform = "ppc440",
1413 },
1414 { /* 460GT */
1415 .pvr_mask = 0xffff0002,
1416 .pvr_value = 0x13020000,
1417 .cpu_name = "460GT",
1418 .cpu_features = CPU_FTRS_44X,
1419 .cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
1420 .icache_bsize = 32,
1421 .dcache_bsize = 32,
1422 .cpu_setup = __setup_cpu_460gt,
1423 .machine_check = machine_check_440A,
1424 .platform = "ppc440",
1425 },
1400#endif /* CONFIG_44x */ 1426#endif /* CONFIG_44x */
1401#ifdef CONFIG_FSL_BOOKE 1427#ifdef CONFIG_FSL_BOOKE
1402#ifdef CONFIG_E200 1428#ifdef CONFIG_E200
@@ -1512,7 +1538,7 @@ struct cpu_spec * __init identify_cpu(unsigned long offset, unsigned int pvr)
1512 *t = *s; 1538 *t = *s;
1513 *PTRRELOC(&cur_cpu_spec) = &the_cpu_spec; 1539 *PTRRELOC(&cur_cpu_spec) = &the_cpu_spec;
1514#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE) 1540#if defined(CONFIG_PPC64) || defined(CONFIG_BOOKE)
1515 /* ppc64 and booke expect identify_cpu to also call 1541 /* ppc64 and booke expect identify_cpu to also call
1516 * setup_cpu for that processor. I will consolidate 1542 * setup_cpu for that processor. I will consolidate
1517 * that at a later time, for now, just use #ifdef. 1543 * that at a later time, for now, just use #ifdef.
1518 * we also don't need to PTRRELOC the function pointer 1544 * we also don't need to PTRRELOC the function pointer