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

Commit 2e6e33ba authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (78 commits)
  [PATCH] powerpc: Add FSL SEC node to documentation
  [PATCH] macintosh: tidy-up driver_register() return values
  [PATCH] powerpc: tidy-up of_register_driver()/driver_register() return values
  [PATCH] powerpc: via-pmu warning fix
  [PATCH] macintosh: cleanup the use of i2c headers
  [PATCH] powerpc: dont allow old RTC to be selected
  [PATCH] powerpc: make powerbook_sleep_grackle static
  [PATCH] powerpc: Fix warning in add_memory
  [PATCH] powerpc: update mailing list addresses
  [PATCH] powerpc: Remove calculation of io hole
  [PATCH] powerpc: iseries: Add bootargs to /chosen
  [PATCH] powerpc: iseries: Add /system-id, /model and /compatible
  [PATCH] powerpc: Add strne2a() to convert a string from EBCDIC to ASCII
  [PATCH] powerpc: iseries: Make more stuff static in platforms/iseries/mf.c
  [PATCH] powerpc: iseries: Remove pointless iSeries_(restart|power_off|halt)
  [PATCH] powerpc: iseries: mf related cleanups
  [PATCH] powerpc: Replace platform_is_lpar() with a firmware feature
  [PATCH] powerpc: trivial: Cleanup whitespace in cputable.h
  [PATCH] powerpc: Remove unused iommu_off logic from pSeries_init_early()
  [PATCH] powerpc: Unconfuse htab_bolt_mapping() callers
  ...
parents b7ad6d75 b88a0b1d
Loading
Loading
Loading
Loading
+72 −0
Original line number Diff line number Diff line
@@ -1365,6 +1365,78 @@ platforms are moved over to use the flattened-device-tree model.
	};


   g) Freescale SOC SEC Security Engines

   Required properties:

    - device_type : Should be "crypto"
    - model : Model of the device.  Should be "SEC1" or "SEC2"
    - compatible : Should be "talitos"
    - reg : Offset and length of the register set for the device
    - interrupts : <a b> where a is the interrupt number and b is a
      field that represents an encoding of the sense and level
      information for the interrupt.  This should be encoded based on
      the information in section 2) depending on the type of interrupt
      controller you have.
    - interrupt-parent : the phandle for the interrupt controller that
      services interrupts for this device.
    - num-channels : An integer representing the number of channels
      available.
    - channel-fifo-len : An integer representing the number of
      descriptor pointers each channel fetch fifo can hold.
    - exec-units-mask : The bitmask representing what execution units
      (EUs) are available. It's a single 32 bit cell. EU information
      should be encoded following the SEC's Descriptor Header Dword
      EU_SEL0 field documentation, i.e. as follows:

        bit 0 = reserved - should be 0
        bit 1 = set if SEC has the ARC4 EU (AFEU)
        bit 2 = set if SEC has the DES/3DES EU (DEU)
        bit 3 = set if SEC has the message digest EU (MDEU)
        bit 4 = set if SEC has the random number generator EU (RNG)
        bit 5 = set if SEC has the public key EU (PKEU)
        bit 6 = set if SEC has the AES EU (AESU)
        bit 7 = set if SEC has the Kasumi EU (KEU)

      bits 8 through 31 are reserved for future SEC EUs.

    - descriptor-types-mask : The bitmask representing what descriptors
      are available. It's a single 32 bit cell. Descriptor type
      information should be encoded following the SEC's Descriptor
      Header Dword DESC_TYPE field documentation, i.e. as follows:

        bit 0  = set if SEC supports the aesu_ctr_nonsnoop desc. type
        bit 1  = set if SEC supports the ipsec_esp descriptor type
        bit 2  = set if SEC supports the common_nonsnoop desc. type
        bit 3  = set if SEC supports the 802.11i AES ccmp desc. type
        bit 4  = set if SEC supports the hmac_snoop_no_afeu desc. type
        bit 5  = set if SEC supports the srtp descriptor type
        bit 6  = set if SEC supports the non_hmac_snoop_no_afeu desc.type
        bit 7  = set if SEC supports the pkeu_assemble descriptor type
        bit 8  = set if SEC supports the aesu_key_expand_output desc.type
        bit 9  = set if SEC supports the pkeu_ptmul descriptor type
        bit 10 = set if SEC supports the common_nonsnoop_afeu desc. type
        bit 11 = set if SEC supports the pkeu_ptadd_dbl descriptor type

      ..and so on and so forth.

   Example:

       /* MPC8548E */
       crypto@30000 {
               device_type = "crypto";
               model = "SEC2";
               compatible = "talitos";
               reg = <30000 10000>;
               interrupts = <1d 3>;
               interrupt-parent = <40000>;
               num-channels = <4>;
               channel-fifo-len = <24>;
               exec-units-mask = <000000fe>;
               descriptor-types-mask = <073f1127>;
       };


   More devices will be defined as this spec matures.


+8 −7
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ accomplished.

EEH must be enabled in the PHB's very early during the boot process,
and if a PCI slot is hot-plugged. The former is performed by
eeh_init() in arch/ppc64/kernel/eeh.c, and the later by
eeh_init() in arch/powerpc/platforms/pseries/eeh.c, and the later by
drivers/pci/hotplug/pSeries_pci.c calling in to the eeh.c code.
EEH must be enabled before a PCI scan of the device can proceed.
Current Power5 hardware will not work unless EEH is enabled;
@@ -133,7 +133,7 @@ error. Given an arbitrary address, the routine
pci_get_device_by_addr() will find the pci device associated
with that address (if any).

The default include/asm-ppc64/io.h macros readb(), inb(), insb(),
The default include/asm-powerpc/io.h macros readb(), inb(), insb(),
etc. include a check to see if the i/o read returned all-0xff's.
If so, these make a call to eeh_dn_check_failure(), which in turn
asks the firmware if the all-ff's value is the sign of a true EEH
@@ -143,11 +143,12 @@ seen in /proc/ppc64/eeh (subject to change). Normally, almost
all of these occur during boot, when the PCI bus is scanned, where
a large number of 0xff reads are part of the bus scan procedure.

If a frozen slot is detected, code in arch/ppc64/kernel/eeh.c will
print a stack trace to syslog (/var/log/messages).  This stack trace
has proven to be very useful to device-driver authors for finding
out at what point the EEH error was detected, as the error itself
usually occurs slightly beforehand.
If a frozen slot is detected, code in 
arch/powerpc/platforms/pseries/eeh.c will print a stack trace to 
syslog (/var/log/messages).  This stack trace has proven to be very 
useful to device-driver authors for finding out at what point the EEH 
error was detected, as the error itself usually occurs slightly 
beforehand.

Next, it uses the Linux kernel notifier chain/work queue mechanism to
allow any interested parties to find out about the failure.  Device
+2 −2
Original line number Diff line number Diff line
@@ -558,9 +558,9 @@ partitions.

The proper channel for reporting bugs is either through the Linux OS
distribution company that provided your OS or by posting issues to the
ppc64 development mailing list at:
PowerPC development mailing list at:

linuxppc64-dev@lists.linuxppc.org
linuxppc-dev@ozlabs.org

This request is to provide a documented and searchable public exchange
of the problems and solutions surrounding this driver for the benefit of
+2 −2
Original line number Diff line number Diff line
@@ -534,7 +534,7 @@ S: Supported
BROADBAND PROCESSOR ARCHITECTURE
P:	Arnd Bergmann
M:	arnd@arndb.de
L:	linuxppc64-dev@ozlabs.org
L:	linuxppc-dev@ozlabs.org
W:	http://linuxppc64.org
S:	Supported

@@ -1624,7 +1624,7 @@ P: Anton Blanchard
M:	anton@samba.org
M:	anton@au.ibm.com
W:	http://linuxppc64.org
L:	linuxppc64-dev@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Supported

LINUX SECURITY MODULE (LSM) FRAMEWORK
+32 −6
Original line number Diff line number Diff line
@@ -127,6 +127,12 @@ config PPC_83xx
	select 83xx
	select PPC_FPU

config PPC_85xx
	bool "Freescale 85xx"
	select E500
	select FSL_SOC
	select 85xx

config 40x
	bool "AMCC 40x"

@@ -139,8 +145,6 @@ config 8xx
config E200
	bool "Freescale e200"

config E500
	bool "Freescale e500"
endchoice

config POWER4_ONLY
@@ -168,6 +172,13 @@ config 6xx
config 83xx
	bool

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

config E500
	bool

config PPC_FPU
	bool
	default y if PPC64
@@ -217,6 +228,7 @@ config ALTIVEC
config SPE
	bool "SPE Support"
	depends on E200 || E500
	default y
	---help---
	  This option enables kernel support for the Signal Processing
	  Extensions (SPE) to the PowerPC processor. The kernel currently
@@ -238,6 +250,21 @@ config PPC_STD_MMU_32
	def_bool y
	depends on PPC_STD_MMU && PPC32

config VIRT_CPU_ACCOUNTING
	bool "Deterministic task and CPU time accounting"
	depends on PPC64
	default y
	help
	  Select this option to enable more accurate task and CPU time
	  accounting.  This is done by reading a CPU counter on each
	  kernel entry and exit and on transitions within the kernel
	  between system, softirq and hardirq state, so there is a
	  small performance impact.  This also enables accounting of
	  stolen time on logically-partitioned systems running on
	  IBM POWER5-based machines.

	  If in doubt, say Y here.

config SMP
	depends on PPC_STD_MMU
	bool "Symmetric multi-processing support"
@@ -734,13 +761,12 @@ config GENERIC_ISA_DMA

config PPC_I8259
	bool
	default y if 85xx
	default n

config PPC_INDIRECT_PCI
	bool
	depends on PCI
	default y if 40x || 44x || 85xx
	default y if 40x || 44x
	default n

config EISA
@@ -757,8 +783,8 @@ config MCA
	bool

config PCI
	bool "PCI support" if 40x || CPM2 || PPC_83xx || 85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !85xx
	bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES)
	default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx
	default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
	default PCI_QSPAN if !4xx && !CPM2 && 8xx
	help
Loading