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

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
Loading
Loading
Loading
Loading
+44 −5
Original line number Diff line number Diff line
@@ -173,6 +173,11 @@ config PPC_86xx
	help
	  The Freescale E600 SoCs have 74xx cores.

config PPC_8xx
	bool "Freescale 8xx"
	select FSL_SOC
	select 8xx

config 40x
	bool "AMCC 40x"
	select PPC_DCR_NATIVE
@@ -181,8 +186,6 @@ config 44x
	bool "AMCC 44x"
	select PPC_DCR_NATIVE

config 8xx
	bool "Freescale 8xx"

config E200
	bool "Freescale e200"
@@ -210,6 +213,10 @@ config POWER4
config 6xx
	bool

# this is temp to handle compat with arch=ppc
config 8xx
	bool

# this is temp to handle compat with arch=ppc
config 83xx
	bool
@@ -429,6 +436,21 @@ config PPC_MPC52xx
	bool
	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
	bool "bPlan Efika 5k2. MPC5200B based computer"
	depends on PPC_MULTIPLATFORM && PPC32
@@ -441,7 +463,7 @@ config PPC_EFIKA
config PPC_LITE5200
	bool "Freescale Lite5200 Eval Board"
	depends on PPC_MULTIPLATFORM && PPC32
	select PPC_MPC52xx
	select PPC_MPC5200
	default n

config PPC_PMAC
@@ -484,6 +506,7 @@ config PPC_MAPLE
	select PPC_970_NAP
	select PPC_NATIVE
	select PPC_RTAS
	select MMIO_NVRAM
	select ATA_NONSTANDARD if ATA
	default n
	help
@@ -541,6 +564,16 @@ config PPC_PS3
	  enabling this will not result in a bootable kernel on a
	  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
	bool
	depends on PPC_MULTIPLATFORM
@@ -554,6 +587,11 @@ config UDBG_RTAS_CONSOLE
	depends on PPC_RTAS
	default n

config PPC_UDBG_BEAT
	bool "BEAT based debug console"
	depends on PPC_CELLEB
	default n

config XICS
	depends on PPC_PSERIES
	bool
@@ -707,6 +745,7 @@ source arch/powerpc/platforms/86xx/Kconfig
source arch/powerpc/platforms/8xx/Kconfig
source arch/powerpc/platforms/cell/Kconfig
source arch/powerpc/platforms/ps3/Kconfig
source arch/powerpc/platforms/pasemi/Kconfig

menu "Kernel options"

@@ -729,7 +768,7 @@ config FORCE_MAX_ZONEORDER

config MATH_EMULATION
	bool "Math emulation"
	depends on 4xx || 8xx || E200 || PPC_83xx || E500
	depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
	---help---
	  Some PowerPC chips designed for embedded applications do not have
	  a floating-point unit and therefore do not implement the
@@ -1187,7 +1226,7 @@ source "arch/powerpc/oprofile/Kconfig"

config KPROBES
	bool "Kprobes (EXPERIMENTAL)"
	depends on PPC64 && KALLSYMS && EXPERIMENTAL && MODULES
	depends on !BOOKE && !4xx && KALLSYMS && EXPERIMENTAL && MODULES
	help
	  Kprobes allows you to trap at almost any kernel address and
	  execute a callback function.  register_kprobe() establishes
+16 −2
Original line number Diff line number Diff line
@@ -4,14 +4,14 @@ source "lib/Kconfig.debug"

config DEBUG_STACKOVERFLOW
	bool "Check for stack overflows"
	depends on DEBUG_KERNEL && PPC64
	depends on DEBUG_KERNEL
	help
	  This option will cause messages to be printed if free stack space
	  drops below a certain limit.

config DEBUG_STACK_USAGE
	bool "Stack utilization instrumentation"
	depends on DEBUG_KERNEL && PPC64
	depends on DEBUG_KERNEL
	help
	  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.
@@ -185,6 +185,20 @@ config PPC_EARLY_DEBUG_ISERIES
	  Select this to enable early debugging for legacy iSeries. You need
	  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

endmenu
+1 −0
Original line number Diff line number Diff line
@@ -162,6 +162,7 @@ image-$(CONFIG_PPC_PSERIES) += zImage.pseries
image-$(CONFIG_PPC_MAPLE)		+= zImage.pseries
image-$(CONFIG_PPC_IBM_CELL_BLADE)	+= zImage.pseries
image-$(CONFIG_PPC_PS3)			+= zImage.ps3
image-$(CONFIG_PPC_CELLEB)		+= zImage.pseries
image-$(CONFIG_PPC_CHRP)		+= zImage.chrp
image-$(CONFIG_PPC_EFIKA)		+= zImage.chrp
image-$(CONFIG_PPC_PMAC)		+= zImage.pmac
+31 −24
Original line number Diff line number Diff line
@@ -53,13 +53,20 @@
               reg = <00000000 4000000 f4500000 00000020>;
       };

       chosen {
               name = "chosen";
               linux,platform = <0>;
               interrupt-controller = <10c00>;
               linux,phandle = <400>;
       };

       soc8272@f0000000 {
               #address-cells = <1>;
               #size-cells = <1>;
               #interrupt-cells = <2>;
               device_type = "soc";
               ranges = < 0 0 2 00000000 f0000000 00053000>;
               reg = <f0000000 0>;
               ranges = <00000000 f0000000 00053000>;
               reg = <f0000000 10000>;

               mdio@0 {
                       device_type = "mdio";
@@ -71,7 +78,7 @@
                       ethernet-phy@0 {
                               linux,phandle = <2452000>;
                               interrupt-parent = <10c00>;
                               interrupts = <19 1>;
                               interrupts = <17 4>;
                               reg = <0>;
                               bitbang = [ 12 12 13 02 02 01 ];
                               device_type = "ethernet-phy";
@@ -79,7 +86,7 @@
                       ethernet-phy@1 {
                               linux,phandle = <2452001>;
                               interrupt-parent = <10c00>;
                               interrupts = <19 1>;
                               interrupts = <17 4>;
                               bitbang = [ 12 12 13 02 02 01 ];
                               reg = <3>;
                               device_type = "ethernet-phy";
@@ -90,7 +97,7 @@
                       #address-cells = <1>;
                       #size-cells = <0>;
                       device_type = "network";
                       device-id = <2>;
                       device-id = <1>;
                       compatible = "fs_enet";
                       model = "FCC";
                       reg = <11300 20 8400 100 11380 30>;
@@ -104,7 +111,7 @@

               ethernet@25000 {
                       device_type = "network";
                       device-id = <3>;
                       device-id = <2>;
                       compatible = "fs_enet";
                       model = "FCC";
                       reg = <11320 20 8500 100 113b0 30>;
@@ -123,8 +130,8 @@
                       #interrupt-cells = <2>;
                       device_type = "cpm";
                       model = "CPM2";
                       ranges = <00000000 00000000 3ffff>;
                       reg = <10d80 3280>;
                       ranges = <00000000 00000000 20000>;
                       reg = <0 20000>;
                       command-proc = <119c0>;
                       brg-frequency = <17D7840>;
                       cpm_clk = <BEBC200>;
@@ -133,7 +140,7 @@
                               device_type = "serial";
                               compatible = "cpm_uart";
                               model = "SCC";
                               device-id = <2>;
                               device-id = <1>;
                               reg = <11a00 20 8000 100>;
                               current-speed = <1c200>;
                               interrupts = <28 2>;
@@ -147,7 +154,7 @@
                               device_type = "serial";
                               compatible = "cpm_uart";
                               model = "SCC";
                               device-id = <5>;
                               device-id = <4>;
                               reg = <11a60 20 8300 100>;
                               current-speed = <1c200>;
                               interrupts = <2b 2>;
@@ -181,24 +188,24 @@
                       interrupt-map = <

                                       /* IDSEL 0x16 */
                                        b000 0 0 1 f8200000 40 0
                                        b000 0 0 2 f8200000 41 0
                                        b000 0 0 3 f8200000 42 0
                                        b000 0 0 4 f8200000 43 0
                                        b000 0 0 1 f8200000 40 8
                                        b000 0 0 2 f8200000 41 8
                                        b000 0 0 3 f8200000 42 8
                                        b000 0 0 4 f8200000 43 8

                                       /* IDSEL 0x17 */
                                        b800 0 0 1 f8200000 43 0
                                        b800 0 0 2 f8200000 40 0
                                        b800 0 0 3 f8200000 41 0
                                        b800 0 0 4 f8200000 42 0
                                        b800 0 0 1 f8200000 43 8
                                        b800 0 0 2 f8200000 40 8
                                        b800 0 0 3 f8200000 41 8
                                        b800 0 0 4 f8200000 42 8

                                       /* IDSEL 0x18 */
                                        c000 0 0 1 f8200000 42 0
                                        c000 0 0 2 f8200000 43 0
                                        c000 0 0 3 f8200000 40 0
                                        c000 0 0 4 f8200000 41 0>;
                                        c000 0 0 1 f8200000 42 8
                                        c000 0 0 2 f8200000 43 8
                                        c000 0 0 3 f8200000 40 8
                                        c000 0 0 4 f8200000 41 8>;
                       interrupt-parent = <10c00>;
                       interrupts = <14 3>;
                       interrupts = <14 8>;
                       bus-range = <0 0>;
                       ranges = <02000000 0 80000000 80000000 0 40000000
                                 01000000 0 00000000 f6000000 0 02000000>;
@@ -210,7 +217,7 @@
                       model = "SEC2";
                       compatible = "talitos";
                       reg = <30000 10000>;
                       interrupts = <b 0>;
                       interrupts = <b 2>;
                       interrupt-parent = <10c00>;
                       num-channels = <4>;
                       channel-fifo-len = <18>;
+345 −0
Original line number Diff line number Diff line
/*
 * 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) */
					3 18  2  0  1  0 	/* TX_CLK (CLK10) */
					1  1  1  0  1  0 	/* TxD1 */
					1  0  1  0  1  0 	/* TxD0 */
					1  1  1  0  1  0 	/* TxD1 */
					1  2  1  0  1  0 	/* TxD2 */
					1  3  1  0  1  0 	/* TxD3 */
					1  4  2  0  1  0 	/* RxD0 */
					1  5  2  0  1  0 	/* RxD1 */
					1  6  2  0  1  0 	/* RxD2 */
					1  7  2  0  1  0 	/* RxD3 */
					1  8  2  0  1  0 	/* RX_ER */
					1  9  1  0  1  0 	/* TX_ER */
					1  a  2  0  1  0 	/* RX_DV */
					1  b  2  0  1  0 	/* COL */
					1  c  1  0  1  0 	/* TX_EN */
					1  d  2  0  1  0>;/* CRS */
			};
			ucc_pin@04 {
				linux,phandle = <140004>;
				pio-map = <
			/* port  pin  dir  open_drain  assignment  has_irq */
					3 1f  2  0  1  0 	/* RX_CLK (CLK7) */
					3  6  2  0  1  0 	/* TX_CLK (CLK8) */
					1 12  1  0  1  0 	/* TxD0 */
					1 13  1  0  1  0 	/* TxD1 */
					1 14  1  0  1  0 	/* TxD2 */
					1 15  1  0  1  0 	/* TxD3 */
					1 16  2  0  1  0 	/* RxD0 */
					1 17  2  0  1  0 	/* RxD1 */
					1 18  2  0  1  0 	/* RxD2 */
					1 19  2  0  1  0 	/* RxD3 */
					1 1a  2  0  1  0 	/* RX_ER */
					1 1b  1  0  1  0 	/* TX_ER */
					1 1c  2  0  1  0 	/* RX_DV */
					1 1d  2  0  1  0 	/* COL */
					1 1e  1  0  1  0 	/* TX_EN */
					1 1f  2  0  1  0>;/* CRS */
			};
		};
	};

	qe@e0100000 {
		#address-cells = <1>;
		#size-cells = <1>;
		device_type = "qe";
		model = "QE";
		ranges = <0 e0100000 00100000>;
		reg = <e0100000 480>;
		brg-frequency = <0>;
		bus-frequency = <BCD3D80>;
		
		muram@10000 {
			device_type = "muram";
			ranges = <0 00010000 00004000>;
	
			data-only@0 {
				reg = <0 4000>;
			};
		};

		spi@4c0 {
			device_type = "spi";
			compatible = "fsl_spi";
			reg = <4c0 40>;
			interrupts = <2>;
			interrupt-parent = <80>;
			mode = "cpu";
		};

		spi@500 {
			device_type = "spi";
			compatible = "fsl_spi";
			reg = <500 40>;
			interrupts = <1>;
			interrupt-parent = <80>;
			mode = "cpu";
		};

		usb@6c0 {
			device_type = "usb";
			compatible = "qe_udc";
			reg = <6c0 40 8B00 100>;
			interrupts = <b>;
			interrupt-parent = <80>;
			mode = "slave";
		};

		ucc@2200 {
			device_type = "network";
			compatible = "ucc_geth";
			model = "UCC";
			device-id = <3>;
			reg = <2200 200>;
			interrupts = <22>;
			interrupt-parent = <80>;
			mac-address = [ 00 04 9f 00 23 23 ];
			rx-clock = <19>;
			tx-clock = <1a>;
			phy-handle = <212003>;
			pio-handle = <140003>;
		};

		ucc@3200 {
			device_type = "network";
			compatible = "ucc_geth";
			model = "UCC";
			device-id = <4>;
			reg = <3000 200>;
			interrupts = <23>;
			interrupt-parent = <80>;
			mac-address = [ 00 11 22 33 44 55 ];
			rx-clock = <17>;
			tx-clock = <18>;
			phy-handle = <212004>;
			pio-handle = <140004>;
		};

		mdio@2320 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2320 18>;
			device_type = "mdio";
			compatible = "ucc_geth_phy";

			ethernet-phy@03 {
				linux,phandle = <212003>;
				interrupt-parent = <700>;
				interrupts = <11 2>;
				reg = <3>;
				device_type = "ethernet-phy";
				interface = <3>; //ENET_100_MII
			};
			ethernet-phy@04 {
				linux,phandle = <212004>;
				interrupt-parent = <700>;
				interrupts = <12 2>;
				reg = <4>;
				device_type = "ethernet-phy";
				interface = <3>;
			};
		};

		qeic@80 {
			linux,phandle = <80>;
			interrupt-controller;
			device_type = "qeic";
			#address-cells = <0>;
			#interrupt-cells = <1>;
			reg = <80 80>;
			built-in;
			big-endian;
			interrupts = <20 8 21 8>; //high:32 low:33
			interrupt-parent = <700>;
		};
	};
};
Loading