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

Commit e8690861 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (408 commits)
  [POWERPC] Add memchr() to the bootwrapper
  [POWERPC] Implement logging of unhandled signals
  [POWERPC] Add legacy serial support for OPB with flattened device tree
  [POWERPC] Use 1TB segments
  [POWERPC] XilinxFB: Allow fixed framebuffer base address
  [POWERPC] XilinxFB: Add support for custom screen resolution
  [POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters
  [POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci
  [POWERPC] 4xx: Kilauea defconfig file
  [POWERPC] 4xx: Kilauea DTS
  [POWERPC] 4xx: Add AMCC Kilauea eval board support to platforms/40x
  [POWERPC] 4xx: Add AMCC 405EX support to cputable.c
  [POWERPC] Adjust TASK_SIZE on ppc32 systems to 3GB that are capable
  [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers
  [POWERPC] 85xx: Enable FP emulation in MPC8560 ADS defconfig
  [POWERPC] 85xx: Killed <asm/mpc85xx.h>
  [POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
  [POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
  [POWERPC] mpc8272ads: Remove muram from the CPM reg property.
  [POWERPC] Make clockevents work on PPC601 processors
  ...

Fixed up conflict in Documentation/powerpc/booting-without-of.txt manually.
parents 54730742 9b4b8feb
Loading
Loading
Loading
Loading
+299 −37
Original line number Original line Diff line number Diff line
@@ -50,7 +50,7 @@ Table of Contents
      g) Freescale SOC SEC Security Engines
      g) Freescale SOC SEC Security Engines
      h) Board Control and Status (BCSR)
      h) Board Control and Status (BCSR)
      i) Freescale QUICC Engine module (QE)
      i) Freescale QUICC Engine module (QE)
      j) Flash chip nodes
      j) CFI or JEDEC memory-mapped NOR flash
      k) Global Utilities Block
      k) Global Utilities Block


  VII - Specifying interrupt information for devices
  VII - Specifying interrupt information for devices
@@ -1510,7 +1510,10 @@ platforms are moved over to use the flattened-device-tree model.


   i) Freescale QUICC Engine module (QE)
   i) Freescale QUICC Engine module (QE)
   This represents qe module that is installed on PowerQUICC II Pro.
   This represents qe module that is installed on PowerQUICC II Pro.
   Hopefully it will merge backward compatibility with CPM/CPM2.

   NOTE:  This is an interim binding; it should be updated to fit
   in with the CPM binding later in this document.

   Basically, it is a bus of devices, that could act more or less
   Basically, it is a bus of devices, that could act more or less
   as a complete entity (UCC, USB etc ). All of them should be siblings on
   as a complete entity (UCC, USB etc ). All of them should be siblings on
   the "root" qe node, using the common properties from there.
   the "root" qe node, using the common properties from there.
@@ -1548,7 +1551,7 @@ platforms are moved over to use the flattened-device-tree model.
   Required properties:
   Required properties:
   - device_type : should be "spi".
   - device_type : should be "spi".
   - compatible : should be "fsl_spi".
   - compatible : should be "fsl_spi".
   - mode : the SPI operation mode, it can be "cpu" or "qe".
   - mode : the SPI operation mode, it can be "cpu" or "cpu-qe".
   - reg : Offset and length of the register set for the device
   - reg : Offset and length of the register set for the device
   - interrupts : <a b> where a is the interrupt number and b is a
   - interrupts : <a b> where a is the interrupt number and b is a
     field that represents an encoding of the sense and level
     field that represents an encoding of the sense and level
@@ -1757,44 +1760,68 @@ platforms are moved over to use the flattened-device-tree model.
		};
		};
	};
	};


    j) Flash chip nodes
   j) CFI or JEDEC memory-mapped NOR flash


    Flash chips (Memory Technology Devices) are often used for solid state
    Flash chips (Memory Technology Devices) are often used for solid state
    file systems on embedded devices.
    file systems on embedded devices.


    Required properties:
     - compatible : should contain the specific model of flash chip(s)

       used, if known, followed by either "cfi-flash" or "jedec-flash"
     - device_type : has to be "rom"
     - reg : Address range of the flash chip
     - compatible : Should specify what this flash device is compatible with.
     - bank-width : Width (in bytes) of the flash bank.  Equal to the
       Currently, this is most likely to be "direct-mapped" (which
       device width times the number of interleaved chips.
       corresponds to the MTD physmap mapping driver).
     - device-width : (optional) Width of a single flash chip.  If
     - reg : Offset and length of the register set (or memory mapping) for
       omitted, assumed to be equal to 'bank-width'.
       the device.
     - #address-cells, #size-cells : Must be present if the flash has
     - bank-width : Width of the flash data bus in bytes. Required
       sub-nodes representing partitions (see below).  In this case
       for the NOR flashes (compatible == "direct-mapped" and others) ONLY.
       both #address-cells and #size-cells must be equal to 1.


    Recommended properties :
    For JEDEC compatible devices, the following additional properties

    are defined:
     - partitions : Several pairs of 32-bit values where the first value is

       partition's offset from the start of the device and the second one is
     - vendor-id : Contains the flash chip's vendor id (1 byte).
       partition size in bytes with LSB used to signify a read only
     - device-id : Contains the flash chip's device id (1 byte).
       partition (so, the partition size should always be an even number).

     - partition-names : The list of concatenated zero terminated strings
    In addition to the information on the flash bank itself, the
       representing the partition names.
    device tree may optionally contain additional information
     - probe-type : The type of probe which should be done for the chip
    describing partitions of the flash address space.  This can be
       (JEDEC vs CFI actually). Valid ONLY for NOR flashes.
    used on platforms which have strong conventions about which
    portions of the flash are used for what purposes, but which don't
    use an on-flash partition table such as RedBoot.

    Each partition is represented as a sub-node of the flash device.
    Each node's name represents the name of the corresponding
    partition of the flash device.

    Flash partitions
     - reg : The partition's offset and size within the flash bank.
     - label : (optional) The label / name for this flash partition.
       If omitted, the label is taken from the node name (excluding
       the unit address).
     - read-only : (optional) This parameter, if present, is a hint to
       Linux that this flash partition should only be mounted
       read-only.  This is usually used for flash partitions
       containing early-boot firmware images or data which should not
       be clobbered.


    Example:
    Example:


	flash@ff000000 {
	flash@ff000000 {
 		device_type = "rom";
		compatible = "amd,am29lv128ml", "cfi-flash";
 		compatible = "direct-mapped";
 		probe-type = "CFI";
		reg = <ff000000 01000000>;
		reg = <ff000000 01000000>;
		bank-width = <4>;
		bank-width = <4>;
 		partitions = <00000000 00f80000
		device-width = <1>;
 			      00f80000 00080001>;
		#address-cells = <1>;
 		partition-names = "fs\0firmware";
		#size-cells = <1>;
		fs@0 {
			label = "fs";
			reg = <0 f80000>;
		};
		firmware@f80000 {
			label ="firmware";
			reg = <f80000 80000>;
			read-only;
		};
	};
	};


   k) Global Utilities Block
   k) Global Utilities Block
@@ -1824,8 +1851,243 @@ platforms are moved over to use the flattened-device-tree model.
		fsl,has-rstcr;
		fsl,has-rstcr;
	};
	};


   l) Freescale Communications Processor Module

   NOTE: This is an interim binding, and will likely change slightly,
   as more devices are supported.  The QE bindings especially are
   incomplete.

   i) Root CPM node

   Properties:
   - compatible : "fsl,cpm1", "fsl,cpm2", or "fsl,qe".
   - reg : A 48-byte region beginning with CPCR.

   Example:
	cpm@119c0 {
		#address-cells = <1>;
		#size-cells = <1>;
		#interrupt-cells = <2>;
		compatible = "fsl,mpc8272-cpm", "fsl,cpm2";
		reg = <119c0 30>;
	}

   ii) Properties common to mulitple CPM/QE devices

   - fsl,cpm-command : This value is ORed with the opcode and command flag
                       to specify the device on which a CPM command operates.

   - fsl,cpm-brg : Indicates which baud rate generator the device
                   is associated with.  If absent, an unused BRG
                   should be dynamically allocated.  If zero, the
                   device uses an external clock rather than a BRG.

   - reg : Unless otherwise specified, the first resource represents the
           scc/fcc/ucc registers, and the second represents the device's
           parameter RAM region (if it has one).

   iii) Serial

   Currently defined compatibles:
   - fsl,cpm1-smc-uart
   - fsl,cpm2-smc-uart
   - fsl,cpm1-scc-uart
   - fsl,cpm2-scc-uart
   - fsl,qe-uart

   Example:

	serial@11a00 {
		device_type = "serial";
		compatible = "fsl,mpc8272-scc-uart",
		             "fsl,cpm2-scc-uart";
		reg = <11a00 20 8000 100>;
		interrupts = <28 8>;
		interrupt-parent = <&PIC>;
		fsl,cpm-brg = <1>;
		fsl,cpm-command = <00800000>;
	};

   iii) Network

   Currently defined compatibles:
   - fsl,cpm1-scc-enet
   - fsl,cpm2-scc-enet
   - fsl,cpm1-fec-enet
   - fsl,cpm2-fcc-enet (third resource is GFEMR)
   - fsl,qe-enet

   Example:

	ethernet@11300 {
		device_type = "network";
		compatible = "fsl,mpc8272-fcc-enet",
		             "fsl,cpm2-fcc-enet";
		reg = <11300 20 8400 100 11390 1>;
		local-mac-address = [ 00 00 00 00 00 00 ];
		interrupts = <20 8>;
		interrupt-parent = <&PIC>;
		phy-handle = <&PHY0>;
		linux,network-index = <0>;
		fsl,cpm-command = <12000300>;
	};

   iv) MDIO

   Currently defined compatibles:
   fsl,pq1-fec-mdio (reg is same as first resource of FEC device)
   fsl,cpm2-mdio-bitbang (reg is port C registers)

   Properties for fsl,cpm2-mdio-bitbang:
   fsl,mdio-pin : pin of port C controlling mdio data
   fsl,mdc-pin : pin of port C controlling mdio clock

   Example:

	mdio@10d40 {
		device_type = "mdio";
		compatible = "fsl,mpc8272ads-mdio-bitbang",
		             "fsl,mpc8272-mdio-bitbang",
		             "fsl,cpm2-mdio-bitbang";
		reg = <10d40 14>;
		#address-cells = <1>;
		#size-cells = <0>;
		fsl,mdio-pin = <12>;
		fsl,mdc-pin = <13>;
	};

   v) Baud Rate Generators

   Currently defined compatibles:
   fsl,cpm-brg
   fsl,cpm1-brg
   fsl,cpm2-brg

   Properties:
   - reg : There may be an arbitrary number of reg resources; BRG
     numbers are assigned to these in order.
   - clock-frequency : Specifies the base frequency driving
     the BRG.

   Example:

	brg@119f0 {
		compatible = "fsl,mpc8272-brg",
		             "fsl,cpm2-brg",
		             "fsl,cpm-brg";
		reg = <119f0 10 115f0 10>;
		clock-frequency = <d#25000000>;
	};

   vi) Interrupt Controllers

   Currently defined compatibles:
   - fsl,cpm1-pic
     - only one interrupt cell
   - fsl,pq1-pic
   - fsl,cpm2-pic
     - second interrupt cell is level/sense:
       - 2 is falling edge
       - 8 is active low

   Example:

	interrupt-controller@10c00 {
		#interrupt-cells = <2>;
		interrupt-controller;
		reg = <10c00 80>;
		compatible = "mpc8272-pic", "fsl,cpm2-pic";
	};

   vii) USB (Universal Serial Bus Controller)

   Properties:
   - compatible : "fsl,cpm1-usb", "fsl,cpm2-usb", "fsl,qe-usb"

   Example:
	usb@11bc0 {
		#address-cells = <1>;
		#size-cells = <0>;
		compatible = "fsl,cpm2-usb";
		reg = <11b60 18 8b00 100>;
		interrupts = <b 8>;
		interrupt-parent = <&PIC>;
		fsl,cpm-command = <2e600000>;
	};

   viii) Multi-User RAM (MURAM)

   The multi-user/dual-ported RAM is expressed as a bus under the CPM node.

   Ranges must be set up subject to the following restrictions:

   - Children's reg nodes must be offsets from the start of all muram, even
     if the user-data area does not begin at zero.
   - If multiple range entries are used, the difference between the parent
     address and the child address must be the same in all, so that a single
     mapping can cover them all while maintaining the ability to determine
     CPM-side offsets with pointer subtraction.  It is recommended that
     multiple range entries not be used.
   - A child address of zero must be translatable, even if no reg resources
     contain it.

   A child "data" node must exist, compatible with "fsl,cpm-muram-data", to
   indicate the portion of muram that is usable by the OS for arbitrary
   purposes.  The data node may have an arbitrary number of reg resources,
   all of which contribute to the allocatable muram pool.

   Example, based on mpc8272:

	muram@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0 10000>;

		data@0 {
			compatible = "fsl,cpm-muram-data";
			reg = <0 2000 9800 800>;
		};
	};

   m) Chipselect/Local Bus

   Properties:
   - name : Should be localbus
   - #address-cells : Should be either two or three.  The first cell is the
                      chipselect number, and the remaining cells are the
                      offset into the chipselect.
   - #size-cells : Either one or two, depending on how large each chipselect
                   can be.
   - ranges : Each range corresponds to a single chipselect, and cover
              the entire access window as configured.

   Example:
	localbus@f0010100 {
		compatible = "fsl,mpc8272ads-localbus",
		             "fsl,mpc8272-localbus",
		             "fsl,pq2-localbus";
		#address-cells = <2>;
		#size-cells = <1>;
		reg = <f0010100 40>;

		ranges = <0 0 fe000000 02000000
		          1 0 f4500000 00008000>;

		flash@0,0 {
			compatible = "jedec-flash";
			reg = <0 0 2000000>;
			bank-width = <4>;
			device-width = <1>;
		};

		board-control@1,0 {
			reg = <1 0 20>;
			compatible = "fsl,mpc8272ads-bcsr";
		};
	};



    h) 4xx/Axon EMAC ethernet nodes
    n) 4xx/Axon EMAC ethernet nodes


    The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
    The EMAC ethernet controller in IBM and AMCC 4xx chips, and also
    the Axon bridge.  To operate this needs to interact with a ths
    the Axon bridge.  To operate this needs to interact with a ths
+20 −9
Original line number Original line Diff line number Diff line
@@ -1535,7 +1535,7 @@ P: Pantelis Antoniou
M:	pantelis.antoniou@gmail.com
M:	pantelis.antoniou@gmail.com
P:	Vitaly Bordug
P:	Vitaly Bordug
M:	vbordug@ru.mvista.com
M:	vbordug@ru.mvista.com
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
L:	netdev@vger.kernel.org
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


@@ -1543,14 +1543,14 @@ FREESCALE HIGHSPEED USB DEVICE DRIVER
P:	Li Yang
P:	Li Yang
M:	leoli@freescale.com
M:	leoli@freescale.com
L:	linux-usb-devel@lists.sourceforge.net
L:	linux-usb-devel@lists.sourceforge.net
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
FREESCALE QUICC ENGINE UCC ETHERNET DRIVER
P:	Li Yang
P:	Li Yang
M:	leoli@freescale.com
M:	leoli@freescale.com
L:	netdev@vger.kernel.org
L:	netdev@vger.kernel.org
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


FILE LOCKING (flock() and fcntl()/lockf())
FILE LOCKING (flock() and fcntl()/lockf())
@@ -2297,38 +2297,49 @@ S: Maintained
LINUX FOR POWERPC EMBEDDED MPC52XX
LINUX FOR POWERPC EMBEDDED MPC52XX
P:	Sylvain Munaut
P:	Sylvain Munaut
M:	tnt@246tNt.com
M:	tnt@246tNt.com
P:	Grant Likely
M:	grant.likely@secretlab.ca
W:	http://www.246tNt.com/mpc52xx/
W:	http://www.246tNt.com/mpc52xx/
W:	http://www.penguinppc.org/
W:	http://www.penguinppc.org/
L:	linuxppc-dev@ozlabs.org
L:	linuxppc-dev@ozlabs.org
L:	linuxppc-embedded@ozlabs.org
S:	Maintained
S:	Maintained


LINUX FOR POWERPC EMBEDDED PPC4XX
LINUX FOR POWERPC EMBEDDED PPC4XX
P:	Josh Boyer
M:	jwboyer@linux.vnet.ibm.com
P:	Matt Porter
P:	Matt Porter
M:	mporter@kernel.crashing.org
M:	mporter@kernel.crashing.org
W:	http://www.penguinppc.org/
W:	http://www.penguinppc.org/
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
T:	git kernel.org:/pub/scm/linux/kernel/git/jwboyer/powerpc.git
S:	Maintained

LINUX FOR POWERPC EMBEDDED XILINX VIRTEX
P:	Grant Likely
M:	grant.likely@secretlab.ca
W:	http://wiki.secretlab.ca/index.php/Linux_on_Xilinx_Virtex
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


LINUX FOR POWERPC BOOT CODE
LINUX FOR POWERPC BOOT CODE
P:	Tom Rini
P:	Tom Rini
M:	trini@kernel.crashing.org
M:	trini@kernel.crashing.org
W:	http://www.penguinppc.org/
W:	http://www.penguinppc.org/
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


LINUX FOR POWERPC EMBEDDED PPC8XX
LINUX FOR POWERPC EMBEDDED PPC8XX
P:	Marcelo Tosatti
P:	Marcelo Tosatti
M:	marcelo@kvack.org
M:	marcelo@kvack.org
W:	http://www.penguinppc.org/
W:	http://www.penguinppc.org/
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
LINUX FOR POWERPC EMBEDDED PPC83XX AND PPC85XX
P:	Kumar Gala
P:	Kumar Gala
M:	galak@kernel.crashing.org
M:	galak@kernel.crashing.org
W:	http://www.penguinppc.org/
W:	http://www.penguinppc.org/
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
S:	Maintained
S:	Maintained


LINUX FOR POWERPC PA SEMI PWRFICIENT
LINUX FOR POWERPC PA SEMI PWRFICIENT
@@ -2990,7 +3001,7 @@ POWERPC 4xx EMAC DRIVER
P:	Eugene Surovegin
P:	Eugene Surovegin
M:	ebs@ebshome.net
M:	ebs@ebshome.net
W:	http://kernel.ebshome.net/emac/
W:	http://kernel.ebshome.net/emac/
L:	linuxppc-embedded@ozlabs.org
L:	linuxppc-dev@ozlabs.org
L:	netdev@vger.kernel.org
L:	netdev@vger.kernel.org
S:	Maintained
S:	Maintained


+43 −7
Original line number Original line Diff line number Diff line
@@ -14,6 +14,11 @@ config 64BIT
	bool
	bool
	default y if PPC64
	default y if PPC64


config WORD_SIZE
	int
	default 64 if PPC64
	default 32 if !PPC64

config PPC_MERGE
config PPC_MERGE
	def_bool y
	def_bool y


@@ -21,6 +26,18 @@ config MMU
	bool
	bool
	default y
	default y


config GENERIC_CMOS_UPDATE
	def_bool y

config GENERIC_TIME
	def_bool y

config GENERIC_TIME_VSYSCALL
	def_bool y

config GENERIC_CLOCKEVENTS
	def_bool y

config GENERIC_HARDIRQS
config GENERIC_HARDIRQS
	bool
	bool
	default y
	default y
@@ -156,6 +173,7 @@ config HIGHMEM
	bool "High memory support"
	bool "High memory support"
	depends on PPC32
	depends on PPC32


source kernel/time/Kconfig
source kernel/Kconfig.hz
source kernel/Kconfig.hz
source kernel/Kconfig.preempt
source kernel/Kconfig.preempt
source "fs/Kconfig.binfmt"
source "fs/Kconfig.binfmt"
@@ -180,17 +198,29 @@ config MATH_EMULATION
	  unit, which will allow programs that use floating-point
	  unit, which will allow programs that use floating-point
	  instructions to run.
	  instructions to run.


config 8XX_MINIMAL_FPEMU
	bool "Minimal math emulation for 8xx"
	depends on 8xx && !MATH_EMULATION
	help
	  Older arch/ppc kernels still emulated a few floating point
	  instructions such as load and store, even when full math
	  emulation is disabled.  Say "Y" here if you want to preserve
	  this behavior.

	  It is recommended that you build a soft-float userspace instead.

config IOMMU_VMERGE
config IOMMU_VMERGE
	bool "Enable IOMMU virtual merging (EXPERIMENTAL)"
	bool "Enable IOMMU virtual merging"
	depends on EXPERIMENTAL && PPC64
	depends on PPC64
	default n
	default y
	help
	help
	  Cause IO segments sent to a device for DMA to be merged virtually
	  Cause IO segments sent to a device for DMA to be merged virtually
	  by the IOMMU when they happen to have been allocated contiguously.
	  by the IOMMU when they happen to have been allocated contiguously.
	  This doesn't add pressure to the IOMMU allocator. However, some
	  This doesn't add pressure to the IOMMU allocator. However, some
	  drivers don't support getting large merged segments coming back
	  drivers don't support getting large merged segments coming back
	  from *_map_sg(). Say Y if you know the drivers you are using are
	  from *_map_sg().
	  properly handling this case.

	  Most drivers don't have this problem; it is safe to say Y here.


config HOTPLUG_CPU
config HOTPLUG_CPU
	bool "Support for enabling/disabling CPUs"
	bool "Support for enabling/disabling CPUs"
@@ -465,7 +495,7 @@ config PCI_8260


config 8260_PCI9
config 8260_PCI9
	bool "Enable workaround for MPC826x erratum PCI 9"
	bool "Enable workaround for MPC826x erratum PCI 9"
	depends on PCI_8260 && !ADS8272
	depends on PCI_8260 && !8272
	default y
	default y


choice
choice
@@ -569,7 +599,8 @@ config TASK_SIZE_BOOL


config TASK_SIZE
config TASK_SIZE
	hex "Size of user task space" if TASK_SIZE_BOOL
	hex "Size of user task space" if TASK_SIZE_BOOL
	default "0x80000000"
	default "0x80000000" if PPC_PREP || PPC_8xx
	default "0xc0000000"


config CONSISTENT_START_BOOL
config CONSISTENT_START_BOOL
	bool "Set custom consistent memory pool address"
	bool "Set custom consistent memory pool address"
@@ -581,6 +612,7 @@ config CONSISTENT_START_BOOL


config CONSISTENT_START
config CONSISTENT_START
	hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
	hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
	default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
	default "0xff100000" if NOT_COHERENT_CACHE
	default "0xff100000" if NOT_COHERENT_CACHE


config CONSISTENT_SIZE_BOOL
config CONSISTENT_SIZE_BOOL
@@ -662,3 +694,7 @@ config KEYS_COMPAT
	default y
	default y


source "crypto/Kconfig"
source "crypto/Kconfig"

config PPC_CLOCK
	bool
	default n
+31 −0
Original line number Original line Diff line number Diff line
@@ -124,6 +124,16 @@ config IRQSTACKS
	  for handling hard and soft interrupts.  This can help avoid
	  for handling hard and soft interrupts.  This can help avoid
	  overflowing the process kernel stacks.
	  overflowing the process kernel stacks.


config VIRQ_DEBUG
	bool "Expose hardware/virtual IRQ mapping via debugfs"
	depends on DEBUG_FS && PPC_MERGE
	help
	  This option will show the mapping relationship between hardware irq
	  numbers and virtual irq numbers. The mapping is exposed via debugfs
	  in the file powerpc/virq_mapping.

	  If you don't know what this means you don't need it.

config BDI_SWITCH
config BDI_SWITCH
	bool "Include BDI-2000 user context switcher"
	bool "Include BDI-2000 user context switcher"
	depends on DEBUG_KERNEL && PPC32
	depends on DEBUG_KERNEL && PPC32
@@ -211,6 +221,15 @@ config PPC_EARLY_DEBUG_44x
	  Select this to enable early debugging for IBM 44x chips via the
	  Select this to enable early debugging for IBM 44x chips via the
	  inbuilt serial port.
	  inbuilt serial port.


config PPC_EARLY_DEBUG_CPM
	bool "Early serial debugging for Freescale CPM-based serial ports"
	depends on SERIAL_CPM
	select PIN_TLB if PPC_8xx
	help
	  Select this to enable early debugging for Freescale chips
	  using a CPM-based serial port.  This assumes that the bootwrapper
	  has run, and set up the CPM in a particular way.

endchoice
endchoice


config PPC_EARLY_DEBUG_44x_PHYSLOW
config PPC_EARLY_DEBUG_44x_PHYSLOW
@@ -223,4 +242,16 @@ config PPC_EARLY_DEBUG_44x_PHYSHIGH
	depends PPC_EARLY_DEBUG_44x
	depends PPC_EARLY_DEBUG_44x
	default "0x1"
	default "0x1"


config PPC_EARLY_DEBUG_CPM_ADDR
	hex "CPM UART early debug transmit descriptor address"
	depends on PPC_EARLY_DEBUG_CPM
	default "0xfa202008" if PPC_EP88XC
	default "0xf0000008" if CPM2
	default "0xff002008" if CPM1
	help
	  This specifies the address of the transmit descriptor
	  used for early debug output.  Because it is needed before
	  platform probing is done, all platforms selected must
	  share the same address.

endmenu
endmenu
+29 −27
Original line number Original line Diff line number Diff line
@@ -35,11 +35,14 @@ endif


export CROSS32CC CROSS32AS CROSS32LD CROSS32AR CROSS32OBJCOPY
export CROSS32CC CROSS32AS CROSS32LD CROSS32AR CROSS32OBJCOPY


ifeq ($(CROSS_COMPILE),)
KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
else
KBUILD_DEFCONFIG := ppc64_defconfig
endif


ifeq ($(CONFIG_PPC64),y)
ifeq ($(CONFIG_PPC64),y)
OLDARCH	:= ppc64
OLDARCH	:= ppc64
SZ	:= 64


new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)
new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)


@@ -49,22 +52,26 @@ endif


else
else
OLDARCH	:= ppc
OLDARCH	:= ppc
SZ	:= 32
endif

# It seems there are times we use this Makefile without
# including the config file, but this replicates the old behaviour
ifeq ($(CONFIG_WORD_SIZE),)
CONFIG_WORD_SIZE := 32
endif
endif


UTS_MACHINE := $(OLDARCH)
UTS_MACHINE := $(OLDARCH)


ifeq ($(HAS_BIARCH),y)
ifeq ($(HAS_BIARCH),y)
override AS	+= -a$(SZ)
override AS	+= -a$(CONFIG_WORD_SIZE)
override LD	+= -m elf$(SZ)ppc
override LD	+= -m elf$(CONFIG_WORD_SIZE)ppc
override CC	+= -m$(SZ)
override CC	+= -m$(CONFIG_WORD_SIZE)
override AR	:= GNUTARGET=elf$(SZ)-powerpc $(AR)
override AR	:= GNUTARGET=elf$(CONFIG_WORD_SIZE)-powerpc $(AR)
endif
endif


LDFLAGS_vmlinux	:= -Bstatic
LDFLAGS_vmlinux	:= -Bstatic


# The -Iarch/$(ARCH)/include is temporary while we are merging
CPPFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH)
CPPFLAGS-$(CONFIG_PPC32) := -Iarch/$(ARCH) -Iarch/$(ARCH)/include
AFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH)
AFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH)
CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=none  -mcall-aixdesc
CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=none  -mcall-aixdesc
CFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH) -ffixed-r2 -mmultiple
CFLAGS-$(CONFIG_PPC32)	:= -Iarch/$(ARCH) -ffixed-r2 -mmultiple
@@ -72,11 +79,8 @@ CPPFLAGS += $(CPPFLAGS-y)
AFLAGS		+= $(AFLAGS-y)
AFLAGS		+= $(AFLAGS-y)
CFLAGS		+= -msoft-float -pipe $(CFLAGS-y)
CFLAGS		+= -msoft-float -pipe $(CFLAGS-y)
CPP		= $(CC) -E $(CFLAGS)
CPP		= $(CC) -E $(CFLAGS)
# Temporary hack until we have migrated to asm-powerpc
LINUXINCLUDE-$(CONFIG_PPC32)	:= -Iarch/$(ARCH)/include
LINUXINCLUDE    += $(LINUXINCLUDE-y)


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


ifeq ($(CONFIG_PPC64),y)
ifeq ($(CONFIG_PPC64),y)
GCC_BROKEN_VEC	:= $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi)
GCC_BROKEN_VEC	:= $(shell if [ $(call cc-version) -lt 0400 ] ; then echo "y"; fi)
@@ -96,6 +100,10 @@ else
endif
endif
endif
endif


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

# No AltiVec instruction when building kernel
# No AltiVec instruction when building kernel
CFLAGS += $(call cc-option,-mno-altivec)
CFLAGS += $(call cc-option,-mno-altivec)


@@ -120,10 +128,9 @@ cpu-as-$(CONFIG_E200) += -Wa,-me200
AFLAGS += $(cpu-as-y)
AFLAGS += $(cpu-as-y)
CFLAGS += $(cpu-as-y)
CFLAGS += $(cpu-as-y)


head-y				:= arch/powerpc/kernel/head_32.o
head-y				:= arch/powerpc/kernel/head_$(CONFIG_WORD_SIZE).o
head-$(CONFIG_PPC64)		:= arch/powerpc/kernel/head_64.o
head-$(CONFIG_8xx)		:= arch/powerpc/kernel/head_8xx.o
head-$(CONFIG_8xx)		:= arch/powerpc/kernel/head_8xx.o
head-$(CONFIG_4xx)		:= arch/powerpc/kernel/head_4xx.o
head-$(CONFIG_40x)		:= arch/powerpc/kernel/head_40x.o
head-$(CONFIG_44x)		:= arch/powerpc/kernel/head_44x.o
head-$(CONFIG_44x)		:= arch/powerpc/kernel/head_44x.o
head-$(CONFIG_FSL_BOOKE)	:= arch/powerpc/kernel/head_fsl_booke.o
head-$(CONFIG_FSL_BOOKE)	:= arch/powerpc/kernel/head_fsl_booke.o


@@ -166,25 +173,20 @@ define archhelp
  @echo '  *_defconfig     - Select default config from arch/$(ARCH)/configs'
  @echo '  *_defconfig     - Select default config from arch/$(ARCH)/configs'
endef
endef


install:
install: vdso_install
	$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install
	$(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(KBUILD_IMAGE) install


vdso_install:
ifeq ($(CONFIG_PPC64),y)
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@
endif
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso32 $@

archclean:
archclean:
	$(Q)$(MAKE) $(clean)=$(boot)
	$(Q)$(MAKE) $(clean)=$(boot)


archmrproper:
	$(Q)rm -rf arch/$(ARCH)/include

archprepare: checkbin
archprepare: checkbin


ifeq ($(CONFIG_PPC32),y)
# Temporary hack until we have migrated to asm-powerpc
include/asm: arch/$(ARCH)/include/asm
arch/$(ARCH)/include/asm: FORCE
	$(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi
	$(Q)ln -fsn $(srctree)/include/asm-$(OLDARCH) arch/$(ARCH)/include/asm
endif

# Use the file '.tmp_gas_check' for binutils tests, as gas won't output
# 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.
# to stdout and these checks are run even on install targets.
TOUT	:= .tmp_gas_check
TOUT	:= .tmp_gas_check
Loading