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

Commit 6f73b362 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull powerpc updates from Benjamin Herrenschmidt:
 "Here are the powerpc goodies for 3.5.  Main highlights are:

   - Support for the NX crypto engine in Power7+
   - A bunch of Anton goodness, including some micro optimization of our
     syscall entry on Power7
   - I converted a pile of our thermal control drivers to the new i2c
     APIs (essentially turning the old therm_pm72 into a proper set of
     windfarm drivers).  That's one more step toward removing the
     deprecated i2c APIs, there's still a few drivers to fix, but we are
     getting close
   - kexec/kdump support for 47x embedded cores

  The big missing thing here is no updates from Freescale.  Not sure
  what's up here, but with Kumar not working for them anymore things are
  a bit in a state of flux in that area."

* 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (71 commits)
  powerpc: Fix irq distribution
  Revert "powerpc/hw-breakpoint: Use generic hw-breakpoint interfaces for new PPC ptrace flags"
  powerpc: Fixing a cputhread code documentation
  powerpc/crypto: Enable the PFO-based encryption device
  powerpc/crypto: Build files for the nx device driver
  powerpc/crypto: debugfs routines and docs for the nx device driver
  powerpc/crypto: SHA512 hash routines for nx encryption
  powerpc/crypto: SHA256 hash routines for nx encryption
  powerpc/crypto: AES-XCBC mode routines for nx encryption
  powerpc/crypto: AES-GCM mode routines for nx encryption
  powerpc/crypto: AES-ECB mode routines for nx encryption
  powerpc/crypto: AES-CTR mode routines for nx encryption
  powerpc/crypto: AES-CCM mode routines for nx encryption
  powerpc/crypto: AES-CBC mode routines for nx encryption
  powerpc/crypto: nx driver code supporting nx encryption
  powerpc/pseries: Enable the PFO-based RNG accelerator
  powerpc/pseries/hwrng: PFO-based hwrng driver
  powerpc/pseries: Add PFO support to the VIO bus
  powerpc/pseries: Add pseries update notifier for OFDT prop changes
  powerpc/pseries: Add new hvcall constants to support PFO
  ...
parents 3a8580f8 2074b1d9
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
What:		/sys/kernel/debug/nx-crypto/*
Date:		March 2012
KernelVersion:	3.4
Contact:	Kent Yoder <key@linux.vnet.ibm.com>
Description:

  These debugfs interfaces are built by the nx-crypto driver, built in
arch/powerpc/crypto/nx.

Error Detection
===============

errors:
- A u32 providing a total count of errors since the driver was loaded. The
only errors counted here are those returned from the hcall, H_COP_OP.

last_error:
- The most recent non-zero return code from the H_COP_OP hcall. -EBUSY is not
recorded here (the hcall will retry until -EBUSY goes away).

last_error_pid:
- The process ID of the process who received the most recent error from the
hcall.

Device Use
==========

aes_bytes:
- The total number of bytes encrypted using AES in any of the driver's
supported modes.

aes_ops:
- The total number of AES operations submitted to the hardware.

sha256_bytes:
- The total number of bytes hashed by the hardware using SHA-256.

sha256_ops:
- The total number of SHA-256 operations submitted to the hardware.

sha512_bytes:
- The total number of bytes hashed by the hardware using SHA-512.

sha512_ops:
- The total number of SHA-512 operations submitted to the hardware.
+2 −2
Original line number Diff line number Diff line
@@ -350,7 +350,7 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE

config KEXEC
	bool "kexec system call (EXPERIMENTAL)"
	depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP && !PPC_47x)) && EXPERIMENTAL
	depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP)) && EXPERIMENTAL
	help
	  kexec is a system call that implements the ability to shutdown your
	  current kernel, and to start another kernel.  It is like a reboot
@@ -367,7 +367,7 @@ config KEXEC

config CRASH_DUMP
	bool "Build a kdump crash kernel"
	depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP && !PPC_47x)
	depends on PPC64 || 6xx || FSL_BOOKE || (44x && !SMP)
	select RELOCATABLE if PPC64 || 44x
	select DYNAMIC_MEMSTART if FSL_BOOKE
	help
+23 −26
Original line number Diff line number Diff line
@@ -69,6 +69,16 @@ LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y)

CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=no -mcall-aixdesc
CFLAGS-$(CONFIG_PPC32)	:= -ffixed-r2 -mmultiple

CFLAGS-$(CONFIG_GENERIC_CPU) += $(call cc-option,-mtune=power7,-mtune=power4)
CFLAGS-$(CONFIG_CELL_CPU) += $(call cc-option,-mcpu=cell)
CFLAGS-$(CONFIG_POWER4_CPU) += $(call cc-option,-mcpu=power4)
CFLAGS-$(CONFIG_POWER5_CPU) += $(call cc-option,-mcpu=power5)
CFLAGS-$(CONFIG_POWER6_CPU) += $(call cc-option,-mcpu=power6)
CFLAGS-$(CONFIG_POWER7_CPU) += $(call cc-option,-mcpu=power7)

CFLAGS-$(CONFIG_TUNE_CELL) += $(call cc-option,-mtune=cell)

KBUILD_CPPFLAGS	+= -Iarch/$(ARCH)
KBUILD_AFLAGS	+= -Iarch/$(ARCH)
KBUILD_CFLAGS	+= -msoft-float -pipe -Iarch/$(ARCH) $(CFLAGS-y)
@@ -76,32 +86,11 @@ CPP = $(CC) -E $(KBUILD_CFLAGS)

CHECKFLAGS	+= -m$(CONFIG_WORD_SIZE) -D__powerpc__ -D__powerpc$(CONFIG_WORD_SIZE)__

ifeq ($(CONFIG_PPC64),y)
GCC_BROKEN_VEC	:= $(call cc-ifversion, -lt, 0400, y)

ifeq ($(CONFIG_POWER4_ONLY),y)
ifeq ($(CONFIG_ALTIVEC),y)
ifeq ($(GCC_BROKEN_VEC),y)
	KBUILD_CFLAGS += $(call cc-option,-mcpu=970)
else
	KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
endif
else
	KBUILD_CFLAGS += $(call cc-option,-mcpu=power4)
endif
else
	KBUILD_CFLAGS += $(call cc-option,-mtune=power4)
endif
endif

KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o

ifeq ($(CONFIG_TUNE_CELL),y)
	KBUILD_CFLAGS += $(call cc-option,-mtune=cell)
endif

# No AltiVec instruction when building kernel
# No AltiVec or VSX instructions when building kernel
KBUILD_CFLAGS += $(call cc-option,-mno-altivec)
KBUILD_CFLAGS += $(call cc-option,-mno-vsx)

# No SPE instruction when building kernel
# (We use all available options to help semi-broken compilers)
@@ -160,6 +149,7 @@ core-$(CONFIG_KVM) += arch/powerpc/kvm/
core-$(CONFIG_PERF_EVENTS)	+= arch/powerpc/perf/

drivers-$(CONFIG_OPROFILE)	+= arch/powerpc/oprofile/
drivers-$(CONFIG_CRYPTO_DEV_NX) += drivers/crypto/nx/

# Default to zImage, override when needed
all: zImage
@@ -234,10 +224,11 @@ archprepare: checkbin
# Use the file '.tmp_gas_check' for binutils tests, as gas won't output
# to stdout and these checks are run even on install targets.
TOUT	:= .tmp_gas_check
# Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec
# instructions.
# gcc-3.4 and binutils-2.14 are a fatal combination.

# Check gcc and binutils versions:
# - gcc-3.4 and binutils-2.14 are a fatal combination
# - Require gcc 4.0 or above on 64-bit
# - gcc-4.2.0 has issues compiling modules on 64-bit
checkbin:
	@if test "$(call cc-version)" = "0304" ; then \
		if ! /bin/echo mftb 5 | $(AS) -v -mppc -many -o $(TOUT) >/dev/null 2>&1 ; then \
@@ -247,6 +238,12 @@ checkbin:
			false; \
		fi ; \
	fi
	@if test "$(call cc-version)" -lt "0400" \
	    && test "x${CONFIG_PPC64}" = "xy" ; then \
                echo -n "Sorry, GCC v4.0 or above is required to build " ; \
                echo "the 64-bit powerpc kernel." ; \
                false ; \
        fi
	@if test "$(call cc-fullversion)" = "040200" \
	    && test "x${CONFIG_MODULES}${CONFIG_PPC64}" = "xyy" ; then \
		echo -n '*** GCC-4.2.0 cannot compile the 64-bit powerpc ' ; \
+25 −0
Original line number Diff line number Diff line
@@ -373,5 +373,30 @@
				0x0 0x0 0x0 0x3 &UIC3 0xe 0x4 /* swizzled int C */
				0x0 0x0 0x0 0x4 &UIC3 0xf 0x4 /* swizzled int D */>;
		};

		MSI: ppc4xx-msi@C10000000 {
			compatible = "amcc,ppc4xx-msi", "ppc4xx-msi";
			reg = < 0xC 0x10000000 0x100
				0xC 0x10000000 0x100>;
			sdr-base = <0x36C>;
			msi-data = <0x00004440>;
			msi-mask = <0x0000ffe0>;
			interrupts =<0 1 2 3 4 5 6 7>;
			interrupt-parent = <&MSI>;
			#interrupt-cells = <1>;
			#address-cells = <0>;
			#size-cells = <0>;
			msi-available-ranges = <0x0 0x100>;
			interrupt-map = <
				0 &UIC3 0x18 1
				1 &UIC3 0x19 1
				2 &UIC3 0x1A 1
				3 &UIC3 0x1B 1
				4 &UIC3 0x1C 1
				5 &UIC3 0x1D 1
				6 &UIC3 0x1E 1
				7 &UIC3 0x1F 1
			>;
		};
	};
};
+0 −1
Original line number Diff line number Diff line
CONFIG_PPC64=y
CONFIG_POWER4_ONLY=y
CONFIG_ALTIVEC=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
Loading