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

Commit e4e88f31 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (185 commits)
  powerpc: fix compile error with 85xx/p1010rdb.c
  powerpc: fix compile error with 85xx/p1023_rds.c
  powerpc/fsl: add MSI support for the Freescale hypervisor
  arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
  powerpc/fsl: Add support for Integrated Flash Controller
  powerpc/fsl: update compatiable on fsl 16550 uart nodes
  powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
  powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
  powerpc/fsl: Update defconfigs to enable some standard FSL HW features
  powerpc: Add TBI PHY node to first MDIO bus
  sbc834x: put full compat string in board match check
  powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
  powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit
  offb: Fix setting of the pseudo-palette for >8bpp
  offb: Add palette hack for qemu "standard vga" framebuffer
  offb: Fix bug in calculating requested vram size
  powerpc/boot: Change the WARN to INFO for boot wrapper overlap message
  powerpc/44x: Fix build error on currituck platform
  powerpc/boot: Change the load address for the wrapper to fit the kernel
  powerpc/44x: Enable CRASH_DUMP for 440x
  ...

Fix up a trivial conflict in arch/powerpc/include/asm/cputime.h due to
the additional sparse-checking code for cputime_t.
parents 9753dfe1 ef88e391
Loading
Loading
Loading
Loading
+163 −0
Original line number Diff line number Diff line
Message unit node:

For SRIO controllers that implement the message unit as part of the controller
this node is required.  For devices with RMAN this node should NOT exist.  The
node is composed of three types of sub-nodes ("fsl-srio-msg-unit",
"fsl-srio-dbell-unit" and "fsl-srio-port-write-unit").

See srio.txt for more details about generic SRIO controller details.

   - compatible
	Usage: required
	Value type: <string>
	Definition: Must include "fsl,srio-rmu-vX.Y", "fsl,srio-rmu".

	The version X.Y should match the general SRIO controller's IP Block
	revision register's Major(X) and Minor (Y) value.

   - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property.  Specifies the physical address and
		length of the SRIO configuration registers for message units
		and doorbell units.

   - fsl,liodn
	Usage: optional-but-recommended (for devices with PAMU)
	Value type: <prop-encoded-array>
	Definition: The logical I/O device number for the PAMU (IOMMU) to be
		correctly configured for SRIO accesses.  The property should
		not exist on devices that do not support PAMU.

		The LIODN value is associated with all RMU transactions
		(msg-unit, doorbell, port-write).

Sub-Nodes for RMU:  The RMU node is composed of multiple sub-nodes that
correspond to the actual sub-controllers in the RMU.  The manual for a given
SoC will detail which and how many of these sub-controllers are implemented.

Message Unit:

   - compatible
	Usage: required
	Value type: <string>
	Definition: Must include "fsl,srio-msg-unit-vX.Y", "fsl,srio-msg-unit".

	The version X.Y should match the general SRIO controller's IP Block
	revision register's Major(X) and Minor (Y) value.

   - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property.  Specifies the physical address and
		length of the SRIO configuration registers for message units
		and doorbell units.

   - interrupts
	Usage: required
	Value type: <prop_encoded-array>
	Definition:  Specifies the interrupts generated by this device.  The
		value of the interrupts property consists of one interrupt
		specifier. The format of the specifier is defined by the
		binding document describing the node's interrupt parent.

		A pair of IRQs are specified in this property.  The first
		element is associated with the transmit (TX) interrupt and the
		second element is associated with the receive (RX) interrupt.

Doorbell Unit:

   - compatible
	Usage: required
	Value type: <string>
	Definition: Must include:
		"fsl,srio-dbell-unit-vX.Y", "fsl,srio-dbell-unit"

	The version X.Y should match the general SRIO controller's IP Block
	revision register's Major(X) and Minor (Y) value.

   - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property.  Specifies the physical address and
		length of the SRIO configuration registers for message units
		and doorbell units.

   - interrupts
	Usage: required
	Value type: <prop_encoded-array>
	Definition:  Specifies the interrupts generated by this device.  The
		value of the interrupts property consists of one interrupt
		specifier. The format of the specifier is defined by the
		binding document describing the node's interrupt parent.

		A pair of IRQs are specified in this property.  The first
		element is associated with the transmit (TX) interrupt and the
		second element is associated with the receive (RX) interrupt.

Port-Write Unit:

   - compatible
	Usage: required
	Value type: <string>
	Definition: Must include:
		 "fsl,srio-port-write-unit-vX.Y", "fsl,srio-port-write-unit"

	The version X.Y should match the general SRIO controller's IP Block
	revision register's Major(X) and Minor (Y) value.

   - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property.  Specifies the physical address and
		length of the SRIO configuration registers for message units
		and doorbell units.

   - interrupts
	Usage: required
	Value type: <prop_encoded-array>
	Definition:  Specifies the interrupts generated by this device.  The
		value of the interrupts property consists of one interrupt
		specifier. The format of the specifier is defined by the
		binding document describing the node's interrupt parent.

		A single IRQ that handles port-write conditions is
		specified by this property.  (Typically shared with error).

   Note: All other standard properties (see the ePAPR) are allowed
   but are optional.

Example:
	rmu: rmu@d3000 {
		compatible = "fsl,srio-rmu";
		reg = <0xd3000 0x400>;
		ranges = <0x0 0xd3000 0x400>;
		fsl,liodn = <0xc8>;

		message-unit@0 {
			compatible = "fsl,srio-msg-unit";
			reg = <0x0 0x100>;
			interrupts = <
				60 2 0 0  /* msg1_tx_irq */
				61 2 0 0>;/* msg1_rx_irq */
		};
		message-unit@100 {
			compatible = "fsl,srio-msg-unit";
			reg = <0x100 0x100>;
			interrupts = <
				62 2 0 0  /* msg2_tx_irq */
				63 2 0 0>;/* msg2_rx_irq */
		};
		doorbell-unit@400 {
			compatible = "fsl,srio-dbell-unit";
			reg = <0x400 0x80>;
			interrupts = <
				56 2 0 0  /* bell_outb_irq */
				57 2 0 0>;/* bell_inb_irq */
		};
		port-write-unit@4e0 {
			compatible = "fsl,srio-port-write-unit";
			reg = <0x4e0 0x20>;
			interrupts = <16 2 1 11>;
		};
	};
+103 −0
Original line number Diff line number Diff line
* Freescale Serial RapidIO (SRIO) Controller

RapidIO port node:
Properties:
   - compatible
	Usage: required
	Value type: <string>
	Definition: Must include "fsl,srio" for IP blocks with IP Block
	Revision Register (SRIO IPBRR1) Major ID equal to 0x01c0.

	Optionally, a compatiable string of "fsl,srio-vX.Y" where X is Major
	version in IP Block Revision Register and Y is Minor version.  If this
	compatiable is provided it should be ordered before "fsl,srio".

   - reg
	Usage: required
	Value type: <prop-encoded-array>
	Definition: A standard property.  Specifies the physical address and
		length of the SRIO configuration registers.  The size should
		be set to 0x11000.

   - interrupts
	Usage: required
	Value type: <prop_encoded-array>
	Definition:  Specifies the interrupts generated by this device.  The
		value of the interrupts property consists of one interrupt
		specifier. The format of the specifier is defined by the
		binding document describing the node's interrupt parent.

		A single IRQ that handles error conditions is specified by this
		property.  (Typically shared with port-write).

   - fsl,srio-rmu-handle:
	Usage: required if rmu node is defined
	Value type: <phandle>
	Definition: A single <phandle> value that points to the RMU.
	(See srio-rmu.txt for more details on RMU node binding)

Port Child Nodes:  There should a port child node for each port that exists in
the controller.  The ports are numbered starting at one (1) and should have
the following properties:

   - cell-index
	Usage: required
	Value type: <u32>
	Definition: A standard property.  Matches the port id.

   - ranges
	Usage: required if local access windows preset
	Value type: <prop-encoded-array>
	Definition: A standard property. Utilized to describe the memory mapped
		IO space utilized by the controller.  This corresponds to the
		setting of the local access windows that are targeted to this
		SRIO port.

   - fsl,liodn
	Usage: optional-but-recommended (for devices with PAMU)
	Value type: <prop-encoded-array>
	Definition: The logical I/O device number for the PAMU (IOMMU) to be
		correctly configured for SRIO accesses.  The property should
		not exist on devices that do not support PAMU.

		For HW (ie, the P4080) that only supports a LIODN for both
		memory and maintenance transactions then a single LIODN is
		represented in the property for both transactions.

		For HW (ie, the P304x/P5020, etc) that supports an LIODN for
		memory transactions and a unique LIODN for maintenance
		transactions then a pair of LIODNs are represented in the
		property.  Within the pair, the first element represents the
		LIODN associated with memory transactions and the second element
		represents the LIODN associated with maintenance transactions
		for the port.

Note: All other standard properties (see ePAPR) are allowed but are optional.

Example:

	rapidio: rapidio@ffe0c0000 {
		#address-cells = <2>;
		#size-cells = <2>;
		reg = <0xf 0xfe0c0000 0 0x11000>;
		compatible = "fsl,srio";
		interrupts = <16 2 1 11>; /* err_irq */
		fsl,srio-rmu-handle = <&rmu>;
		ranges;

		port1 {
			cell-index = <1>;
			#address-cells = <2>;
			#size-cells = <2>;
			fsl,liodn = <34>;
			ranges = <0 0 0xc 0x20000000 0 0x10000000>;
		};

		port2 {
			cell-index = <2>;
			#address-cells = <2>;
			#size-cells = <2>;
			fsl,liodn = <48>;
			ranges = <0 0 0xc 0x30000000 0 0x10000000>;
		};
	};
+1 −1
Original line number Diff line number Diff line
@@ -4011,7 +4011,7 @@ M: Josh Boyer <jwboyer@gmail.com>
M:	Matt Porter <mporter@kernel.crashing.org>
W:	http://www.penguinppc.org/
L:	linuxppc-dev@lists.ozlabs.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/jwboyer/powerpc-4xx.git
T:	git git://git.infradead.org/users/jwboyer/powerpc-4xx.git
S:	Maintained
F:	arch/powerpc/platforms/40x/
F:	arch/powerpc/platforms/44x/
+46 −8
Original line number Diff line number Diff line
@@ -87,6 +87,10 @@ config ARCH_HAS_ILOG2_U64
	bool
	default y if 64BIT

config ARCH_HAS_CPU_IDLE_WAIT
	bool
	default y

config GENERIC_HWEIGHT
	bool
	default y
@@ -133,6 +137,7 @@ config PPC
	select IRQ_PER_CPU
	select GENERIC_IRQ_SHOW
	select GENERIC_IRQ_SHOW_LEVEL
	select IRQ_FORCED_THREADING
	select HAVE_RCU_TABLE_FREE if SMP
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_BPF_JIT if (PPC64 && NET)
@@ -363,8 +368,9 @@ config KEXEC

config CRASH_DUMP
	bool "Build a kdump crash kernel"
	depends on PPC64 || 6xx || FSL_BOOKE
	select RELOCATABLE if PPC64 || FSL_BOOKE
	depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP && !PPC_47x)
	select RELOCATABLE if PPC64 || 44x
	select DYNAMIC_MEMSTART if FSL_BOOKE
	help
	  Build a kernel suitable for use as a kdump capture kernel.
	  The same kernel binary can be used as production kernel and dump
@@ -685,6 +691,10 @@ config FSL_LBC
	  controller.  Also contains some common code used by
	  drivers for specific local bus peripherals.

config FSL_IFC
	bool
        depends on FSL_SOC

config FSL_GTM
	bool
	depends on PPC_83xx || QUICC_ENGINE || CPM2
@@ -770,6 +780,10 @@ source "drivers/rapidio/Kconfig"

endmenu

config NONSTATIC_KERNEL
	bool
	default n

menu "Advanced setup"
	depends on PPC32

@@ -819,13 +833,32 @@ config LOWMEM_CAM_NUM
	int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
	default 3

config DYNAMIC_MEMSTART
	bool "Enable page aligned dynamic load address for kernel (EXPERIMENTAL)"
	depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || 44x)
	select NONSTATIC_KERNEL
	help
	  This option enables the kernel to be loaded at any page aligned
	  physical address. The kernel creates a mapping from KERNELBASE to 
	  the address where the kernel is loaded. The page size here implies
	  the TLB page size of the mapping for kernel on the particular platform.
	  Please refer to the init code for finding the TLB page size.

	  DYNAMIC_MEMSTART is an easy way of implementing pseudo-RELOCATABLE
	  kernel image, where the only restriction is the page aligned kernel
	  load address. When this option is enabled, the compile time physical 
	  address CONFIG_PHYSICAL_START is ignored.

	  This option is overridden by CONFIG_RELOCATABLE

config RELOCATABLE
	bool "Build a relocatable kernel (EXPERIMENTAL)"
	depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && (FSL_BOOKE || PPC_47x)
	depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && 44x
	select NONSTATIC_KERNEL
	help
	  This builds a kernel image that is capable of running at the
	  location the kernel is loaded at (some alignment restrictions may
	  exist).
	  location the kernel is loaded at, without any alignment restrictions.
	  This feature is a superset of DYNAMIC_MEMSTART and hence overrides it.

	  One use is for the kexec on panic case where the recovery kernel
	  must live at a different physical address than the primary
@@ -835,7 +868,11 @@ config RELOCATABLE
	  it has been loaded at and the compile time physical addresses
	  CONFIG_PHYSICAL_START is ignored.  However CONFIG_PHYSICAL_START
	  setting can still be useful to bootwrappers that need to know the
	  load location of the kernel (eg. u-boot/mkimage).
	  load address of the kernel (eg. u-boot/mkimage).

config RELOCATABLE_PPC32
	def_bool y
	depends on PPC32 && RELOCATABLE

config PAGE_OFFSET_BOOL
	bool "Set custom page offset address"
@@ -865,7 +902,7 @@ config KERNEL_START_BOOL
config KERNEL_START
	hex "Virtual address of kernel base" if KERNEL_START_BOOL
	default PAGE_OFFSET if PAGE_OFFSET_BOOL
	default "0xc2000000" if CRASH_DUMP && !RELOCATABLE
	default "0xc2000000" if CRASH_DUMP && !NONSTATIC_KERNEL
	default "0xc0000000"

config PHYSICAL_START_BOOL
@@ -878,7 +915,7 @@ config PHYSICAL_START_BOOL

config PHYSICAL_START
	hex "Physical address where the kernel is loaded" if PHYSICAL_START_BOOL
	default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !RELOCATABLE
	default "0x02000000" if PPC_STD_MMU && CRASH_DUMP && !NONSTATIC_KERNEL
	default "0x00000000"

config PHYSICAL_ALIGN
@@ -924,6 +961,7 @@ endmenu
if PPC64
config RELOCATABLE
	bool "Build a relocatable kernel"
	select NONSTATIC_KERNEL
	help
	  This builds a kernel image that is capable of running anywhere
	  in the RMA (real memory area) at any 16k-aligned base address.
+12 −0
Original line number Diff line number Diff line
@@ -336,4 +336,16 @@ config PPC_EARLY_DEBUG_CPM_ADDR
	  platform probing is done, all platforms selected must
	  share the same address.

config STRICT_DEVMEM
	def_bool y
	prompt "Filter access to /dev/mem"
	help
	  This option restricts access to /dev/mem.  If this option is
	  disabled, you allow userspace access to all memory, including
	  kernel and userspace memory. Accidental memory access is likely
	  to be disastrous.
	  Memory access is required for experts who want to debug the kernel.

	  If you are unsure, say Y.

endmenu
Loading