Commit 21eb4fa1 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc

* master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc: (116 commits)
  [POWERPC] Add export of vgacon_remap_base
  [POWERPC] Remove bogus comment about page_is_ram
  [POWERPC] windfarm: don't die on suspend thread signal
  [POWERPC] Fix comment in kernel/irq.c
  [POWERPC] ppc: Fix booke watchdog initialization
  [POWERPC] PPC: Use ARRAY_SIZE macro when appropriate
  [POWERPC] Use ARRAY_SIZE macro when appropriate
  [POWERPC] Fix ppc64's writing to struct file_operations
  [POWERPC] ppc: use syslog macro for the printk log level
  [POWERPC] ppc: cs4218_tdm remove extra brace
  [POWERPC] Add mpc52xx/lite5200 PCI support
  [POWERPC] Only use H_BULK_REMOVE if the firmware supports it
  [POWERPC] Fixup error handling when emulating a floating point instruction
  [POWERPC] Enable interrupts if we are doing fp math emulation
  [POWERPC] Added kprobes support to ppc32
  [POWERPC] Make pSeries use the H_BULK_REMOVE hypervisor call
  [POWERPC] Clear RI bit in MSR before restoring r13 when returning to userspace
  [POWERPC] Fix performance monitor exception
  [POWERPC] Compile fixes for arch/powerpc dcr code
  [POWERPC] Maple: use mmio nvram
  ...
parents 0c0e8caf d003e7a1
...@@ -173,6 +173,11 @@ config PPC_86xx ...@@ -173,6 +173,11 @@ config PPC_86xx
help help
The Freescale E600 SoCs have 74xx cores. The Freescale E600 SoCs have 74xx cores.
config PPC_8xx
bool "Freescale 8xx"
select FSL_SOC
select 8xx
config 40x config 40x
bool "AMCC 40x" bool "AMCC 40x"
select PPC_DCR_NATIVE select PPC_DCR_NATIVE
...@@ -181,8 +186,6 @@ config 44x ...@@ -181,8 +186,6 @@ config 44x
bool "AMCC 44x" bool "AMCC 44x"
select PPC_DCR_NATIVE select PPC_DCR_NATIVE
config 8xx
bool "Freescale 8xx"
config E200 config E200
bool "Freescale e200" bool "Freescale e200"
...@@ -210,6 +213,10 @@ config POWER4 ...@@ -210,6 +213,10 @@ config POWER4
config 6xx config 6xx
bool bool
# this is temp to handle compat with arch=ppc
config 8xx
bool
# this is temp to handle compat with arch=ppc # this is temp to handle compat with arch=ppc
config 83xx config 83xx
bool bool
...@@ -429,6 +436,21 @@ config PPC_MPC52xx ...@@ -429,6 +436,21 @@ config PPC_MPC52xx
bool bool
default n default n
config PPC_MPC5200
bool
select PPC_MPC52xx
default n
config PPC_MPC5200_BUGFIX
bool "MPC5200 (L25R) bugfix support"
depends on PPC_MPC5200
default n
help
Enable workarounds for original MPC5200 errata. This is not required
for MPC5200B based boards.
It is safe to say 'Y' here
config PPC_EFIKA config PPC_EFIKA
bool "bPlan Efika 5k2. MPC5200B based computer" bool "bPlan Efika 5k2. MPC5200B based computer"
depends on PPC_MULTIPLATFORM && PPC32 depends on PPC_MULTIPLATFORM && PPC32
...@@ -441,7 +463,7 @@ config PPC_EFIKA ...@@ -441,7 +463,7 @@ config PPC_EFIKA
config PPC_LITE5200 config PPC_LITE5200
bool "Freescale Lite5200 Eval Board" bool "Freescale Lite5200 Eval Board"
depends on PPC_MULTIPLATFORM && PPC32 depends on PPC_MULTIPLATFORM && PPC32
select PPC_MPC52xx select PPC_MPC5200
default n default n
config PPC_PMAC config PPC_PMAC
...@@ -484,6 +506,7 @@ config PPC_MAPLE ...@@ -484,6 +506,7 @@ config PPC_MAPLE
select PPC_970_NAP select PPC_970_NAP
select PPC_NATIVE select PPC_NATIVE
select PPC_RTAS select PPC_RTAS
select MMIO_NVRAM
select ATA_NONSTANDARD if ATA select ATA_NONSTANDARD if ATA
default n default n
help help
...@@ -541,6 +564,16 @@ config PPC_PS3 ...@@ -541,6 +564,16 @@ config PPC_PS3
enabling this will not result in a bootable kernel on a enabling this will not result in a bootable kernel on a
PS3 system. PS3 system.
config PPC_CELLEB
bool "Toshiba's Cell Reference Set 'Celleb' Architecture"
depends on PPC_MULTIPLATFORM && PPC64
select PPC_CELL
select PPC_OF_PLATFORM_PCI
select HAS_TXX9_SERIAL
select PPC_UDBG_BEAT
select USB_OHCI_BIG_ENDIAN_MMIO
select USB_EHCI_BIG_ENDIAN_MMIO
config PPC_NATIVE config PPC_NATIVE
bool bool
depends on PPC_MULTIPLATFORM depends on PPC_MULTIPLATFORM
...@@ -554,6 +587,11 @@ config UDBG_RTAS_CONSOLE ...@@ -554,6 +587,11 @@ config UDBG_RTAS_CONSOLE
depends on PPC_RTAS depends on PPC_RTAS
default n default n
config PPC_UDBG_BEAT
bool "BEAT based debug console"
depends on PPC_CELLEB
default n
config XICS config XICS
depends on PPC_PSERIES depends on PPC_PSERIES
bool bool
...@@ -707,6 +745,7 @@ source arch/powerpc/platforms/86xx/Kconfig ...@@ -707,6 +745,7 @@ source arch/powerpc/platforms/86xx/Kconfig
source arch/powerpc/platforms/8xx/Kconfig source arch/powerpc/platforms/8xx/Kconfig
source arch/powerpc/platforms/cell/Kconfig source arch/powerpc/platforms/cell/Kconfig
source arch/powerpc/platforms/ps3/Kconfig source arch/powerpc/platforms/ps3/Kconfig
source arch/powerpc/platforms/pasemi/Kconfig
menu "Kernel options" menu "Kernel options"
...@@ -729,7 +768,7 @@ config FORCE_MAX_ZONEORDER ...@@ -729,7 +768,7 @@ config FORCE_MAX_ZONEORDER
config MATH_EMULATION config MATH_EMULATION
bool "Math emulation" bool "Math emulation"
depends on 4xx || 8xx || E200 || PPC_83xx || E500 depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
---help--- ---help---
Some PowerPC chips designed for embedded applications do not have Some PowerPC chips designed for embedded applications do not have
a floating-point unit and therefore do not implement the a floating-point unit and therefore do not implement the
...@@ -1187,7 +1226,7 @@ source "arch/powerpc/oprofile/Kconfig" ...@@ -1187,7 +1226,7 @@ source "arch/powerpc/oprofile/Kconfig"
config KPROBES config KPROBES
bool "Kprobes (EXPERIMENTAL)" bool "Kprobes (EXPERIMENTAL)"
depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
help help
Kprobes allows you to trap at almost any kernel address and Kprobes allows you to trap at almost any kernel address and
execute a callback function. register_kprobe() establishes execute a callback function. register_kprobe() establishes
......
...@@ -4,14 +4,14 @@ source "lib/Kconfig.debug" ...@@ -4,14 +4,14 @@ source "lib/Kconfig.debug"
config DEBUG_STACKOVERFLOW config DEBUG_STACKOVERFLOW
bool "Check for stack overflows" bool "Check for stack overflows"
depends on DEBUG_KERNEL && PPC64 depends on DEBUG_KERNEL
help help
This option will cause messages to be printed if free stack space This option will cause messages to be printed if free stack space
drops below a certain limit. drops below a certain limit.
config DEBUG_STACK_USAGE config DEBUG_STACK_USAGE
bool "Stack utilization instrumentation" bool "Stack utilization instrumentation"
depends on DEBUG_KERNEL && PPC64 depends on DEBUG_KERNEL
help help
Enables the display of the minimum amount of free stack which each Enables the display of the minimum amount of free stack which each
task has ever had available in the sysrq-T and sysrq-P debug output. task has ever had available in the sysrq-T and sysrq-P debug output.
...@@ -185,6 +185,20 @@ config PPC_EARLY_DEBUG_ISERIES ...@@ -185,6 +185,20 @@ config PPC_EARLY_DEBUG_ISERIES
Select this to enable early debugging for legacy iSeries. You need Select this to enable early debugging for legacy iSeries. You need
to hit "Ctrl-x Ctrl-x" to see the messages on the console. to hit "Ctrl-x Ctrl-x" to see the messages on the console.
config PPC_EARLY_DEBUG_PAS_REALMODE
bool "PA Semi real mode"
depends on PPC_PASEMI
help
Select this to enable early debugging for PA Semi.
Output will be on UART0.
config PPC_EARLY_DEBUG_BEAT
bool "Beat HV Console"
depends on PPC_CELLEB
select PPC_UDBG_BEAT
help
Select this to enable early debugging for Celleb with Beat.
endchoice endchoice
endmenu endmenu
...@@ -162,6 +162,7 @@ image-$(CONFIG_PPC_PSERIES) += zImage.pseries ...@@ -162,6 +162,7 @@ image-$(CONFIG_PPC_PSERIES) += zImage.pseries
image-$(CONFIG_PPC_MAPLE) += zImage.pseries image-$(CONFIG_PPC_MAPLE) += zImage.pseries
image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries image-$(CONFIG_PPC_IBM_CELL_BLADE) += zImage.pseries
image-$(CONFIG_PPC_PS3) += zImage.ps3 image-$(CONFIG_PPC_PS3) += zImage.ps3
image-$(CONFIG_PPC_CELLEB) += zImage.pseries
image-$(CONFIG_PPC_CHRP) += zImage.chrp image-$(CONFIG_PPC_CHRP) += zImage.chrp
image-$(CONFIG_PPC_EFIKA) += zImage.chrp image-$(CONFIG_PPC_EFIKA) += zImage.chrp
image-$(CONFIG_PPC_PMAC) += zImage.pmac image-$(CONFIG_PPC_PMAC) += zImage.pmac
......
...@@ -53,13 +53,20 @@ ...@@ -53,13 +53,20 @@
reg = <00000000 4000000 f4500000 00000020>; reg = <00000000 4000000 f4500000 00000020>;
}; };
chosen {
name = "chosen";
linux,platform = <0>;
interrupt-controller = <10c00>;
linux,phandle = <400>;
};
soc8272@f0000000 { soc8272@f0000000 {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
#interrupt-cells = <2>; #interrupt-cells = <2>;
device_type = "soc"; device_type = "soc";
ranges = < 0 0 2 00000000 f0000000 00053000>; ranges = <00000000 f0000000 00053000>;
reg = <f0000000 0>; reg = <f0000000 10000>;
mdio@0 { mdio@0 {
device_type = "mdio"; device_type = "mdio";
...@@ -71,7 +78,7 @@ ...@@ -71,7 +78,7 @@
ethernet-phy@0 { ethernet-phy@0 {
linux,phandle = <2452000>; linux,phandle = <2452000>;
interrupt-parent = <10c00>; interrupt-parent = <10c00>;
interrupts = <19 1>; interrupts = <17 4>;
reg = <0>; reg = <0>;
bitbang = [ 12 12 13 02 02 01 ]; bitbang = [ 12 12 13 02 02 01 ];
device_type = "ethernet-phy"; device_type = "ethernet-phy";
...@@ -79,7 +86,7 @@ ...@@ -79,7 +86,7 @@
ethernet-phy@1 { ethernet-phy@1 {
linux,phandle = <2452001>; linux,phandle = <2452001>;
interrupt-parent = <10c00>; interrupt-parent = <10c00>;
interrupts = <19 1>; interrupts = <17 4>;
bitbang = [ 12 12 13 02 02 01 ]; bitbang = [ 12 12 13 02 02 01 ];
reg = <3>; reg = <3>;
device_type = "ethernet-phy"; device_type = "ethernet-phy";
...@@ -90,7 +97,7 @@ ...@@ -90,7 +97,7 @@
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
device_type = "network"; device_type = "network";
device-id = <2>; device-id = <1>;
compatible = "fs_enet"; compatible = "fs_enet";
model = "FCC"; model = "FCC";
reg = <11300 20 8400 100 11380 30>; reg = <11300 20 8400 100 11380 30>;
...@@ -104,7 +111,7 @@ ...@@ -104,7 +111,7 @@
ethernet@25000 { ethernet@25000 {
device_type = "network"; device_type = "network";
device-id = <3>; device-id = <2>;
compatible = "fs_enet"; compatible = "fs_enet";
model = "FCC"; model = "FCC";
reg = <11320 20 8500 100 113b0 30>; reg = <11320 20 8500 100 113b0 30>;
...@@ -123,8 +130,8 @@ ...@@ -123,8 +130,8 @@
#interrupt-cells = <2>; #interrupt-cells = <2>;
device_type = "cpm"; device_type = "cpm";
model = "CPM2"; model = "CPM2";
ranges = <00000000 00000000 3ffff>; ranges = <00000000 00000000 20000>;
reg = <10d80 3280>; reg = <0 20000>;
command-proc = <119c0>; command-proc = <119c0>;
brg-frequency = <17D7840>; brg-frequency = <17D7840>;
cpm_clk = <BEBC200>; cpm_clk = <BEBC200>;
...@@ -133,7 +140,7 @@ ...@@ -133,7 +140,7 @@
device_type = "serial"; device_type = "serial";
compatible = "cpm_uart"; compatible = "cpm_uart";
model = "SCC"; model = "SCC";
device-id = <2>; device-id = <1>;
reg = <11a00 20 8000 100>; reg = <11a00 20 8000 100>;
current-speed = <1c200>; current-speed = <1c200>;
interrupts = <28 2>; interrupts = <28 2>;
...@@ -147,7 +154,7 @@ ...@@ -147,7 +154,7 @@
device_type = "serial"; device_type = "serial";
compatible = "cpm_uart"; compatible = "cpm_uart";
model = "SCC"; model = "SCC";
device-id = <5>; device-id = <4>;
reg = <11a60 20 8300 100>; reg = <11a60 20 8300 100>;
current-speed = <1c200>; current-speed = <1c200>;
interrupts = <2b 2>; interrupts = <2b 2>;
...@@ -181,24 +188,24 @@ ...@@ -181,24 +188,24 @@
interrupt-map = < interrupt-map = <
/* IDSEL 0x16 */ /* IDSEL 0x16 */
b000 0 0 1 f8200000 40 0 b000 0 0 1 f8200000 40 8
b000 0 0 2 f8200000 41 0 b000 0 0 2 f8200000 41 8
b000 0 0 3 f8200000 42 0 b000 0 0 3 f8200000 42 8
b000 0 0 4 f8200000 43 0 b000 0 0 4 f8200000 43 8
/* IDSEL 0x17 */ /* IDSEL 0x17 */
b800 0 0 1 f8200000 43 0 b800 0 0 1 f8200000 43 8
b800 0 0 2 f8200000 40 0 b800 0 0 2 f8200000 40 8
b800 0 0 3 f8200000 41 0 b800 0 0 3 f8200000 41 8
b800 0 0 4 f8200000 42 0 b800 0 0 4 f8200000 42 8
/* IDSEL 0x18 */ /* IDSEL 0x18 */
c000 0 0 1 f8200000 42 0 c000 0 0 1 f8200000 42 8
c000 0 0 2 f8200000 43 0 c000 0 0 2 f8200000 43 8
c000 0 0 3 f8200000 40 0 c000 0 0 3 f8200000 40 8
c000 0 0 4 f8200000 41 0>; c000 0 0 4 f8200000 41 8>;
interrupt-parent = <10c00>; interrupt-parent = <10c00>;
interrupts = <14 3>; interrupts = <14 8>;
bus-range = <0 0>; bus-range = <0 0>;
ranges = <02000000 0 80000000 80000000 0 40000000 ranges = <02000000 0 80000000 80000000 0 40000000
01000000 0 00000000 f6000000 0 02000000>; 01000000 0 00000000 f6000000 0 02000000>;
...@@ -210,7 +217,7 @@ ...@@ -210,7 +217,7 @@
model = "SEC2"; model = "SEC2";
compatible = "talitos"; compatible = "talitos";
reg = <30000 10000>; reg = <30000 10000>;
interrupts = <b 0>; interrupts = <b 2>;
interrupt-parent = <10c00>; interrupt-parent = <10c00>;
num-channels = <4>; num-channels = <4>;
channel-fifo-len = <18>; channel-fifo-len = <18>;
......
/*
* MPC8323E EMDS Device Tree Source
*
* Copyright 2006 Freescale Semiconductor Inc.
*
* 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.
*/
/ {
model = "MPC8323EMDS";
compatible = "MPC83xx";
#address-cells = <1>;
#size-cells = <1>;
linux,phandle = <100>;
cpus {
#cpus = <1>;
#address-cells = <1>;
#size-cells = <0>;
linux,phandle = <200>;
PowerPC,8323@0 {
device_type = "cpu";
reg = <0>;
d-cache-line-size = <20>; // 32 bytes
i-cache-line-size = <20>; // 32 bytes
d-cache-size = <4000>; // L1, 16K
i-cache-size = <4000>; // L1, 16K
timebase-frequency = <0>;
bus-frequency = <0>;
clock-frequency = <0>;
32-bit;
linux,phandle = <201>;
linux,boot-cpu;
};
};
memory {
device_type = "memory";
linux,phandle = <300>;
reg = <00000000 08000000>;
};
bcsr@f8000000 {
device_type = "board-control";
reg = <f8000000 8000>;
};
soc8323@e0000000 {
#address-cells = <1>;
#size-cells = <1>;
#interrupt-cells = <2>;
device_type = "soc";
ranges = <0 e0000000 00100000>;
reg = <e0000000 00000200>;
bus-frequency = <7DE2900>;
wdt@200 {
device_type = "watchdog";
compatible = "mpc83xx_wdt";
reg = <200 100>;
};
i2c@3000 {
device_type = "i2c";
compatible = "fsl-i2c";
reg = <3000 100>;
interrupts = <e 8>;
interrupt-parent = <700>;
dfsrr;
};
serial@4500 {
device_type = "serial";
compatible = "ns16550";
reg = <4500 100>;
clock-frequency = <0>;
interrupts = <9 8>;
interrupt-parent = <700>;
};
serial@4600 {
device_type = "serial";
compatible = "ns16550";
reg = <4600 100>;
clock-frequency = <0>;
interrupts = <a 8>;
interrupt-parent = <700>;
};
crypto@30000 {
device_type = "crypto";
model = "SEC2";
compatible = "talitos";
reg = <30000 7000>;
interrupts = <b 8>;
interrupt-parent = <700>;
/* Rev. 2.2 */
num-channels = <1>;
channel-fifo-len = <18>;
exec-units-mask = <0000004c>;
descriptor-types-mask = <0122003f>;
};
pci@8500 {
linux,phandle = <8500>;
interrupt-map-mask = <f800 0 0 7>;
interrupt-map = <
/* IDSEL 0x11 AD17 */
8800 0 0 1 700 14 8
8800 0 0 2 700 15 8
8800 0 0 3 700 16 8
8800 0 0 4 700 17 8
/* IDSEL 0x12 AD18 */
9000 0 0 1 700 16 8
9000 0 0 2 700 17 8
9000 0 0 3 700 14 8
9000 0 0 4 700 15 8
/* IDSEL 0x13 AD19 */
9800 0 0 1 700 17 8
9800 0 0 2 700 14 8
9800 0 0 3 700 15 8
9800 0 0 4 700 16 8
/* IDSEL 0x15 AD21*/
a800 0 0 1 700 14 8
a800 0 0 2 700 15 8
a800 0 0 3 700 16 8
a800 0 0 4 700 17 8
/* IDSEL 0x16 AD22*/
b000 0 0 1 700 17 8
b000 0 0 2 700 14 8
b000 0 0 3 700 15 8
b000 0 0 4 700 16 8
/* IDSEL 0x17 AD23*/
b800 0 0 1 700 16 8
b800 0 0 2 700 17 8
b800 0 0 3 700 14 8
b800 0 0 4 700 15 8
/* IDSEL 0x18 AD24*/
c000 0 0 1 700 15 8
c000 0 0 2 700 16 8
c000 0 0 3 700 17 8
c000 0 0 4 700 14 8>;
interrupt-parent = <700>;
interrupts = <42 8>;
bus-range = <0 0>;
ranges = <02000000 0 a0000000 90000000 0 10000000
42000000 0 80000000 80000000 0 10000000
01000000 0 00000000 d0000000 0 00100000>;
clock-frequency = <0>;
#interrupt-cells = <1>;
#size-cells = <2>;
#address-cells = <3>;
reg = <8500 100>;
compatible = "83xx";
device_type = "pci";
};
pic@700 {
linux,phandle = <700>;
interrupt-controller;
#address-cells = <0>;
#interrupt-cells = <2>;
reg = <700 100>;
built-in;
device_type = "ipic";
};
par_io@1400 {
reg = <1400 100>;
device_type = "par_io";
num-ports = <7>;
ucc_pin@03 {
linux,phandle = <140003>;
pio-map = <
/* port pin dir open_drain assignment has_irq */
3 4 3 0 2 0 /* MDIO */
3 5 1 0 2 0 /* MDC */
0 d 2 0 1 0 /* RX_CLK (CLK9) */