Commit 15fc993e authored by Valentine Barshak's avatar Valentine Barshak Committed by Josh Boyer

[POWERPC] PowerPC 440EPx: Sequoia board support

AMCC PPC440EPx Sequoia board support.
Signed-off-by: default avatarValentine Barshak <vbarshak@ru.mvista.com>
Acked-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
Signed-off-by: default avatarJosh Boyer <jwboyer@linux.vnet.ibm.com>
parent 38a5d6c9
...@@ -1132,6 +1132,24 @@ static struct cpu_spec cpu_specs[] = { ...@@ -1132,6 +1132,24 @@ static struct cpu_spec cpu_specs[] = {
.dcache_bsize = 32, .dcache_bsize = 32,
.platform = "ppc440", .platform = "ppc440",
}, },
{ /* 440EPX */
.pvr_mask = 0xf0000ffb,
.pvr_value = 0x200008D0,
.cpu_name = "440EPX",
.cpu_features = CPU_FTRS_44X,
.cpu_user_features = COMMON_USER_BOOKE | PPC_FEATURE_HAS_FPU,
.icache_bsize = 32,
.dcache_bsize = 32,
},
{ /* 440GRX */
.pvr_mask = 0xf0000ffb,
.pvr_value = 0x200008D8,
.cpu_name = "440GRX",
.cpu_features = CPU_FTRS_44X,
.cpu_user_features = COMMON_USER_BOOKE,
.icache_bsize = 32,
.dcache_bsize = 32,
},
{ /* 440GP Rev. B */ { /* 440GP Rev. B */
.pvr_mask = 0xf0000fff, .pvr_mask = 0xf0000fff,
.pvr_value = 0x40000440, .pvr_value = 0x40000440,
......
...@@ -217,7 +217,7 @@ skpinv: addi r4,r4,1 /* Increment */ ...@@ -217,7 +217,7 @@ skpinv: addi r4,r4,1 /* Increment */
lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */ lis r4,interrupt_base@h /* IVPR only uses the high 16-bits */
mtspr SPRN_IVPR,r4 mtspr SPRN_IVPR,r4
#ifdef CONFIG_440EP #if defined(CONFIG_440EP) || defined(CONFIG_440EPX)
/* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */ /* Clear DAPUIB flag in CCR0 (enable APU between CPU and FPU) */
mfspr r2,SPRN_CCR0 mfspr r2,SPRN_CCR0
lis r3,0xffef lis r3,0xffef
......
...@@ -14,6 +14,14 @@ config EBONY ...@@ -14,6 +14,14 @@ config EBONY
help help
This option enables support for the IBM PPC440GP evaluation board. This option enables support for the IBM PPC440GP evaluation board.
config SEQUOIA
bool "Sequoia"
depends on 44x
default n
select 440EPX
help
This option enables support for the AMCC PPC440EPX evaluation board.
#config LUAN #config LUAN
# bool "Luan" # bool "Luan"
# depends on 44x # depends on 44x
...@@ -37,6 +45,13 @@ config 440EP ...@@ -37,6 +45,13 @@ config 440EP
select IBM440EP_ERR42 select IBM440EP_ERR42
# select IBM_NEW_EMAC_ZMII # select IBM_NEW_EMAC_ZMII
config 440EPX
bool
select PPC_FPU
# Disabled until the new EMAC Driver is merged.
# select IBM_NEW_EMAC_EMAC4
# select IBM_NEW_EMAC_ZMII
config 440GP config 440GP
bool bool
# Disabled until the new EMAC Driver is merged. # Disabled until the new EMAC Driver is merged.
...@@ -50,7 +65,7 @@ config 440SP ...@@ -50,7 +65,7 @@ config 440SP
config 440A config 440A
bool bool
depends on 440GX depends on 440GX || 440EPX
default y default y
# 44x errata/workaround config symbols, selected by the CPU models above # 44x errata/workaround config symbols, selected by the CPU models above
......
obj-$(CONFIG_44x) := misc_44x.o obj-$(CONFIG_44x) := misc_44x.o
obj-$(CONFIG_EBONY) += ebony.o obj-$(CONFIG_EBONY) += ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o obj-$(CONFIG_BAMBOO) += bamboo.o
obj-$(CONFIG_SEQUOIA) += sequoia.o
/*
* Sequoia board specific routines
*
* Valentine Barshak <vbarshak@ru.mvista.com>
* Copyright 2007 MontaVista Software Inc.
*
* Based on the Bamboo code by
* Josh Boyer <jwboyer@linux.vnet.ibm.com>
* Copyright 2007 IBM Corporation
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation; either version 2 of the License, or (at your
* option) any later version.
*/
#include <linux/init.h>
#include <asm/machdep.h>
#include <asm/prom.h>
#include <asm/udbg.h>
#include <asm/time.h>
#include <asm/uic.h>
#include <asm/of_platform.h>
#include "44x.h"
static struct of_device_id sequoia_of_bus[] = {
{ .compatible = "ibm,plb4", },
{ .compatible = "ibm,opb", },
{ .compatible = "ibm,ebc", },
{},
};
static int __init sequoia_device_probe(void)
{
if (!machine_is(sequoia))
return 0;
of_platform_bus_probe(NULL, sequoia_of_bus, NULL);
return 0;
}
device_initcall(sequoia_device_probe);
static int __init sequoia_probe(void)
{
unsigned long root = of_get_flat_dt_root();
if (!of_flat_dt_is_compatible(root, "amcc,sequoia"))
return 0;
return 1;
}
static void __init sequoia_setup_arch(void)
{
}
define_machine(sequoia) {
.name = "Sequoia",
.probe = sequoia_probe,
.setup_arch = sequoia_setup_arch,
.progress = udbg_progress,
.init_IRQ = uic_init_tree,
.get_irq = uic_get_irq,
.restart = ppc44x_reset_system,
.calibrate_decr = generic_calibrate_decr,
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment