* Re: ppc32: Weird process scheduling behaviour with 2.6.24-rc
From: Ingo Molnar @ 2008-01-28 12:56 UTC (permalink / raw)
To: Peter Zijlstra; +Cc: linuxppc-dev, Michel Dänzer, vatsa
In-Reply-To: <1201524796.28547.5.camel@lappy>
* Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
> > i think it would be OK to do half of this: make it easier to preempt
> > a +nice task. Michel, do you really need the -nice portion as well?
> > It's not a problem to super-preempt positively reniced tasks, but it
> > can be quite annoying if negatively reniced tasks have super-slices.
>
> This should do that (unless I need a stronger cup of tea).
cool - thanks Peter. Michel, could you check Peter's patch, does it
resolve all the interactivity problems you've been seeing?
Ingo
^ permalink raw reply
* request_irq() for external interrupt pin on MPC875 (A&M adder MPC 875)
From: Rognlien Dag Kristian @ 2008-01-28 13:28 UTC (permalink / raw)
To: linuxppc-dev
[-- Attachment #1: Type: text/plain, Size: 540 bytes --]
With kernel 2.6.13 we used
request_irq (use_irq, irq_handler, SA_INTERRUPT|SA_SHIRQ, DEVICE_NAME,
dev)
where use_irq is 12 to use the external IRQ6 pin.
We are now trying to get this driver to work with the 2.6.25 pull from
powerpc.git.
request_irq (use_irq, irq_handler, IRQF_SHARED, DEVICE_NAME, dev);
returns -ENOSYS on the newer kernel.
Have the IRQ mappings for the external IRQX pins been moved in the later
kernels?
-
Dag K. W. Rognlien
Research Scientist
SINTEF ICT Communication Systems
[-- Attachment #2: Type: text/html, Size: 2472 bytes --]
^ permalink raw reply
* [PATCH 1/1][PPC] Test value, not 1 in print_insn_spu(), arch/powerpc/xmon/spu-dis.c
From: Roel Kluin @ 2008-01-28 14:10 UTC (permalink / raw)
To: jwboyer, michael; +Cc: linuxppc-dev
untested, please confirm:
The '|| 1' does nothing, should this be corrected like my patch does?
--
Test value, not 1.
Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
---
diff --git a/arch/powerpc/xmon/spu-dis.c b/arch/powerpc/xmon/spu-dis.c
index e5f8983..74d45fb 100644
--- a/arch/powerpc/xmon/spu-dis.c
+++ b/arch/powerpc/xmon/spu-dis.c
@@ -222,7 +222,7 @@ print_insn_spu (unsigned long insn, unsigned long memaddr)
break;
case A_U18:
value = DECODE_INSN_U18 (insn);
- if (value == 0 || 1)
+ if (value == 0 || value == 1)
{
hex_value = value;
printf("%u", value);
^ permalink raw reply related
* [PATCH] [PPC] Remove 83xx from arch/ppc
From: Kumar Gala @ 2008-01-28 14:39 UTC (permalink / raw)
To: linuxppc-dev
83xx exists in arch/powerpc as well as cuImage support to boot from
a u-boot that doesn't support device trees.
---
arch/ppc/Kconfig | 46 +--
arch/ppc/Makefile | 1 -
arch/ppc/configs/mpc834x_sys_defconfig | 844 --------------------------------
arch/ppc/kernel/ppc_ksyms.c | 3 +-
arch/ppc/kernel/setup.c | 2 +-
arch/ppc/mm/mmu_context.c | 2 +-
arch/ppc/mm/ppc_mmu.c | 2 +-
arch/ppc/platforms/83xx/Makefile | 4 -
arch/ppc/platforms/83xx/mpc834x_sys.c | 346 -------------
arch/ppc/platforms/83xx/mpc834x_sys.h | 54 --
arch/ppc/syslib/Makefile | 5 -
arch/ppc/syslib/ipic.c | 646 ------------------------
arch/ppc/syslib/ipic.h | 47 --
arch/ppc/syslib/mpc83xx_devices.c | 251 ----------
arch/ppc/syslib/mpc83xx_sys.c | 122 -----
arch/ppc/syslib/ppc83xx_pci.h | 151 ------
arch/ppc/syslib/ppc83xx_setup.c | 410 ----------------
arch/ppc/syslib/ppc83xx_setup.h | 55 --
include/asm-powerpc/irq.h | 5 -
include/asm-ppc/mpc83xx.h | 107 ----
include/asm-ppc/ppc_sys.h | 2 -
include/asm-ppc/ppcboot.h | 5 +-
include/asm-ppc/serial.h | 2 -
23 files changed, 15 insertions(+), 3097 deletions(-)
delete mode 100644 arch/ppc/configs/mpc834x_sys_defconfig
delete mode 100644 arch/ppc/platforms/83xx/Makefile
delete mode 100644 arch/ppc/platforms/83xx/mpc834x_sys.c
delete mode 100644 arch/ppc/platforms/83xx/mpc834x_sys.h
delete mode 100644 arch/ppc/syslib/ipic.c
delete mode 100644 arch/ppc/syslib/ipic.h
delete mode 100644 arch/ppc/syslib/mpc83xx_devices.c
delete mode 100644 arch/ppc/syslib/mpc83xx_sys.c
delete mode 100644 arch/ppc/syslib/ppc83xx_pci.h
delete mode 100644 arch/ppc/syslib/ppc83xx_setup.c
delete mode 100644 arch/ppc/syslib/ppc83xx_setup.h
delete mode 100644 include/asm-ppc/mpc83xx.h
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 6473fa7..08e083d 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -78,18 +78,18 @@ choice
default 6xx
config 6xx
- bool "6xx/7xx/74xx/52xx/82xx/83xx"
+ bool "6xx/7xx/74xx/52xx/82xx"
select PPC_FPU
help
There are four types of PowerPC chips supported. The more common
types (601, 603, 604, 740, 750, 7400), the older Freescale
(formerly Motorola) embedded versions (821, 823, 850, 855, 860,
- 52xx, 82xx, 83xx), the IBM embedded versions (403 and 405) and
+ 52xx, 82xx), the IBM embedded versions (403 and 405) and
the Book E embedded processors from IBM (44x) and Freescale (85xx).
For support for 64-bit processors, set ARCH=powerpc.
Unless you are building a kernel for one of the embedded processor
systems, choose 6xx.
- Also note that because the 52xx, 82xx, & 83xx family have a 603e
+ Also note that because the 52xx, 82xx family have a 603e
core, specific support for that chipset is asked later on.
config 40x
@@ -153,7 +153,7 @@ config PHYS_64BIT
config ALTIVEC
bool "AltiVec Support"
depends on 6xx
- depends on !8260 && !83xx
+ depends on !8260
---help---
This option enables kernel support for the Altivec extensions to the
PowerPC processor. The kernel currently supports saving and restoring
@@ -184,7 +184,7 @@ config SPE
config TAU
bool "Thermal Management Support"
- depends on 6xx && !8260 && !83xx
+ depends on 6xx && !8260
help
G3 and G4 processors have an on-chip temperature sensor called the
'Thermal Assist Unit (TAU)', which, in theory, can measure the on-die
@@ -721,16 +721,6 @@ config LITE5200B
Support for the LITE5200B dev board for the MPC5200 from Freescale.
This is the new board with 2 PCI slots.
-config MPC834x_SYS
- bool "Freescale MPC834x SYS"
- help
- This option enables support for the MPC 834x SYS evaluation board.
-
- Be aware that PCI buses can only function when SYS board is plugged
- into the PIB (Platform IO Board) board from Freescale which provide
- 3 PCI slots. The PIBs PCI initialization is the bootloader's
- responsibility.
-
config EV64360
bool "Marvell-EV64360BP"
help
@@ -774,18 +764,6 @@ config 8272
The MPC8272 CPM has a different internal dpram setup than other CPM2
devices
-config 83xx
- bool
- default y if MPC834x_SYS
-
-config MPC834x
- bool
- default y if MPC834x_SYS
-
-config PPC_83xx
- bool
- default y if 83xx
-
config CPM1
bool
depends on 8xx
@@ -811,8 +789,7 @@ config PPC_GEN550
bool
depends on SANDPOINT || SPRUCE || PPLUS || \
PRPMC750 || PRPMC800 || LOPEC || \
- (EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D || \
- 83xx
+ (EV64260 && !SERIAL_MPSC) || CHESTNUT || RADSTONE_PPC7D
default y
config FORCE
@@ -1074,7 +1051,7 @@ config PPC_I8259
config PPC_INDIRECT_PCI
bool
depends on PCI
- default y if 40x || 44x || 85xx || 83xx || PPC_PREP
+ default y if 40x || 44x || 85xx || PPC_PREP
default n
config EISA
@@ -1091,8 +1068,8 @@ config MCA
bool
config PCI
- bool "PCI support" if 40x || CPM2 || 83xx || 85xx || PPC_MPC52xx
- default y if !40x && !CPM2 && !8xx && !83xx && !85xx
+ bool "PCI support" if 40x || CPM2 || 85xx || PPC_MPC52xx
+ default y if !40x && !CPM2 && !8xx && !85xx
default PCI_QSPAN if !4xx && !CPM2 && 8xx
help
Find out whether your system includes a PCI bus. PCI is the name of
@@ -1106,11 +1083,6 @@ config PCI_DOMAINS
config PCI_SYSCALL
def_bool PCI
-config MPC83xx_PCI2
- bool "Support for 2nd PCI host controller"
- depends on PCI && MPC834x
- default y if MPC834x_SYS
-
config PCI_QSPAN
bool "QSpan PCI"
depends on !4xx && !CPM2 && 8xx
diff --git a/arch/ppc/Makefile b/arch/ppc/Makefile
index 95894ef..a4fef18 100644
--- a/arch/ppc/Makefile
+++ b/arch/ppc/Makefile
@@ -65,7 +65,6 @@ core-y += arch/ppc/kernel/ arch/powerpc/kernel/ \
arch/ppc/syslib/ arch/powerpc/sysdev/ \
arch/powerpc/lib/
core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/
-core-$(CONFIG_83xx) += arch/ppc/platforms/83xx/
core-$(CONFIG_85xx) += arch/ppc/platforms/85xx/
core-$(CONFIG_MATH_EMULATION) += arch/powerpc/math-emu/
core-$(CONFIG_XMON) += arch/ppc/xmon/
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c
index 0d53dc3..ba729ce 100644
--- a/arch/ppc/kernel/ppc_ksyms.c
+++ b/arch/ppc/kernel/ppc_ksyms.c
@@ -244,8 +244,7 @@ EXPORT_SYMBOL(debugger_fault_handler);
EXPORT_SYMBOL(cpm_install_handler);
EXPORT_SYMBOL(cpm_free_handler);
#endif /* CONFIG_8xx */
-#if defined(CONFIG_8xx) || defined(CONFIG_40x) || defined(CONFIG_85xx) ||\
- defined(CONFIG_83xx)
+#if defined(CONFIG_8xx) || defined(CONFIG_40x) || defined(CONFIG_85xx)
EXPORT_SYMBOL(__res);
#endif
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
index 3c45302..5888ae6 100644
--- a/arch/ppc/kernel/setup.c
+++ b/arch/ppc/kernel/setup.c
@@ -38,7 +38,7 @@
#include <asm/xmon.h>
#include <asm/ocp.h>
-#define USES_PPC_SYS (defined(CONFIG_85xx) || defined(CONFIG_83xx) || \
+#define USES_PPC_SYS (defined(CONFIG_85xx) || \
defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
defined(CONFIG_PPC_MPC52xx))
diff --git a/arch/ppc/mm/mmu_context.c b/arch/ppc/mm/mmu_context.c
index 85afa7f..dacf45c 100644
--- a/arch/ppc/mm/mmu_context.c
+++ b/arch/ppc/mm/mmu_context.c
@@ -2,7 +2,7 @@
* This file contains the routines for handling the MMU on those
* PowerPC implementations where the MMU substantially follows the
* architecture specification. This includes the 6xx, 7xx, 7xxx,
- * 8260, and 83xx implementations but excludes the 8xx and 4xx.
+ * and 8260 implementations but excludes the 8xx and 4xx.
* -- paulus
*
* Derived from arch/ppc/mm/init.c:
diff --git a/arch/ppc/mm/ppc_mmu.c b/arch/ppc/mm/ppc_mmu.c
index 973f1e6..0c1dc15 100644
--- a/arch/ppc/mm/ppc_mmu.c
+++ b/arch/ppc/mm/ppc_mmu.c
@@ -2,7 +2,7 @@
* This file contains the routines for handling the MMU on those
* PowerPC implementations where the MMU substantially follows the
* architecture specification. This includes the 6xx, 7xx, 7xxx,
- * 8260, and 83xx implementations but excludes the 8xx and 4xx.
+ * and 8260 implementations but excludes the 8xx and 4xx.
* -- paulus
*
* Derived from arch/ppc/mm/init.c:
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile
index 5e16228..4d158f3 100644
--- a/arch/ppc/syslib/Makefile
+++ b/arch/ppc/syslib/Makefile
@@ -93,11 +93,6 @@ obj-$(CONFIG_85xx) += open_pic.o ppc85xx_common.o ppc85xx_setup.o \
ifeq ($(CONFIG_85xx),y)
obj-$(CONFIG_PCI) += pci_auto.o
endif
-obj-$(CONFIG_83xx) += ppc83xx_setup.o ppc_sys.o \
- mpc83xx_sys.o mpc83xx_devices.o ipic.o
-ifeq ($(CONFIG_83xx),y)
-obj-$(CONFIG_PCI) += pci_auto.o
-endif
obj-$(CONFIG_MPC8548_CDS) += todc_time.o
obj-$(CONFIG_MPC8555_CDS) += todc_time.o
obj-$(CONFIG_PPC_MPC52xx) += mpc52xx_setup.o mpc52xx_pic.o \
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 1392db4..4a015da 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -483,11 +483,6 @@ static __inline__ int irq_canonicalize(int irq)
*/
#define mk_int_int_mask(IL) (1 << (7 - (IL/2)))
-#elif defined(CONFIG_83xx)
-#include <asm/mpc83xx.h>
-
-#define NR_IRQS (NR_IPIC_INTS)
-
#elif defined(CONFIG_85xx)
/* Now include the board configuration specific associations.
*/
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h
index de99e92..80c5851 100644
--- a/include/asm-ppc/ppc_sys.h
+++ b/include/asm-ppc/ppc_sys.h
@@ -23,8 +23,6 @@
#if defined(CONFIG_8260)
#include <asm/mpc8260.h>
-#elif defined(CONFIG_83xx)
-#include <asm/mpc83xx.h>
#elif defined(CONFIG_85xx)
#include <asm/mpc85xx.h>
#elif defined(CONFIG_8xx)
diff --git a/include/asm-ppc/ppcboot.h b/include/asm-ppc/ppcboot.h
index 6b7b63f..18d04e8 100644
--- a/include/asm-ppc/ppcboot.h
+++ b/include/asm-ppc/ppcboot.h
@@ -38,8 +38,7 @@ typedef struct bd_info {
unsigned long bi_flashoffset; /* reserved area for startup monitor */
unsigned long bi_sramstart; /* start of SRAM memory */
unsigned long bi_sramsize; /* size of SRAM memory */
-#if defined(CONFIG_8xx) || defined(CONFIG_CPM2) || defined(CONFIG_85xx) ||\
- defined(CONFIG_83xx)
+#if defined(CONFIG_8xx) || defined(CONFIG_CPM2) || defined(CONFIG_85xx)
unsigned long bi_immr_base; /* base of IMMR register */
#endif
#if defined(CONFIG_PPC_MPC52xx)
@@ -74,7 +73,7 @@ typedef struct bd_info {
hymod_conf_t bi_hymod_conf; /* hymod configuration information */
#endif
#if defined(CONFIG_EVB64260) || defined(CONFIG_405EP) || defined(CONFIG_44x) || \
- defined(CONFIG_85xx) || defined(CONFIG_83xx)
+ defined(CONFIG_85xx)
/* second onboard ethernet port */
unsigned char bi_enet1addr[6];
#endif
diff --git a/include/asm-ppc/serial.h b/include/asm-ppc/serial.h
index 8fc1b54..6220ef9 100644
--- a/include/asm-ppc/serial.h
+++ b/include/asm-ppc/serial.h
@@ -29,8 +29,6 @@
#include <platforms/spruce.h>
#elif defined(CONFIG_4xx)
#include <asm/ibm4xx.h>
-#elif defined(CONFIG_83xx)
-#include <asm/mpc83xx.h>
#elif defined(CONFIG_85xx)
#include <asm/mpc85xx.h>
#elif defined(CONFIG_RADSTONE_PPC7D)
--
1.5.3.7
^ permalink raw reply related
* [PATCH 2/3] Convert PowerPC MPC i2c to of_platform_driver from platform_driver
From: Jon Smirl @ 2008-01-28 14:42 UTC (permalink / raw)
To: i2c, linuxppc-dev
In-Reply-To: <20080128144202.8410.14647.stgit@terra.home>
Convert MPC i2c driver from a platform_driver to a of_platform_driver. Add the ability to dynamically load i2c drivers based on device tree names. Routine names were changed from fsl_ to mpc_ to make them match the file name. Common code moved to powerpc-common.* Orginal ppc driver left intact for deletion when ppc arch is removed.
Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
---
arch/powerpc/sysdev/fsl_soc.c | 125 ---------------------------
drivers/i2c/busses/Makefile | 2
drivers/i2c/busses/i2c-mpc-drv.c | 164 ++++++++++++++++++++++++++++++++---
drivers/i2c/busses/powerpc-common.c | 81 +++++++++++++++++
drivers/i2c/busses/powerpc-common.h | 23 +++++
include/linux/mod_devicetable.h | 9 ++
6 files changed, 263 insertions(+), 141 deletions(-)
create mode 100644 drivers/i2c/busses/powerpc-common.c
create mode 100644 drivers/i2c/busses/powerpc-common.h
diff --git a/arch/powerpc/sysdev/fsl_soc.c b/arch/powerpc/sysdev/fsl_soc.c
index e4b14a5..d6ef264 100644
--- a/arch/powerpc/sysdev/fsl_soc.c
+++ b/arch/powerpc/sysdev/fsl_soc.c
@@ -318,131 +318,6 @@ err:
arch_initcall(gfar_of_init);
-#ifdef CONFIG_I2C_BOARDINFO
-#include <linux/i2c.h>
-struct i2c_driver_device {
- char *of_device;
- char *i2c_type;
-};
-
-static struct i2c_driver_device i2c_devices[] __initdata = {
- {"ricoh,rs5c372a", "rs5c372a",},
- {"ricoh,rs5c372b", "rs5c372b",},
- {"ricoh,rv5c386", "rv5c386",},
- {"ricoh,rv5c387a", "rv5c387a",},
- {"dallas,ds1307", "ds1307",},
- {"dallas,ds1337", "ds1337",},
- {"dallas,ds1338", "ds1338",},
- {"dallas,ds1339", "ds1339",},
- {"dallas,ds1340", "ds1340",},
- {"stm,m41t00", "m41t00"},
- {"dallas,ds1374", "rtc-ds1374",},
-};
-
-static int __init of_find_i2c_driver(struct device_node *node,
- struct i2c_board_info *info)
-{
- int i;
-
- for (i = 0; i < ARRAY_SIZE(i2c_devices); i++) {
- if (!of_device_is_compatible(node, i2c_devices[i].of_device))
- continue;
- if (strlcpy(info->type, i2c_devices[i].i2c_type,
- I2C_NAME_SIZE) >= I2C_NAME_SIZE)
- return -ENOMEM;
- return 0;
- }
- return -ENODEV;
-}
-
-static void __init of_register_i2c_devices(struct device_node *adap_node,
- int bus_num)
-{
- struct device_node *node = NULL;
-
- while ((node = of_get_next_child(adap_node, node))) {
- struct i2c_board_info info = {};
- const u32 *addr;
- int len;
-
- addr = of_get_property(node, "reg", &len);
- if (!addr || len < sizeof(int) || *addr > (1 << 10) - 1) {
- printk(KERN_WARNING "fsl_soc.c: invalid i2c device entry\n");
- continue;
- }
-
- info.irq = irq_of_parse_and_map(node, 0);
- if (info.irq == NO_IRQ)
- info.irq = -1;
-
- if (of_find_i2c_driver(node, &info) < 0)
- continue;
-
- info.addr = *addr;
-
- i2c_register_board_info(bus_num, &info, 1);
- }
-}
-
-static int __init fsl_i2c_of_init(void)
-{
- struct device_node *np;
- unsigned int i;
- struct platform_device *i2c_dev;
- int ret;
-
- for (np = NULL, i = 0;
- (np = of_find_compatible_node(np, "i2c", "fsl-i2c")) != NULL;
- i++) {
- struct resource r[2];
- struct fsl_i2c_platform_data i2c_data;
- const unsigned char *flags = NULL;
-
- memset(&r, 0, sizeof(r));
- memset(&i2c_data, 0, sizeof(i2c_data));
-
- ret = of_address_to_resource(np, 0, &r[0]);
- if (ret)
- goto err;
-
- of_irq_to_resource(np, 0, &r[1]);
-
- i2c_dev = platform_device_register_simple("fsl-i2c", i, r, 2);
- if (IS_ERR(i2c_dev)) {
- ret = PTR_ERR(i2c_dev);
- goto err;
- }
-
- i2c_data.device_flags = 0;
- flags = of_get_property(np, "dfsrr", NULL);
- if (flags)
- i2c_data.device_flags |= FSL_I2C_DEV_SEPARATE_DFSRR;
-
- flags = of_get_property(np, "fsl5200-clocking", NULL);
- if (flags)
- i2c_data.device_flags |= FSL_I2C_DEV_CLOCK_5200;
-
- ret =
- platform_device_add_data(i2c_dev, &i2c_data,
- sizeof(struct
- fsl_i2c_platform_data));
- if (ret)
- goto unreg;
-
- of_register_i2c_devices(np, i);
- }
-
- return 0;
-
-unreg:
- platform_device_unregister(i2c_dev);
-err:
- return ret;
-}
-
-arch_initcall(fsl_i2c_of_init);
-#endif
-
#ifdef CONFIG_PPC_83xx
static int __init mpc83xx_wdt_init(void)
{
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 171800d..e94241f 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -2,7 +2,7 @@
# Makefile for the i2c bus drivers.
#
-i2c-mpc-objs := i2c-mpc-drv.o
+i2c-mpc-objs := i2c-mpc-drv.o powerpc-common.o
obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o
obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o
diff --git a/drivers/i2c/busses/i2c-mpc-drv.c b/drivers/i2c/busses/i2c-mpc-drv.c
index d20959d..ac1febf 100644
--- a/drivers/i2c/busses/i2c-mpc-drv.c
+++ b/drivers/i2c/busses/i2c-mpc-drv.c
@@ -18,6 +18,7 @@
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/platform_device.h>
+#include <linux/of_platform.h>
#include <asm/io.h>
#include <linux/fsl_devices.h>
@@ -25,13 +26,15 @@
#include <linux/interrupt.h>
#include <linux/delay.h>
-#define MPC_I2C_ADDR 0x00
+#include "powerpc-common.h"
+
+#define DRV_NAME "mpc-i2c"
+
#define MPC_I2C_FDR 0x04
#define MPC_I2C_CR 0x08
#define MPC_I2C_SR 0x0c
#define MPC_I2C_DR 0x10
#define MPC_I2C_DFSRR 0x14
-#define MPC_I2C_REGION 0x20
#define CCR_MEN 0x80
#define CCR_MIEN 0x40
@@ -57,7 +60,7 @@ struct mpc_i2c {
u32 flags;
};
-static __inline__ void writeccr(struct mpc_i2c *i2c, u32 x)
+static inline void writeccr(struct mpc_i2c *i2c, u32 x)
{
writeb(x, i2c->base + MPC_I2C_CR);
}
@@ -99,8 +102,7 @@ static int i2c_wait(struct mpc_i2c *i2c, unsigned timeout, int writing)
u32 x;
int result = 0;
- if (i2c->irq == NO_IRQ)
- {
+ if (i2c->irq == NO_IRQ) {
while (!(readb(i2c->base + MPC_I2C_SR) & CSR_MIF)) {
schedule();
if (time_after(jiffies, orig_jiffies + timeout)) {
@@ -178,7 +180,7 @@ static void mpc_i2c_stop(struct mpc_i2c *i2c)
}
static int mpc_write(struct mpc_i2c *i2c, int target,
- const u8 * data, int length, int restart)
+ const u8 *data, int length, int restart)
{
int i, result;
unsigned timeout = i2c->adap.timeout;
@@ -209,7 +211,7 @@ static int mpc_write(struct mpc_i2c *i2c, int target,
}
static int mpc_read(struct mpc_i2c *i2c, int target,
- u8 * data, int length, int restart)
+ u8 *data, int length, int restart)
{
unsigned timeout = i2c->adap.timeout;
int i, result;
@@ -315,6 +317,137 @@ static struct i2c_adapter mpc_ops = {
.timeout = 1,
};
+#ifdef CONFIG_PPC_MERGE
+
+struct i2c_driver_device {
+ char *of_device;
+ char *i2c_driver;
+ char *i2c_type;
+};
+
+static int mpc_i2c_probe(struct of_device *op, const struct of_device_id *match)
+{
+ int result = 0;
+ struct mpc_i2c *i2c;
+
+ i2c = kzalloc(sizeof(*i2c), GFP_KERNEL);
+ if (!i2c)
+ return -ENOMEM;
+
+ if (of_get_property(op->node, "dfsrr", NULL))
+ i2c->flags |= FSL_I2C_DEV_SEPARATE_DFSRR;
+
+ if (of_device_is_compatible(op->node, "mpc5200-i2c"))
+ i2c->flags |= FSL_I2C_DEV_CLOCK_5200;
+
+ init_waitqueue_head(&i2c->queue);
+
+ i2c->base = of_iomap(op->node, 0);
+ if (!i2c->base) {
+ printk(KERN_ERR "i2c-mpc - failed to map controller\n");
+ result = -ENOMEM;
+ goto fail_map;
+ }
+
+ i2c->irq = irq_of_parse_and_map(op->node, 0);
+ if (i2c->irq == NO_IRQ) {
+ result = -ENXIO;
+ goto fail_irq;
+ }
+
+ result = request_irq(i2c->irq, mpc_i2c_isr,
+ IRQF_SHARED, "i2c-mpc", i2c);
+ if (result < 0) {
+ printk(KERN_ERR "i2c-mpc - failed to attach interrupt\n");
+ goto fail_request;
+ }
+
+ mpc_i2c_setclock(i2c);
+
+ dev_set_drvdata(&op->dev, i2c);
+
+ i2c->adap = mpc_ops;
+ i2c_set_adapdata(&i2c->adap, i2c);
+ i2c->adap.dev.parent = &op->dev;
+
+ result = i2c_add_adapter(&i2c->adap);
+ if (result < 0) {
+ printk(KERN_ERR "i2c-mpc - failed to add adapter\n");
+ goto fail_add;
+ }
+
+ of_register_i2c_devices(&i2c->adap, op->node);
+
+ return result;
+
+ fail_add:
+ dev_set_drvdata(&op->dev, NULL);
+ free_irq(i2c->irq, i2c);
+ fail_request:
+ irq_dispose_mapping(i2c->irq);
+ fail_irq:
+ iounmap(i2c->base);
+ fail_map:
+ kfree(i2c);
+ return result;
+};
+
+static int mpc_i2c_remove(struct of_device *op)
+{
+ struct mpc_i2c *i2c = dev_get_drvdata(&op->dev);
+
+ i2c_del_adapter(&i2c->adap);
+ dev_set_drvdata(&op->dev, NULL);
+
+ if (i2c->irq != NO_IRQ)
+ free_irq(i2c->irq, i2c);
+
+ irq_dispose_mapping(i2c->irq);
+ iounmap(i2c->base);
+ kfree(i2c);
+ return 0;
+};
+
+static const struct of_device_id mpc_i2c_of_match[] = {
+ {
+ .compatible = "fsl-i2c",
+ },
+ {},
+};
+MODULE_DEVICE_TABLE(of, mpc_i2c_of_match);
+
+
+/* Structure for a device driver */
+static struct of_platform_driver mpc_i2c_driver = {
+ .match_table = mpc_i2c_of_match,
+ .probe = mpc_i2c_probe,
+ .remove = __devexit_p(mpc_i2c_remove),
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = DRV_NAME,
+ },
+};
+
+static int __init mpc_i2c_init(void)
+{
+ int rv;
+
+ rv = of_register_platform_driver(&mpc_i2c_driver);
+ if (rv)
+ printk(KERN_ERR DRV_NAME " of_register_platform_driver failed (%i)\n", rv);
+ return rv;
+}
+
+static void __exit mpc_i2c_exit(void)
+{
+ of_unregister_platform_driver(&mpc_i2c_driver);
+}
+
+module_init(mpc_i2c_init);
+module_exit(mpc_i2c_exit);
+
+#else
+
static int fsl_i2c_probe(struct platform_device *pdev)
{
int result = 0;
@@ -345,8 +478,8 @@ static int fsl_i2c_probe(struct platform_device *pdev)
}
if (i2c->irq != NO_IRQ)
- if ((result = request_irq(i2c->irq, mpc_i2c_isr,
- IRQF_SHARED, "i2c-mpc", i2c)) < 0) {
+ result = request_irq(i2c->irq, mpc_i2c_isr, IRQF_SHARED, "i2c-mpc", i2c);
+ if (result < 0) {
printk(KERN_ERR
"i2c-mpc - failed to attach interrupt\n");
goto fail_irq;
@@ -359,20 +492,21 @@ static int fsl_i2c_probe(struct platform_device *pdev)
i2c->adap.nr = pdev->id;
i2c_set_adapdata(&i2c->adap, i2c);
i2c->adap.dev.parent = &pdev->dev;
- if ((result = i2c_add_numbered_adapter(&i2c->adap)) < 0) {
+ result = i2c_add_numbered_adapter(&i2c->adap);
+ if (result < 0) {
printk(KERN_ERR "i2c-mpc - failed to add adapter\n");
goto fail_add;
}
return result;
- fail_add:
+ fail_add:
if (i2c->irq != NO_IRQ)
free_irq(i2c->irq, i2c);
- fail_irq:
+ fail_irq:
iounmap(i2c->base);
- fail_map:
- fail_get_irq:
+ fail_map:
+ fail_get_irq:
kfree(i2c);
return result;
};
@@ -415,6 +549,8 @@ static void __exit fsl_i2c_exit(void)
module_init(fsl_i2c_init);
module_exit(fsl_i2c_exit);
+#endif
+
MODULE_AUTHOR("Adrian Cox <adrian@humboldt.co.uk>");
MODULE_DESCRIPTION
("I2C-Bus adapter for MPC107 bridge and MPC824x/85xx/52xx processors");
diff --git a/drivers/i2c/busses/powerpc-common.c b/drivers/i2c/busses/powerpc-common.c
new file mode 100644
index 0000000..51b039f
--- /dev/null
+++ b/drivers/i2c/busses/powerpc-common.c
@@ -0,0 +1,81 @@
+/*
+ * powerpc-common.c - routines common to device tree parsing for all
+ * powerpc based i2c hosts
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * (C) Copyright 2008 Jon Smirl <jonsmirl@gmail.com>
+ *
+ */
+
+#include <linux/interrupt.h>
+#include <linux/i2c.h>
+#include <linux/of_platform.h>
+
+#include "powerpc-common.h"
+
+#ifdef CONFIG_PPC_MERGE
+
+void of_register_i2c_devices(struct i2c_adapter *adap, struct device_node *adap_node)
+{
+ void *result;
+ struct device_node *node = NULL;
+
+ while ((node = of_get_next_child(adap_node, node))) {
+ struct i2c_board_info info;
+ const u32 *addr;
+ const char *compatible;
+ int len;
+
+ compatible = of_get_property(node, "compatible", NULL);
+ if (!compatible) {
+ printk(KERN_ERR "i2c-mpc.c: missing compatible attribute\n");
+ continue;
+ }
+
+ addr = of_get_property(node, "reg", &len);
+ if (!addr || len < sizeof(int) || *addr > (1 << 10) - 1) {
+ printk(KERN_ERR "i2c-mpc.c: missing reg attribute for %s\n", compatible);
+ continue;
+ }
+
+ info.irq = irq_of_parse_and_map(node, 0);
+ if (info.irq < NO_IRQ) {
+ printk(KERN_ERR "i2c-mpc.c: invalid irq attribute for %s\n", compatible);
+ continue;
+ }
+
+ /* need full alias i2c:OF,vendor,device */
+ strcpy(info.type, I2C_OF_MODULE_PREFIX);
+ strncat(info.type, compatible, sizeof(info.type));
+ request_module(info.type);
+
+ /* need module alias OF,vendor,device */
+ strcpy(info.type, OF_PREFIX);
+ strncat(info.type, compatible, sizeof(info.type));
+
+ info.platform_data = NULL;
+ info.addr = *addr;
+
+ result = PTR_ERR(i2c_new_device(adap, &info));
+ if (result == NULL) {
+ printk(KERN_ERR "i2c-mpc.c: Failed to load driver for %s, err %d\n", compatible);
+ irq_dispose_mapping(info.irq);
+ continue;
+ }
+ }
+}
+
+#endif
diff --git a/drivers/i2c/busses/powerpc-common.h b/drivers/i2c/busses/powerpc-common.h
new file mode 100644
index 0000000..95f1347
--- /dev/null
+++ b/drivers/i2c/busses/powerpc-common.h
@@ -0,0 +1,23 @@
+/*
+ * powerpc-common.h - routines common to device tree parsing for all
+ * powerpc based i2c hosts
+ *
+ * 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.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ * (C) Copyright 2008 Jon Smirl <jonsmirl@gmail.com>
+ *
+ */
+
+void of_register_i2c_devices(struct i2c_adapter *adap, struct device_node *adap_node);
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
index d1488a0..2e53b39 100644
--- a/include/linux/mod_devicetable.h
+++ b/include/linux/mod_devicetable.h
@@ -371,8 +371,15 @@ struct virtio_device_id {
/* These defines are used to separate PowerPC open firmware
* drivers into their own namespace */
-#define I2C_NAME_SIZE 20
+#define I2C_NAME_SIZE 48 /* Needs to be large enough to hold device tree style names */
#define I2C_MODULE_PREFIX "i2c:"
+#ifdef CONFIG_OF
+#define OF_PREFIX "OF," /* Used to put OF device tree names into their own namespace */
+#define I2C_OF_MODULE_PREFIX I2C_MODULE_PREFIX OF_PREFIX
+#define OF_ID(s, d) { OF_PREFIX s, (d) },
+#else
+#define OF_ID(s, d)
+#endif
struct i2c_device_id {
char name[I2C_NAME_SIZE];
^ permalink raw reply related
* [PATCH 3/3] Add device tree compatible aliases to i2c drivers
From: Jon Smirl @ 2008-01-28 14:42 UTC (permalink / raw)
To: i2c, linuxppc-dev
In-Reply-To: <20080128144202.8410.14647.stgit@terra.home>
PowerPC device trees use a different naming convention than the Linux kernel. Provide alias names for i2c drivers in order to allow them to be loaded by device tree name. The OF_ID macro ensures that the aliases are only present in powerpc builds and separated into their own namespace.
Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
---
drivers/hwmon/f75375s.c | 2 ++
drivers/i2c/chips/ds1682.c | 1 +
drivers/i2c/chips/menelaus.c | 1 +
drivers/i2c/chips/tps65010.c | 4 ++++
drivers/i2c/chips/tsl2550.c | 1 +
drivers/rtc/rtc-ds1307.c | 6 ++++++
drivers/rtc/rtc-ds1374.c | 1 +
drivers/rtc/rtc-m41t80.c | 8 ++++++++
drivers/rtc/rtc-pcf8563.c | 2 ++
drivers/rtc/rtc-rs5c372.c | 4 ++++
10 files changed, 30 insertions(+), 0 deletions(-)
diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
index 4cb4db4..dd548e7 100644
--- a/drivers/hwmon/f75375s.c
+++ b/drivers/hwmon/f75375s.c
@@ -132,6 +132,8 @@ static struct i2c_driver f75375_legacy_driver = {
static const struct i2c_device_id f75375_id[] = {
{ "f75373", f75373 },
{ "f75375", f75375 },
+ OF_ID("fintek,f75373", f75373)
+ OF_ID("fintek,f75375", f75375)
{ },
};
MODULE_DEVICE_TABLE(i2c, f75375_id);
diff --git a/drivers/i2c/chips/ds1682.c b/drivers/i2c/chips/ds1682.c
index 51ff518..817ad1f 100644
--- a/drivers/i2c/chips/ds1682.c
+++ b/drivers/i2c/chips/ds1682.c
@@ -237,6 +237,7 @@ static int ds1682_remove(struct i2c_client *client)
static const struct i2c_device_id ds1682_id[] = {
{ "ds1682", 0 },
+ OF_ID("dallas,ds1682", 0)
{ },
};
MODULE_DEVICE_TABLE(i2c, ds1682_id);
diff --git a/drivers/i2c/chips/menelaus.c b/drivers/i2c/chips/menelaus.c
index 1f9ac5e..ba7d619 100644
--- a/drivers/i2c/chips/menelaus.c
+++ b/drivers/i2c/chips/menelaus.c
@@ -1245,6 +1245,7 @@ static int __exit menelaus_remove(struct i2c_client *client)
static const struct i2c_device_id menelaus_id[] = {
{ "menelaus", 0 },
+ OF_ID("ti,twl92330", 0)
{ },
};
MODULE_DEVICE_TABLE(i2c, menelaus_id);
diff --git a/drivers/i2c/chips/tps65010.c b/drivers/i2c/chips/tps65010.c
index e07274d..9cd1770 100644
--- a/drivers/i2c/chips/tps65010.c
+++ b/drivers/i2c/chips/tps65010.c
@@ -571,6 +571,10 @@ static const struct i2c_device_id tps65010_id[] = {
{ "tps65011", TPS65011 },
{ "tps65012", TPS65012 },
{ "tps65013", TPS65013 },
+ OF_ID("ti,tps65010", TPS65010)
+ OF_ID("ti,tps65011", TPS65011)
+ OF_ID("ti,tps65012", TPS65012)
+ OF_ID("ti,tps65013", TPS65013)
{ },
};
MODULE_DEVICE_TABLE(i2c, tps65010_id);
diff --git a/drivers/i2c/chips/tsl2550.c b/drivers/i2c/chips/tsl2550.c
index 2add8be..8071d6d 100644
--- a/drivers/i2c/chips/tsl2550.c
+++ b/drivers/i2c/chips/tsl2550.c
@@ -454,6 +454,7 @@ static int tsl2550_resume(struct i2c_client *client)
static const struct i2c_device_id tsl2550_id[] = {
{ "tsl2550", 0 },
+ OF_ID("taos,tsl2550", 0)
{ },
};
MODULE_DEVICE_TABLE(i2c, tsl2550_id);
diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
index a5614ab..e363a5f 100644
--- a/drivers/rtc/rtc-ds1307.c
+++ b/drivers/rtc/rtc-ds1307.c
@@ -129,6 +129,12 @@ static const struct i2c_device_id ds1307_id[] = {
{ "ds1339", ds_1339 },
{ "ds1340", ds_1340 },
{ "m41t00", m41t00 },
+ OF_ID("dallas,ds1307", ds_1307)
+ OF_ID("dallas,ds1337", ds_1337)
+ OF_ID("dallas,ds1338", ds_1338)
+ OF_ID("dallas,ds1339", ds_1339)
+ OF_ID("dallas,ds1340", ds_1340)
+ OF_ID("stm,m41t00", m41t00)
{},
};
MODULE_DEVICE_TABLE(i2c, ds1307_id);
diff --git a/drivers/rtc/rtc-ds1374.c b/drivers/rtc/rtc-ds1374.c
index 376ceeb..e4f680a 100644
--- a/drivers/rtc/rtc-ds1374.c
+++ b/drivers/rtc/rtc-ds1374.c
@@ -43,6 +43,7 @@
static const struct i2c_device_id ds1374_id[] = {
{ "ds1374", 0 },
+ OF_ID("dallas,ds1374", 0)
{},
};
MODULE_DEVICE_TABLE(i2c, ds1374_id);
diff --git a/drivers/rtc/rtc-m41t80.c b/drivers/rtc/rtc-m41t80.c
index c672557..663f8b5 100644
--- a/drivers/rtc/rtc-m41t80.c
+++ b/drivers/rtc/rtc-m41t80.c
@@ -69,6 +69,14 @@ static const struct i2c_device_id m41t80_id[] = {
{ "m41st84", M41T80_FEATURE_HT | M41T80_FEATURE_BL },
{ "m41st85", M41T80_FEATURE_HT | M41T80_FEATURE_BL },
{ "m41st87", M41T80_FEATURE_HT | M41T80_FEATURE_BL },
+ OF_ID("stm,m41t80", 0)
+ OF_ID("stm,m41t81", M41T80_FEATURE_HT)
+ OF_ID("stm,m41t81s", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
+ OF_ID("stm,m41t82", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
+ OF_ID("stm,m41t83", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
+ OF_ID("stm,m41st84", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
+ OF_ID("stm,m41st85", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
+ OF_ID("stm,m41st87", M41T80_FEATURE_HT | M41T80_FEATURE_BL)
{},
};
MODULE_DEVICE_TABLE(i2c, m41t80_id);
diff --git a/drivers/rtc/rtc-pcf8563.c b/drivers/rtc/rtc-pcf8563.c
index 8eff549..51d7471 100644
--- a/drivers/rtc/rtc-pcf8563.c
+++ b/drivers/rtc/rtc-pcf8563.c
@@ -263,6 +263,8 @@ static int pcf8563_remove(struct i2c_client *client)
static struct i2c_device_id pcf8563_id[] = {
{"pcf8563", 0},
{"rtc8564", 0},
+ OF_ID("phillips,pcf8563", 0)
+ OF_ID("epson,rtc8564", 0)
{},
};
MODULE_DEVICE_TABLE(i2c, pcf8563_id);
diff --git a/drivers/rtc/rtc-rs5c372.c b/drivers/rtc/rtc-rs5c372.c
index a3e4f8d..cdd26c3 100644
--- a/drivers/rtc/rtc-rs5c372.c
+++ b/drivers/rtc/rtc-rs5c372.c
@@ -74,6 +74,10 @@ static const struct i2c_device_id rs5c372_id[] = {
{ "rs5c372b", rtc_rs5c372b },
{ "rv5c386", rtc_rv5c386 },
{ "rv5c387a", rtc_rv5c387a },
+ OF_ID("ricoh,rs5c372a", rtc_rs5c372a)
+ OF_ID("ricoh,rs5c372b", rtc_rs5c372b)
+ OF_ID("ricoh,rv5c386", rtc_rv5c386)
+ OF_ID("ricoh,rv5c387a", rtc_rv5c387a)
{},
};
MODULE_DEVICE_TABLE(i2c, rs5c372_id);
^ permalink raw reply related
* [PATCH 0/3] Implement device tree based i2c module loading on mpc5200 powerpc
From: Jon Smirl @ 2008-01-28 14:42 UTC (permalink / raw)
To: i2c, linuxppc-dev
These are the final three patches in the series implementing device tree directed loading of i2c modules on mpc5200 powerpc. These patches have been posted multiple times. This revision implements a few minor changes suggested in the last two weeks.
--
Jon Smirl
jonsmirl@gmail.com
^ permalink raw reply
* [PATCH 1/3] Rename i2c-mpc to i2c-mpc-drv in preparation for breaking out common code.
From: Jon Smirl @ 2008-01-28 14:42 UTC (permalink / raw)
To: i2c, linuxppc-dev
In-Reply-To: <20080128144202.8410.14647.stgit@terra.home>
Rename i2c-mpc to i2c-mpc-drv in preparation for breaking out common code.
Signed-off-by: Jon Smirl <jonsmirl@gmail.com>
---
drivers/i2c/busses/Makefile | 2
drivers/i2c/busses/i2c-mpc-drv.c | 421 ++++++++++++++++++++++++++++++++++++++
drivers/i2c/busses/i2c-mpc.c | 421 --------------------------------------
3 files changed, 423 insertions(+), 421 deletions(-)
create mode 100644 drivers/i2c/busses/i2c-mpc-drv.c
delete mode 100644 drivers/i2c/busses/i2c-mpc.c
diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index ea7068f..171800d 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -2,6 +2,8 @@
# Makefile for the i2c bus drivers.
#
+i2c-mpc-objs := i2c-mpc-drv.o
+
obj-$(CONFIG_I2C_ALI1535) += i2c-ali1535.o
obj-$(CONFIG_I2C_ALI1563) += i2c-ali1563.o
obj-$(CONFIG_I2C_ALI15X3) += i2c-ali15x3.o
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc-drv.c
similarity index 100%
rename from drivers/i2c/busses/i2c-mpc.c
rename to drivers/i2c/busses/i2c-mpc-drv.c
^ permalink raw reply related
* [PATCH] [PPC] Remove 85xx from arch/ppc
From: Kumar Gala @ 2008-01-28 14:44 UTC (permalink / raw)
To: linuxppc-dev
85xx exists in arch/powerpc as well as cuImage support to boot from
a u-boot that doesn't support device trees.
---
arch/ppc/Kconfig | 51 +-
arch/ppc/Makefile | 8 -
arch/ppc/configs/TQM8540_defconfig | 973 -----------------------
arch/ppc/configs/TQM8541_defconfig | 986 ------------------------
arch/ppc/configs/TQM8555_defconfig | 983 ------------------------
arch/ppc/configs/TQM8560_defconfig | 992 ------------------------
arch/ppc/configs/mpc8540_ads_defconfig | 706 -----------------
arch/ppc/configs/mpc8548_cds_defconfig | 658 ----------------
arch/ppc/configs/mpc8555_cds_defconfig | 784 -------------------
arch/ppc/configs/mpc8560_ads_defconfig | 769 -------------------
arch/ppc/configs/stx_gp3_defconfig | 989 ------------------------
arch/ppc/kernel/Makefile | 1 -
arch/ppc/kernel/asm-offsets.c | 6 -
arch/ppc/kernel/entry.S | 12 +-
arch/ppc/kernel/head_booke.h | 55 --
arch/ppc/kernel/head_fsl_booke.S | 1065 --------------------------
arch/ppc/kernel/misc.S | 46 +--
arch/ppc/kernel/ppc_ksyms.c | 8 +-
arch/ppc/kernel/setup.c | 3 +-
arch/ppc/kernel/traps.c | 121 ---
arch/ppc/mm/Makefile | 1 -
arch/ppc/mm/fsl_booke_mmu.c | 236 ------
arch/ppc/mm/init.c | 6 -
arch/ppc/mm/mmu_decl.h | 6 -
arch/ppc/mm/pgtable.c | 28 -
arch/ppc/platforms/85xx/Kconfig | 106 ---
arch/ppc/platforms/85xx/Makefile | 13 -
arch/ppc/platforms/85xx/mpc8540_ads.c | 226 ------
arch/ppc/platforms/85xx/mpc8540_ads.h | 22 -
arch/ppc/platforms/85xx/mpc8555_cds.h | 23 -
arch/ppc/platforms/85xx/mpc8560_ads.c | 303 --------
arch/ppc/platforms/85xx/mpc8560_ads.h | 24 -
arch/ppc/platforms/85xx/mpc85xx_ads_common.c | 197 -----
arch/ppc/platforms/85xx/mpc85xx_ads_common.h | 67 --
arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 601 ---------------
arch/ppc/platforms/85xx/mpc85xx_cds_common.h | 80 --
arch/ppc/platforms/85xx/sbc8560.c | 234 ------
arch/ppc/platforms/85xx/sbc8560.h | 47 --
arch/ppc/platforms/85xx/sbc85xx.c | 166 ----
arch/ppc/platforms/85xx/sbc85xx.h | 70 --
arch/ppc/platforms/85xx/stx_gp3.c | 339 --------
arch/ppc/platforms/85xx/stx_gp3.h | 69 --
arch/ppc/platforms/85xx/tqm85xx.c | 412 ----------
arch/ppc/platforms/85xx/tqm85xx.h | 53 --
arch/ppc/syslib/Makefile | 8 -
arch/ppc/syslib/mpc85xx_devices.c | 826 --------------------
arch/ppc/syslib/mpc85xx_sys.c | 233 ------
arch/ppc/syslib/ocp.c | 2 +-
arch/ppc/syslib/open_pic.c | 2 +-
arch/ppc/syslib/ppc85xx_common.c | 38 -
arch/ppc/syslib/ppc85xx_common.h | 22 -
arch/ppc/syslib/ppc85xx_setup.c | 367 ---------
arch/ppc/syslib/ppc85xx_setup.h | 56 --
include/asm-powerpc/irq.h | 121 ---
include/asm-ppc/cpm2.h | 2 +-
include/asm-ppc/immap_85xx.h | 126 ---
include/asm-ppc/mmu_context.h | 5 -
include/asm-ppc/mpc85xx.h | 192 -----
include/asm-ppc/pgtable.h | 46 --
include/asm-ppc/ppc_sys.h | 2 -
include/asm-ppc/ppcboot.h | 7 +-
include/asm-ppc/reg_booke.h | 26 -
include/asm-ppc/serial.h | 2 -
63 files changed, 20 insertions(+), 14608 deletions(-)
delete mode 100644 arch/ppc/configs/TQM8540_defconfig
delete mode 100644 arch/ppc/configs/TQM8541_defconfig
delete mode 100644 arch/ppc/configs/TQM8555_defconfig
delete mode 100644 arch/ppc/configs/TQM8560_defconfig
delete mode 100644 arch/ppc/configs/mpc8540_ads_defconfig
delete mode 100644 arch/ppc/configs/mpc8548_cds_defconfig
delete mode 100644 arch/ppc/configs/mpc8555_cds_defconfig
delete mode 100644 arch/ppc/configs/mpc8560_ads_defconfig
delete mode 100644 arch/ppc/configs/stx_gp3_defconfig
delete mode 100644 arch/ppc/kernel/head_fsl_booke.S
delete mode 100644 arch/ppc/mm/fsl_booke_mmu.c
delete mode 100644 arch/ppc/platforms/85xx/Kconfig
delete mode 100644 arch/ppc/platforms/85xx/Makefile
delete mode 100644 arch/ppc/platforms/85xx/mpc8540_ads.c
delete mode 100644 arch/ppc/platforms/85xx/mpc8540_ads.h
delete mode 100644 arch/ppc/platforms/85xx/mpc8555_cds.h
delete mode 100644 arch/ppc/platforms/85xx/mpc8560_ads.c
delete mode 100644 arch/ppc/platforms/85xx/mpc8560_ads.h
delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_ads_common.c
delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_ads_common.h
delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_cds_common.c
delete mode 100644 arch/ppc/platforms/85xx/mpc85xx_cds_common.h
delete mode 100644 arch/ppc/platforms/85xx/sbc8560.c
delete mode 100644 arch/ppc/platforms/85xx/sbc8560.h
delete mode 100644 arch/ppc/platforms/85xx/sbc85xx.c
delete mode 100644 arch/ppc/platforms/85xx/sbc85xx.h
delete mode 100644 arch/ppc/platforms/85xx/stx_gp3.c
delete mode 100644 arch/ppc/platforms/85xx/stx_gp3.h
delete mode 100644 arch/ppc/platforms/85xx/tqm85xx.c
delete mode 100644 arch/ppc/platforms/85xx/tqm85xx.h
delete mode 100644 arch/ppc/syslib/mpc85xx_devices.c
delete mode 100644 arch/ppc/syslib/mpc85xx_sys.c
delete mode 100644 arch/ppc/syslib/ppc85xx_common.c
delete mode 100644 arch/ppc/syslib/ppc85xx_common.h
delete mode 100644 arch/ppc/syslib/ppc85xx_setup.c
delete mode 100644 arch/ppc/syslib/ppc85xx_setup.h
delete mode 100644 include/asm-ppc/immap_85xx.h
delete mode 100644 include/asm-ppc/mpc85xx.h
diff --git a/arch/ppc/Kconfig b/arch/ppc/Kconfig
index 08e083d..db5934c 100644
--- a/arch/ppc/Kconfig
+++ b/arch/ppc/Kconfig
@@ -104,12 +104,6 @@ config 8xx
bool "8xx"
select PPC_LIB_RHEAP
-config E200
- bool "e200"
-
-config E500
- bool "e500"
-
endchoice
config PPC_FPU
@@ -124,25 +118,14 @@ config PPC_DCR
depends on PPC_DCR_NATIVE
default y
-config BOOKE
- bool
- depends on E200 || E500
- default y
-
-config FSL_BOOKE
- bool
- depends on E200 || E500
- default y
-
config PTE_64BIT
bool
- depends on 44x || E500
+ depends on 44x
default y if 44x
- default y if E500 && PHYS_64BIT
config PHYS_64BIT
- bool 'Large physical address support' if E500
- depends on 44x || E500
+ bool
+ depends on 44x
default y if 44x
---help---
This option enables kernel support for larger than 32-bit physical
@@ -167,21 +150,6 @@ config ALTIVEC
If in doubt, say Y here.
-config SPE
- bool "SPE Support"
- depends on E200 || E500
- ---help---
- This option enables kernel support for the Signal Processing
- Extensions (SPE) to the PowerPC processor. The kernel currently
- supports saving and restoring SPE registers, and turning on the
- 'spe enable' bit so user processes can execute SPE instructions.
-
- This option is only useful if you have a processor that supports
- SPE (e500, otherwise known as 85xx series), but does not have any
- effect on a non-spe cpu (it does, however add code to the kernel).
-
- If in doubt, say Y here.
-
config TAU
bool "Thermal Management Support"
depends on 6xx && !8260
@@ -228,7 +196,7 @@ config TAU_AVERAGE
config MATH_EMULATION
bool "Math emulation"
- depends on 4xx || 8xx || E200 || E500
+ depends on 4xx || 8xx
---help---
Some PowerPC chips designed for embedded applications do not have
a floating-point unit and therefore do not implement the
@@ -279,7 +247,6 @@ config PPC601_SYNC_FIX
If in doubt, say Y here.
source arch/ppc/platforms/4xx/Kconfig
-source arch/ppc/platforms/85xx/Kconfig
config PPC_STD_MMU
bool
@@ -288,7 +255,7 @@ config PPC_STD_MMU
config NOT_COHERENT_CACHE
bool
- depends on 4xx || 8xx || E200
+ depends on 4xx || 8xx
default y
endmenu
@@ -1045,13 +1012,13 @@ config GENERIC_ISA_DMA
config PPC_I8259
bool
- default y if 85xx || PPC_PREP
+ default y if PPC_PREP
default n
config PPC_INDIRECT_PCI
bool
depends on PCI
- default y if 40x || 44x || 85xx || PPC_PREP
+ default y if 40x || 44x || PPC_PREP
default n
config EISA
@@ -1068,8 +1035,8 @@ config MCA
bool
config PCI
- bool "PCI support" if 40x || CPM2 || 85xx || PPC_MPC52xx
- default y if !40x && !CPM2 && !8xx && !85xx
+ bool "PCI support" if 40x || CPM2 || PPC_MPC52xx
+ default y if !40x && !CPM2 && !8xx
default PCI_QSPAN if !4xx && !CPM2 && 8xx
help
Find out whether your system includes a PCI bus. PCI is the name of
diff --git a/arch/ppc/Makefile b/arch/ppc/Makefile
index a4fef18..8df7f0e 100644
--- a/arch/ppc/Makefile
+++ b/arch/ppc/Makefile
@@ -36,14 +36,8 @@ LINUXINCLUDE += -Iarch/$(ARCH)/include
CHECKFLAGS += -D__powerpc__
-ifndef CONFIG_FSL_BOOKE
-KBUILD_CFLAGS += -mstring
-endif
-
cpu-as-$(CONFIG_4xx) += -Wa,-m405
cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
-cpu-as-$(CONFIG_E500) += -Wa,-me500
-cpu-as-$(CONFIG_E200) += -Wa,-me200
KBUILD_AFLAGS += $(cpu-as-y)
KBUILD_CFLAGS += $(cpu-as-y)
@@ -55,7 +49,6 @@ head-y := arch/ppc/kernel/head.o
head-$(CONFIG_8xx) := arch/ppc/kernel/head_8xx.o
head-$(CONFIG_4xx) := arch/ppc/kernel/head_4xx.o
head-$(CONFIG_44x) := arch/ppc/kernel/head_44x.o
-head-$(CONFIG_FSL_BOOKE) := arch/ppc/kernel/head_fsl_booke.o
head-$(CONFIG_PPC_FPU) += arch/powerpc/kernel/fpu.o
@@ -65,7 +58,6 @@ core-y += arch/ppc/kernel/ arch/powerpc/kernel/ \
arch/ppc/syslib/ arch/powerpc/sysdev/ \
arch/powerpc/lib/
core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/
-core-$(CONFIG_85xx) += arch/ppc/platforms/85xx/
core-$(CONFIG_MATH_EMULATION) += arch/powerpc/math-emu/
core-$(CONFIG_XMON) += arch/ppc/xmon/
drivers-$(CONFIG_8xx) += arch/ppc/8xx_io/
diff --git a/arch/ppc/kernel/Makefile b/arch/ppc/kernel/Makefile
index 5da0ca7..7b73905 100644
--- a/arch/ppc/kernel/Makefile
+++ b/arch/ppc/kernel/Makefile
@@ -4,7 +4,6 @@
extra-$(CONFIG_PPC_STD_MMU) := head.o
extra-$(CONFIG_40x) := head_4xx.o
extra-$(CONFIG_44x) := head_44x.o
-extra-$(CONFIG_FSL_BOOKE) := head_fsl_booke.o
extra-$(CONFIG_8xx) := head_8xx.o
extra-y += vmlinux.lds
diff --git a/arch/ppc/kernel/asm-offsets.c b/arch/ppc/kernel/asm-offsets.c
index e8e9432..a51a177 100644
--- a/arch/ppc/kernel/asm-offsets.c
+++ b/arch/ppc/kernel/asm-offsets.c
@@ -54,12 +54,6 @@ main(void)
DEFINE(THREAD_VSCR, offsetof(struct thread_struct, vscr));
DEFINE(THREAD_USED_VR, offsetof(struct thread_struct, used_vr));
#endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_SPE
- DEFINE(THREAD_EVR0, offsetof(struct thread_struct, evr[0]));
- DEFINE(THREAD_ACC, offsetof(struct thread_struct, acc));
- DEFINE(THREAD_SPEFSCR, offsetof(struct thread_struct, spefscr));
- DEFINE(THREAD_USED_SPE, offsetof(struct thread_struct, used_spe));
-#endif /* CONFIG_SPE */
/* Interrupt register frame */
DEFINE(STACK_FRAME_OVERHEAD, STACK_FRAME_OVERHEAD);
DEFINE(INT_FRAME_SIZE, STACK_FRAME_OVERHEAD + sizeof(struct pt_regs));
diff --git a/arch/ppc/kernel/entry.S b/arch/ppc/kernel/entry.S
index 59e77eb..5f3a5d0 100644
--- a/arch/ppc/kernel/entry.S
+++ b/arch/ppc/kernel/entry.S
@@ -519,12 +519,7 @@ BEGIN_FTR_SECTION
stw r12,THREAD+THREAD_VRSAVE(r2)
END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
#endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_SPE
- oris r0,r0,MSR_SPE@h /* Disable SPE */
- mfspr r12,SPRN_SPEFSCR /* save spefscr register value */
- stw r12,THREAD+THREAD_SPEFSCR(r2)
-#endif /* CONFIG_SPE */
- and. r0,r0,r11 /* FP or altivec or SPE enabled? */
+ and. r0,r0,r11 /* FP or altivec enabled? */
beq+ 1f
andc r11,r11,r0
MTMSRD(r11)
@@ -557,11 +552,6 @@ BEGIN_FTR_SECTION
mtspr SPRN_VRSAVE,r0 /* if G4, restore VRSAVE reg */
END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
#endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_SPE
- lwz r0,THREAD+THREAD_SPEFSCR(r2)
- mtspr SPRN_SPEFSCR,r0 /* restore SPEFSCR reg */
-#endif /* CONFIG_SPE */
-
lwz r0,_CCR(r1)
mtcrf 0xFF,r0
/* r3-r12 are destroyed -- Cort */
diff --git a/arch/ppc/kernel/head_booke.h b/arch/ppc/kernel/head_booke.h
index f3d274c..166d597 100644
--- a/arch/ppc/kernel/head_booke.h
+++ b/arch/ppc/kernel/head_booke.h
@@ -212,60 +212,6 @@ label:
* save (and later restore) the MSR via SPRN_CSRR1, which will still have
* the MSR_DE bit set.
*/
-#ifdef CONFIG_E200
-#define DEBUG_EXCEPTION \
- START_EXCEPTION(Debug); \
- DEBUG_EXCEPTION_PROLOG; \
- \
- /* \
- * If there is a single step or branch-taken exception in an \
- * exception entry sequence, it was probably meant to apply to \
- * the code where the exception occurred (since exception entry \
- * doesn't turn off DE automatically). We simulate the effect \
- * of turning off DE on entry to an exception handler by turning \
- * off DE in the CSRR1 value and clearing the debug status. \
- */ \
- mfspr r10,SPRN_DBSR; /* check single-step/branch taken */ \
- andis. r10,r10,DBSR_IC@h; \
- beq+ 2f; \
- \
- lis r10,KERNELBASE@h; /* check if exception in vectors */ \
- ori r10,r10,KERNELBASE@l; \
- cmplw r12,r10; \
- blt+ 2f; /* addr below exception vectors */ \
- \
- lis r10,Debug@h; \
- ori r10,r10,Debug@l; \
- cmplw r12,r10; \
- bgt+ 2f; /* addr above exception vectors */ \
- \
- /* here it looks like we got an inappropriate debug exception. */ \
-1: rlwinm r9,r9,0,~MSR_DE; /* clear DE in the CDRR1 value */ \
- lis r10,DBSR_IC@h; /* clear the IC event */ \
- mtspr SPRN_DBSR,r10; \
- /* restore state and get out */ \
- lwz r10,_CCR(r11); \
- lwz r0,GPR0(r11); \
- lwz r1,GPR1(r11); \
- mtcrf 0x80,r10; \
- mtspr SPRN_DSRR0,r12; \
- mtspr SPRN_DSRR1,r9; \
- lwz r9,GPR9(r11); \
- lwz r12,GPR12(r11); \
- mtspr DEBUG_SPRG,r8; \
- BOOKE_LOAD_EXC_LEVEL_STACK(DEBUG); /* r8 points to the debug stack */ \
- lwz r10,GPR10-INT_FRAME_SIZE(r8); \
- lwz r11,GPR11-INT_FRAME_SIZE(r8); \
- mfspr r8,DEBUG_SPRG; \
- \
- RFDI; \
- b .; \
- \
- /* continue normal handling for a critical exception... */ \
-2: mfspr r4,SPRN_DBSR; \
- addi r3,r1,STACK_FRAME_OVERHEAD; \
- EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, debug_transfer_to_handler, ret_from_debug_exc)
-#else
#define DEBUG_EXCEPTION \
START_EXCEPTION(Debug); \
CRITICAL_EXCEPTION_PROLOG; \
@@ -318,7 +264,6 @@ label:
2: mfspr r4,SPRN_DBSR; \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_TEMPLATE(DebugException, 0x2002, (MSR_KERNEL & ~(MSR_ME|MSR_DE|MSR_CE)), NOCOPY, crit_transfer_to_handler, ret_from_crit_exc)
-#endif
#define INSTRUCTION_STORAGE_EXCEPTION \
START_EXCEPTION(InstructionStorage) \
diff --git a/arch/ppc/kernel/misc.S b/arch/ppc/kernel/misc.S
index e0c850d..d5e0dfc 100644
--- a/arch/ppc/kernel/misc.S
+++ b/arch/ppc/kernel/misc.S
@@ -165,24 +165,7 @@ _GLOBAL(_tlbia)
ble 1b
isync
-#elif defined(CONFIG_FSL_BOOKE)
- /* Invalidate all entries in TLB0 */
- li r3, 0x04
- tlbivax 0,3
- /* Invalidate all entries in TLB1 */
- li r3, 0x0c
- tlbivax 0,3
- /* Invalidate all entries in TLB2 */
- li r3, 0x14
- tlbivax 0,3
- /* Invalidate all entries in TLB3 */
- li r3, 0x1c
- tlbivax 0,3
- msync
-#ifdef CONFIG_SMP
- tlbsync
-#endif /* CONFIG_SMP */
-#else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */
+#else /* !(CONFIG_40x || CONFIG_44x) */
#if defined(CONFIG_SMP)
rlwinm r8,r1,0,0,18
lwz r8,TI_CPU(r8)
@@ -268,20 +251,7 @@ _GLOBAL(_tlbie)
tlbwe r3, r3, PPC44x_TLB_PAGEID
isync
10:
-#elif defined(CONFIG_FSL_BOOKE)
- rlwinm r4, r3, 0, 0, 19
- ori r5, r4, 0x08 /* TLBSEL = 1 */
- ori r6, r4, 0x10 /* TLBSEL = 2 */
- ori r7, r4, 0x18 /* TLBSEL = 3 */
- tlbivax 0, r4
- tlbivax 0, r5
- tlbivax 0, r6
- tlbivax 0, r7
- msync
-#if defined(CONFIG_SMP)
- tlbsync
-#endif /* CONFIG_SMP */
-#else /* !(CONFIG_40x || CONFIG_44x || CONFIG_FSL_BOOKE) */
+#else /* !(CONFIG_40x || CONFIG_44x) */
#if defined(CONFIG_SMP)
rlwinm r8,r1,0,0,18
lwz r8,TI_CPU(r8)
@@ -338,18 +308,6 @@ _GLOBAL(flush_instruction_cache)
lis r3, KERNELBASE@h
iccci 0,r3
#endif
-#elif CONFIG_FSL_BOOKE
-BEGIN_FTR_SECTION
- mfspr r3,SPRN_L1CSR0
- ori r3,r3,L1CSR0_CFI|L1CSR0_CLFC
- /* msync; isync recommended here */
- mtspr SPRN_L1CSR0,r3
- isync
- blr
-END_FTR_SECTION_IFSET(CPU_FTR_UNIFIED_ID_CACHE)
- mfspr r3,SPRN_L1CSR1
- ori r3,r3,L1CSR1_ICFI|L1CSR1_ICLFR
- mtspr SPRN_L1CSR1,r3
#else
mfspr r3,SPRN_PVR
rlwinm r3,r3,16,16,31
diff --git a/arch/ppc/kernel/ppc_ksyms.c b/arch/ppc/kernel/ppc_ksyms.c
index ba729ce..c353502 100644
--- a/arch/ppc/kernel/ppc_ksyms.c
+++ b/arch/ppc/kernel/ppc_ksyms.c
@@ -166,12 +166,6 @@ EXPORT_SYMBOL(last_task_used_altivec);
#endif
EXPORT_SYMBOL(giveup_altivec);
#endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_SPE
-#ifndef CONFIG_SMP
-EXPORT_SYMBOL(last_task_used_spe);
-#endif
-EXPORT_SYMBOL(giveup_spe);
-#endif /* CONFIG_SPE */
#ifdef CONFIG_SMP
EXPORT_SYMBOL(smp_call_function);
EXPORT_SYMBOL(smp_hw_index);
@@ -244,7 +238,7 @@ EXPORT_SYMBOL(debugger_fault_handler);
EXPORT_SYMBOL(cpm_install_handler);
EXPORT_SYMBOL(cpm_free_handler);
#endif /* CONFIG_8xx */
-#if defined(CONFIG_8xx) || defined(CONFIG_40x) || defined(CONFIG_85xx)
+#if defined(CONFIG_8xx) || defined(CONFIG_40x)
EXPORT_SYMBOL(__res);
#endif
diff --git a/arch/ppc/kernel/setup.c b/arch/ppc/kernel/setup.c
index 5888ae6..d51368d 100644
--- a/arch/ppc/kernel/setup.c
+++ b/arch/ppc/kernel/setup.c
@@ -38,8 +38,7 @@
#include <asm/xmon.h>
#include <asm/ocp.h>
-#define USES_PPC_SYS (defined(CONFIG_85xx) || \
- defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
+#define USES_PPC_SYS (defined(CONFIG_MPC10X_BRIDGE) || defined(CONFIG_8260) || \
defined(CONFIG_PPC_MPC52xx))
#if USES_PPC_SYS
diff --git a/arch/ppc/kernel/traps.c b/arch/ppc/kernel/traps.c
index 25a1085..a467a42 100644
--- a/arch/ppc/kernel/traps.c
+++ b/arch/ppc/kernel/traps.c
@@ -194,11 +194,7 @@ static inline int check_io_access(struct pt_regs *regs)
/* On 4xx, the reason for the machine check or program exception
is in the ESR. */
#define get_reason(regs) ((regs)->dsisr)
-#ifndef CONFIG_FSL_BOOKE
#define get_mc_reason(regs) ((regs)->dsisr)
-#else
-#define get_mc_reason(regs) (mfspr(SPRN_MCSR))
-#endif
#define REASON_FP ESR_FP
#define REASON_ILLEGAL (ESR_PIL | ESR_PUO)
#define REASON_PRIVILEGED ESR_PPR
@@ -281,66 +277,6 @@ int machine_check_440A(struct pt_regs *regs)
}
return 0;
}
-#elif defined(CONFIG_E500)
-int machine_check_e500(struct pt_regs *regs)
-{
- unsigned long reason = get_mc_reason(regs);
-
- printk("Machine check in kernel mode.\n");
- printk("Caused by (from MCSR=%lx): ", reason);
-
- if (reason & MCSR_MCP)
- printk("Machine Check Signal\n");
- if (reason & MCSR_ICPERR)
- printk("Instruction Cache Parity Error\n");
- if (reason & MCSR_DCP_PERR)
- printk("Data Cache Push Parity Error\n");
- if (reason & MCSR_DCPERR)
- printk("Data Cache Parity Error\n");
- if (reason & MCSR_BUS_IAERR)
- printk("Bus - Instruction Address Error\n");
- if (reason & MCSR_BUS_RAERR)
- printk("Bus - Read Address Error\n");
- if (reason & MCSR_BUS_WAERR)
- printk("Bus - Write Address Error\n");
- if (reason & MCSR_BUS_IBERR)
- printk("Bus - Instruction Data Error\n");
- if (reason & MCSR_BUS_RBERR)
- printk("Bus - Read Data Bus Error\n");
- if (reason & MCSR_BUS_WBERR)
- printk("Bus - Read Data Bus Error\n");
- if (reason & MCSR_BUS_IPERR)
- printk("Bus - Instruction Parity Error\n");
- if (reason & MCSR_BUS_RPERR)
- printk("Bus - Read Parity Error\n");
-
- return 0;
-}
-#elif defined(CONFIG_E200)
-int machine_check_e200(struct pt_regs *regs)
-{
- unsigned long reason = get_mc_reason(regs);
-
- printk("Machine check in kernel mode.\n");
- printk("Caused by (from MCSR=%lx): ", reason);
-
- if (reason & MCSR_MCP)
- printk("Machine Check Signal\n");
- if (reason & MCSR_CP_PERR)
- printk("Cache Push Parity Error\n");
- if (reason & MCSR_CPERR)
- printk("Cache Parity Error\n");
- if (reason & MCSR_EXCP_ERR)
- printk("ISI, ITLB, or Bus Error on first instruction fetch for an exception handler\n");
- if (reason & MCSR_BUS_IRERR)
- printk("Bus - Read Bus Error on instruction fetch\n");
- if (reason & MCSR_BUS_DRERR)
- printk("Bus - Read Bus Error on data load\n");
- if (reason & MCSR_BUS_WRERR)
- printk("Bus - Write Bus Error on buffered store or cache line push\n");
-
- return 0;
-}
#else
int machine_check_generic(struct pt_regs *regs)
{
@@ -866,63 +802,6 @@ void altivec_assist_exception(struct pt_regs *regs)
}
#endif /* CONFIG_ALTIVEC */
-#ifdef CONFIG_E500
-void performance_monitor_exception(struct pt_regs *regs)
-{
- perf_irq(regs);
-}
-#endif
-
-#ifdef CONFIG_FSL_BOOKE
-void CacheLockingException(struct pt_regs *regs, unsigned long address,
- unsigned long error_code)
-{
- /* We treat cache locking instructions from the user
- * as priv ops, in the future we could try to do
- * something smarter
- */
- if (error_code & (ESR_DLK|ESR_ILK))
- _exception(SIGILL, regs, ILL_PRVOPC, regs->nip);
- return;
-}
-#endif /* CONFIG_FSL_BOOKE */
-
-#ifdef CONFIG_SPE
-void SPEFloatingPointException(struct pt_regs *regs)
-{
- unsigned long spefscr;
- int fpexc_mode;
- int code = 0;
-
- spefscr = current->thread.spefscr;
- fpexc_mode = current->thread.fpexc_mode;
-
- /* Hardware does not necessarily set sticky
- * underflow/overflow/invalid flags */
- if ((spefscr & SPEFSCR_FOVF) && (fpexc_mode & PR_FP_EXC_OVF)) {
- code = FPE_FLTOVF;
- spefscr |= SPEFSCR_FOVFS;
- }
- else if ((spefscr & SPEFSCR_FUNF) && (fpexc_mode & PR_FP_EXC_UND)) {
- code = FPE_FLTUND;
- spefscr |= SPEFSCR_FUNFS;
- }
- else if ((spefscr & SPEFSCR_FDBZ) && (fpexc_mode & PR_FP_EXC_DIV))
- code = FPE_FLTDIV;
- else if ((spefscr & SPEFSCR_FINV) && (fpexc_mode & PR_FP_EXC_INV)) {
- code = FPE_FLTINV;
- spefscr |= SPEFSCR_FINVS;
- }
- else if ((spefscr & (SPEFSCR_FG | SPEFSCR_FX)) && (fpexc_mode & PR_FP_EXC_RES))
- code = FPE_FLTRES;
-
- current->thread.spefscr = spefscr;
-
- _exception(SIGFPE, regs, code, regs->nip);
- return;
-}
-#endif
-
#ifdef CONFIG_BOOKE_WDT
/*
* Default handler for a Watchdog exception,
diff --git a/arch/ppc/mm/Makefile b/arch/ppc/mm/Makefile
index cd3eae1..691ba2b 100644
--- a/arch/ppc/mm/Makefile
+++ b/arch/ppc/mm/Makefile
@@ -8,4 +8,3 @@ obj-y := fault.o init.o mem_pieces.o \
obj-$(CONFIG_PPC_STD_MMU) += hashtable.o ppc_mmu.o tlb.o
obj-$(CONFIG_40x) += 4xx_mmu.o
obj-$(CONFIG_44x) += 44x_mmu.o
-obj-$(CONFIG_FSL_BOOKE) += fsl_booke_mmu.o
diff --git a/arch/ppc/mm/init.c b/arch/ppc/mm/init.c
index dd898d3..7444df3 100644
--- a/arch/ppc/mm/init.c
+++ b/arch/ppc/mm/init.c
@@ -241,12 +241,6 @@ void __init MMU_init(void)
if (__max_memory && total_memory > __max_memory)
total_memory = __max_memory;
total_lowmem = total_memory;
-#ifdef CONFIG_FSL_BOOKE
- /* Freescale Book-E parts expect lowmem to be mapped by fixed TLB
- * entries, so we need to adjust lowmem to match the amount we can map
- * in the fixed entries */
- adjust_total_lowmem();
-#endif /* CONFIG_FSL_BOOKE */
if (total_lowmem > __max_low_memory) {
total_lowmem = __max_low_memory;
#ifndef CONFIG_HIGHMEM
diff --git a/arch/ppc/mm/mmu_decl.h b/arch/ppc/mm/mmu_decl.h
index b298b60..5f813e3 100644
--- a/arch/ppc/mm/mmu_decl.h
+++ b/arch/ppc/mm/mmu_decl.h
@@ -58,12 +58,6 @@ extern unsigned int num_tlbcam_entries;
extern void MMU_init_hw(void);
extern unsigned long mmu_mapin_ram(void);
-#elif defined(CONFIG_FSL_BOOKE)
-#define flush_HPTE(pid, va, pg) _tlbie(va, pid)
-extern void MMU_init_hw(void);
-extern unsigned long mmu_mapin_ram(void);
-extern void adjust_total_lowmem(void);
-
#else
/* anything except 4xx or 8xx */
extern void MMU_init_hw(void);
diff --git a/arch/ppc/mm/pgtable.c b/arch/ppc/mm/pgtable.c
index 1f51e6c..fadacfd 100644
--- a/arch/ppc/mm/pgtable.c
+++ b/arch/ppc/mm/pgtable.c
@@ -42,10 +42,6 @@ int io_bat_index;
#define HAVE_BATS 1
#endif
-#if defined(CONFIG_FSL_BOOKE)
-#define HAVE_TLBCAM 1
-#endif
-
extern char etext[], _stext[];
#ifdef CONFIG_SMP
@@ -63,15 +59,6 @@ void setbat(int index, unsigned long virt, unsigned long phys,
#define p_mapped_by_bats(x) (0UL)
#endif /* HAVE_BATS */
-#ifdef HAVE_TLBCAM
-extern unsigned int tlbcam_index;
-extern unsigned long v_mapped_by_tlbcam(unsigned long va);
-extern unsigned long p_mapped_by_tlbcam(unsigned long pa);
-#else /* !HAVE_TLBCAM */
-#define v_mapped_by_tlbcam(x) (0UL)
-#define p_mapped_by_tlbcam(x) (0UL)
-#endif /* HAVE_TLBCAM */
-
#ifdef CONFIG_PTE_64BIT
/* 44x uses an 8kB pgdir because it has 8-byte Linux PTEs. */
#define PGDIR_ORDER 1
@@ -213,9 +200,6 @@ __ioremap(phys_addr_t addr, unsigned long size, unsigned long flags)
if ((v = p_mapped_by_bats(p)) /*&& p_mapped_by_bats(p+size-1)*/ )
goto out;
- if ((v = p_mapped_by_tlbcam(p)))
- goto out;
-
if (mem_init_done) {
struct vm_struct *area;
area = get_vm_area(size, VM_IOREMAP);
@@ -341,18 +325,6 @@ void __init io_block_mapping(unsigned long virt, phys_addr_t phys,
}
#endif /* HAVE_BATS */
-#ifdef HAVE_TLBCAM
- /*
- * Use a CAM for this if possible...
- */
- if (tlbcam_index < num_tlbcam_entries && is_power_of_4(size)
- && (virt & (size - 1)) == 0 && (phys & (size - 1)) == 0) {
- settlbcam(tlbcam_index, virt, phys, size, flags, 0);
- ++tlbcam_index;
- return;
- }
-#endif /* HAVE_TLBCAM */
-
/* No BATs available, put it in the page tables. */
for (i = 0; i < size; i += PAGE_SIZE)
map_page(virt + i, phys + i, flags);
diff --git a/arch/ppc/syslib/Makefile b/arch/ppc/syslib/Makefile
index 4d158f3..52ddebe 100644
--- a/arch/ppc/syslib/Makefile
+++ b/arch/ppc/syslib/Makefile
@@ -87,14 +87,6 @@ endif
obj-$(CONFIG_BOOTX_TEXT) += btext.o
obj-$(CONFIG_MPC10X_BRIDGE) += mpc10x_common.o ppc_sys.o
obj-$(CONFIG_MPC10X_OPENPIC) += open_pic.o
-obj-$(CONFIG_85xx) += open_pic.o ppc85xx_common.o ppc85xx_setup.o \
- ppc_sys.o mpc85xx_sys.o \
- mpc85xx_devices.o
-ifeq ($(CONFIG_85xx),y)
-obj-$(CONFIG_PCI) += pci_auto.o
-endif
-obj-$(CONFIG_MPC8548_CDS) += todc_time.o
-obj-$(CONFIG_MPC8555_CDS) += todc_time.o
obj-$(CONFIG_PPC_MPC52xx) += mpc52xx_setup.o mpc52xx_pic.o \
mpc52xx_sys.o mpc52xx_devices.o ppc_sys.o
ifeq ($(CONFIG_PPC_MPC52xx),y)
diff --git a/arch/ppc/syslib/ocp.c b/arch/ppc/syslib/ocp.c
index d42d408..ac80370 100644
--- a/arch/ppc/syslib/ocp.c
+++ b/arch/ppc/syslib/ocp.c
@@ -20,7 +20,7 @@
* of peripherals are found on embedded SoC (System On a Chip)
* processors or highly integrated system controllers that have
* a host bridge and many peripherals. Common examples where
- * this is already used include the PPC4xx, PPC85xx, MPC52xx,
+ * this is already used include the PPC4xx, MPC52xx,
* and MV64xxx parts.
*
* This subsystem creates a standard OCP bus type within the
diff --git a/arch/ppc/syslib/open_pic.c b/arch/ppc/syslib/open_pic.c
index 18ec947..780a3b9 100644
--- a/arch/ppc/syslib/open_pic.c
+++ b/arch/ppc/syslib/open_pic.c
@@ -24,7 +24,7 @@
#include "open_pic_defs.h"
-#if defined(CONFIG_PRPMC800) || defined(CONFIG_85xx)
+#if defined(CONFIG_PRPMC800)
#define OPENPIC_BIG_ENDIAN
#endif
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 4a015da..0efe7b2 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -483,127 +483,6 @@ static __inline__ int irq_canonicalize(int irq)
*/
#define mk_int_int_mask(IL) (1 << (7 - (IL/2)))
-#elif defined(CONFIG_85xx)
-/* Now include the board configuration specific associations.
-*/
-#include <asm/mpc85xx.h>
-
-/* The MPC8548 openpic has 48 internal interrupts and 12 external
- * interrupts.
- *
- * We are "flattening" the interrupt vectors of the cascaded CPM
- * so that we can uniquely identify any interrupt source with a
- * single integer.
- */
-#define NR_CPM_INTS 64
-#define NR_EPIC_INTS 60
-#ifndef NR_8259_INTS
-#define NR_8259_INTS 0
-#endif
-#define NUM_8259_INTERRUPTS NR_8259_INTS
-
-#ifndef CPM_IRQ_OFFSET
-#define CPM_IRQ_OFFSET 0
-#endif
-
-#define NR_IRQS (NR_EPIC_INTS + NR_CPM_INTS + NR_8259_INTS)
-
-/* Internal IRQs on MPC85xx OpenPIC */
-
-#ifndef MPC85xx_OPENPIC_IRQ_OFFSET
-#ifdef CONFIG_CPM2
-#define MPC85xx_OPENPIC_IRQ_OFFSET (CPM_IRQ_OFFSET + NR_CPM_INTS)
-#else
-#define MPC85xx_OPENPIC_IRQ_OFFSET 0
-#endif
-#endif
-
-/* Not all of these exist on all MPC85xx implementations */
-#define MPC85xx_IRQ_L2CACHE ( 0 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_ECM ( 1 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DDR ( 2 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_LBIU ( 3 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DMA0 ( 4 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DMA1 ( 5 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DMA2 ( 6 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DMA3 ( 7 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_PCI1 ( 8 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_PCI2 ( 9 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_RIO_ERROR ( 9 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_RIO_BELL (10 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_RIO_TX (11 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_RIO_RX (12 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC1_TX (13 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC1_RX (14 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC3_TX (15 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC3_RX (16 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC3_ERROR (17 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC1_ERROR (18 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC2_TX (19 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC2_RX (20 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC4_TX (21 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC4_RX (22 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC4_ERROR (23 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_TSEC2_ERROR (24 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_FEC (25 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_DUART (26 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_IIC1 (27 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_PERFMON (28 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_SEC2 (29 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_CPM (30 + MPC85xx_OPENPIC_IRQ_OFFSET)
-
-/* The 12 external interrupt lines */
-#define MPC85xx_IRQ_EXT0 (48 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT1 (49 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT2 (50 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT3 (51 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT4 (52 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT5 (53 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT6 (54 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT7 (55 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT8 (56 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT9 (57 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT10 (58 + MPC85xx_OPENPIC_IRQ_OFFSET)
-#define MPC85xx_IRQ_EXT11 (59 + MPC85xx_OPENPIC_IRQ_OFFSET)
-
-/* CPM related interrupts */
-#define SIU_INT_ERROR ((uint)0x00+CPM_IRQ_OFFSET)
-#define SIU_INT_I2C ((uint)0x01+CPM_IRQ_OFFSET)
-#define SIU_INT_SPI ((uint)0x02+CPM_IRQ_OFFSET)
-#define SIU_INT_RISC ((uint)0x03+CPM_IRQ_OFFSET)
-#define SIU_INT_SMC1 ((uint)0x04+CPM_IRQ_OFFSET)
-#define SIU_INT_SMC2 ((uint)0x05+CPM_IRQ_OFFSET)
-#define SIU_INT_USB ((uint)0x0b+CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER1 ((uint)0x0c+CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER2 ((uint)0x0d+CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER3 ((uint)0x0e+CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER4 ((uint)0x0f+CPM_IRQ_OFFSET)
-#define SIU_INT_FCC1 ((uint)0x20+CPM_IRQ_OFFSET)
-#define SIU_INT_FCC2 ((uint)0x21+CPM_IRQ_OFFSET)
-#define SIU_INT_FCC3 ((uint)0x22+CPM_IRQ_OFFSET)
-#define SIU_INT_MCC1 ((uint)0x24+CPM_IRQ_OFFSET)
-#define SIU_INT_MCC2 ((uint)0x25+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC1 ((uint)0x28+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC2 ((uint)0x29+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC3 ((uint)0x2a+CPM_IRQ_OFFSET)
-#define SIU_INT_SCC4 ((uint)0x2b+CPM_IRQ_OFFSET)
-#define SIU_INT_PC15 ((uint)0x30+CPM_IRQ_OFFSET)
-#define SIU_INT_PC14 ((uint)0x31+CPM_IRQ_OFFSET)
-#define SIU_INT_PC13 ((uint)0x32+CPM_IRQ_OFFSET)
-#define SIU_INT_PC12 ((uint)0x33+CPM_IRQ_OFFSET)
-#define SIU_INT_PC11 ((uint)0x34+CPM_IRQ_OFFSET)
-#define SIU_INT_PC10 ((uint)0x35+CPM_IRQ_OFFSET)
-#define SIU_INT_PC9 ((uint)0x36+CPM_IRQ_OFFSET)
-#define SIU_INT_PC8 ((uint)0x37+CPM_IRQ_OFFSET)
-#define SIU_INT_PC7 ((uint)0x38+CPM_IRQ_OFFSET)
-#define SIU_INT_PC6 ((uint)0x39+CPM_IRQ_OFFSET)
-#define SIU_INT_PC5 ((uint)0x3a+CPM_IRQ_OFFSET)
-#define SIU_INT_PC4 ((uint)0x3b+CPM_IRQ_OFFSET)
-#define SIU_INT_PC3 ((uint)0x3c+CPM_IRQ_OFFSET)
-#define SIU_INT_PC2 ((uint)0x3d+CPM_IRQ_OFFSET)
-#define SIU_INT_PC1 ((uint)0x3e+CPM_IRQ_OFFSET)
-#define SIU_INT_PC0 ((uint)0x3f+CPM_IRQ_OFFSET)
-
#elif defined(CONFIG_PPC_86xx)
#include <asm/mpc86xx.h>
diff --git a/include/asm-ppc/cpm2.h b/include/asm-ppc/cpm2.h
index 12a2860..4c53822 100644
--- a/include/asm-ppc/cpm2.h
+++ b/include/asm-ppc/cpm2.h
@@ -90,7 +90,7 @@
*/
#define CPM_DATAONLY_BASE ((uint)128)
#define CPM_DP_NOSPACE ((uint)0x7fffffff)
-#if defined(CONFIG_8272) || defined(CONFIG_MPC8555)
+#if defined(CONFIG_8272)
#define CPM_DATAONLY_SIZE ((uint)(8 * 1024) - CPM_DATAONLY_BASE)
#define CPM_FCC_SPECIAL_BASE ((uint)0x00009000)
#else
diff --git a/include/asm-ppc/mmu_context.h b/include/asm-ppc/mmu_context.h
index b2e25d8..9f097e2 100644
--- a/include/asm-ppc/mmu_context.h
+++ b/include/asm-ppc/mmu_context.h
@@ -64,11 +64,6 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
#define LAST_CONTEXT 255
#define FIRST_CONTEXT 1
-#elif defined(CONFIG_E200) || defined(CONFIG_E500)
-#define NO_CONTEXT 256
-#define LAST_CONTEXT 255
-#define FIRST_CONTEXT 1
-
#else
/* PPC 6xx, 7xx CPUs */
diff --git a/include/asm-ppc/pgtable.h b/include/asm-ppc/pgtable.h
index 063ad91..69347bd 100644
--- a/include/asm-ppc/pgtable.h
+++ b/include/asm-ppc/pgtable.h
@@ -271,48 +271,6 @@ extern unsigned long ioremap_bot, ioremap_base;
/* ERPN in a PTE never gets cleared, ignore it */
#define _PTE_NONE_MASK 0xffffffff00000000ULL
-#elif defined(CONFIG_FSL_BOOKE)
-/*
- MMU Assist Register 3:
-
- 32 33 34 35 36 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63
- RPN...................... 0 0 U0 U1 U2 U3 UX SX UW SW UR SR
-
- - PRESENT *must* be in the bottom three bits because swap cache
- entries use the top 29 bits.
-
- - FILE *must* be in the bottom three bits because swap cache
- entries use the top 29 bits.
-*/
-
-/* Definitions for FSL Book-E Cores */
-#define _PAGE_PRESENT 0x00001 /* S: PTE contains a translation */
-#define _PAGE_USER 0x00002 /* S: User page (maps to UR) */
-#define _PAGE_FILE 0x00002 /* S: when !present: nonlinear file mapping */
-#define _PAGE_ACCESSED 0x00004 /* S: Page referenced */
-#define _PAGE_HWWRITE 0x00008 /* H: Dirty & RW, set in exception */
-#define _PAGE_RW 0x00010 /* S: Write permission */
-#define _PAGE_HWEXEC 0x00020 /* H: UX permission */
-
-#define _PAGE_ENDIAN 0x00040 /* H: E bit */
-#define _PAGE_GUARDED 0x00080 /* H: G bit */
-#define _PAGE_COHERENT 0x00100 /* H: M bit */
-#define _PAGE_NO_CACHE 0x00200 /* H: I bit */
-#define _PAGE_WRITETHRU 0x00400 /* H: W bit */
-
-#ifdef CONFIG_PTE_64BIT
-#define _PAGE_DIRTY 0x08000 /* S: Page dirty */
-
-/* ERPN in a PTE never gets cleared, ignore it */
-#define _PTE_NONE_MASK 0xffffffffffff0000ULL
-#else
-#define _PAGE_DIRTY 0x00800 /* S: Page dirty */
-#endif
-
-#define _PMD_PRESENT 0
-#define _PMD_PRESENT_MASK (PAGE_MASK)
-#define _PMD_BAD (~PAGE_MASK)
-
#elif defined(CONFIG_8xx)
/* Definitions for 8xx embedded chips. */
#define _PAGE_PRESENT 0x0001 /* Page is valid */
@@ -484,11 +442,7 @@ extern unsigned long bad_call_to_PMD_PAGE_SIZE(void);
/* in some case we want to additionaly adjust where the pfn is in the pte to
* allow room for more flags */
-#if defined(CONFIG_FSL_BOOKE) && defined(CONFIG_PTE_64BIT)
-#define PFN_SHIFT_OFFSET (PAGE_SHIFT + 8)
-#else
#define PFN_SHIFT_OFFSET (PAGE_SHIFT)
-#endif
#define pte_pfn(x) (pte_val(x) >> PFN_SHIFT_OFFSET)
#define pte_page(x) pfn_to_page(pte_pfn(x))
diff --git a/include/asm-ppc/ppc_sys.h b/include/asm-ppc/ppc_sys.h
index 80c5851..d2fee41 100644
--- a/include/asm-ppc/ppc_sys.h
+++ b/include/asm-ppc/ppc_sys.h
@@ -23,8 +23,6 @@
#if defined(CONFIG_8260)
#include <asm/mpc8260.h>
-#elif defined(CONFIG_85xx)
-#include <asm/mpc85xx.h>
#elif defined(CONFIG_8xx)
#include <asm/mpc8xx.h>
#elif defined(CONFIG_PPC_MPC52xx)
diff --git a/include/asm-ppc/ppcboot.h b/include/asm-ppc/ppcboot.h
index 18d04e8..3819e17 100644
--- a/include/asm-ppc/ppcboot.h
+++ b/include/asm-ppc/ppcboot.h
@@ -38,7 +38,7 @@ typedef struct bd_info {
unsigned long bi_flashoffset; /* reserved area for startup monitor */
unsigned long bi_sramstart; /* start of SRAM memory */
unsigned long bi_sramsize; /* size of SRAM memory */
-#if defined(CONFIG_8xx) || defined(CONFIG_CPM2) || defined(CONFIG_85xx)
+#if defined(CONFIG_8xx) || defined(CONFIG_CPM2)
unsigned long bi_immr_base; /* base of IMMR register */
#endif
#if defined(CONFIG_PPC_MPC52xx)
@@ -72,12 +72,11 @@ typedef struct bd_info {
#if defined(CONFIG_HYMOD)
hymod_conf_t bi_hymod_conf; /* hymod configuration information */
#endif
-#if defined(CONFIG_EVB64260) || defined(CONFIG_405EP) || defined(CONFIG_44x) || \
- defined(CONFIG_85xx)
+#if defined(CONFIG_EVB64260) || defined(CONFIG_405EP) || defined(CONFIG_44x)
/* second onboard ethernet port */
unsigned char bi_enet1addr[6];
#endif
-#if defined(CONFIG_EVB64260) || defined(CONFIG_440GX) || defined(CONFIG_85xx)
+#if defined(CONFIG_EVB64260) || defined(CONFIG_440GX)
/* third onboard ethernet ports */
unsigned char bi_enet2addr[6];
#endif
diff --git a/include/asm-ppc/reg_booke.h b/include/asm-ppc/reg_booke.h
index 2f1a2af..91e96af 100644
--- a/include/asm-ppc/reg_booke.h
+++ b/include/asm-ppc/reg_booke.h
@@ -218,32 +218,6 @@
#define MCSR_DCFP 0x01000000 /* D-Cache Flush Parity Error */
#define MCSR_IMPE 0x00800000 /* Imprecise Machine Check Exception */
#endif
-#ifdef CONFIG_E500
-#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */
-#define MCSR_ICPERR 0x40000000UL /* I-Cache Parity Error */
-#define MCSR_DCP_PERR 0x20000000UL /* D-Cache Push Parity Error */
-#define MCSR_DCPERR 0x10000000UL /* D-Cache Parity Error */
-#define MCSR_GL_CI 0x00010000UL /* Guarded Load or Cache-Inhibited stwcx. */
-#define MCSR_BUS_IAERR 0x00000080UL /* Instruction Address Error */
-#define MCSR_BUS_RAERR 0x00000040UL /* Read Address Error */
-#define MCSR_BUS_WAERR 0x00000020UL /* Write Address Error */
-#define MCSR_BUS_IBERR 0x00000010UL /* Instruction Data Error */
-#define MCSR_BUS_RBERR 0x00000008UL /* Read Data Bus Error */
-#define MCSR_BUS_WBERR 0x00000004UL /* Write Data Bus Error */
-#define MCSR_BUS_IPERR 0x00000002UL /* Instruction parity Error */
-#define MCSR_BUS_RPERR 0x00000001UL /* Read parity Error */
-#endif
-#ifdef CONFIG_E200
-#define MCSR_MCP 0x80000000UL /* Machine Check Input Pin */
-#define MCSR_CP_PERR 0x20000000UL /* Cache Push Parity Error */
-#define MCSR_CPERR 0x10000000UL /* Cache Parity Error */
-#define MCSR_EXCP_ERR 0x08000000UL /* ISI, ITLB, or Bus Error on 1st insn
- fetch for an exception handler */
-#define MCSR_BUS_IRERR 0x00000010UL /* Read Bus Error on instruction fetch*/
-#define MCSR_BUS_DRERR 0x00000008UL /* Read Bus Error on data load */
-#define MCSR_BUS_WRERR 0x00000004UL /* Write Bus Error on buffered
- store or cache line push */
-#endif
/* Bit definitions for the DBSR. */
/*
diff --git a/include/asm-ppc/serial.h b/include/asm-ppc/serial.h
index 6220ef9..d35ed10 100644
--- a/include/asm-ppc/serial.h
+++ b/include/asm-ppc/serial.h
@@ -29,8 +29,6 @@
#include <platforms/spruce.h>
#elif defined(CONFIG_4xx)
#include <asm/ibm4xx.h>
-#elif defined(CONFIG_85xx)
-#include <asm/mpc85xx.h>
#elif defined(CONFIG_RADSTONE_PPC7D)
#include <platforms/radstone_ppc7d.h>
#else
--
1.5.3.7
^ permalink raw reply related
* Re: [PATCH] POWERPC: Convert StorCenter DTS file to /dts-v1/ format.
From: Kumar Gala @ 2008-01-28 14:46 UTC (permalink / raw)
To: Jon Loeliger; +Cc: ppcdev
In-Reply-To: <479A647F.7090300@freescale.com>
On Fri, 25 Jan 2008, Jon Loeliger wrote:
>
> Signed-off-by: Jon Loeliger <jdl@freescale.com>
> ---
> arch/powerpc/boot/dts/storcenter.dts | 73 +++++++++++++++++----------------
> 1 files changed, 38 insertions(+), 35 deletions(-)
>
applied.
- k
^ permalink raw reply
* Re: [PATCH] POWERPC: Convert all 86xx DTS files to /dts-v1/ format.
From: Kumar Gala @ 2008-01-28 14:46 UTC (permalink / raw)
To: Jon Loeliger; +Cc: linuxppc-dev
In-Reply-To: <479A6325.2030500@freescale.com>
On Fri, 25 Jan 2008, Jon Loeliger wrote:
>
> Also fixed a few minor indent problems as well.
>
> Signed-off-by: Jon Loeliger <jdl@freescale.com>
> ---
>
> arch/powerpc/boot/dts/mpc8610_hpcd.dts | 227 +++++++++++-----------
> arch/powerpc/boot/dts/mpc8641_hpcn.dts | 333 ++++++++++++++++----------------
> 2 files changed, 281 insertions(+), 279 deletions(-)
>
applied.
- k
^ permalink raw reply
* Re: [PATCH 1/9] qe/muram dts: Explicitly set address-cells and size cells for muram
From: Kumar Gala @ 2008-01-28 15:04 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
In-Reply-To: <a050480a21aef92854805e9bee517c0d65d5bd59.1201503958.git.paul.gortmaker@windriver.com>
On Mon, 28 Jan 2008, Paul Gortmaker wrote:
> Currently there are several dts that don't specify address or size
> cells for the muram. This causes dtc to use default values, one of
> which is an address-cells of two, and this breaks the parsing of the
> muram ranges, which is assuming an address-cells of one. For example:
>
> Warning (reg_format): "reg" property in
> /qe@e0100000/muram@10000/data-only@0 has invalid length
> (8 bytes) (#address-cells == 2, #size-cells == 1)
>
> Explicitly setting the address and size cells gets it parsed properly
> and gets rid of the four dtc warnings.
>
> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
> ---
> arch/powerpc/boot/dts/mpc836x_mds.dts | 4 +++-
> 1 files changed, 3 insertions(+), 1 deletions(-)
>
Also fixed up mpc832x_*.dts and mpc8568mds.dts.
applied
- k
^ permalink raw reply
* Re: [PATCH 0/9] 83xx DTS fixes and v1 conversions
From: Kumar Gala @ 2008-01-28 15:07 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
In-Reply-To: <1201505279-25847-1-git-send-email-paul.gortmaker@windriver.com>
On Mon, 28 Jan 2008, Paul Gortmaker wrote:
>
> This series incorporates my earlier qe/muram fix before converting
> the existing mpc83xx DTS files to v1 format. I've also redone the
> mpc834x_mds with the IRQs as decimal as per Kumar's comments and
> re-included that too. I've kept each board as a separate commit
> in case one of them conflicts with what someone else is working on.
>
> Boards covered are: 8349mds, 8349mitx, 8349mitx-gp, 836x_mds,
> 8323_mds, 8323_rdb, and the 8313_rdb. Plus a small tweak to the
> sbc8349 (it was already v1 -- but IRQs were in hex.)
>
> I've fed all the files to DTC before and after to ensure the
> output is the same after the conversion.
>
> I'm not aware of any explicit rules for what is hex vs decimal.
> I've tried to keep things that are usually discussed in decimal
> as decimal quantities (i.e. cache size, IRQ, counts, indicies)
> and all other data that you'd normally expect in hex (addresses,
> IRQ flags, masks) as hex -- including prefixing 0x on values from
> zero to 10 where it tends to make rows of numbers (e.g. ranges)
> align for better readability, even though it isn't required.
>
Can you regen these patches (2..9) againast my latest tree. Also, a
single patch that cleans up all the boards is sufficient.
- k
^ permalink raw reply
* Please pull from 'for-2.6.25' branch
From: Kumar Gala @ 2008-01-28 15:11 UTC (permalink / raw)
To: Paul Mackerras; +Cc: linuxppc-dev
Please pull from 'for-2.6.25' branch of
master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc.git for-2.6.25
to receive the following updates:
Documentation/powerpc/booting-without-of.txt | 177 +++
arch/powerpc/boot/Makefile | 5
arch/powerpc/boot/cuboot-85xx-cpm2.c | 66 +
arch/powerpc/boot/dts/mpc8313erdb.dts | 4
arch/powerpc/boot/dts/mpc8315erdb.dts | 287 +++++
arch/powerpc/boot/dts/mpc832x_mds.dts | 22
arch/powerpc/boot/dts/mpc832x_rdb.dts | 23
arch/powerpc/boot/dts/mpc8349emitx.dts | 4
arch/powerpc/boot/dts/mpc8349emitxgp.dts | 4
arch/powerpc/boot/dts/mpc834x_mds.dts | 256 ++--
arch/powerpc/boot/dts/mpc836x_mds.dts | 25
arch/powerpc/boot/dts/mpc8377_mds.dts | 3
arch/powerpc/boot/dts/mpc8377_rdb.dts | 296 +++++
arch/powerpc/boot/dts/mpc8378_mds.dts | 3
arch/powerpc/boot/dts/mpc8378_rdb.dts | 282 +++++
arch/powerpc/boot/dts/mpc8379_mds.dts | 3
arch/powerpc/boot/dts/mpc8379_rdb.dts | 310 +++++
arch/powerpc/boot/dts/mpc8568mds.dts | 24
arch/powerpc/boot/dts/mpc8610_hpcd.dts | 227 ++--
arch/powerpc/boot/dts/mpc8641_hpcn.dts | 333 +++---
arch/powerpc/boot/dts/sbc8349.dts | 244 ++++
arch/powerpc/boot/dts/sbc8548.dts | 244 ++++
arch/powerpc/boot/dts/sbc8560.dts | 330 ++++++
arch/powerpc/boot/dts/storcenter.dts | 73 -
arch/powerpc/boot/dts/stx_gp3_8560.dts | 228 ++++
arch/powerpc/boot/dts/tqm8540.dts | 204 +++
arch/powerpc/boot/dts/tqm8541.dts | 228 ++++
arch/powerpc/boot/dts/tqm8555.dts | 228 ++++
arch/powerpc/boot/dts/tqm8560.dts | 245 ++++
arch/powerpc/boot/libfdt-wrapper.c | 9
arch/powerpc/boot/ops.h | 11
arch/powerpc/configs/mpc8313_rdb_defconfig | 2
arch/powerpc/configs/mpc8315_rdb_defconfig | 1417 +++++++++++++++++++++++++++
arch/powerpc/configs/mpc837x_rdb_defconfig | 887 ++++++++++++++++
arch/powerpc/configs/sbc834x_defconfig | 800 +++++++++++++++
arch/powerpc/configs/sbc8548_defconfig | 741 ++++++++++++++
arch/powerpc/configs/sbc8560_defconfig | 764 ++++++++++++++
arch/powerpc/configs/stx_gp3_defconfig | 1183 ++++++++++++++++++++++
arch/powerpc/configs/tqm8540_defconfig | 1032 +++++++++++++++++++
arch/powerpc/configs/tqm8541_defconfig | 1044 +++++++++++++++++++
arch/powerpc/configs/tqm8555_defconfig | 1044 +++++++++++++++++++
arch/powerpc/configs/tqm8560_defconfig | 1044 +++++++++++++++++++
arch/powerpc/kernel/legacy_serial.c | 45
arch/powerpc/platforms/82xx/mpc8272_ads.c | 5
arch/powerpc/platforms/82xx/pq2fads.c | 5
arch/powerpc/platforms/83xx/Kconfig | 25
arch/powerpc/platforms/83xx/Makefile | 4
arch/powerpc/platforms/83xx/mpc8313_rdb.c | 101 -
arch/powerpc/platforms/83xx/mpc831x_rdb.c | 93 +
arch/powerpc/platforms/83xx/mpc832x_mds.c | 11
arch/powerpc/platforms/83xx/mpc832x_rdb.c | 11
arch/powerpc/platforms/83xx/mpc836x_mds.c | 11
arch/powerpc/platforms/83xx/mpc837x_rdb.c | 99 +
arch/powerpc/platforms/83xx/sbc834x.c | 115 ++
arch/powerpc/platforms/85xx/Kconfig | 71 +
arch/powerpc/platforms/85xx/Makefile | 4
arch/powerpc/platforms/85xx/mpc85xx_mds.c | 32
arch/powerpc/platforms/85xx/sbc8548.c | 169 +++
arch/powerpc/platforms/85xx/sbc8560.c | 285 +++++
arch/powerpc/platforms/85xx/stx_gp3.c | 183 +++
arch/powerpc/platforms/85xx/tqm85xx.c | 187 +++
arch/powerpc/platforms/8xx/ep88xc.c | 5
arch/powerpc/platforms/8xx/m8xx_setup.c | 11
arch/powerpc/platforms/8xx/mpc86xads_setup.c | 8
arch/powerpc/platforms/8xx/mpc885ads_setup.c | 7
arch/powerpc/platforms/8xx/mpc8xx.h | 21
arch/powerpc/platforms/Kconfig | 4
arch/powerpc/platforms/embedded6xx/ls_uart.c | 5
arch/powerpc/sysdev/Makefile | 4
arch/powerpc/sysdev/commproc.c | 650 ------------
arch/powerpc/sysdev/commproc.h | 12
arch/powerpc/sysdev/cpm1.c | 612 +++++++++++
arch/powerpc/sysdev/cpm2.c | 469 ++++++++
arch/powerpc/sysdev/cpm2_common.c | 470 --------
arch/powerpc/sysdev/fsl_soc.c | 99 +
arch/powerpc/sysdev/ipic.c | 6
arch/powerpc/sysdev/micropatch.c | 2
arch/powerpc/sysdev/mpc8xx_pic.c | 1
arch/powerpc/sysdev/qe_lib/qe.c | 63 -
arch/ppc/8260_io/enet.c | 2
arch/ppc/8xx_io/commproc.c | 40
arch/ppc/8xx_io/enet.c | 6
arch/ppc/8xx_io/fec.c | 2
arch/ppc/8xx_io/micropatch.c | 2
arch/ppc/Kconfig | 91 -
arch/ppc/Makefile | 9
arch/ppc/boot/simple/iic.c | 2
arch/ppc/boot/simple/m8xx_tty.c | 2
arch/ppc/configs/TQM8540_defconfig | 973 ------------------
arch/ppc/configs/TQM8541_defconfig | 986 ------------------
arch/ppc/configs/TQM8555_defconfig | 983 ------------------
arch/ppc/configs/TQM8560_defconfig | 992 ------------------
arch/ppc/configs/mpc834x_sys_defconfig | 844 ----------------
arch/ppc/configs/mpc8540_ads_defconfig | 706 -------------
arch/ppc/configs/mpc8548_cds_defconfig | 658 ------------
arch/ppc/configs/mpc8555_cds_defconfig | 784 --------------
arch/ppc/configs/mpc8560_ads_defconfig | 769 --------------
arch/ppc/configs/stx_gp3_defconfig | 989 ------------------
arch/ppc/kernel/Makefile | 1
arch/ppc/kernel/asm-offsets.c | 6
arch/ppc/kernel/entry.S | 12
arch/ppc/kernel/head_booke.h | 55 -
arch/ppc/kernel/head_fsl_booke.S | 1065 --------------------
arch/ppc/kernel/misc.S | 46
arch/ppc/kernel/ppc_ksyms.c | 11
arch/ppc/kernel/setup.c | 3
arch/ppc/kernel/traps.c | 121 --
arch/ppc/mm/Makefile | 1
arch/ppc/mm/fsl_booke_mmu.c | 236 ----
arch/ppc/mm/init.c | 6
arch/ppc/mm/mmu_context.c | 2
arch/ppc/mm/mmu_decl.h | 6
arch/ppc/mm/pgtable.c | 28
arch/ppc/mm/ppc_mmu.c | 2
arch/ppc/platforms/83xx/Makefile | 4
arch/ppc/platforms/83xx/mpc834x_sys.c | 346 ------
arch/ppc/platforms/83xx/mpc834x_sys.h | 54 -
arch/ppc/platforms/85xx/Kconfig | 106 --
arch/ppc/platforms/85xx/Makefile | 13
arch/ppc/platforms/85xx/mpc8540_ads.c | 226 ----
arch/ppc/platforms/85xx/mpc8540_ads.h | 22
arch/ppc/platforms/85xx/mpc8555_cds.h | 23
arch/ppc/platforms/85xx/mpc8560_ads.c | 303 -----
arch/ppc/platforms/85xx/mpc8560_ads.h | 24
arch/ppc/platforms/85xx/mpc85xx_ads_common.c | 197 ---
arch/ppc/platforms/85xx/mpc85xx_ads_common.h | 67 -
arch/ppc/platforms/85xx/mpc85xx_cds_common.c | 601 -----------
arch/ppc/platforms/85xx/mpc85xx_cds_common.h | 80 -
arch/ppc/platforms/85xx/sbc8560.c | 234 ----
arch/ppc/platforms/85xx/sbc8560.h | 47
arch/ppc/platforms/85xx/sbc85xx.c | 166 ---
arch/ppc/platforms/85xx/sbc85xx.h | 70 -
arch/ppc/platforms/85xx/stx_gp3.c | 339 ------
arch/ppc/platforms/85xx/stx_gp3.h | 69 -
arch/ppc/platforms/85xx/tqm85xx.c | 412 -------
arch/ppc/platforms/85xx/tqm85xx.h | 53 -
arch/ppc/platforms/mpc866ads_setup.c | 2
arch/ppc/platforms/mpc885ads_setup.c | 2
arch/ppc/syslib/Makefile | 13
arch/ppc/syslib/ipic.c | 646 ------------
arch/ppc/syslib/ipic.h | 47
arch/ppc/syslib/mpc83xx_devices.c | 251 ----
arch/ppc/syslib/mpc83xx_sys.c | 122 --
arch/ppc/syslib/mpc85xx_devices.c | 826 ---------------
arch/ppc/syslib/mpc85xx_sys.c | 233 ----
arch/ppc/syslib/mpc8xx_devices.c | 2
arch/ppc/syslib/ocp.c | 2
arch/ppc/syslib/open_pic.c | 2
arch/ppc/syslib/ppc83xx_pci.h | 151 --
arch/ppc/syslib/ppc83xx_setup.c | 410 -------
arch/ppc/syslib/ppc83xx_setup.h | 55 -
arch/ppc/syslib/ppc85xx_common.c | 38
arch/ppc/syslib/ppc85xx_common.h | 22
arch/ppc/syslib/ppc85xx_setup.c | 367 ------
arch/ppc/syslib/ppc85xx_setup.h | 56 -
arch/ppc/syslib/ppc8xx_pic.h | 1
arch/ppc/xmon/start_8xx.c | 2
drivers/ata/Kconfig | 2
drivers/net/fec_8xx/fec_8xx-netta.c | 2
drivers/net/fec_8xx/fec_main.c | 2
drivers/net/fec_8xx/fec_mii.c | 2
drivers/net/fs_enet/fs_enet.h | 2
drivers/net/fs_enet/mac-fec.c | 2
drivers/net/fs_enet/mac-scc.c | 2
drivers/net/ucc_geth_mii.c | 3
drivers/pci/Makefile | 2
drivers/serial/cpm_uart/cpm_uart_cpm1.h | 2
drivers/spi/spi_mpc83xx.c | 6
include/asm-powerpc/commproc.h | 752 --------------
include/asm-powerpc/cpm.h | 73 +
include/asm-powerpc/cpm1.h | 685 +++++++++++++
include/asm-powerpc/cpm2.h | 64 -
include/asm-powerpc/irq.h | 126 --
include/asm-powerpc/mpc8xx.h | 20
include/asm-ppc/commproc.h | 692 -------------
include/asm-ppc/cpm1.h | 688 +++++++++++++
include/asm-ppc/cpm2.h | 2
include/asm-ppc/immap_85xx.h | 126 --
include/asm-ppc/mmu_context.h | 5
include/asm-ppc/mpc83xx.h | 107 --
include/asm-ppc/mpc85xx.h | 192 ---
include/asm-ppc/pgtable.h | 46
include/asm-ppc/ppc_sys.h | 4
include/asm-ppc/ppcboot.h | 8
include/asm-ppc/reg_booke.h | 26
include/asm-ppc/serial.h | 4
186 files changed, 17880 insertions(+), 21175 deletions(-)
Anton Vorontsov (4):
[POWERPC] QE: get rid of most device_types and model
ucc_geth: get rid of device_type for mdio
spi_mpc83xx: use brg-frequency for SPI in QE
[POWERPC] fsl_spi: stop using device_type = "spi"
Grant Likely (1):
[POWERPC] 82xx and embedded6xx: Use machine_*_initcall() hooks in platform code
Jochen Friedrich (7):
[POWERPC] 8xx: Remove unused m8xx_cpm_hostalloc/free/dump()
[POWERPC] 8xx: Rename m8xx_pic_init to mpc8xx_pics_init
[POWERPC] 8xx: Remove unneeded and misspelled prototype m8xx_calibrate_decr
[POWERPC] 8xx: Remove sysdev/commproc.h
[POWERPC] 8xx: Get rid of conditional includes of board specific setup
[POWERPC] CPM: Rename commproc to cpm1 and cpm2_common.c to cpm2.c
[POWERPC] CPM: Move definition of buffer descriptor to cpm.h
Jon Loeliger (2):
[POWERPC] 86xx: Convert all 86xx DTS files to /dts-v1/ format.
[POWERPC] Convert StorCenter DTS file to /dts-v1/ format.
Kim Phillips (9):
[POWERPC] 83xx: fold the mpc8313 platform into the mpc831x platform
[POWERPC] 83xx: add base platform support for the mpc8315 rdb board
[POWERPC] 83xx: Add the MPC8315E RDB dts
[POWERPC] 83xx: enable FSL SATA driver config for Freescale SoCs
[POWERPC] 83xx: ipic: add interrupt vector 94
[POWERPC] 83xx: add the mpc8315 rdb defconfig
[POWERPC] 83xx: add MPC837x RDB platform support
[POWERPC] 83xx: add the mpc837[789]_rdb dts files
[POWERPC] 83xx: add the mpc837x rdb defconfig
Kumar Gala (8):
[POWERPC] Always build setup-bus.c on powerpc
[POWERPC] bootwrapper: Add find_node_by_compatible
[POWERPC] Add a cuboot wrapper for 85xx with CPM2
[POWERPC] 85xx: Port STX GP3 board over from arch/ppc
[POWERPC] 85xx: Port TQM85xx boards over from arch/ppc
[POWERPC] 85xx: some minor cleanups for stx_gp3 and tqm85xx
[PPC] Remove 83xx from arch/ppc
[PPC] Remove 85xx from arch/ppc
Li Yang (1):
[POWERPC] Add docs for Freescale PowerQUICC SATA device tree nodes
Paul Gortmaker (13):
[POWERPC] Reduce code duplication in legacy_serial, add UART parent types
[POWERPC] 85xx: Add support for Wind River SBC8560 in arch/powerpc
[POWERPC] 85xx: Add v1 device tree source for Wind River SBC8560 board
[POWERPC] CPM2: Make support for the CPM2 optional on 8560 based boards
[POWERPC] 85xx: Add default .config file for Wind River SBC8560
[POWERPC] 85xx: Add basic support for Wind River SBC8548 board
[POWERPC] 85xx: Add v1 device tree source for Wind River SBC8548 board
[POWERPC] 85xx: Add default .config file for Wind River SBC8548
[POWERPC] 83xx: Add support for Wind River SBC834x boards
[POWERPC] 83xx: Add device tree source for Wind River SBC834x board.
[POWERPC] 83xx: Add default config file for Wind River SBC8349 board
[POWERPC] 83xx: mpc834x_mds - Convert device tree source to dts-v1
[POWERPC] QE: Explicitly set address-cells and size cells for muram
Zhang Wei (1):
[POWERPC] Add docs for Freescale DMA & DMA channel device tree nodes
^ permalink raw reply
* [PATCH] [POWERPC] 86xx: Remove unused IRQ defines
From: Kumar Gala @ 2008-01-28 15:20 UTC (permalink / raw)
To: linuxppc-dev
86xx uses the flat device tree for all its needs so we dont need explicit
IRQ info. Its not clear why this code existed since 86xx never existed in
arch/ppc.
---
include/asm-powerpc/irq.h | 86 ---------------------------------------------
1 files changed, 0 insertions(+), 86 deletions(-)
diff --git a/include/asm-powerpc/irq.h b/include/asm-powerpc/irq.h
index 0efe7b2..b5c0312 100644
--- a/include/asm-powerpc/irq.h
+++ b/include/asm-powerpc/irq.h
@@ -483,92 +483,6 @@ static __inline__ int irq_canonicalize(int irq)
*/
#define mk_int_int_mask(IL) (1 << (7 - (IL/2)))
-#elif defined(CONFIG_PPC_86xx)
-#include <asm/mpc86xx.h>
-
-#define NR_EPIC_INTS 48
-#ifndef NR_8259_INTS
-#define NR_8259_INTS 16 /*ULI 1575 can route 12 interrupts */
-#endif
-#define NUM_8259_INTERRUPTS NR_8259_INTS
-
-#ifndef I8259_OFFSET
-#define I8259_OFFSET 0
-#endif
-
-#define NR_IRQS 256
-
-/* Internal IRQs on MPC86xx OpenPIC */
-
-#ifndef MPC86xx_OPENPIC_IRQ_OFFSET
-#define MPC86xx_OPENPIC_IRQ_OFFSET NR_8259_INTS
-#endif
-
-/* The 48 internal sources */
-#define MPC86xx_IRQ_NULL ( 0 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_MCM ( 1 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_DDR ( 2 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_LBC ( 3 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_DMA0 ( 4 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_DMA1 ( 5 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_DMA2 ( 6 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_DMA3 ( 7 + MPC86xx_OPENPIC_IRQ_OFFSET)
-
-/* no 10,11 */
-#define MPC86xx_IRQ_UART2 (12 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC1_TX (13 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC1_RX (14 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC3_TX (15 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC3_RX (16 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC3_ERROR (17 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC1_ERROR (18 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC2_TX (19 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC2_RX (20 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC4_TX (21 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC4_RX (22 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC4_ERROR (23 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_TSEC2_ERROR (24 + MPC86xx_OPENPIC_IRQ_OFFSET)
-/* no 25 */
-#define MPC86xx_IRQ_UART1 (26 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_IIC (27 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_PERFMON (28 + MPC86xx_OPENPIC_IRQ_OFFSET)
-/* no 29,30,31 */
-#define MPC86xx_IRQ_SRIO_ERROR (32 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_SRIO_OUT_BELL (33 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_SRIO_IN_BELL (34 + MPC86xx_OPENPIC_IRQ_OFFSET)
-/* no 35,36 */
-#define MPC86xx_IRQ_SRIO_OUT_MSG1 (37 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_SRIO_IN_MSG1 (38 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_SRIO_OUT_MSG2 (39 + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_SRIO_IN_MSG2 (40 + MPC86xx_OPENPIC_IRQ_OFFSET)
-
-/* The 12 external interrupt lines */
-#define MPC86xx_IRQ_EXT_BASE 48
-#define MPC86xx_IRQ_EXT0 (0 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT1 (1 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT2 (2 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT3 (3 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT4 (4 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT5 (5 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT6 (6 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT7 (7 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT8 (8 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT9 (9 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT10 (10 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-#define MPC86xx_IRQ_EXT11 (11 + MPC86xx_IRQ_EXT_BASE \
- + MPC86xx_OPENPIC_IRQ_OFFSET)
-
#else /* CONFIG_40x + CONFIG_8xx */
/*
* this is the # irq's for all ppc arch's (pmac/chrp/prep)
--
1.5.3.7
^ permalink raw reply related
* Re: [PATCH 1/9] qe/muram dts: Explicitly set address-cells and size cells for muram
From: Paul Gortmaker @ 2008-01-28 15:26 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <Pine.LNX.4.64.0801280903130.19922@blarg.am.freescale.net>
Kumar Gala wrote:
> On Mon, 28 Jan 2008, Paul Gortmaker wrote:
>
>
>> Currently there are several dts that don't specify address or size
>> cells for the muram. This causes dtc to use default values, one of
>> which is an address-cells of two, and this breaks the parsing of the
>> muram ranges, which is assuming an address-cells of one. For example:
>>
>> Warning (reg_format): "reg" property in
>> /qe@e0100000/muram@10000/data-only@0 has invalid length
>> (8 bytes) (#address-cells == 2, #size-cells == 1)
>>
>> Explicitly setting the address and size cells gets it parsed properly
>> and gets rid of the four dtc warnings.
>>
>> Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
>> ---
>> arch/powerpc/boot/dts/mpc836x_mds.dts | 4 +++-
>> 1 files changed, 3 insertions(+), 1 deletions(-)
>>
>>
>
> Also fixed up mpc832x_*.dts and mpc8568mds.dts.
>
Thanks - I'd done those as well but forgot to git-add....
P.
^ permalink raw reply
* Re: [PATCH] [POWERPC] 86xx: Remove unused IRQ defines
From: Jon Loeliger @ 2008-01-28 15:29 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <Pine.LNX.4.64.0801280919410.22627@blarg.am.freescale.net>
So, like, the other day Kumar Gala mumbled:
> 86xx uses the flat device tree for all its needs so we dont need explicit
> IRQ info. Its not clear why this code existed since 86xx never existed in
> arch/ppc.
Sorry, my fault.
If you Sign-off-by: that patch, a maintainer can apply it! :-)
jdl
^ permalink raw reply
* uclibc eldk 4.1.0 has not libSegFault.so, is there any reason?
From: DI BACCO ANTONIO - technolabs @ 2008-01-28 15:30 UTC (permalink / raw)
To: linuxppc-embedded
[-- Attachment #1: Type: text/plain, Size: 3 bytes --]
[-- Attachment #2: Type: text/html, Size: 251 bytes --]
^ permalink raw reply
* Re: Load Kernel 2.6 using U-boot on ML403
From: Robert Woodworth @ 2008-01-28 15:47 UTC (permalink / raw)
To: Yedu Jathavedan; +Cc: linuxppc-embedded
In-Reply-To: <20080126231047.y3lm7epb0gw4cog8@webmail.cecs.pdx.edu>
Do you really need u-boot??
I'm using an ML403 without u-boot. I've generated my .ace file with the
zImage.elf directly and it works fine.
If there is a choice of u-boot or not, why choose u-boot?
RJW.
On Sat, 2008-01-26 at 23:10 -0800, Yedu Jathavedan wrote:
> Hi,
> I have downloaded the 2.6 kernel from
> http://git.secretlab.ca/git/linux-2.6-virtex.git , installed &
> compiled it. I used "make ARCH=ppc CROSS_COMPILE=ppc_4xx-
> ml403_defconfig" to build the .config file. (As explained in
> http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex)
>
> Problem -
>
>
> 1)Downloaded(sourceforge.net) & compiled the U-boot 1.1.6 files to get
> u-boot, u-boot.srec & u-boot.bin (I didn't find ml403 board config for
> the uboot. So used ml300_config).
>
> After this, I tried to convert the u-boot (README says that this is an
> ELF file) into an ace file. But, it gave me the error saying unable to
> read elf file. Is it because ML403 board is not supported or is it
> possible that the u-boot image that I created is corrupted?
>
> $ xmd -tcl genace.tcl -jprog -board ml403 -hw download.bit -elf u-boot
> -ace uboot.ace
> Xilinx EDK 9.1 Build EDK_J.19
> Executing xmd script : $HOME/EDK/data/xmd/genace.tcl
>
> #######################################################################
> XMD GenACE utility. Generate SystemACE File from bit/elf/data Files
> #######################################################################
> Target Type not defined for Processor 1, Using default Target Type
> ppc_hw
> GenACE Options:
> Board : ml403
> Jtag Devs : xcf32p xc4vfx12 xc95144xl
> FPGA pos : 2
> JPROG : true
> HW File : download.bit
> ACE File : uboot.ace
> nCPUs : 1
>
> Processor ppc_hw_1 Information
> Debug opt : -debugdevice devicenr 2 cpunr 1
> ELF files : u-boot
> Start PC Address : 0xfff80000
>
> ############################################################
> Converting Bitstream 'download.bit' to SVF file 'download.svf'
> Executing 'impact -batch bit2svf.scr'
> Copying download.svf File to uboot.svf File
> ############################################################
> Converting ELF file 'u-boot' to SVF file 'u-boot.svf'
> Error: E02 Failed to download ELF file
>
> ERROR(1053): UNABLE to Read Elf File. The Elf File Maybe Corrupted
> : u-boot
> #$
>
>
> ______________________________________________________________________
> Problem -
> 2) Since generating ace files failed, I tried to search the net for an
> u-boot ace file that could run on ML403 & found it at
> http://88.191.24.164/docenligne/projets/samba/2006/linux-embarque-sur-ml-403/u-boot-ml403.ace/view
>
> I copied this ace file (u-boot-ml403.ace) along with the kernel 2.6
> image (uImage) onto my CF card & booted the board. After loading the
> kernel, it fails to read the correct root device. I tried changing the
> "bootargs" env variable root = /dev/xsysace/disc0/part2 rw to root
> = /dev/xsysace2 rw & root = /dev/xsda2 rw.
>
> But, it failed in both cases. (There was a previous post on Problem2 a
> year ago & he solved it by giving root =/dev/xsysace2)
>
> Environment size: 246/1020 bytes
> #u-boot> setenv bootargs console=ttyS0,9600 root=/dev/xsysace2 rw
> #u-boot> fatload ace 0 0x400000 uImage
> reading uImage
>
> 952237 bytes read
> #u-boot> bootm 0x400000
> ## Booting image at 00400000 ...
> Image Name: Linux-2.6.24-rc3
> Image Type: PowerPC Linux Kernel Image (gzip compressed)
> Data Size: 952173 Bytes = 929.9 kB
> Load Address: 00000000
> Entry Point: 00000000
> Verifying Checksum ... OK
> Uncompressing Kernel Image ... OK
> [ 0.000000] Linux version 2.6.24-rc3 (icdt@icdt05) (gcc version
> 4.0.0 (DENX ELDK 4.0 4.0.0)) #1 Fri Jan 25 21:23:54 PST 2008
> [ 0.000000] Xilinx ML403 Reference System (Virtex-4 FX)
> [ 0.000000] Zone PFN ranges:
> [ 0.000000] DMA 0 -> 16384
> [ 0.000000] Normal 16384 -> 16384
> [ 0.000000] Movable zone start PFN for each node
> [ 0.000000] early_node_map[1] active PFN ranges
> [ 0.000000] 0: 0 -> 16384
> [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on.
> Total pages: 16256
> [ 0.000000] Kernel command line: console=ttyS0,9600 ip=off
> root=/dev/xsysace root=/dev/xsysace2 rw
> [ 0.000000] Xilinx INTC #0 at 0xD1000FC0 mapped to 0xFDFFEFC0
> [ 0.000000] PID hash table entries: 256 (order: 8, 1024 bytes)
> [ 0.000179] Console: colour dummy device 80x25
> [ 0.000669] Dentry cache hash table entries: 8192 (order: 3, 32768
> bytes)
> [ 0.001431] Inode-cache hash table entries: 4096 (order: 2, 16384
> bytes)
> [ 0.015197] Memory: 62860k available (1452k kernel code, 496k data,
> 96k init, 0k highmem)
> [ 0.204614] Mount-cache hash table entries: 512
> [ 0.209345] net_namespace: 64 bytes
> [ 0.213840] NET: Registered protocol family 16
> [ 0.252576] NET: Registered protocol family 2
> [ 0.288713] IP route cache hash table entries: 1024 (order: 0, 4096
> bytes)
> [ 0.291229] TCP established hash table entries: 2048 (order: 2,
> 16384 bytes)
> [ 0.291535] TCP bind hash table entries: 2048 (order: 1, 8192
> bytes)
> [ 0.291709] TCP: Hash tables configured (established 2048 bind
> 2048)
> [ 0.291737] TCP reno registered
> [ 0.301433] sysctl table check failed: /kernel/l2cr .1.31 Missing
> strategy
> [ 0.301509] Call Trace:
> [ 0.301528] [c3c17e80] [c00084f4] show_stack+0x4c/0x174
> (unreliable)
> [ 0.301611] [c3c17eb0] [c00305e0] set_fail+0x50/0x68
> [ 0.301678] [c3c17ed0] [c0030c68] sysctl_check_table+0x670/0x6bc
> [ 0.301726] [c3c17f10] [c0030c7c] sysctl_check_table+0x684/0x6bc
> [ 0.301771] [c3c17f50] [c001df28] register_sysctl_table+0x5c/0xac
> [ 0.301832] [c3c17f70] [c01dca84] register_ppc_htab_sysctl
> +0x18/0x2c
> [ 0.301897] [c3c17f80] [c01d6848] kernel_init+0xc8/0x284
> [ 0.301938] [c3c17ff0] [c0004af8] kernel_thread+0x44/0x60
> [ 0.307739] io scheduler noop registered
> [ 0.307792] io scheduler anticipatory registered (default)
> [ 0.307817] io scheduler deadline registered
> [ 0.307967] io scheduler cfq registered
> [ 0.364669] Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports,
> IRQ sharing disabled
> [ 0.370815] serial8250.0: ttyS0 at MMIO 0xa0001003 (irq = 9) is a
> 16450
> [ 0.370893] console [ttyS0] enabled
> [ 3.286815] RAMDISK driver initialized: 16 RAM disks of 65536K size
> 1024 blocksize
> [ 3.376997] tun: Universal TUN/TAP device driver, 1.6
> [ 3.437161] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
> [ 3.512736] mice: PS/2 mouse device common for all mice
> [ 3.574814] TCP cubic registered
> [ 3.613145] NET: Registered protocol family 1
> [ 3.665227] NET: Registered protocol family 17
> [ 3.720647] VFS: Cannot open root device "xsysace2" or
> unknown-block(0,0)
> [ 3.801333] Please append a correct "root=" boot option; here are
> the available partitions:
> [ 3.901354] Kernel panic - not syncing: VFS: Unable to mount root
> fs on unknown-block(0,0)
> [ 4.000286] Rebooting in 180 seconds..
>
>
> ______________________________________________________________________
> Can anyone help me with either one (or both) of the above problems? I
> have pretty much run out of ideas. :(
>
> Thanks & Regards,
> Yedu
>
>
> Hi,
>
> Goal - To use the USB Host on ML403 in a PowerPC processor reference
> system to store some data on a Thumb Drive.
>
> Background - I downloaded the 2.6 kernel from
> http://git.secretlab.ca/git/linux-2.6-virtex.git , installed &
> compiled it to get uImage & zImage.elf files. I used "make
> ml403_defconfig" to build the .config file. (As explained in
> http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex)
>
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply
* Re: PATCH[1/1] 8xx: Add clock-frequency to .dts brg entries
From: Scott Wood @ 2008-01-28 15:50 UTC (permalink / raw)
To: Bryan O'Donoghue; +Cc: linuxppc-dev
In-Reply-To: <1201485191.5537.55.camel@neuromancer.mindspace>
On Mon, Jan 28, 2008 at 01:53:11AM +0000, Bryan O'Donoghue wrote:
> cpm_uart_core has a dependency on fsl,cpm-brg/clock-frequency, this
> means that a .dts that uses the cpm uart driver needs to supply a
> clock-frequency entry for get_brgfreq to return a meaningful number.
>
> Included is a patchset which adds the correct brgclk to the adder port -
> @ 50Mhz and also adds an entry for mpc885ads - which I've noticed is
> missing a clock-frequency entry.
It's not missing -- it's added by the bootwrapper.
-Scott
^ permalink raw reply
* Re: Load Kernel 2.6 using U-boot on ML403
From: Robert Woodworth @ 2008-01-28 15:51 UTC (permalink / raw)
To: Yedu Jathavedan; +Cc: linuxppc-embedded
In-Reply-To: <20080127202502.zte3h0yr4s44ooc8@webmail.cecs.pdx.edu>
If you're starting a new design, I *highly* recommend using EDK9.2 with
MPMC3 and LL_TEMAC.
Using the Wizard in EDK9.2 and using the kernel from git.xilinx.com
everything will work fine out-of-the-box. Including the ethernet.
I've had troubles with the older (EDK9.1) TEMAC and GigE switches not
syncing correctly. The LL_TEMAC in EDK9.2 solved this issue.
RJW.
On Sun, 2008-01-27 at 20:25 -0800, Yedu Jathavedan wrote:
> >
> > Looking at your bootlog, it doesn't look like you've got the systemace
> > driver built into the kernel.
> >
> >
> Grant,
>
> Yes, the systemace was not built into the kernel. It is successfully
> booting the kernel now.
> Trying to bring up the Ethernet interface. Any pointers?
>
> Thank you,
> Yedu
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded@ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
^ permalink raw reply
* Re: [PATCH 0/9] 83xx DTS fixes and v1 conversions
From: Paul Gortmaker @ 2008-01-28 15:51 UTC (permalink / raw)
To: Kumar Gala; +Cc: linuxppc-dev
In-Reply-To: <Pine.LNX.4.64.0801280904310.19922@blarg.am.freescale.net>
Kumar Gala wrote:
> On Mon, 28 Jan 2008, Paul Gortmaker wrote:
>
>
>> This series incorporates my earlier qe/muram fix before converting
>> the existing mpc83xx DTS files to v1 format. I've also redone the
>> mpc834x_mds with the IRQs as decimal as per Kumar's comments and
>> re-included that too. I've kept each board as a separate commit
>> in case one of them conflicts with what someone else is working on.
>>
>> Boards covered are: 8349mds, 8349mitx, 8349mitx-gp, 836x_mds,
>> 8323_mds, 8323_rdb, and the 8313_rdb. Plus a small tweak to the
>> sbc8349 (it was already v1 -- but IRQs were in hex.)
>>
>> I've fed all the files to DTC before and after to ensure the
>> output is the same after the conversion.
>>
>> I'm not aware of any explicit rules for what is hex vs decimal.
>> I've tried to keep things that are usually discussed in decimal
>> as decimal quantities (i.e. cache size, IRQ, counts, indicies)
>> and all other data that you'd normally expect in hex (addresses,
>> IRQ flags, masks) as hex -- including prefixing 0x on values from
>> zero to 10 where it tends to make rows of numbers (e.g. ranges)
>> align for better readability, even though it isn't required.
>>
>>
>
> Can you regen these patches (2..9) againast my latest tree. Also, a
> single patch that cleans up all the boards is sufficient.
>
The patches should be current to your tree still as of today; they are
based on:
f09f415ea23272ae68f9322f90246680d46f4868 not-for-merge
branch 'for-2.6.25' of
git://git.kernel.org/pub/scm/linux/kernel/git/galak/powerpc
My patch #1 with all four qe/muram boards was posted earlier here:
http://ozlabs.org/pipermail/linuxppc-dev/2008-January/050767.html
Let me know what you need them based against and I can respin
as required.
P.
> - k
>
^ permalink raw reply
* Re: [PATCH 0/9] 83xx DTS fixes and v1 conversions
From: Grant Likely @ 2008-01-28 15:57 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
In-Reply-To: <1201505279-25847-1-git-send-email-paul.gortmaker@windriver.com>
On 1/28/08, Paul Gortmaker <paul.gortmaker@windriver.com> wrote:
>
> This series incorporates my earlier qe/muram fix before converting
> the existing mpc83xx DTS files to v1 format. I've also redone the
> mpc834x_mds with the IRQs as decimal as per Kumar's comments and
> re-included that too. I've kept each board as a separate commit
> in case one of them conflicts with what someone else is working on.
>
> Boards covered are: 8349mds, 8349mitx, 8349mitx-gp, 836x_mds,
> 8323_mds, 8323_rdb, and the 8313_rdb. Plus a small tweak to the
> sbc8349 (it was already v1 -- but IRQs were in hex.)
Cool! Want to do the 5200 dts files too? :-)
/me is lazy
Cheers.
g.
--
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.
^ permalink raw reply
* Re: [PATCH 2/3] Convert PowerPC MPC i2c to of_platform_driver from platform_driver
From: Olof Johansson @ 2008-01-28 16:12 UTC (permalink / raw)
To: Jon Smirl; +Cc: linuxppc-dev, i2c
In-Reply-To: <20080128144206.8410.2505.stgit@terra.home>
Hi,
Nice to see this one, I've been waiting for it. :)
On Mon, Jan 28, 2008 at 09:42:07AM -0500, Jon Smirl wrote:
> diff --git a/drivers/i2c/busses/powerpc-common.c b/drivers/i2c/busses/powerpc-common.c
> new file mode 100644
> index 0000000..51b039f
> --- /dev/null
> +++ b/drivers/i2c/busses/powerpc-common.c
This is really broader than powerpc. devtree-common.c would be a more
suitable name.
> @@ -0,0 +1,81 @@
> +/*
> + * powerpc-common.c - routines common to device tree parsing for all
> + * powerpc based i2c hosts
> + *
> + * 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.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, write to the Free Software
> + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
> + *
> + * (C) Copyright 2008 Jon Smirl <jonsmirl@gmail.com>
> + *
> + */
> +
> +#include <linux/interrupt.h>
> +#include <linux/i2c.h>
> +#include <linux/of_platform.h>
> +
> +#include "powerpc-common.h"
> +
> +#ifdef CONFIG_PPC_MERGE
> +
> +void of_register_i2c_devices(struct i2c_adapter *adap, struct device_node *adap_node)
> +{
> + void *result;
> + struct device_node *node = NULL;
> +
> + while ((node = of_get_next_child(adap_node, node))) {
> + struct i2c_board_info info;
> + const u32 *addr;
> + const char *compatible;
> + int len;
> +
> + compatible = of_get_property(node, "compatible", NULL);
> + if (!compatible) {
> + printk(KERN_ERR "i2c-mpc.c: missing compatible attribute\n");
> + continue;
> + }
> +
> + addr = of_get_property(node, "reg", &len);
> + if (!addr || len < sizeof(int) || *addr > (1 << 10) - 1) {
> + printk(KERN_ERR "i2c-mpc.c: missing reg attribute for %s\n", compatible);
This is no longer i2c-mpc. Same for the other comments in this function.
-Olof
^ permalink raw reply
* Re: [PATCH 0/9] 83xx DTS fixes and v1 conversions
From: Kumar Gala @ 2008-01-28 16:09 UTC (permalink / raw)
To: Paul Gortmaker; +Cc: linuxppc-dev
In-Reply-To: <479DFA0A.1060706@windriver.com>
On Jan 28, 2008, at 9:51 AM, Paul Gortmaker wrote:
> Kumar Gala wrote:
>> On Mon, 28 Jan 2008, Paul Gortmaker wrote:
>>
>>
>>> This series incorporates my earlier qe/muram fix before converting
>>> the existing mpc83xx DTS files to v1 format. I've also redone the
>>> mpc834x_mds with the IRQs as decimal as per Kumar's comments and
>>> re-included that too. I've kept each board as a separate commit
>>> in case one of them conflicts with what someone else is working on.
>>>
>>> Boards covered are: 8349mds, 8349mitx, 8349mitx-gp, 836x_mds,
>>> 8323_mds, 8323_rdb, and the 8313_rdb. Plus a small tweak to the
>>> sbc8349 (it was already v1 -- but IRQs were in hex.)
>>>
>>> I've fed all the files to DTC before and after to ensure the
>>> output is the same after the conversion.
>>>
>>> I'm not aware of any explicit rules for what is hex vs decimal.
>>> I've tried to keep things that are usually discussed in decimal
>>> as decimal quantities (i.e. cache size, IRQ, counts, indicies)
>>> and all other data that you'd normally expect in hex (addresses,
>>> IRQ flags, masks) as hex -- including prefixing 0x on values from
>>> zero to 10 where it tends to make rows of numbers (e.g. ranges)
>>> align for better readability, even though it isn't required.
>>>
>>>
>>
>> Can you regen these patches (2..9) againast my latest tree. Also, a
>> single patch that cleans up all the boards is sufficient.
>>
>
> The patches should be current to your tree still as of today; they
> are based on:
>
> f09f415ea23272ae68f9322f90246680d46f4868 not-for-merge
> branch 'for-2.6.25' of git://git.kernel.org/pub/scm/linux/kernel/git/
> galak/powerpc
>
> My patch #1 with all four qe/muram boards was posted earlier here:
>
> http://ozlabs.org/pipermail/linuxppc-dev/2008-January/050767.html
>
> Let me know what you need them based against and I can respin
> as required.
I've pushed out a bunch of stuff today.
commit 390167efa329d11099957108fc23d1ad15c3f37e
I'm expect a respin since the patches don't currently apply to my tree.
- k
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox