Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -1132,6 +1132,24 @@ static struct cpu_spec cpu_specs[] = {
		.dcache_bsize		= 32,
		.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 */
		.pvr_mask		= 0xf0000fff,
		.pvr_value		= 0x40000440,
+1 −1
Original line number Diff line number Diff line
@@ -217,7 +217,7 @@ skpinv: addi r4,r4,1 /* Increment */
	lis	r4,interrupt_base@h	/* IVPR only uses the high 16-bits */
	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) */
	mfspr	r2,SPRN_CCR0
	lis	r3,0xffef
+16 −1
Original line number Diff line number Diff line
@@ -14,6 +14,14 @@ config EBONY
	help
	  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
#	bool "Luan"
#	depends on 44x
@@ -37,6 +45,13 @@ config 440EP
	select IBM440EP_ERR42
#	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
	bool
# Disabled until the new EMAC Driver is merged.
@@ -50,7 +65,7 @@ config 440SP

config 440A
	bool
	depends on 440GX
	depends on 440GX || 440EPX
	default y

# 44x errata/workaround config symbols, selected by the CPU models above
+1 −0
Original line number Diff line number Diff line
obj-$(CONFIG_44x)	:= misc_44x.o
obj-$(CONFIG_EBONY)	+= ebony.o
obj-$(CONFIG_BAMBOO) += bamboo.o
obj-$(CONFIG_SEQUOIA)	+= sequoia.o
+66 −0
Original line number Diff line number Diff line
/*
 * 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,
};