mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (103 commits) powerpc: Fix bug in move of altivec code to vector.S powerpc: Add support for swiotlb on 32-bit powerpc/spufs: Remove unused error path powerpc: Fix warning when printing a resource_size_t powerpc/xmon: Remove unused variable in xmon.c powerpc/pseries: Fix warnings when printing resource_size_t powerpc: Shield code specific to 64-bit server processors powerpc: Separate PACA fields for server CPUs powerpc: Split exception handling out of head_64.S powerpc: Introduce CONFIG_PPC_BOOK3S powerpc: Move VMX and VSX asm code to vector.S powerpc: Set init_bootmem_done on NUMA platforms as well powerpc/mm: Fix a AB->BA deadlock scenario with nohash MMU context lock powerpc/mm: Fix some SMP issues with MMU context handling powerpc: Add PTRACE_SINGLEBLOCK support fbdev: Add PLB support and cleanup DCR in xilinxfb driver. powerpc/virtex: Add ml510 reference design device tree powerpc/virtex: Add Xilinx ML510 reference design support powerpc/virtex: refactor intc driver and add support for i8259 cascading powerpc/virtex: Add support for Xilinx PCI host bridge ...
This commit is contained in:
commit
0fa213310c
@ -491,6 +491,13 @@ and is between 256 and 4096 characters. It is defined in the file
|
||||
Also note the kernel might malfunction if you disable
|
||||
some critical bits.
|
||||
|
||||
cmo_free_hint= [PPC] Format: { yes | no }
|
||||
Specify whether pages are marked as being inactive
|
||||
when they are freed. This is used in CMO environments
|
||||
to determine OS memory pressure for page stealing by
|
||||
a hypervisor.
|
||||
Default: yes
|
||||
|
||||
code_bytes [X86] How many bytes of object code to print
|
||||
in an oops report.
|
||||
Range: 0 - 8192
|
||||
|
64
Documentation/powerpc/dts-bindings/ecm.txt
Normal file
64
Documentation/powerpc/dts-bindings/ecm.txt
Normal file
@ -0,0 +1,64 @@
|
||||
=====================================================================
|
||||
E500 LAW & Coherency Module Device Tree Binding
|
||||
Copyright (C) 2009 Freescale Semiconductor Inc.
|
||||
=====================================================================
|
||||
|
||||
Local Access Window (LAW) Node
|
||||
|
||||
The LAW node represents the region of CCSR space where local access
|
||||
windows are configured. For ECM based devices this is the first 4k
|
||||
of CCSR space that includes CCSRBAR, ALTCBAR, ALTCAR, BPTR, and some
|
||||
number of local access windows as specified by fsl,num-laws.
|
||||
|
||||
PROPERTIES
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must include "fsl,ecm-law"
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: A standard property. The value specifies the
|
||||
physical address offset and length of the CCSR space
|
||||
registers.
|
||||
|
||||
- fsl,num-laws
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The value specifies the number of local access
|
||||
windows for this device.
|
||||
|
||||
=====================================================================
|
||||
|
||||
E500 Coherency Module Node
|
||||
|
||||
The E500 LAW node represents the region of CCSR space where ECM config
|
||||
and error reporting registers exist, this is the second 4k (0x1000)
|
||||
of CCSR space.
|
||||
|
||||
PROPERTIES
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must include "fsl,CHIP-ecm", "fsl,ecm" where
|
||||
CHIP is the processor (mpc8572, mpc8544, etc.)
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: A standard property. The value specifies the
|
||||
physical address offset and length of the CCSR space
|
||||
registers.
|
||||
|
||||
- interrupts
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
|
||||
- interrupt-parent
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
|
||||
=====================================================================
|
@ -17,6 +17,9 @@ Required properties:
|
||||
- model : precise model of the QE, Can be "QE", "CPM", or "CPM2"
|
||||
- reg : offset and length of the device registers.
|
||||
- bus-frequency : the clock frequency for QUICC Engine.
|
||||
- fsl,qe-num-riscs: define how many RISC engines the QE has.
|
||||
- fsl,qe-num-snums: define how many serial number(SNUM) the QE can use for the
|
||||
threads.
|
||||
|
||||
Recommended properties
|
||||
- brg-frequency : the internal clock source frequency for baud-rate
|
||||
|
@ -5,8 +5,7 @@ for MMC, SD, and SDIO types of memory cards.
|
||||
|
||||
Required properties:
|
||||
- compatible : should be
|
||||
"fsl,<chip>-esdhc", "fsl,mpc8379-esdhc" for MPC83xx processors.
|
||||
"fsl,<chip>-esdhc", "fsl,mpc8536-esdhc" for MPC85xx processors.
|
||||
"fsl,<chip>-esdhc", "fsl,esdhc"
|
||||
- reg : should contain eSDHC registers location and length.
|
||||
- interrupts : should contain eSDHC interrupt.
|
||||
- interrupt-parent : interrupt source phandle.
|
||||
@ -15,7 +14,7 @@ Required properties:
|
||||
Example:
|
||||
|
||||
sdhci@2e000 {
|
||||
compatible = "fsl,mpc8378-esdhc", "fsl,mpc8379-esdhc";
|
||||
compatible = "fsl,mpc8378-esdhc", "fsl,esdhc";
|
||||
reg = <0x2e000 0x1000>;
|
||||
interrupts = <42 0x8>;
|
||||
interrupt-parent = <&ipic>;
|
||||
|
64
Documentation/powerpc/dts-bindings/fsl/mcm.txt
Normal file
64
Documentation/powerpc/dts-bindings/fsl/mcm.txt
Normal file
@ -0,0 +1,64 @@
|
||||
=====================================================================
|
||||
MPX LAW & Coherency Module Device Tree Binding
|
||||
Copyright (C) 2009 Freescale Semiconductor Inc.
|
||||
=====================================================================
|
||||
|
||||
Local Access Window (LAW) Node
|
||||
|
||||
The LAW node represents the region of CCSR space where local access
|
||||
windows are configured. For MCM based devices this is the first 4k
|
||||
of CCSR space that includes CCSRBAR, ALTCBAR, ALTCAR, BPTR, and some
|
||||
number of local access windows as specified by fsl,num-laws.
|
||||
|
||||
PROPERTIES
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must include "fsl,mcm-law"
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: A standard property. The value specifies the
|
||||
physical address offset and length of the CCSR space
|
||||
registers.
|
||||
|
||||
- fsl,num-laws
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The value specifies the number of local access
|
||||
windows for this device.
|
||||
|
||||
=====================================================================
|
||||
|
||||
MPX Coherency Module Node
|
||||
|
||||
The MPX LAW node represents the region of CCSR space where MCM config
|
||||
and error reporting registers exist, this is the second 4k (0x1000)
|
||||
of CCSR space.
|
||||
|
||||
PROPERTIES
|
||||
|
||||
- compatible
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must include "fsl,CHIP-mcm", "fsl,mcm" where
|
||||
CHIP is the processor (mpc8641, mpc8610, etc.)
|
||||
|
||||
- reg
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: A standard property. The value specifies the
|
||||
physical address offset and length of the CCSR space
|
||||
registers.
|
||||
|
||||
- interrupts
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
|
||||
- interrupt-parent
|
||||
Usage: required
|
||||
Value type: <phandle>
|
||||
|
||||
=====================================================================
|
@ -42,6 +42,10 @@ config GENERIC_HARDIRQS
|
||||
bool
|
||||
default y
|
||||
|
||||
config GENERIC_HARDIRQS_NO__DO_IRQ
|
||||
bool
|
||||
default y
|
||||
|
||||
config HAVE_SETUP_PER_CPU_AREA
|
||||
def_bool PPC64
|
||||
|
||||
@ -296,9 +300,19 @@ config IOMMU_VMERGE
|
||||
config IOMMU_HELPER
|
||||
def_bool PPC64
|
||||
|
||||
config SWIOTLB
|
||||
bool "SWIOTLB support"
|
||||
default n
|
||||
select IOMMU_HELPER
|
||||
---help---
|
||||
Support for IO bounce buffering for systems without an IOMMU.
|
||||
This allows us to DMA to the full physical address space on
|
||||
platforms where the size of a physical address is larger
|
||||
than the bus address. Not all platforms support this.
|
||||
|
||||
config PPC_NEED_DMA_SYNC_OPS
|
||||
def_bool y
|
||||
depends on NOT_COHERENT_CACHE
|
||||
depends on (NOT_COHERENT_CACHE || SWIOTLB)
|
||||
|
||||
config HOTPLUG_CPU
|
||||
bool "Support for enabling/disabling CPUs"
|
||||
|
@ -41,6 +41,19 @@ config HCALL_STATS
|
||||
This option will add a small amount of overhead to all hypervisor
|
||||
calls.
|
||||
|
||||
config PPC_EMULATED_STATS
|
||||
bool "Emulated instructions tracking"
|
||||
depends on DEBUG_FS
|
||||
help
|
||||
Adds code to keep track of the number of instructions that are
|
||||
emulated by the in-kernel emulator. Counters for the various classes
|
||||
of emulated instructions are available under
|
||||
powerpc/emulated_instructions/ in the root of the debugfs file
|
||||
system. Optionally (controlled by
|
||||
powerpc/emulated_instructions/do_warn in debugfs), rate-limited
|
||||
warnings can be printed to the console when instructions are
|
||||
emulated.
|
||||
|
||||
config CODE_PATCHING_SELFTEST
|
||||
bool "Run self-tests of the code-patching code."
|
||||
depends on DEBUG_KERNEL
|
||||
|
@ -142,6 +142,7 @@ head-$(CONFIG_FSL_BOOKE) := arch/powerpc/kernel/head_fsl_booke.o
|
||||
|
||||
head-$(CONFIG_PPC64) += arch/powerpc/kernel/entry_64.o
|
||||
head-$(CONFIG_PPC_FPU) += arch/powerpc/kernel/fpu.o
|
||||
head-$(CONFIG_ALTIVEC) += arch/powerpc/kernel/vector.o
|
||||
|
||||
core-y += arch/powerpc/kernel/ \
|
||||
arch/powerpc/mm/ \
|
||||
|
@ -164,9 +164,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "fsl,mpc8641-soc", "simple-bus";
|
||||
ranges = <0x0 0xfef00000 0x00100000>;
|
||||
reg = <0xfef00000 0x100000>; // CCSRBAR 1M
|
||||
bus-frequency = <33333333>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c1: i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -163,9 +163,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xfef00000 0x00100000>;
|
||||
reg = <0xfef00000 0x100000>; // CCSRBAR 1M
|
||||
bus-frequency = <33333333>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c1: i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -128,9 +128,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xfef00000 0x00100000>;
|
||||
reg = <0xfef00000 0x100000>; // CCSRBAR 1M
|
||||
bus-frequency = <33333333>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c1: i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
@ -56,6 +56,19 @@
|
||||
ranges = <0x00000000 0xfdf00000 0x00100000>;
|
||||
bus-frequency = <0>; /* Fixed by bootwrapper */
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8560-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
|
@ -249,6 +249,8 @@
|
||||
reg = <0xe0100000 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <198000000>;
|
||||
fsl,qe-num-riscs = <1>;
|
||||
fsl,qe-num-snums = <28>;
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
@ -369,7 +371,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x11 AD17 */
|
||||
|
@ -221,6 +221,8 @@
|
||||
reg = <0xe0100000 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <198000000>;
|
||||
fsl,qe-num-riscs = <1>;
|
||||
fsl,qe-num-snums = <28>;
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
@ -327,7 +329,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x10 AD16 (USB) */
|
||||
|
@ -278,7 +278,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x10 - SATA */
|
||||
@ -301,7 +300,6 @@
|
||||
};
|
||||
|
||||
pci1: pci@e0008600 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0E - MiniPCI Slot */
|
||||
|
@ -227,7 +227,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008600 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0F - PCI Slot */
|
||||
|
@ -286,7 +286,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@ -348,7 +347,6 @@
|
||||
};
|
||||
|
||||
pci1: pci@e0008600 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -289,6 +289,8 @@
|
||||
reg = <0xe0100000 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <396000000>;
|
||||
fsl,qe-num-riscs = <2>;
|
||||
fsl,qe-num-snums = <28>;
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
@ -410,7 +412,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -198,6 +198,8 @@
|
||||
clock-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
brg-frequency = <0>;
|
||||
fsl,qe-num-riscs = <2>;
|
||||
fsl,qe-num-snums = <28>;
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
|
@ -383,7 +383,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -367,7 +367,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -397,7 +397,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -51,9 +51,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xffe00000 0x100000>;
|
||||
reg = <0xffe00000 0x1000>;
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <12>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8536-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8536-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -321,7 +333,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@ffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8540-pci";
|
||||
device_type = "pci";
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
@ -346,7 +357,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -383,7 +393,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0a000 {
|
||||
cell-index = <2>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -420,7 +429,6 @@
|
||||
};
|
||||
|
||||
pci3: pcie@ffe0b000 {
|
||||
cell-index = <3>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -55,9 +55,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x100000>; // CCSRBAR 1M
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8540-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -258,7 +270,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -55,9 +55,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>; // CCSRBAR 1M
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8541-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8541-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -272,7 +284,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0x1f800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@ -344,7 +355,6 @@
|
||||
};
|
||||
|
||||
pci1: pci@e0009000 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -57,9 +57,21 @@
|
||||
compatible = "simple-bus";
|
||||
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>; // CCSRBAR 1M
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8544-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8544-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -274,7 +286,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8540-pci";
|
||||
device_type = "pci";
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
@ -306,7 +317,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@e0009000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -343,7 +353,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@e000a000 {
|
||||
cell-index = <2>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -380,7 +389,6 @@
|
||||
};
|
||||
|
||||
pci3: pcie@e000b000 {
|
||||
cell-index = <3>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -60,9 +60,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -328,7 +340,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x4 (PCIX Slot 2) */
|
||||
@ -478,7 +489,6 @@
|
||||
};
|
||||
|
||||
pci1: pci@e0009000 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@ -503,7 +513,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@e000a000 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -55,9 +55,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>; // CCSRBAR 1M
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8555-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8555-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -272,7 +284,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0x1f800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@ -344,7 +355,6 @@
|
||||
};
|
||||
|
||||
pci1: pci@e0009000 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -55,9 +55,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x200>;
|
||||
bus-frequency = <330000000>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8560-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -291,7 +303,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -26,6 +26,7 @@
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
rapidio0 = &rio0;
|
||||
};
|
||||
|
||||
cpus {
|
||||
@ -62,9 +63,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>;
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8568-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,8568-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -275,6 +288,22 @@
|
||||
device_type = "open-pic";
|
||||
};
|
||||
|
||||
msi@41600 {
|
||||
compatible = "fsl,mpc8568-msi", "fsl,mpic-msi";
|
||||
reg = <0x41600 0x80>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xe0 0
|
||||
0xe1 0
|
||||
0xe2 0
|
||||
0xe3 0
|
||||
0xe4 0
|
||||
0xe5 0
|
||||
0xe6 0
|
||||
0xe7 0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
par_io@e0100 {
|
||||
reg = <0xe0100 0x100>;
|
||||
device_type = "par_io";
|
||||
@ -349,6 +378,8 @@
|
||||
reg = <0xe0080000 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <396000000>;
|
||||
fsl,qe-num-riscs = <2>;
|
||||
fsl,qe-num-snums = <28>;
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
@ -459,7 +490,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x12 AD18 */
|
||||
@ -490,7 +520,6 @@
|
||||
|
||||
/* PCI Express */
|
||||
pci1: pcie@e000a000 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
@ -526,4 +555,20 @@
|
||||
0x0 0x800000>;
|
||||
};
|
||||
};
|
||||
|
||||
rio0: rapidio@e00c00000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
compatible = "fsl,mpc8568-rapidio", "fsl,rapidio-delta";
|
||||
reg = <0xe00c0000 0x20000>;
|
||||
ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>;
|
||||
interrupts = <48 2 /* error */
|
||||
49 2 /* bell_outb */
|
||||
50 2 /* bell_inb */
|
||||
53 2 /* msg1_tx */
|
||||
54 2 /* msg1_rx */
|
||||
55 2 /* msg2_tx */
|
||||
56 2 /* msg2_rx */>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
};
|
||||
|
583
arch/powerpc/boot/dts/mpc8569mds.dts
Normal file
583
arch/powerpc/boot/dts/mpc8569mds.dts
Normal file
@ -0,0 +1,583 @@
|
||||
/*
|
||||
* MPC8569E MDS Device Tree Source
|
||||
*
|
||||
* Copyright (C) 2009 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
model = "MPC8569EMDS";
|
||||
compatible = "fsl,MPC8569EMDS";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
aliases {
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
ethernet3 = &enet3;
|
||||
pci1 = &pci1;
|
||||
rapidio0 = &rio0;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
PowerPC,8569@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0x0>;
|
||||
d-cache-line-size = <32>; // 32 bytes
|
||||
i-cache-line-size = <32>; // 32 bytes
|
||||
d-cache-size = <0x8000>; // L1, 32K
|
||||
i-cache-size = <0x8000>; // L1, 32K
|
||||
timebase-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
clock-frequency = <0>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
localbus@e0005000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8569-elbc", "fsl,elbc", "simple-bus";
|
||||
reg = <0xe0005000 0x1000>;
|
||||
interrupts = <19 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
|
||||
ranges = <0x0 0x0 0xfe000000 0x02000000
|
||||
0x1 0x0 0xf8000000 0x00008000
|
||||
0x2 0x0 0xf0000000 0x04000000
|
||||
0x3 0x0 0xfc000000 0x00008000
|
||||
0x4 0x0 0xf8008000 0x00008000
|
||||
0x5 0x0 0xf8010000 0x00008000>;
|
||||
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x02000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
};
|
||||
|
||||
bcsr@1,0 {
|
||||
compatible = "fsl,mpc8569mds-bcsr";
|
||||
reg = <1 0 0x8000>;
|
||||
};
|
||||
|
||||
nand@3,0 {
|
||||
compatible = "fsl,mpc8569-fcm-nand",
|
||||
"fsl,elbc-fcm-nand";
|
||||
reg = <3 0 0x8000>;
|
||||
};
|
||||
|
||||
pib@4,0 {
|
||||
compatible = "fsl,mpc8569mds-pib";
|
||||
reg = <4 0 0x8000>;
|
||||
};
|
||||
|
||||
pib@5,0 {
|
||||
compatible = "fsl,mpc8569mds-pib";
|
||||
reg = <5 0 0x8000>;
|
||||
};
|
||||
};
|
||||
|
||||
soc@e0000000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
compatible = "fsl,mpc8569-immr", "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
bus-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8569-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8569-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <18 2>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
|
||||
rtc@68 {
|
||||
compatible = "dallas,ds1374";
|
||||
reg = <0x68>;
|
||||
};
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
cell-index = <0>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4500 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <42 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
serial1: serial@4600 {
|
||||
cell-index = <1>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4600 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <42 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
L2: l2-cache-controller@20000 {
|
||||
compatible = "fsl,mpc8569-l2-cache-controller";
|
||||
reg = <0x20000 0x1000>;
|
||||
cache-line-size = <32>; // 32 bytes
|
||||
cache-size = <0x80000>; // L2, 512K
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <16 2>;
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8569-dma", "fsl,eloplus-dma";
|
||||
reg = <0x21300 0x4>;
|
||||
ranges = <0x0 0x21100 0x200>;
|
||||
cell-index = <0>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,mpc8569-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <20 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,mpc8569-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <21 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,mpc8569-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <22 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,mpc8569-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <23 2>;
|
||||
};
|
||||
};
|
||||
|
||||
sdhci@2e000 {
|
||||
compatible = "fsl,mpc8569-esdhc", "fsl,esdhc";
|
||||
reg = <0x2e000 0x1000>;
|
||||
interrupts = <72 0x8>;
|
||||
interrupt-parent = <&mpic>;
|
||||
/* Filled in by U-Boot */
|
||||
clock-frequency = <0>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
crypto@30000 {
|
||||
compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4",
|
||||
"fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <45 2 58 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
fsl,num-channels = <4>;
|
||||
fsl,channel-fifo-len = <24>;
|
||||
fsl,exec-units-mask = <0xbfe>;
|
||||
fsl,descriptor-types-mask = <0x3ab0ebf>;
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x40000 0x40000>;
|
||||
compatible = "chrp,open-pic";
|
||||
device_type = "open-pic";
|
||||
};
|
||||
|
||||
msi@41600 {
|
||||
compatible = "fsl,mpc8568-msi", "fsl,mpic-msi";
|
||||
reg = <0x41600 0x80>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xe0 0
|
||||
0xe1 0
|
||||
0xe2 0
|
||||
0xe3 0
|
||||
0xe4 0
|
||||
0xe5 0
|
||||
0xe6 0
|
||||
0xe7 0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
global-utilities@e0000 {
|
||||
compatible = "fsl,mpc8569-guts";
|
||||
reg = <0xe0000 0x1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
|
||||
par_io@e0100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
reg = <0xe0100 0x100>;
|
||||
ranges = <0x0 0xe0100 0x100>;
|
||||
device_type = "par_io";
|
||||
num-ports = <7>;
|
||||
|
||||
qe_pio_e: gpio-controller@80 {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "fsl,mpc8569-qe-pario-bank",
|
||||
"fsl,mpc8323-qe-pario-bank";
|
||||
reg = <0x80 0x18>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
pio1: ucc_pin@01 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x2 0x1f 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x2 0x1e 0x3 0x0 0x2 0x0 /* QE_MUX_MDIO */
|
||||
0x2 0x0b 0x2 0x0 0x1 0x0 /* CLK12*/
|
||||
0x0 0x0 0x1 0x0 0x3 0x0 /* ENET1_TXD0_SER1_TXD0 */
|
||||
0x0 0x1 0x1 0x0 0x3 0x0 /* ENET1_TXD1_SER1_TXD1 */
|
||||
0x0 0x2 0x1 0x0 0x1 0x0 /* ENET1_TXD2_SER1_TXD2 */
|
||||
0x0 0x3 0x1 0x0 0x2 0x0 /* ENET1_TXD3_SER1_TXD3 */
|
||||
0x0 0x6 0x2 0x0 0x3 0x0 /* ENET1_RXD0_SER1_RXD0 */
|
||||
0x0 0x7 0x2 0x0 0x1 0x0 /* ENET1_RXD1_SER1_RXD1 */
|
||||
0x0 0x8 0x2 0x0 0x2 0x0 /* ENET1_RXD2_SER1_RXD2 */
|
||||
0x0 0x9 0x2 0x0 0x2 0x0 /* ENET1_RXD3_SER1_RXD3 */
|
||||
0x0 0x4 0x1 0x0 0x2 0x0 /* ENET1_TX_EN_SER1_RTS_B */
|
||||
0x0 0xc 0x2 0x0 0x3 0x0 /* ENET1_RX_DV_SER1_CTS_B */
|
||||
0x2 0x8 0x2 0x0 0x1 0x0 /* ENET1_GRXCLK */
|
||||
0x2 0x14 0x1 0x0 0x2 0x0>; /* ENET1_GTXCLK */
|
||||
};
|
||||
|
||||
pio2: ucc_pin@02 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x2 0x1f 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x2 0x1e 0x3 0x0 0x2 0x0 /* QE_MUX_MDIO */
|
||||
0x2 0x10 0x2 0x0 0x3 0x0 /* CLK17 */
|
||||
0x0 0xe 0x1 0x0 0x2 0x0 /* ENET2_TXD0_SER2_TXD0 */
|
||||
0x0 0xf 0x1 0x0 0x2 0x0 /* ENET2_TXD1_SER2_TXD1 */
|
||||
0x0 0x10 0x1 0x0 0x1 0x0 /* ENET2_TXD2_SER2_TXD2 */
|
||||
0x0 0x11 0x1 0x0 0x1 0x0 /* ENET2_TXD3_SER2_TXD3 */
|
||||
0x0 0x14 0x2 0x0 0x2 0x0 /* ENET2_RXD0_SER2_RXD0 */
|
||||
0x0 0x15 0x2 0x0 0x1 0x0 /* ENET2_RXD1_SER2_RXD1 */
|
||||
0x0 0x16 0x2 0x0 0x1 0x0 /* ENET2_RXD2_SER2_RXD2 */
|
||||
0x0 0x17 0x2 0x0 0x1 0x0 /* ENET2_RXD3_SER2_RXD3 */
|
||||
0x0 0x12 0x1 0x0 0x2 0x0 /* ENET2_TX_EN_SER2_RTS_B */
|
||||
0x0 0x1a 0x2 0x0 0x3 0x0 /* ENET2_RX_DV_SER2_CTS_B */
|
||||
0x2 0x3 0x2 0x0 0x1 0x0 /* ENET2_GRXCLK */
|
||||
0x2 0x2 0x1 0x0 0x2 0x0>; /* ENET2_GTXCLK */
|
||||
};
|
||||
|
||||
pio3: ucc_pin@03 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x2 0x1f 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x2 0x1e 0x3 0x0 0x2 0x0 /* QE_MUX_MDIO */
|
||||
0x2 0x0b 0x2 0x0 0x1 0x0 /* CLK12*/
|
||||
0x0 0x1d 0x1 0x0 0x2 0x0 /* ENET3_TXD0_SER3_TXD0 */
|
||||
0x0 0x1e 0x1 0x0 0x3 0x0 /* ENET3_TXD1_SER3_TXD1 */
|
||||
0x0 0x1f 0x1 0x0 0x2 0x0 /* ENET3_TXD2_SER3_TXD2 */
|
||||
0x1 0x0 0x1 0x0 0x3 0x0 /* ENET3_TXD3_SER3_TXD3 */
|
||||
0x1 0x3 0x2 0x0 0x3 0x0 /* ENET3_RXD0_SER3_RXD0 */
|
||||
0x1 0x4 0x2 0x0 0x1 0x0 /* ENET3_RXD1_SER3_RXD1 */
|
||||
0x1 0x5 0x2 0x0 0x2 0x0 /* ENET3_RXD2_SER3_RXD2 */
|
||||
0x1 0x6 0x2 0x0 0x3 0x0 /* ENET3_RXD3_SER3_RXD3 */
|
||||
0x1 0x1 0x1 0x0 0x1 0x0 /* ENET3_TX_EN_SER3_RTS_B */
|
||||
0x1 0x9 0x2 0x0 0x3 0x0 /* ENET3_RX_DV_SER3_CTS_B */
|
||||
0x2 0x9 0x2 0x0 0x2 0x0 /* ENET3_GRXCLK */
|
||||
0x2 0x19 0x1 0x0 0x2 0x0>; /* ENET3_GTXCLK */
|
||||
};
|
||||
|
||||
pio4: ucc_pin@04 {
|
||||
pio-map = <
|
||||
/* port pin dir open_drain assignment has_irq */
|
||||
0x2 0x1f 0x1 0x0 0x1 0x0 /* QE_MUX_MDC */
|
||||
0x2 0x1e 0x3 0x0 0x2 0x0 /* QE_MUX_MDIO */
|
||||
0x2 0x10 0x2 0x0 0x3 0x0 /* CLK17 */
|
||||
0x1 0xc 0x1 0x0 0x2 0x0 /* ENET4_TXD0_SER4_TXD0 */
|
||||
0x1 0xd 0x1 0x0 0x2 0x0 /* ENET4_TXD1_SER4_TXD1 */
|
||||
0x1 0xe 0x1 0x0 0x1 0x0 /* ENET4_TXD2_SER4_TXD2 */
|
||||
0x1 0xf 0x1 0x0 0x2 0x0 /* ENET4_TXD3_SER4_TXD3 */
|
||||
0x1 0x12 0x2 0x0 0x2 0x0 /* ENET4_RXD0_SER4_RXD0 */
|
||||
0x1 0x13 0x2 0x0 0x1 0x0 /* ENET4_RXD1_SER4_RXD1 */
|
||||
0x1 0x14 0x2 0x0 0x1 0x0 /* ENET4_RXD2_SER4_RXD2 */
|
||||
0x1 0x15 0x2 0x0 0x2 0x0 /* ENET4_RXD3_SER4_RXD3 */
|
||||
0x1 0x10 0x1 0x0 0x2 0x0 /* ENET4_TX_EN_SER4_RTS_B */
|
||||
0x1 0x18 0x2 0x0 0x3 0x0 /* ENET4_RX_DV_SER4_CTS_B */
|
||||
0x2 0x11 0x2 0x0 0x2 0x0 /* ENET4_GRXCLK */
|
||||
0x2 0x18 0x1 0x0 0x2 0x0>; /* ENET4_GTXCLK */
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
qe@e0080000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "qe";
|
||||
compatible = "fsl,qe";
|
||||
ranges = <0x0 0xe0080000 0x40000>;
|
||||
reg = <0xe0080000 0x480>;
|
||||
brg-frequency = <0>;
|
||||
bus-frequency = <0>;
|
||||
fsl,qe-num-riscs = <4>;
|
||||
fsl,qe-num-snums = <46>;
|
||||
|
||||
qeic: interrupt-controller@80 {
|
||||
interrupt-controller;
|
||||
compatible = "fsl,qe-ic";
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
reg = <0x80 0x80>;
|
||||
interrupts = <46 2 46 2>; //high:30 low:30
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
spi@4c0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,mpc8569-qe-spi", "fsl,spi";
|
||||
reg = <0x4c0 0x40>;
|
||||
cell-index = <0>;
|
||||
interrupts = <2>;
|
||||
interrupt-parent = <&qeic>;
|
||||
gpios = <&qe_pio_e 30 0>;
|
||||
mode = "cpu-qe";
|
||||
|
||||
serial-flash@0 {
|
||||
compatible = "stm,m25p40";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <25000000>;
|
||||
};
|
||||
};
|
||||
|
||||
spi@500 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,spi";
|
||||
reg = <0x500 0x40>;
|
||||
interrupts = <1>;
|
||||
interrupt-parent = <&qeic>;
|
||||
mode = "cpu";
|
||||
};
|
||||
|
||||
enet0: ucc@2000 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
cell-index = <1>;
|
||||
reg = <0x2000 0x200>;
|
||||
interrupts = <32>;
|
||||
interrupt-parent = <&qeic>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
rx-clock-name = "none";
|
||||
tx-clock-name = "clk12";
|
||||
pio-handle = <&pio1>;
|
||||
phy-handle = <&qe_phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
mdio@2120 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x2120 0x18>;
|
||||
compatible = "fsl,ucc-mdio";
|
||||
|
||||
qe_phy0: ethernet-phy@07 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <1 1>;
|
||||
reg = <0x7>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
qe_phy1: ethernet-phy@01 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <2 1>;
|
||||
reg = <0x1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
qe_phy2: ethernet-phy@02 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x2>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
qe_phy3: ethernet-phy@03 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <4 1>;
|
||||
reg = <0x3>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
};
|
||||
|
||||
enet2: ucc@2200 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
cell-index = <3>;
|
||||
reg = <0x2200 0x200>;
|
||||
interrupts = <34>;
|
||||
interrupt-parent = <&qeic>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
rx-clock-name = "none";
|
||||
tx-clock-name = "clk12";
|
||||
pio-handle = <&pio3>;
|
||||
phy-handle = <&qe_phy2>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
enet1: ucc@3000 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
cell-index = <2>;
|
||||
reg = <0x3000 0x200>;
|
||||
interrupts = <33>;
|
||||
interrupt-parent = <&qeic>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
rx-clock-name = "none";
|
||||
tx-clock-name = "clk17";
|
||||
pio-handle = <&pio2>;
|
||||
phy-handle = <&qe_phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
enet3: ucc@3200 {
|
||||
device_type = "network";
|
||||
compatible = "ucc_geth";
|
||||
cell-index = <4>;
|
||||
reg = <0x3200 0x200>;
|
||||
interrupts = <35>;
|
||||
interrupt-parent = <&qeic>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
rx-clock-name = "none";
|
||||
tx-clock-name = "clk17";
|
||||
pio-handle = <&pio4>;
|
||||
phy-handle = <&qe_phy3>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
};
|
||||
|
||||
muram@10000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,qe-muram", "fsl,cpm-muram";
|
||||
ranges = <0x0 0x10000 0x20000>;
|
||||
|
||||
data-only@0 {
|
||||
compatible = "fsl,qe-muram-data",
|
||||
"fsl,cpm-muram-data";
|
||||
reg = <0x0 0x20000>;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
/* PCI Express */
|
||||
pci1: pcie@e000a000 {
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0xe000a000 0x1000>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 (PEX) */
|
||||
00000 0x0 0x0 0x1 &mpic 0x0 0x1
|
||||
00000 0x0 0x0 0x2 &mpic 0x1 0x1
|
||||
00000 0x0 0x0 0x3 &mpic 0x2 0x1
|
||||
00000 0x0 0x0 0x4 &mpic 0x3 0x1>;
|
||||
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <26 2>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
|
||||
0x1000000 0x0 0x00000000 0xe2800000 0x0 0x00800000>;
|
||||
clock-frequency = <33333333>;
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x10000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x800000>;
|
||||
};
|
||||
};
|
||||
|
||||
rio0: rapidio@e00c00000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
compatible = "fsl,mpc8569-rapidio", "fsl,rapidio-delta";
|
||||
reg = <0xe00c0000 0x20000>;
|
||||
ranges = <0x0 0x0 0xc0000000 0x0 0x20000000>;
|
||||
interrupts = <48 2 /* error */
|
||||
49 2 /* bell_outb */
|
||||
50 2 /* bell_inb */
|
||||
53 2 /* msg1_tx */
|
||||
54 2 /* msg1_rx */
|
||||
55 2 /* msg2_tx */
|
||||
56 2 /* msg2_rx */>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
};
|
@ -182,9 +182,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0 0xffe00000 0x100000>;
|
||||
reg = <0 0xffe00000 0 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <12>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8572-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8572-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -514,7 +526,6 @@
|
||||
};
|
||||
|
||||
pci0: pcie@ffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -724,7 +735,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -761,7 +771,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0a000 {
|
||||
cell-index = <2>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -182,9 +182,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xf 0xffe00000 0x100000>;
|
||||
reg = <0xf 0xffe00000 0 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <12>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8572-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8572-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -514,7 +526,6 @@
|
||||
};
|
||||
|
||||
pci0: pcie@fffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -522,7 +533,7 @@
|
||||
#address-cells = <3>;
|
||||
reg = <0xf 0xffe08000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0xc 0x00000000 0x0 0x20000000
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x00000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc00000 0x0 0x00010000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
@ -649,8 +660,8 @@
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
@ -660,8 +671,8 @@
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
@ -724,7 +735,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@fffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -732,7 +742,7 @@
|
||||
#address-cells = <3>;
|
||||
reg = <0xf 0xffe09000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0xc 0x20000000 0x0 0x20000000
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x20000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc10000 0x0 0x00010000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
@ -750,8 +760,8 @@
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
@ -761,7 +771,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@fffe0a000 {
|
||||
cell-index = <2>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -769,7 +778,7 @@
|
||||
#address-cells = <3>;
|
||||
reg = <0xf 0xffe0a000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0xc 0x40000000 0x0 0x20000000
|
||||
ranges = <0x2000000 0x0 0xe0000000 0xc 0x40000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0xf 0xffc20000 0x0 0x00010000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
@ -787,8 +796,8 @@
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
ranges = <0x2000000 0x0 0xe0000000
|
||||
0x2000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
|
@ -59,9 +59,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xffe00000 0x100000>;
|
||||
reg = <0xffe00000 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <12>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8572-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8572-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -238,7 +250,6 @@
|
||||
};
|
||||
|
||||
pci0: pcie@ffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -448,7 +459,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -58,7 +58,6 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x0 0xffe00000 0x100000>;
|
||||
reg = <0xffe00000 0x1000>; // CCSRBAR & soc regs, remove once parse code for immrbase fixed
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
L2: l2-cache-controller@20000 {
|
||||
@ -196,7 +195,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0a000 {
|
||||
cell-index = <2>;
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -112,9 +112,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "fsl,mpc8610-immr", "simple-bus";
|
||||
ranges = <0x0 0xe0000000 0x00100000>;
|
||||
reg = <0xe0000000 0x1000>;
|
||||
bus-frequency = <0>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8610-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -316,7 +328,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8610-pci";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -346,7 +357,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@e000a000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -114,9 +114,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x00000000 0xffe00000 0x00100000>;
|
||||
reg = <0xffe00000 0x00001000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -357,7 +369,6 @@
|
||||
};
|
||||
|
||||
pci0: pcie@ffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -566,7 +577,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
609
arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts
Normal file
609
arch/powerpc/boot/dts/mpc8641_hpcn_36b.dts
Normal file
@ -0,0 +1,609 @@
|
||||
/*
|
||||
* MPC8641 HPCN Device Tree Source
|
||||
*
|
||||
* Copyright 2008-2009 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
/ {
|
||||
model = "MPC8641HPCN";
|
||||
compatible = "fsl,mpc8641hpcn";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
ethernet3 = &enet3;
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
PowerPC,8641@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0>;
|
||||
d-cache-line-size = <32>; // 32 bytes
|
||||
i-cache-line-size = <32>; // 32 bytes
|
||||
d-cache-size = <32768>; // L1, 32K
|
||||
i-cache-size = <32768>; // L1, 32K
|
||||
timebase-frequency = <0>; // 33 MHz, from uboot
|
||||
bus-frequency = <0>; // From uboot
|
||||
clock-frequency = <0>; // From uboot
|
||||
};
|
||||
PowerPC,8641@1 {
|
||||
device_type = "cpu";
|
||||
reg = <1>;
|
||||
d-cache-line-size = <32>; // 32 bytes
|
||||
i-cache-line-size = <32>; // 32 bytes
|
||||
d-cache-size = <32768>; // L1, 32K
|
||||
i-cache-size = <32768>; // L1, 32K
|
||||
timebase-frequency = <0>; // 33 MHz, from uboot
|
||||
bus-frequency = <0>; // From uboot
|
||||
clock-frequency = <0>; // From uboot
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
reg = <0x0 0x00000000 0x0 0x40000000>; // 1G at 0x0
|
||||
};
|
||||
|
||||
localbus@fffe05000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8641-localbus", "simple-bus";
|
||||
reg = <0x0f 0xffe05000 0x0 0x1000>;
|
||||
interrupts = <19 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
|
||||
ranges = <0 0 0xf 0xef800000 0x00800000
|
||||
2 0 0xf 0xffdf8000 0x00008000
|
||||
3 0 0xf 0xffdf0000 0x00008000>;
|
||||
|
||||
flash@0,0 {
|
||||
compatible = "cfi-flash";
|
||||
reg = <0 0 0x00800000>;
|
||||
bank-width = <2>;
|
||||
device-width = <2>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
partition@0 {
|
||||
label = "kernel";
|
||||
reg = <0x00000000 0x00300000>;
|
||||
};
|
||||
partition@300000 {
|
||||
label = "firmware b";
|
||||
reg = <0x00300000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
partition@400000 {
|
||||
label = "fs";
|
||||
reg = <0x00400000 0x00300000>;
|
||||
};
|
||||
partition@700000 {
|
||||
label = "firmware a";
|
||||
reg = <0x00700000 0x00100000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
soc8641@fffe00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x00000000 0x0f 0xffe00000 0x00100000>;
|
||||
bus-frequency = <0>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,mpc8641-dma", "fsl,eloplus-dma";
|
||||
reg = <0x21300 0x4>;
|
||||
ranges = <0x0 0x21100 0x200>;
|
||||
cell-index = <0>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,mpc8641-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <20 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,mpc8641-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <21 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,mpc8641-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <22 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,mpc8641-dma-channel",
|
||||
"fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <23 2>;
|
||||
};
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <0>;
|
||||
device_type = "network";
|
||||
model = "TSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x24000 0x1000>;
|
||||
ranges = <0x0 0x24000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <29 2 30 2 34 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-mdio";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <10 1>;
|
||||
reg = <0>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <10 1>;
|
||||
reg = <1>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <10 1>;
|
||||
reg = <2>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
phy3: ethernet-phy@3 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <10 1>;
|
||||
reg = <3>;
|
||||
device_type = "ethernet-phy";
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <1>;
|
||||
device_type = "network";
|
||||
model = "TSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x25000 0x1000>;
|
||||
ranges = <0x0 0x25000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <35 2 36 2 40 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <2>;
|
||||
device_type = "network";
|
||||
model = "TSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x26000 0x1000>;
|
||||
ranges = <0x0 0x26000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <31 2 32 2 33 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-handle = <&phy2>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet3: ethernet@27000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <3>;
|
||||
device_type = "network";
|
||||
model = "TSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x27000 0x1000>;
|
||||
ranges = <0x0 0x27000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <37 2 38 2 39 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi3>;
|
||||
phy-handle = <&phy3>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi3: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
cell-index = <0>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4500 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <42 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
serial1: serial@4600 {
|
||||
cell-index = <1>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4600 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <28 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x40000 0x40000>;
|
||||
compatible = "chrp,open-pic";
|
||||
device_type = "open-pic";
|
||||
};
|
||||
|
||||
global-utilities@e0000 {
|
||||
compatible = "fsl,mpc8641-guts";
|
||||
reg = <0xe0000 0x1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@fffe08000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0x0f 0xffe08000 0x0 0x1000>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x02000000 0x0 0xe0000000 0x0c 0x00000000 0x0 0x20000000
|
||||
0x01000000 0x0 0x00000000 0x0f 0xffc00000 0x0 0x00010000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <24 2>;
|
||||
interrupt-map-mask = <0xff00 0 0 7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x11 func 0 - PCI slot 1 */
|
||||
0x8800 0 0 1 &mpic 2 1
|
||||
0x8800 0 0 2 &mpic 3 1
|
||||
0x8800 0 0 3 &mpic 4 1
|
||||
0x8800 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 1 - PCI slot 1 */
|
||||
0x8900 0 0 1 &mpic 2 1
|
||||
0x8900 0 0 2 &mpic 3 1
|
||||
0x8900 0 0 3 &mpic 4 1
|
||||
0x8900 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 2 - PCI slot 1 */
|
||||
0x8a00 0 0 1 &mpic 2 1
|
||||
0x8a00 0 0 2 &mpic 3 1
|
||||
0x8a00 0 0 3 &mpic 4 1
|
||||
0x8a00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 3 - PCI slot 1 */
|
||||
0x8b00 0 0 1 &mpic 2 1
|
||||
0x8b00 0 0 2 &mpic 3 1
|
||||
0x8b00 0 0 3 &mpic 4 1
|
||||
0x8b00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 4 - PCI slot 1 */
|
||||
0x8c00 0 0 1 &mpic 2 1
|
||||
0x8c00 0 0 2 &mpic 3 1
|
||||
0x8c00 0 0 3 &mpic 4 1
|
||||
0x8c00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 5 - PCI slot 1 */
|
||||
0x8d00 0 0 1 &mpic 2 1
|
||||
0x8d00 0 0 2 &mpic 3 1
|
||||
0x8d00 0 0 3 &mpic 4 1
|
||||
0x8d00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 6 - PCI slot 1 */
|
||||
0x8e00 0 0 1 &mpic 2 1
|
||||
0x8e00 0 0 2 &mpic 3 1
|
||||
0x8e00 0 0 3 &mpic 4 1
|
||||
0x8e00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x11 func 7 - PCI slot 1 */
|
||||
0x8f00 0 0 1 &mpic 2 1
|
||||
0x8f00 0 0 2 &mpic 3 1
|
||||
0x8f00 0 0 3 &mpic 4 1
|
||||
0x8f00 0 0 4 &mpic 1 1
|
||||
|
||||
/* IDSEL 0x12 func 0 - PCI slot 2 */
|
||||
0x9000 0 0 1 &mpic 3 1
|
||||
0x9000 0 0 2 &mpic 4 1
|
||||
0x9000 0 0 3 &mpic 1 1
|
||||
0x9000 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 1 - PCI slot 2 */
|
||||
0x9100 0 0 1 &mpic 3 1
|
||||
0x9100 0 0 2 &mpic 4 1
|
||||
0x9100 0 0 3 &mpic 1 1
|
||||
0x9100 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 2 - PCI slot 2 */
|
||||
0x9200 0 0 1 &mpic 3 1
|
||||
0x9200 0 0 2 &mpic 4 1
|
||||
0x9200 0 0 3 &mpic 1 1
|
||||
0x9200 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 3 - PCI slot 2 */
|
||||
0x9300 0 0 1 &mpic 3 1
|
||||
0x9300 0 0 2 &mpic 4 1
|
||||
0x9300 0 0 3 &mpic 1 1
|
||||
0x9300 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 4 - PCI slot 2 */
|
||||
0x9400 0 0 1 &mpic 3 1
|
||||
0x9400 0 0 2 &mpic 4 1
|
||||
0x9400 0 0 3 &mpic 1 1
|
||||
0x9400 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 5 - PCI slot 2 */
|
||||
0x9500 0 0 1 &mpic 3 1
|
||||
0x9500 0 0 2 &mpic 4 1
|
||||
0x9500 0 0 3 &mpic 1 1
|
||||
0x9500 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 6 - PCI slot 2 */
|
||||
0x9600 0 0 1 &mpic 3 1
|
||||
0x9600 0 0 2 &mpic 4 1
|
||||
0x9600 0 0 3 &mpic 1 1
|
||||
0x9600 0 0 4 &mpic 2 1
|
||||
|
||||
/* IDSEL 0x12 func 7 - PCI slot 2 */
|
||||
0x9700 0 0 1 &mpic 3 1
|
||||
0x9700 0 0 2 &mpic 4 1
|
||||
0x9700 0 0 3 &mpic 1 1
|
||||
0x9700 0 0 4 &mpic 2 1
|
||||
|
||||
// IDSEL 0x1c USB
|
||||
0xe000 0 0 1 &i8259 12 2
|
||||
0xe100 0 0 2 &i8259 9 2
|
||||
0xe200 0 0 3 &i8259 10 2
|
||||
0xe300 0 0 4 &i8259 11 2
|
||||
|
||||
// IDSEL 0x1d Audio
|
||||
0xe800 0 0 1 &i8259 6 2
|
||||
|
||||
// IDSEL 0x1e Legacy
|
||||
0xf000 0 0 1 &i8259 7 2
|
||||
0xf100 0 0 1 &i8259 7 2
|
||||
|
||||
// IDSEL 0x1f IDE/SATA
|
||||
0xf800 0 0 1 &i8259 14 2
|
||||
0xf900 0 0 1 &i8259 5 2
|
||||
>;
|
||||
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x02000000 0x0 0xe0000000
|
||||
0x02000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x01000000 0x0 0x00000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x0 0x00010000>;
|
||||
uli1575@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
ranges = <0x02000000 0x0 0xe0000000
|
||||
0x02000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x0 0x00010000>;
|
||||
isa@1e {
|
||||
device_type = "isa";
|
||||
#interrupt-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
#address-cells = <2>;
|
||||
reg = <0xf000 0 0 0 0>;
|
||||
ranges = <1 0 0x01000000 0 0
|
||||
0x00001000>;
|
||||
interrupt-parent = <&i8259>;
|
||||
|
||||
i8259: interrupt-controller@20 {
|
||||
reg = <1 0x20 2
|
||||
1 0xa0 2
|
||||
1 0x4d0 2>;
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "chrp,iic";
|
||||
interrupts = <9 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i8042@60 {
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
reg = <1 0x60 1 1 0x64 1>;
|
||||
interrupts = <1 3 12 3>;
|
||||
interrupt-parent =
|
||||
<&i8259>;
|
||||
|
||||
keyboard@0 {
|
||||
reg = <0>;
|
||||
compatible = "pnpPNP,303";
|
||||
};
|
||||
|
||||
mouse@1 {
|
||||
reg = <1>;
|
||||
compatible = "pnpPNP,f03";
|
||||
};
|
||||
};
|
||||
|
||||
rtc@70 {
|
||||
compatible =
|
||||
"pnpPNP,b00";
|
||||
reg = <1 0x70 2>;
|
||||
};
|
||||
|
||||
gpio@400 {
|
||||
reg = <1 0x400 0x80>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
pci1: pcie@fffe09000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0x0f 0xffe09000 0x0 0x1000>;
|
||||
bus-range = <0x0 0xff>;
|
||||
ranges = <0x02000000 0x0 0xe0000000 0x0c 0x20000000 0x0 0x20000000
|
||||
0x01000000 0x0 0x00000000 0x0f 0xffc10000 0x0 0x00010000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <25 2>;
|
||||
interrupt-map-mask = <0xf800 0 0 7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 */
|
||||
0x0000 0 0 1 &mpic 4 1
|
||||
0x0000 0 0 2 &mpic 5 1
|
||||
0x0000 0 0 3 &mpic 6 1
|
||||
0x0000 0 0 4 &mpic 7 1
|
||||
>;
|
||||
pcie@0 {
|
||||
reg = <0 0 0 0 0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x02000000 0x0 0xe0000000
|
||||
0x02000000 0x0 0xe0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x01000000 0x0 0x00000000
|
||||
0x01000000 0x0 0x00000000
|
||||
0x0 0x00010000>;
|
||||
};
|
||||
};
|
||||
};
|
704
arch/powerpc/boot/dts/p2020ds.dts
Normal file
704
arch/powerpc/boot/dts/p2020ds.dts
Normal file
@ -0,0 +1,704 @@
|
||||
/*
|
||||
* P2020 DS Device Tree Source
|
||||
*
|
||||
* Copyright 2009 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.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/ {
|
||||
model = "fsl,P2020";
|
||||
compatible = "fsl,P2020DS";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
aliases {
|
||||
ethernet0 = &enet0;
|
||||
ethernet1 = &enet1;
|
||||
ethernet2 = &enet2;
|
||||
serial0 = &serial0;
|
||||
serial1 = &serial1;
|
||||
pci0 = &pci0;
|
||||
pci1 = &pci1;
|
||||
pci2 = &pci2;
|
||||
};
|
||||
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
PowerPC,P2020@0 {
|
||||
device_type = "cpu";
|
||||
reg = <0x0>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
|
||||
PowerPC,P2020@1 {
|
||||
device_type = "cpu";
|
||||
reg = <0x1>;
|
||||
next-level-cache = <&L2>;
|
||||
};
|
||||
};
|
||||
|
||||
memory {
|
||||
device_type = "memory";
|
||||
};
|
||||
|
||||
localbus@ffe05000 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,elbc", "simple-bus";
|
||||
reg = <0 0xffe05000 0 0x1000>;
|
||||
interrupts = <19 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
|
||||
ranges = <0x0 0x0 0x0 0xe8000000 0x08000000
|
||||
0x1 0x0 0x0 0xe0000000 0x08000000
|
||||
0x2 0x0 0x0 0xffa00000 0x00040000
|
||||
0x3 0x0 0x0 0xffdf0000 0x00008000
|
||||
0x4 0x0 0x0 0xffa40000 0x00040000
|
||||
0x5 0x0 0x0 0xffa80000 0x00040000
|
||||
0x6 0x0 0x0 0xffac0000 0x00040000>;
|
||||
|
||||
nor@0,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "cfi-flash";
|
||||
reg = <0x0 0x0 0x8000000>;
|
||||
bank-width = <2>;
|
||||
device-width = <1>;
|
||||
|
||||
ramdisk@0 {
|
||||
reg = <0x0 0x03000000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
diagnostic@3000000 {
|
||||
reg = <0x03000000 0x00e00000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
dink@3e00000 {
|
||||
reg = <0x03e00000 0x00200000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
kernel@4000000 {
|
||||
reg = <0x04000000 0x00400000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
jffs2@4400000 {
|
||||
reg = <0x04400000 0x03b00000>;
|
||||
};
|
||||
|
||||
dtb@7f00000 {
|
||||
reg = <0x07f00000 0x00080000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
u-boot@7f80000 {
|
||||
reg = <0x07f80000 0x00080000>;
|
||||
read-only;
|
||||
};
|
||||
};
|
||||
|
||||
nand@2,0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x2 0x0 0x40000>;
|
||||
|
||||
u-boot@0 {
|
||||
reg = <0x0 0x02000000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
jffs2@2000000 {
|
||||
reg = <0x02000000 0x10000000>;
|
||||
};
|
||||
|
||||
ramdisk@12000000 {
|
||||
reg = <0x12000000 0x08000000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
kernel@1a000000 {
|
||||
reg = <0x1a000000 0x04000000>;
|
||||
};
|
||||
|
||||
dtb@1e000000 {
|
||||
reg = <0x1e000000 0x01000000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
empty@1f000000 {
|
||||
reg = <0x1f000000 0x21000000>;
|
||||
};
|
||||
};
|
||||
|
||||
nand@4,0 {
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x4 0x0 0x40000>;
|
||||
};
|
||||
|
||||
nand@5,0 {
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x5 0x0 0x40000>;
|
||||
};
|
||||
|
||||
nand@6,0 {
|
||||
compatible = "fsl,elbc-fcm-nand";
|
||||
reg = <0x6 0x0 0x40000>;
|
||||
};
|
||||
};
|
||||
|
||||
soc@ffe00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
compatible = "fsl,p2020-immr", "simple-bus";
|
||||
ranges = <0x0 0 0xffe00000 0x100000>;
|
||||
bus-frequency = <0>; // Filled out by uboot.
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <12>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,p2020-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,p2020-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <18 2>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <0>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3000 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
i2c@3100 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
cell-index = <1>;
|
||||
compatible = "fsl-i2c";
|
||||
reg = <0x3100 0x100>;
|
||||
interrupts = <43 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
dfsrr;
|
||||
};
|
||||
|
||||
serial0: serial@4500 {
|
||||
cell-index = <0>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4500 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <42 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
serial1: serial@4600 {
|
||||
cell-index = <1>;
|
||||
device_type = "serial";
|
||||
compatible = "ns16550";
|
||||
reg = <0x4600 0x100>;
|
||||
clock-frequency = <0>;
|
||||
interrupts = <42 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
spi@7000 {
|
||||
compatible = "fsl,espi";
|
||||
reg = <0x7000 0x1000>;
|
||||
interrupts = <59 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
dma@c300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,eloplus-dma";
|
||||
reg = <0xc300 0x4>;
|
||||
ranges = <0x0 0xc100 0x200>;
|
||||
cell-index = <1>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <76 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <77 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <78 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <79 2>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio: gpio-controller@f000 {
|
||||
#gpio-cells = <2>;
|
||||
compatible = "fsl,mpc8572-gpio";
|
||||
reg = <0xf000 0x100>;
|
||||
interrupts = <47 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
L2: l2-cache-controller@20000 {
|
||||
compatible = "fsl,p2020-l2-cache-controller";
|
||||
reg = <0x20000 0x1000>;
|
||||
cache-line-size = <32>; // 32 bytes
|
||||
cache-size = <0x80000>; // L2, 512k
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <16 2>;
|
||||
};
|
||||
|
||||
dma@21300 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "fsl,eloplus-dma";
|
||||
reg = <0x21300 0x4>;
|
||||
ranges = <0x0 0x21100 0x200>;
|
||||
cell-index = <0>;
|
||||
dma-channel@0 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x0 0x80>;
|
||||
cell-index = <0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <20 2>;
|
||||
};
|
||||
dma-channel@80 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x80 0x80>;
|
||||
cell-index = <1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <21 2>;
|
||||
};
|
||||
dma-channel@100 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x100 0x80>;
|
||||
cell-index = <2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <22 2>;
|
||||
};
|
||||
dma-channel@180 {
|
||||
compatible = "fsl,eloplus-dma-channel";
|
||||
reg = <0x180 0x80>;
|
||||
cell-index = <3>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <23 2>;
|
||||
};
|
||||
};
|
||||
|
||||
usb@22000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl-usb2-dr";
|
||||
reg = <0x22000 0x1000>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <28 0x2>;
|
||||
phy_type = "ulpi";
|
||||
};
|
||||
|
||||
enet0: ethernet@24000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <0>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x24000 0x1000>;
|
||||
ranges = <0x0 0x24000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <29 2 30 2 34 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi0>;
|
||||
phy-handle = <&phy0>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-mdio";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
phy0: ethernet-phy@0 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x0>;
|
||||
};
|
||||
phy1: ethernet-phy@1 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
phy2: ethernet-phy@2 {
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <3 1>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
tbi0: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet1: ethernet@25000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <1>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x25000 0x1000>;
|
||||
ranges = <0x0 0x25000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <35 2 36 2 40 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi1>;
|
||||
phy-handle = <&phy1>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi1: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
enet2: ethernet@26000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
cell-index = <2>;
|
||||
device_type = "network";
|
||||
model = "eTSEC";
|
||||
compatible = "gianfar";
|
||||
reg = <0x26000 0x1000>;
|
||||
ranges = <0x0 0x26000 0x1000>;
|
||||
local-mac-address = [ 00 00 00 00 00 00 ];
|
||||
interrupts = <31 2 32 2 33 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
tbi-handle = <&tbi2>;
|
||||
phy-handle = <&phy2>;
|
||||
phy-connection-type = "rgmii-id";
|
||||
|
||||
mdio@520 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
compatible = "fsl,gianfar-tbi";
|
||||
reg = <0x520 0x20>;
|
||||
|
||||
tbi2: tbi-phy@11 {
|
||||
reg = <0x11>;
|
||||
device_type = "tbi-phy";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sdhci@2e000 {
|
||||
compatible = "fsl,p2020-esdhc", "fsl,esdhc";
|
||||
reg = <0x2e000 0x1000>;
|
||||
interrupts = <72 0x2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
/* Filled in by U-Boot */
|
||||
clock-frequency = <0>;
|
||||
};
|
||||
|
||||
crypto@30000 {
|
||||
compatible = "fsl,sec3.1", "fsl,sec3.0", "fsl,sec2.4",
|
||||
"fsl,sec2.2", "fsl,sec2.1", "fsl,sec2.0";
|
||||
reg = <0x30000 0x10000>;
|
||||
interrupts = <45 2 58 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
fsl,num-channels = <4>;
|
||||
fsl,channel-fifo-len = <24>;
|
||||
fsl,exec-units-mask = <0xbfe>;
|
||||
fsl,descriptor-types-mask = <0x3ab0ebf>;
|
||||
};
|
||||
|
||||
mpic: pic@40000 {
|
||||
interrupt-controller;
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
reg = <0x40000 0x40000>;
|
||||
compatible = "chrp,open-pic";
|
||||
device_type = "open-pic";
|
||||
};
|
||||
|
||||
msi@41600 {
|
||||
compatible = "fsl,mpic-msi";
|
||||
reg = <0x41600 0x80>;
|
||||
msi-available-ranges = <0 0x100>;
|
||||
interrupts = <
|
||||
0xe0 0
|
||||
0xe1 0
|
||||
0xe2 0
|
||||
0xe3 0
|
||||
0xe4 0
|
||||
0xe5 0
|
||||
0xe6 0
|
||||
0xe7 0>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
global-utilities@e0000 { //global utilities block
|
||||
compatible = "fsl,p2020-guts";
|
||||
reg = <0xe0000 0x1000>;
|
||||
fsl,has-rstcr;
|
||||
};
|
||||
};
|
||||
|
||||
pci0: pcie@ffe08000 {
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0 0xffe08000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0x80000000 0 0x80000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc00000 0x0 0x10000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <24 2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 */
|
||||
0000 0x0 0x0 0x1 &mpic 0x8 0x1
|
||||
0000 0x0 0x0 0x2 &mpic 0x9 0x1
|
||||
0000 0x0 0x0 0x3 &mpic 0xa 0x1
|
||||
0000 0x0 0x0 0x4 &mpic 0xb 0x1
|
||||
>;
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0x80000000
|
||||
0x2000000 0x0 0x80000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
};
|
||||
};
|
||||
|
||||
pci1: pcie@ffe09000 {
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0 0xffe09000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xa0000000 0 0xa0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc10000 0x0 0x10000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <25 2>;
|
||||
interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
// IDSEL 0x11 func 0 - PCI slot 1
|
||||
0x8800 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8800 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 1 - PCI slot 1
|
||||
0x8900 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8900 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 2 - PCI slot 1
|
||||
0x8a00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 3 - PCI slot 1
|
||||
0x8b00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 4 - PCI slot 1
|
||||
0x8c00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 5 - PCI slot 1
|
||||
0x8d00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 6 - PCI slot 1
|
||||
0x8e00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x11 func 7 - PCI slot 1
|
||||
0x8f00 0x0 0x0 0x1 &i8259 0x9 0x2
|
||||
0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2
|
||||
|
||||
// IDSEL 0x1d Audio
|
||||
0xe800 0x0 0x0 0x1 &i8259 0x6 0x2
|
||||
|
||||
// IDSEL 0x1e Legacy
|
||||
0xf000 0x0 0x0 0x1 &i8259 0x7 0x2
|
||||
0xf100 0x0 0x0 0x1 &i8259 0x7 0x2
|
||||
|
||||
// IDSEL 0x1f IDE/SATA
|
||||
0xf800 0x0 0x0 0x1 &i8259 0xe 0x2
|
||||
0xf900 0x0 0x0 0x1 &i8259 0x5 0x2
|
||||
>;
|
||||
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
uli1575@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
ranges = <0x2000000 0x0 0xa0000000
|
||||
0x2000000 0x0 0xa0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
isa@1e {
|
||||
device_type = "isa";
|
||||
#interrupt-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
#address-cells = <2>;
|
||||
reg = <0xf000 0x0 0x0 0x0 0x0>;
|
||||
ranges = <0x1 0x0 0x1000000 0x0 0x0
|
||||
0x1000>;
|
||||
interrupt-parent = <&i8259>;
|
||||
|
||||
i8259: interrupt-controller@20 {
|
||||
reg = <0x1 0x20 0x2
|
||||
0x1 0xa0 0x2
|
||||
0x1 0x4d0 0x2>;
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "chrp,iic";
|
||||
interrupts = <4 1>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i8042@60 {
|
||||
#size-cells = <0>;
|
||||
#address-cells = <1>;
|
||||
reg = <0x1 0x60 0x1 0x1 0x64 0x1>;
|
||||
interrupts = <1 3 12 3>;
|
||||
interrupt-parent =
|
||||
<&i8259>;
|
||||
|
||||
keyboard@0 {
|
||||
reg = <0x0>;
|
||||
compatible = "pnpPNP,303";
|
||||
};
|
||||
|
||||
mouse@1 {
|
||||
reg = <0x1>;
|
||||
compatible = "pnpPNP,f03";
|
||||
};
|
||||
};
|
||||
|
||||
rtc@70 {
|
||||
compatible = "pnpPNP,b00";
|
||||
reg = <0x1 0x70 0x2>;
|
||||
};
|
||||
|
||||
gpio@400 {
|
||||
reg = <0x1 0x400 0x80>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
pci2: pcie@ffe0a000 {
|
||||
compatible = "fsl,mpc8548-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
reg = <0 0xffe0a000 0 0x1000>;
|
||||
bus-range = <0 255>;
|
||||
ranges = <0x2000000 0x0 0xc0000000 0 0xc0000000 0x0 0x20000000
|
||||
0x1000000 0x0 0x00000000 0 0xffc20000 0x0 0x10000>;
|
||||
clock-frequency = <33333333>;
|
||||
interrupt-parent = <&mpic>;
|
||||
interrupts = <26 2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 */
|
||||
0000 0x0 0x0 0x1 &mpic 0x0 0x1
|
||||
0000 0x0 0x0 0x2 &mpic 0x1 0x1
|
||||
0000 0x0 0x0 0x3 &mpic 0x2 0x1
|
||||
0000 0x0 0x0 0x4 &mpic 0x3 0x1
|
||||
>;
|
||||
pcie@0 {
|
||||
reg = <0x0 0x0 0x0 0x0 0x0>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
device_type = "pci";
|
||||
ranges = <0x2000000 0x0 0xc0000000
|
||||
0x2000000 0x0 0xc0000000
|
||||
0x0 0x20000000
|
||||
|
||||
0x1000000 0x0 0x0
|
||||
0x1000000 0x0 0x0
|
||||
0x0 0x10000>;
|
||||
};
|
||||
};
|
||||
};
|
@ -278,7 +278,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008500 {
|
||||
cell-index = <1>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -151,10 +151,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x00000000 0xe0000000 0x00100000>;
|
||||
reg = <0xe0000000 0x00001000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
compatible = "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -350,7 +362,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x01 (PCI-X slot) @66MHz */
|
||||
@ -380,7 +391,6 @@
|
||||
};
|
||||
|
||||
pci2: pcie@e000a000 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -57,9 +57,21 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xff700000 0x00100000>;
|
||||
reg = <0xff700000 0x00100000>;
|
||||
clock-frequency = <0>;
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8560-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8560-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -296,7 +308,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@ff708000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -126,9 +126,21 @@
|
||||
device_type = "soc";
|
||||
compatible = "simple-bus";
|
||||
ranges = <0x00000000 0xf8000000 0x00100000>;
|
||||
reg = <0xf8000000 0x00001000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
|
||||
mcm-law@0 {
|
||||
compatible = "fsl,mcm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
mcm@1000 {
|
||||
compatible = "fsl,mpc8641-mcm", "fsl,mcm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
i2c@3000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
@ -371,7 +383,6 @@
|
||||
};
|
||||
|
||||
pci0: pcie@f8008000 {
|
||||
cell-index = <0>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
@ -410,7 +421,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@f8009000 {
|
||||
cell-index = <1>;
|
||||
compatible = "fsl,mpc8641-pcie";
|
||||
device_type = "pci";
|
||||
#interrupt-cells = <1>;
|
||||
|
@ -199,6 +199,28 @@
|
||||
};
|
||||
};
|
||||
|
||||
ndfc@3,0 {
|
||||
compatible = "ibm,ndfc";
|
||||
reg = <0x00000003 0x00000000 0x00002000>;
|
||||
ccr = <0x00001000>;
|
||||
bank-settings = <0x80002222>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
nand {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "u-boot";
|
||||
reg = <0x00000000 0x00084000>;
|
||||
};
|
||||
partition@84000 {
|
||||
label = "user";
|
||||
reg = <0x00000000 0x01f7c000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
UART0: serial@ef600300 {
|
||||
|
@ -55,10 +55,22 @@
|
||||
device_type = "soc";
|
||||
|
||||
ranges = <0x00000000 0xe0000000 0x00100000>;
|
||||
reg = <0xe0000000 0x00001000>; // CCSRBAR 1M
|
||||
bus-frequency = <0>; // Filled in by U-Boot
|
||||
compatible = "fsl,mpc8544-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8544-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8544-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -314,7 +326,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -52,10 +52,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0 0xfdf00000 0x100000>;
|
||||
reg = <0xfdf00000 0x1000>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8560-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8560-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -251,7 +263,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@fdf08000 {
|
||||
cell-index = <0>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
|
||||
|
@ -54,10 +54,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x200>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8540-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8540-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -266,7 +278,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -53,10 +53,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x200>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8541-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8541-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -288,7 +300,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -55,10 +55,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xa0000000 0x100000>;
|
||||
reg = <0xa0000000 0x1000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8548-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -419,7 +431,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@a0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
@ -441,7 +452,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@a000a000 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 (PEX) */
|
||||
|
@ -55,10 +55,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x1000>; // CCSRBAR
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8548-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <10>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8548-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8548-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -419,7 +431,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
@ -441,7 +452,6 @@
|
||||
};
|
||||
|
||||
pci1: pcie@e000a000 {
|
||||
cell-index = <2>;
|
||||
interrupt-map-mask = <0xf800 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IDSEL 0x0 (PEX) */
|
||||
|
@ -53,10 +53,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x200>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8555-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8555-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -288,7 +300,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
@ -55,10 +55,22 @@
|
||||
#size-cells = <1>;
|
||||
device_type = "soc";
|
||||
ranges = <0x0 0xe0000000 0x100000>;
|
||||
reg = <0xe0000000 0x200>;
|
||||
bus-frequency = <0>;
|
||||
compatible = "fsl,mpc8560-immr", "simple-bus";
|
||||
|
||||
ecm-law@0 {
|
||||
compatible = "fsl,ecm-law";
|
||||
reg = <0x0 0x1000>;
|
||||
fsl,num-laws = <8>;
|
||||
};
|
||||
|
||||
ecm@1000 {
|
||||
compatible = "fsl,mpc8560-ecm", "fsl,ecm";
|
||||
reg = <0x1000 0x1000>;
|
||||
interrupts = <17 2>;
|
||||
interrupt-parent = <&mpic>;
|
||||
};
|
||||
|
||||
memory-controller@2000 {
|
||||
compatible = "fsl,mpc8540-memory-controller";
|
||||
reg = <0x2000 0x1000>;
|
||||
@ -359,7 +371,6 @@
|
||||
};
|
||||
|
||||
pci0: pci@e0008000 {
|
||||
cell-index = <0>;
|
||||
#interrupt-cells = <1>;
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
|
465
arch/powerpc/boot/dts/virtex440-ml510.dts
Normal file
465
arch/powerpc/boot/dts/virtex440-ml510.dts
Normal file
@ -0,0 +1,465 @@
|
||||
/*
|
||||
* Xilinx ML510 Reference Design support
|
||||
*
|
||||
* This DTS file was created for the ml510_bsb1_pcores_ppc440 reference design.
|
||||
* The reference design contains a bug which prevent PCI DMA from working
|
||||
* properly. A description of the bug is given in the plbv46_pci section. It
|
||||
* needs to be fixed by the user until Xilinx updates their reference design.
|
||||
*
|
||||
* Copyright 2009, Roderick Colenbrander
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/ {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "xlnx,ml510-ref-design", "xlnx,virtex440";
|
||||
dcr-parent = <&ppc440_0>;
|
||||
DDR2_SDRAM_DIMM0: memory@0 {
|
||||
device_type = "memory";
|
||||
reg = < 0x0 0x20000000 >;
|
||||
} ;
|
||||
alias {
|
||||
ethernet0 = &Hard_Ethernet_MAC;
|
||||
serial0 = &RS232_Uart_1;
|
||||
} ;
|
||||
chosen {
|
||||
bootargs = "console=ttyS0 root=/dev/ram";
|
||||
linux,stdout-path = "/plb@0/serial@83e00000";
|
||||
} ;
|
||||
cpus {
|
||||
#address-cells = <1>;
|
||||
#cpus = <0x1>;
|
||||
#size-cells = <0>;
|
||||
ppc440_0: cpu@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
clock-frequency = <300000000>;
|
||||
compatible = "PowerPC,440", "ibm,ppc440";
|
||||
d-cache-line-size = <0x20>;
|
||||
d-cache-size = <0x8000>;
|
||||
dcr-access-method = "native";
|
||||
dcr-controller ;
|
||||
device_type = "cpu";
|
||||
i-cache-line-size = <0x20>;
|
||||
i-cache-size = <0x8000>;
|
||||
model = "PowerPC,440";
|
||||
reg = <0>;
|
||||
timebase-frequency = <300000000>;
|
||||
xlnx,apu-control = <0x2000>;
|
||||
xlnx,apu-udi-0 = <0x0>;
|
||||
xlnx,apu-udi-1 = <0x0>;
|
||||
xlnx,apu-udi-10 = <0x0>;
|
||||
xlnx,apu-udi-11 = <0x0>;
|
||||
xlnx,apu-udi-12 = <0x0>;
|
||||
xlnx,apu-udi-13 = <0x0>;
|
||||
xlnx,apu-udi-14 = <0x0>;
|
||||
xlnx,apu-udi-15 = <0x0>;
|
||||
xlnx,apu-udi-2 = <0x0>;
|
||||
xlnx,apu-udi-3 = <0x0>;
|
||||
xlnx,apu-udi-4 = <0x0>;
|
||||
xlnx,apu-udi-5 = <0x0>;
|
||||
xlnx,apu-udi-6 = <0x0>;
|
||||
xlnx,apu-udi-7 = <0x0>;
|
||||
xlnx,apu-udi-8 = <0x0>;
|
||||
xlnx,apu-udi-9 = <0x0>;
|
||||
xlnx,dcr-autolock-enable = <0x1>;
|
||||
xlnx,dcu-rd-ld-cache-plb-prio = <0x0>;
|
||||
xlnx,dcu-rd-noncache-plb-prio = <0x0>;
|
||||
xlnx,dcu-rd-touch-plb-prio = <0x0>;
|
||||
xlnx,dcu-rd-urgent-plb-prio = <0x0>;
|
||||
xlnx,dcu-wr-flush-plb-prio = <0x0>;
|
||||
xlnx,dcu-wr-store-plb-prio = <0x0>;
|
||||
xlnx,dcu-wr-urgent-plb-prio = <0x0>;
|
||||
xlnx,dma0-control = <0x0>;
|
||||
xlnx,dma0-plb-prio = <0x0>;
|
||||
xlnx,dma0-rxchannelctrl = <0x1010000>;
|
||||
xlnx,dma0-rxirqtimer = <0x3ff>;
|
||||
xlnx,dma0-txchannelctrl = <0x1010000>;
|
||||
xlnx,dma0-txirqtimer = <0x3ff>;
|
||||
xlnx,dma1-control = <0x0>;
|
||||
xlnx,dma1-plb-prio = <0x0>;
|
||||
xlnx,dma1-rxchannelctrl = <0x1010000>;
|
||||
xlnx,dma1-rxirqtimer = <0x3ff>;
|
||||
xlnx,dma1-txchannelctrl = <0x1010000>;
|
||||
xlnx,dma1-txirqtimer = <0x3ff>;
|
||||
xlnx,dma2-control = <0x0>;
|
||||
xlnx,dma2-plb-prio = <0x0>;
|
||||
xlnx,dma2-rxchannelctrl = <0x1010000>;
|
||||
xlnx,dma2-rxirqtimer = <0x3ff>;
|
||||
xlnx,dma2-txchannelctrl = <0x1010000>;
|
||||
xlnx,dma2-txirqtimer = <0x3ff>;
|
||||
xlnx,dma3-control = <0x0>;
|
||||
xlnx,dma3-plb-prio = <0x0>;
|
||||
xlnx,dma3-rxchannelctrl = <0x1010000>;
|
||||
xlnx,dma3-rxirqtimer = <0x3ff>;
|
||||
xlnx,dma3-txchannelctrl = <0x1010000>;
|
||||
xlnx,dma3-txirqtimer = <0x3ff>;
|
||||
xlnx,endian-reset = <0x0>;
|
||||
xlnx,generate-plb-timespecs = <0x1>;
|
||||
xlnx,icu-rd-fetch-plb-prio = <0x0>;
|
||||
xlnx,icu-rd-spec-plb-prio = <0x0>;
|
||||
xlnx,icu-rd-touch-plb-prio = <0x0>;
|
||||
xlnx,interconnect-imask = <0xffffffff>;
|
||||
xlnx,mplb-allow-lock-xfer = <0x1>;
|
||||
xlnx,mplb-arb-mode = <0x0>;
|
||||
xlnx,mplb-awidth = <0x20>;
|
||||
xlnx,mplb-counter = <0x500>;
|
||||
xlnx,mplb-dwidth = <0x80>;
|
||||
xlnx,mplb-max-burst = <0x8>;
|
||||
xlnx,mplb-native-dwidth = <0x80>;
|
||||
xlnx,mplb-p2p = <0x0>;
|
||||
xlnx,mplb-prio-dcur = <0x2>;
|
||||
xlnx,mplb-prio-dcuw = <0x3>;
|
||||
xlnx,mplb-prio-icu = <0x4>;
|
||||
xlnx,mplb-prio-splb0 = <0x1>;
|
||||
xlnx,mplb-prio-splb1 = <0x0>;
|
||||
xlnx,mplb-read-pipe-enable = <0x1>;
|
||||
xlnx,mplb-sync-tattribute = <0x0>;
|
||||
xlnx,mplb-wdog-enable = <0x1>;
|
||||
xlnx,mplb-write-pipe-enable = <0x1>;
|
||||
xlnx,mplb-write-post-enable = <0x1>;
|
||||
xlnx,num-dma = <0x0>;
|
||||
xlnx,pir = <0xf>;
|
||||
xlnx,ppc440mc-addr-base = <0x0>;
|
||||
xlnx,ppc440mc-addr-high = <0x1fffffff>;
|
||||
xlnx,ppc440mc-arb-mode = <0x0>;
|
||||
xlnx,ppc440mc-bank-conflict-mask = <0x1800000>;
|
||||
xlnx,ppc440mc-control = <0xf810008f>;
|
||||
xlnx,ppc440mc-max-burst = <0x8>;
|
||||
xlnx,ppc440mc-prio-dcur = <0x2>;
|
||||
xlnx,ppc440mc-prio-dcuw = <0x3>;
|
||||
xlnx,ppc440mc-prio-icu = <0x4>;
|
||||
xlnx,ppc440mc-prio-splb0 = <0x1>;
|
||||
xlnx,ppc440mc-prio-splb1 = <0x0>;
|
||||
xlnx,ppc440mc-row-conflict-mask = <0x7ffe00>;
|
||||
xlnx,ppcdm-asyncmode = <0x0>;
|
||||
xlnx,ppcds-asyncmode = <0x0>;
|
||||
xlnx,user-reset = <0x0>;
|
||||
} ;
|
||||
} ;
|
||||
plb_v46_0: plb@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "xlnx,plb-v46-1.03.a", "simple-bus";
|
||||
ranges ;
|
||||
FLASH: flash@fc000000 {
|
||||
bank-width = <2>;
|
||||
compatible = "xlnx,xps-mch-emc-2.00.a", "cfi-flash";
|
||||
reg = < 0xfc000000 0x2000000 >;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,include-datawidth-matching-0 = <0x1>;
|
||||
xlnx,include-datawidth-matching-1 = <0x0>;
|
||||
xlnx,include-datawidth-matching-2 = <0x0>;
|
||||
xlnx,include-datawidth-matching-3 = <0x0>;
|
||||
xlnx,include-negedge-ioregs = <0x0>;
|
||||
xlnx,include-plb-ipif = <0x1>;
|
||||
xlnx,include-wrbuf = <0x1>;
|
||||
xlnx,max-mem-width = <0x10>;
|
||||
xlnx,mch-native-dwidth = <0x20>;
|
||||
xlnx,mch-plb-clk-period-ps = <0x2710>;
|
||||
xlnx,mch-splb-awidth = <0x20>;
|
||||
xlnx,mch0-accessbuf-depth = <0x10>;
|
||||
xlnx,mch0-protocol = <0x0>;
|
||||
xlnx,mch0-rddatabuf-depth = <0x10>;
|
||||
xlnx,mch1-accessbuf-depth = <0x10>;
|
||||
xlnx,mch1-protocol = <0x0>;
|
||||
xlnx,mch1-rddatabuf-depth = <0x10>;
|
||||
xlnx,mch2-accessbuf-depth = <0x10>;
|
||||
xlnx,mch2-protocol = <0x0>;
|
||||
xlnx,mch2-rddatabuf-depth = <0x10>;
|
||||
xlnx,mch3-accessbuf-depth = <0x10>;
|
||||
xlnx,mch3-protocol = <0x0>;
|
||||
xlnx,mch3-rddatabuf-depth = <0x10>;
|
||||
xlnx,mem0-width = <0x10>;
|
||||
xlnx,mem1-width = <0x20>;
|
||||
xlnx,mem2-width = <0x20>;
|
||||
xlnx,mem3-width = <0x20>;
|
||||
xlnx,num-banks-mem = <0x1>;
|
||||
xlnx,num-channels = <0x2>;
|
||||
xlnx,priority-mode = <0x0>;
|
||||
xlnx,synch-mem-0 = <0x0>;
|
||||
xlnx,synch-mem-1 = <0x0>;
|
||||
xlnx,synch-mem-2 = <0x0>;
|
||||
xlnx,synch-mem-3 = <0x0>;
|
||||
xlnx,synch-pipedelay-0 = <0x2>;
|
||||
xlnx,synch-pipedelay-1 = <0x2>;
|
||||
xlnx,synch-pipedelay-2 = <0x2>;
|
||||
xlnx,synch-pipedelay-3 = <0x2>;
|
||||
xlnx,tavdv-ps-mem-0 = <0x1adb0>;
|
||||
xlnx,tavdv-ps-mem-1 = <0x3a98>;
|
||||
xlnx,tavdv-ps-mem-2 = <0x3a98>;
|
||||
xlnx,tavdv-ps-mem-3 = <0x3a98>;
|
||||
xlnx,tcedv-ps-mem-0 = <0x1adb0>;
|
||||
xlnx,tcedv-ps-mem-1 = <0x3a98>;
|
||||
xlnx,tcedv-ps-mem-2 = <0x3a98>;
|
||||
xlnx,tcedv-ps-mem-3 = <0x3a98>;
|
||||
xlnx,thzce-ps-mem-0 = <0x88b8>;
|
||||
xlnx,thzce-ps-mem-1 = <0x1b58>;
|
||||
xlnx,thzce-ps-mem-2 = <0x1b58>;
|
||||
xlnx,thzce-ps-mem-3 = <0x1b58>;
|
||||
xlnx,thzoe-ps-mem-0 = <0x1b58>;
|
||||
xlnx,thzoe-ps-mem-1 = <0x1b58>;
|
||||
xlnx,thzoe-ps-mem-2 = <0x1b58>;
|
||||
xlnx,thzoe-ps-mem-3 = <0x1b58>;
|
||||
xlnx,tlzwe-ps-mem-0 = <0x88b8>;
|
||||
xlnx,tlzwe-ps-mem-1 = <0x0>;
|
||||
xlnx,tlzwe-ps-mem-2 = <0x0>;
|
||||
xlnx,tlzwe-ps-mem-3 = <0x0>;
|
||||
xlnx,twc-ps-mem-0 = <0x1adb0>;
|
||||
xlnx,twc-ps-mem-1 = <0x3a98>;
|
||||
xlnx,twc-ps-mem-2 = <0x3a98>;
|
||||
xlnx,twc-ps-mem-3 = <0x3a98>;
|
||||
xlnx,twp-ps-mem-0 = <0x11170>;
|
||||
xlnx,twp-ps-mem-1 = <0x2ee0>;
|
||||
xlnx,twp-ps-mem-2 = <0x2ee0>;
|
||||
xlnx,twp-ps-mem-3 = <0x2ee0>;
|
||||
xlnx,xcl0-linesize = <0x4>;
|
||||
xlnx,xcl0-writexfer = <0x1>;
|
||||
xlnx,xcl1-linesize = <0x4>;
|
||||
xlnx,xcl1-writexfer = <0x1>;
|
||||
xlnx,xcl2-linesize = <0x4>;
|
||||
xlnx,xcl2-writexfer = <0x1>;
|
||||
xlnx,xcl3-linesize = <0x4>;
|
||||
xlnx,xcl3-writexfer = <0x1>;
|
||||
} ;
|
||||
Hard_Ethernet_MAC: xps-ll-temac@81c00000 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
compatible = "xlnx,compound";
|
||||
ethernet@81c00000 {
|
||||
compatible = "xlnx,xps-ll-temac-1.01.b";
|
||||
device_type = "network";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 8 2 >;
|
||||
llink-connected = <&Hard_Ethernet_MAC_fifo>;
|
||||
local-mac-address = [ 02 00 00 00 00 00 ];
|
||||
reg = < 0x81c00000 0x40 >;
|
||||
xlnx,bus2core-clk-ratio = <0x1>;
|
||||
xlnx,phy-type = <0x3>;
|
||||
xlnx,phyaddr = <0x1>;
|
||||
xlnx,rxcsum = <0x0>;
|
||||
xlnx,rxfifo = <0x8000>;
|
||||
xlnx,temac-type = <0x0>;
|
||||
xlnx,txcsum = <0x0>;
|
||||
xlnx,txfifo = <0x8000>;
|
||||
} ;
|
||||
} ;
|
||||
Hard_Ethernet_MAC_fifo: xps-ll-fifo@81a00000 {
|
||||
compatible = "xlnx,xps-ll-fifo-1.01.a";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 6 2 >;
|
||||
reg = < 0x81a00000 0x10000 >;
|
||||
xlnx,family = "virtex5";
|
||||
} ;
|
||||
IIC_EEPROM: i2c@81600000 {
|
||||
compatible = "xlnx,xps-iic-2.00.a";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 9 2 >;
|
||||
reg = < 0x81600000 0x10000 >;
|
||||
xlnx,clk-freq = <0x5f5e100>;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,gpo-width = <0x1>;
|
||||
xlnx,iic-freq = <0x186a0>;
|
||||
xlnx,scl-inertial-delay = <0x5>;
|
||||
xlnx,sda-inertial-delay = <0x5>;
|
||||
xlnx,ten-bit-adr = <0x0>;
|
||||
} ;
|
||||
LCD_OPTIONAL: gpio@81420000 {
|
||||
compatible = "xlnx,xps-gpio-1.00.a";
|
||||
reg = < 0x81420000 0x10000 >;
|
||||
xlnx,all-inputs = <0x0>;
|
||||
xlnx,all-inputs-2 = <0x0>;
|
||||
xlnx,dout-default = <0x0>;
|
||||
xlnx,dout-default-2 = <0x0>;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,gpio-width = <0xb>;
|
||||
xlnx,interrupt-present = <0x0>;
|
||||
xlnx,is-bidir = <0x1>;
|
||||
xlnx,is-bidir-2 = <0x1>;
|
||||
xlnx,is-dual = <0x0>;
|
||||
xlnx,tri-default = <0xffffffff>;
|
||||
xlnx,tri-default-2 = <0xffffffff>;
|
||||
} ;
|
||||
LEDs_4Bit: gpio@81400000 {
|
||||
compatible = "xlnx,xps-gpio-1.00.a";
|
||||
reg = < 0x81400000 0x10000 >;
|
||||
xlnx,all-inputs = <0x0>;
|
||||
xlnx,all-inputs-2 = <0x0>;
|
||||
xlnx,dout-default = <0x0>;
|
||||
xlnx,dout-default-2 = <0x0>;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,gpio-width = <0x4>;
|
||||
xlnx,interrupt-present = <0x0>;
|
||||
xlnx,is-bidir = <0x1>;
|
||||
xlnx,is-bidir-2 = <0x1>;
|
||||
xlnx,is-dual = <0x0>;
|
||||
xlnx,tri-default = <0xffffffff>;
|
||||
xlnx,tri-default-2 = <0xffffffff>;
|
||||
} ;
|
||||
RS232_Uart_1: serial@83e00000 {
|
||||
clock-frequency = <100000000>;
|
||||
compatible = "xlnx,xps-uart16550-2.00.b", "ns16550";
|
||||
current-speed = <9600>;
|
||||
device_type = "serial";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 11 2 >;
|
||||
reg = < 0x83e00000 0x10000 >;
|
||||
reg-offset = <0x1003>;
|
||||
reg-shift = <2>;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,has-external-rclk = <0x0>;
|
||||
xlnx,has-external-xin = <0x0>;
|
||||
xlnx,is-a-16550 = <0x1>;
|
||||
} ;
|
||||
SPI_EEPROM: xps-spi@feff8000 {
|
||||
compatible = "xlnx,xps-spi-2.00.b";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 10 2 >;
|
||||
reg = < 0xfeff8000 0x80 >;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,fifo-exist = <0x1>;
|
||||
xlnx,num-ss-bits = <0x1>;
|
||||
xlnx,num-transfer-bits = <0x8>;
|
||||
xlnx,sck-ratio = <0x80>;
|
||||
} ;
|
||||
SysACE_CompactFlash: sysace@83600000 {
|
||||
compatible = "xlnx,xps-sysace-1.00.a";
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupts = < 7 2 >;
|
||||
reg = < 0x83600000 0x10000 >;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,mem-width = <0x10>;
|
||||
} ;
|
||||
plbv46_pci_0: plbv46-pci@85e00000 {
|
||||
#size-cells = <2>;
|
||||
#address-cells = <3>;
|
||||
compatible = "xlnx,plbv46-pci-1.03.a";
|
||||
device_type = "pci";
|
||||
reg = < 0x85e00000 0x10000 >;
|
||||
|
||||
/*
|
||||
* The default ML510 BSB has C_IPIFBAR2PCIBAR_0 set to
|
||||
* 0 which means that a read/write to the memory mapped
|
||||
* i/o region (which starts at 0xa0000000) for pci
|
||||
* bar 0 on the plb side translates to 0.
|
||||
* It is important to set this value to 0xa0000000, so
|
||||
* that inbound and outbound pci transactions work
|
||||
* properly including DMA.
|
||||
*/
|
||||
ranges = <0x02000000 0 0xa0000000 0xa0000000 0 0x20000000
|
||||
0x01000000 0 0x00000000 0xf0000000 0 0x00010000>;
|
||||
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
interrupt-map-mask = <0xff00 0x0 0x0 0x7>;
|
||||
interrupt-map = <
|
||||
/* IRQ mapping for pci slots and ALI M1533
|
||||
* periperhals. In total there are 5 interrupt
|
||||
* lines connected to a xps_intc controller.
|
||||
* Four of them are PCI IRQ A, B, C, D and
|
||||
* which correspond to respectively xpx_intc
|
||||
* 5, 4, 3 and 2. The fifth interrupt line is
|
||||
* connected to the south bridge and this one
|
||||
* uses irq 1 and is active high instead of
|
||||
* active low.
|
||||
*
|
||||
* The M1533 contains various peripherals
|
||||
* including AC97 audio, a modem, USB, IDE and
|
||||
* some power management stuff. The modem
|
||||
* isn't connected on the ML510 and the power
|
||||
* management core also isn't used.
|
||||
*/
|
||||
|
||||
/* IDSEL 0x16 / dev=6, bus=0 / PCI slot 3 */
|
||||
0x3000 0 0 1 &xps_intc_0 3 2
|
||||
0x3000 0 0 2 &xps_intc_0 2 2
|
||||
0x3000 0 0 3 &xps_intc_0 5 2
|
||||
0x3000 0 0 4 &xps_intc_0 4 2
|
||||
|
||||
/* IDSEL 0x13 / dev=3, bus=1 / PCI slot 4 */
|
||||
/*
|
||||
0x11800 0 0 1 &xps_intc_0 5 0 2
|
||||
0x11800 0 0 2 &xps_intc_0 4 0 2
|
||||
0x11800 0 0 3 &xps_intc_0 3 0 2
|
||||
0x11800 0 0 4 &xps_intc_0 2 0 2
|
||||
*/
|
||||
|
||||
/* According to the datasheet + schematic
|
||||
* ABCD [FPGA] of slot 5 is mapped to DABC.
|
||||
* Testing showed that at least A maps to B,
|
||||
* the mapping of the other pins is a guess
|
||||
* and for that reason the lines have been
|
||||
* commented out.
|
||||
*/
|
||||
/* IDSEL 0x15 / dev=5, bus=0 / PCI slot 5 */
|
||||
0x2800 0 0 1 &xps_intc_0 4 2
|
||||
/*
|
||||
0x2800 0 0 2 &xps_intc_0 3 2
|
||||
0x2800 0 0 3 &xps_intc_0 2 2
|
||||
0x2800 0 0 4 &xps_intc_0 5 2
|
||||
*/
|
||||
|
||||
/* IDSEL 0x12 / dev=2, bus=1 / PCI slot 6 */
|
||||
/*
|
||||
0x11000 0 0 1 &xps_intc_0 4 0 2
|
||||
0x11000 0 0 2 &xps_intc_0 3 0 2
|
||||
0x11000 0 0 3 &xps_intc_0 2 0 2
|
||||
0x11000 0 0 4 &xps_intc_0 5 0 2
|
||||
*/
|
||||
|
||||
/* IDSEL 0x11 / dev=1, bus=0 / AC97 audio */
|
||||
0x0800 0 0 1 &i8259 7 2
|
||||
|
||||
/* IDSEL 0x1b / dev=11, bus=0 / IDE */
|
||||
0x5800 0 0 1 &i8259 14 2
|
||||
|
||||
/* IDSEL 0x1f / dev 15, bus=0 / 2x USB 1.1 */
|
||||
0x7800 0 0 1 &i8259 7 2
|
||||
>;
|
||||
ali_m1533 {
|
||||
#size-cells = <1>;
|
||||
#address-cells = <2>;
|
||||
i8259: interrupt-controller@20 {
|
||||
reg = <1 0x20 2
|
||||
1 0xa0 2
|
||||
1 0x4d0 2>;
|
||||
interrupt-controller;
|
||||
device_type = "interrupt-controller";
|
||||
#address-cells = <0>;
|
||||
#interrupt-cells = <2>;
|
||||
compatible = "chrp,iic";
|
||||
|
||||
/* south bridge irq is active high */
|
||||
interrupts = <1 3>;
|
||||
interrupt-parent = <&xps_intc_0>;
|
||||
};
|
||||
};
|
||||
} ;
|
||||
xps_bram_if_cntlr_1: xps-bram-if-cntlr@ffff0000 {
|
||||
compatible = "xlnx,xps-bram-if-cntlr-1.00.a";
|
||||
reg = < 0xffff0000 0x10000 >;
|
||||
xlnx,family = "virtex5";
|
||||
} ;
|
||||
xps_intc_0: interrupt-controller@81800000 {
|
||||
#interrupt-cells = <0x2>;
|
||||
compatible = "xlnx,xps-intc-1.00.a";
|
||||
interrupt-controller ;
|
||||
reg = < 0x81800000 0x10000 >;
|
||||
xlnx,num-intr-inputs = <0xc>;
|
||||
} ;
|
||||
xps_tft_0: tft@86e00000 {
|
||||
compatible = "xlnx,xps-tft-1.00.a";
|
||||
reg = < 0x86e00000 0x10000 >;
|
||||
xlnx,dcr-splb-slave-if = <0x1>;
|
||||
xlnx,default-tft-base-addr = <0x0>;
|
||||
xlnx,family = "virtex5";
|
||||
xlnx,i2c-slave-addr = <0x76>;
|
||||
xlnx,mplb-awidth = <0x20>;
|
||||
xlnx,mplb-dwidth = <0x80>;
|
||||
xlnx,mplb-native-dwidth = <0x40>;
|
||||
xlnx,mplb-smallest-slave = <0x20>;
|
||||
xlnx,tft-interface = <0x1>;
|
||||
} ;
|
||||
} ;
|
||||
} ;
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Device Tree Source for PIKA Warp
|
||||
*
|
||||
* Copyright (c) 2008 PIKA Technologies
|
||||
* Copyright (c) 2008-2009 PIKA Technologies
|
||||
* Sean MacLennan <smaclennan@pikatech.com>
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public
|
||||
@ -158,7 +158,7 @@
|
||||
|
||||
partition@0 {
|
||||
label = "splash";
|
||||
reg = <0x00000000 0x00020000>;
|
||||
reg = <0x00000000 0x00010000>;
|
||||
};
|
||||
partition@300000 {
|
||||
label = "fpga";
|
||||
@ -244,28 +244,27 @@
|
||||
};
|
||||
|
||||
GPIO0: gpio@ef600b00 {
|
||||
compatible = "ibm,gpio-440ep";
|
||||
compatible = "ibm,ppc4xx-gpio";
|
||||
reg = <0xef600b00 0x00000048>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
GPIO1: gpio@ef600c00 {
|
||||
compatible = "ibm,gpio-440ep";
|
||||
compatible = "ibm,ppc4xx-gpio";
|
||||
reg = <0xef600c00 0x00000048>;
|
||||
#gpio-cells = <2>;
|
||||
gpio-controller;
|
||||
};
|
||||
|
||||
led@31 {
|
||||
compatible = "linux,gpio-led";
|
||||
linux,name = ":green:";
|
||||
gpios = <&GPIO1 31 0>;
|
||||
};
|
||||
|
||||
led@30 {
|
||||
compatible = "linux,gpio-led";
|
||||
linux,name = ":red:";
|
||||
gpios = <&GPIO1 30 0>;
|
||||
power-leds {
|
||||
compatible = "gpio-leds";
|
||||
green {
|
||||
gpios = <&GPIO1 0 0>;
|
||||
default-state = "on";
|
||||
};
|
||||
red {
|
||||
gpios = <&GPIO1 1 0>;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -252,7 +252,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -254,7 +254,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.29-rc2
|
||||
# Tue Jan 20 08:17:52 2009
|
||||
# Linux kernel version: 2.6.30-rc7
|
||||
# Wed Jun 3 10:18:16 2009
|
||||
#
|
||||
# CONFIG_PPC64 is not set
|
||||
|
||||
@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
|
||||
CONFIG_IRQ_PER_CPU=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
@ -49,10 +50,12 @@ CONFIG_PPC_UDBG_16550=y
|
||||
# CONFIG_GENERIC_TBSYNC is not set
|
||||
CONFIG_AUDIT_ARCH=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_DTC=y
|
||||
# CONFIG_DEFAULT_UIMAGE is not set
|
||||
CONFIG_PPC_DCR_NATIVE=y
|
||||
# CONFIG_PPC_DCR_MMIO is not set
|
||||
CONFIG_PPC_DCR=y
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
@ -67,9 +70,19 @@ CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_POSIX_MQUEUE_SYSCTL=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
@ -84,22 +97,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_NAMESPACES is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_KALLSYMS_STRIP_GENERATED=y
|
||||
CONFIG_KALLSYMS_EXTRA_PASS=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
@ -109,10 +124,12 @@ CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_PCI_QUIRKS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||
@ -120,6 +137,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
@ -132,7 +150,6 @@ CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
@ -148,11 +165,6 @@ CONFIG_DEFAULT_AS=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
CONFIG_PPC4xx_PCI_EXPRESS=y
|
||||
|
||||
@ -170,7 +182,7 @@ CONFIG_KILAUEA=y
|
||||
# CONFIG_MAKALU is not set
|
||||
# CONFIG_WALNUT is not set
|
||||
# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
|
||||
# CONFIG_PPC40x_SIMPLE is not set
|
||||
CONFIG_PPC40x_SIMPLE=y
|
||||
CONFIG_405EX=y
|
||||
# CONFIG_IPIC is not set
|
||||
# CONFIG_MPIC is not set
|
||||
@ -228,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_PPC_4K_PAGES=y
|
||||
# CONFIG_PPC_16K_PAGES is not set
|
||||
# CONFIG_PPC_64K_PAGES is not set
|
||||
# CONFIG_PPC_256K_PAGES is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
# CONFIG_CMDLINE_BOOL is not set
|
||||
@ -252,9 +267,10 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCI_IOV is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
# CONFIG_HAS_RAPIDIO is not set
|
||||
@ -272,14 +288,12 @@ CONFIG_PAGE_OFFSET=0xc0000000
|
||||
CONFIG_KERNEL_START=0xc0000000
|
||||
CONFIG_PHYSICAL_START=0x00000000
|
||||
CONFIG_TASK_SIZE=0xc0000000
|
||||
CONFIG_CONSISTENT_START=0xff100000
|
||||
CONFIG_CONSISTENT_SIZE=0x00200000
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
CONFIG_UNIX=y
|
||||
@ -329,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
@ -341,7 +356,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
@ -445,7 +459,6 @@ CONFIG_MTD_PHYSMAP_OF=y
|
||||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
# CONFIG_MTD_QINFO_PROBE is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
@ -498,6 +511,7 @@ CONFIG_HAVE_IDE=y
|
||||
# CONFIG_I2O is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
@ -512,6 +526,8 @@ CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_CASSINI is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_NET_TULIP is not set
|
||||
# CONFIG_HP100 is not set
|
||||
CONFIG_IBM_NEW_EMAC=y
|
||||
@ -540,7 +556,6 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
|
||||
#
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
@ -678,6 +693,7 @@ CONFIG_SSB_POSSIBLE=y
|
||||
# CONFIG_EDAC is not set
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
@ -705,6 +721,11 @@ CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
@ -749,6 +770,7 @@ CONFIG_CRAMFS=y
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
@ -760,7 +782,6 @@ CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
@ -776,6 +797,7 @@ CONFIG_SUNRPC=y
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_NLS is not set
|
||||
# CONFIG_DLM is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
@ -790,11 +812,12 @@ CONFIG_CRC32=y
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAVE_LMB=y
|
||||
CONFIG_NLATTR=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
@ -812,6 +835,9 @@ CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
@ -841,9 +867,12 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
@ -851,17 +880,21 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_DEBUG_STACKOVERFLOW is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_PPC_EMULATED_STATS is not set
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||
# CONFIG_MSI_BITMAP_SELFTEST is not set
|
||||
@ -892,10 +925,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_PCOMP=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
@ -964,6 +999,7 @@ CONFIG_CRYPTO_DES=y
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
|
||||
#
|
||||
@ -972,5 +1008,6 @@ CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
|
||||
# CONFIG_CRYPTO_DEV_PPC4XX is not set
|
||||
# CONFIG_PPC_CLOCK is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.29-rc2
|
||||
# Tue Jan 20 08:17:53 2009
|
||||
# Linux kernel version: 2.6.30-rc7
|
||||
# Wed Jun 3 09:11:02 2009
|
||||
#
|
||||
# CONFIG_PPC64 is not set
|
||||
|
||||
@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
|
||||
CONFIG_GENERIC_TIME_VSYSCALL=y
|
||||
CONFIG_GENERIC_CLOCKEVENTS=y
|
||||
CONFIG_GENERIC_HARDIRQS=y
|
||||
CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
|
||||
# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
|
||||
CONFIG_IRQ_PER_CPU=y
|
||||
CONFIG_STACKTRACE_SUPPORT=y
|
||||
@ -49,10 +50,12 @@ CONFIG_PPC_UDBG_16550=y
|
||||
# CONFIG_GENERIC_TBSYNC is not set
|
||||
CONFIG_AUDIT_ARCH=y
|
||||
CONFIG_GENERIC_BUG=y
|
||||
CONFIG_DTC=y
|
||||
# CONFIG_DEFAULT_UIMAGE is not set
|
||||
CONFIG_PPC_DCR_NATIVE=y
|
||||
# CONFIG_PPC_DCR_MMIO is not set
|
||||
CONFIG_PPC_DCR=y
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
@ -67,9 +70,19 @@ CONFIG_SWAP=y
|
||||
CONFIG_SYSVIPC=y
|
||||
CONFIG_SYSVIPC_SYSCTL=y
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
CONFIG_POSIX_MQUEUE_SYSCTL=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
@ -84,22 +97,24 @@ CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_NAMESPACES is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_KALLSYMS_STRIP_GENERATED=y
|
||||
CONFIG_KALLSYMS_EXTRA_PASS=y
|
||||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
@ -109,10 +124,12 @@ CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_PCI_QUIRKS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||
@ -120,6 +137,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
@ -132,7 +150,6 @@ CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
@ -148,11 +165,6 @@ CONFIG_DEFAULT_AS=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
CONFIG_PPC4xx_PCI_EXPRESS=y
|
||||
|
||||
@ -170,7 +182,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y
|
||||
CONFIG_MAKALU=y
|
||||
# CONFIG_WALNUT is not set
|
||||
# CONFIG_XILINX_VIRTEX_GENERIC_BOARD is not set
|
||||
# CONFIG_PPC40x_SIMPLE is not set
|
||||
CONFIG_PPC40x_SIMPLE=y
|
||||
CONFIG_405EX=y
|
||||
# CONFIG_IPIC is not set
|
||||
# CONFIG_MPIC is not set
|
||||
@ -228,9 +240,12 @@ CONFIG_ZONE_DMA_FLAG=1
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_PPC_4K_PAGES=y
|
||||
# CONFIG_PPC_16K_PAGES is not set
|
||||
# CONFIG_PPC_64K_PAGES is not set
|
||||
# CONFIG_PPC_256K_PAGES is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
# CONFIG_CMDLINE_BOOL is not set
|
||||
@ -252,9 +267,10 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCI_IOV is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
# CONFIG_HAS_RAPIDIO is not set
|
||||
@ -272,14 +288,12 @@ CONFIG_PAGE_OFFSET=0xc0000000
|
||||
CONFIG_KERNEL_START=0xc0000000
|
||||
CONFIG_PHYSICAL_START=0x00000000
|
||||
CONFIG_TASK_SIZE=0xc0000000
|
||||
CONFIG_CONSISTENT_START=0xff100000
|
||||
CONFIG_CONSISTENT_SIZE=0x00200000
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
CONFIG_UNIX=y
|
||||
@ -329,6 +343,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
@ -341,7 +356,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
@ -445,7 +459,6 @@ CONFIG_MTD_PHYSMAP_OF=y
|
||||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
# CONFIG_MTD_QINFO_PROBE is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
@ -498,6 +511,7 @@ CONFIG_HAVE_IDE=y
|
||||
# CONFIG_I2O is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
@ -512,6 +526,8 @@ CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_CASSINI is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_NET_TULIP is not set
|
||||
# CONFIG_HP100 is not set
|
||||
CONFIG_IBM_NEW_EMAC=y
|
||||
@ -540,7 +556,6 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y
|
||||
#
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
@ -678,6 +693,7 @@ CONFIG_SSB_POSSIBLE=y
|
||||
# CONFIG_EDAC is not set
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
@ -705,6 +721,11 @@ CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
@ -749,6 +770,7 @@ CONFIG_CRAMFS=y
|
||||
# CONFIG_ROMFS_FS is not set
|
||||
# CONFIG_SYSV_FS is not set
|
||||
# CONFIG_UFS_FS is not set
|
||||
# CONFIG_NILFS2_FS is not set
|
||||
CONFIG_NETWORK_FILESYSTEMS=y
|
||||
CONFIG_NFS_FS=y
|
||||
CONFIG_NFS_V3=y
|
||||
@ -760,7 +782,6 @@ CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
@ -776,6 +797,7 @@ CONFIG_SUNRPC=y
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_NLS is not set
|
||||
# CONFIG_DLM is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
@ -790,11 +812,12 @@ CONFIG_CRC32=y
|
||||
# CONFIG_CRC7 is not set
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAVE_LMB=y
|
||||
CONFIG_NLATTR=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
@ -812,6 +835,9 @@ CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_DETECT_SOFTLOCKUP=y
|
||||
# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_DETECT_HUNG_TASK=y
|
||||
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
|
||||
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
|
||||
CONFIG_SCHED_DEBUG=y
|
||||
# CONFIG_SCHEDSTATS is not set
|
||||
# CONFIG_TIMER_STATS is not set
|
||||
@ -841,9 +867,12 @@ CONFIG_DEBUG_BUGVERBOSE=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
@ -851,17 +880,21 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_DEBUG_STACKOVERFLOW is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_PPC_EMULATED_STATS is not set
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||
# CONFIG_MSI_BITMAP_SELFTEST is not set
|
||||
@ -892,10 +925,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_PCOMP=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
@ -964,6 +999,7 @@ CONFIG_CRYPTO_DES=y
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
|
||||
#
|
||||
@ -972,5 +1008,6 @@ CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
|
||||
# CONFIG_CRYPTO_DEV_PPC4XX is not set
|
||||
# CONFIG_PPC_CLOCK is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
@ -258,7 +258,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -258,7 +258,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -262,7 +262,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -262,7 +262,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
@ -716,7 +716,7 @@ CONFIG_SSB_POSSIBLE=y
|
||||
#
|
||||
# Multimedia drivers
|
||||
#
|
||||
CONFIG_DAB=y
|
||||
# CONFIG_DAB is not set
|
||||
# CONFIG_USB_DABUSB is not set
|
||||
|
||||
#
|
||||
@ -725,7 +725,7 @@ CONFIG_DAB=y
|
||||
# CONFIG_AGP is not set
|
||||
# CONFIG_DRM is not set
|
||||
# CONFIG_VGASTATE is not set
|
||||
CONFIG_VIDEO_OUTPUT_CONTROL=m
|
||||
# CONFIG_VIDEO_OUTPUT_CONTROL is not set
|
||||
# CONFIG_FB is not set
|
||||
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
|
||||
|
||||
|
@ -261,7 +261,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -256,7 +256,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -260,7 +260,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -265,7 +265,7 @@ CONFIG_PCIEAER=y
|
||||
# CONFIG_PCIEASPM is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -262,7 +262,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
|
@ -1,7 +1,7 @@
|
||||
#
|
||||
# Automatically generated make config: don't edit
|
||||
# Linux kernel version: 2.6.29-rc2
|
||||
# Tue Jan 20 08:22:45 2009
|
||||
# Linux kernel version: 2.6.29
|
||||
# Tue Apr 7 17:04:52 2009
|
||||
#
|
||||
# CONFIG_PPC64 is not set
|
||||
|
||||
@ -57,6 +57,7 @@ CONFIG_GENERIC_BUG=y
|
||||
CONFIG_PPC_DCR_NATIVE=y
|
||||
# CONFIG_PPC_DCR_MMIO is not set
|
||||
CONFIG_PPC_DCR=y
|
||||
CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
|
||||
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
|
||||
|
||||
#
|
||||
@ -74,6 +75,15 @@ CONFIG_POSIX_MQUEUE=y
|
||||
# CONFIG_BSD_PROCESS_ACCT is not set
|
||||
# CONFIG_TASKSTATS is not set
|
||||
# CONFIG_AUDIT is not set
|
||||
|
||||
#
|
||||
# RCU Subsystem
|
||||
#
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_IKCONFIG is not set
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
CONFIG_GROUP_SCHED=y
|
||||
@ -88,8 +98,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y
|
||||
# CONFIG_NAMESPACES is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE=""
|
||||
CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_BZIP2 is not set
|
||||
# CONFIG_RD_LZMA is not set
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
CONFIG_SYSCTL=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_SYSCTL_SYSCALL=y
|
||||
CONFIG_KALLSYMS=y
|
||||
@ -99,10 +113,8 @@ CONFIG_HOTPLUG=y
|
||||
CONFIG_PRINTK=y
|
||||
CONFIG_BUG=y
|
||||
CONFIG_ELF_CORE=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
CONFIG_BASE_FULL=y
|
||||
CONFIG_FUTEX=y
|
||||
CONFIG_ANON_INODES=y
|
||||
CONFIG_EPOLL=y
|
||||
CONFIG_SIGNALFD=y
|
||||
CONFIG_TIMERFD=y
|
||||
@ -112,10 +124,12 @@ CONFIG_AIO=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
CONFIG_PCI_QUIRKS=y
|
||||
CONFIG_SLUB_DEBUG=y
|
||||
CONFIG_COMPAT_BRK=y
|
||||
# CONFIG_SLAB is not set
|
||||
CONFIG_SLUB=y
|
||||
# CONFIG_SLOB is not set
|
||||
# CONFIG_PROFILING is not set
|
||||
# CONFIG_MARKERS is not set
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||
@ -123,6 +137,7 @@ CONFIG_HAVE_IOREMAP_PROT=y
|
||||
CONFIG_HAVE_KPROBES=y
|
||||
CONFIG_HAVE_KRETPROBES=y
|
||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
|
||||
# CONFIG_SLOW_WORK is not set
|
||||
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
|
||||
CONFIG_SLABINFO=y
|
||||
CONFIG_RT_MUTEXES=y
|
||||
@ -135,7 +150,6 @@ CONFIG_MODULE_UNLOAD=y
|
||||
# CONFIG_MODULE_SRCVERSION_ALL is not set
|
||||
CONFIG_BLOCK=y
|
||||
CONFIG_LBD=y
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_BLK_DEV_BSG is not set
|
||||
# CONFIG_BLK_DEV_INTEGRITY is not set
|
||||
|
||||
@ -151,11 +165,6 @@ CONFIG_DEFAULT_AS=y
|
||||
# CONFIG_DEFAULT_CFQ is not set
|
||||
# CONFIG_DEFAULT_NOOP is not set
|
||||
CONFIG_DEFAULT_IOSCHED="anticipatory"
|
||||
CONFIG_CLASSIC_RCU=y
|
||||
# CONFIG_TREE_RCU is not set
|
||||
# CONFIG_PREEMPT_RCU is not set
|
||||
# CONFIG_TREE_RCU_TRACE is not set
|
||||
# CONFIG_PREEMPT_RCU_TRACE is not set
|
||||
# CONFIG_FREEZER is not set
|
||||
# CONFIG_PPC4xx_PCI_EXPRESS is not set
|
||||
|
||||
@ -176,6 +185,7 @@ CONFIG_SEQUOIA=y
|
||||
# CONFIG_ARCHES is not set
|
||||
# CONFIG_CANYONLANDS is not set
|
||||
# CONFIG_GLACIER is not set
|
||||
# CONFIG_REDWOOD is not set
|
||||
# CONFIG_YOSEMITE is not set
|
||||
# CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set
|
||||
CONFIG_PPC44x_SIMPLE=y
|
||||
@ -238,9 +248,13 @@ CONFIG_ZONE_DMA_FLAG=1
|
||||
CONFIG_BOUNCE=y
|
||||
CONFIG_VIRT_TO_BUS=y
|
||||
CONFIG_UNEVICTABLE_LRU=y
|
||||
CONFIG_HAVE_MLOCK=y
|
||||
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
|
||||
CONFIG_STDBINUTILS=y
|
||||
CONFIG_PPC_4K_PAGES=y
|
||||
# CONFIG_PPC_16K_PAGES is not set
|
||||
# CONFIG_PPC_64K_PAGES is not set
|
||||
# CONFIG_PPC_256K_PAGES is not set
|
||||
CONFIG_FORCE_MAX_ZONEORDER=11
|
||||
CONFIG_PROC_DEVICETREE=y
|
||||
CONFIG_CMDLINE_BOOL=y
|
||||
@ -262,9 +276,10 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCI_IOV is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
# CONFIG_HAS_RAPIDIO is not set
|
||||
@ -278,18 +293,16 @@ CONFIG_PCI_LEGACY=y
|
||||
# Default settings for advanced configuration options are used
|
||||
#
|
||||
CONFIG_LOWMEM_SIZE=0x30000000
|
||||
CONFIG_LOWMEM_CAM_NUM=3
|
||||
CONFIG_PAGE_OFFSET=0xc0000000
|
||||
CONFIG_KERNEL_START=0xc0000000
|
||||
CONFIG_PHYSICAL_START=0x00000000
|
||||
CONFIG_TASK_SIZE=0xc0000000
|
||||
CONFIG_CONSISTENT_START=0xff100000
|
||||
CONFIG_CONSISTENT_SIZE=0x00200000
|
||||
CONFIG_NET=y
|
||||
|
||||
#
|
||||
# Networking options
|
||||
#
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_MMAP is not set
|
||||
CONFIG_UNIX=y
|
||||
@ -339,6 +352,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_ECONET is not set
|
||||
# CONFIG_WAN_ROUTER is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
# CONFIG_DCB is not set
|
||||
|
||||
@ -351,7 +365,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
# CONFIG_IRDA is not set
|
||||
# CONFIG_BT is not set
|
||||
# CONFIG_AF_RXRPC is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_WIRELESS is not set
|
||||
# CONFIG_WIMAX is not set
|
||||
# CONFIG_RFKILL is not set
|
||||
@ -448,14 +461,23 @@ CONFIG_MTD_PHYSMAP_OF=y
|
||||
# CONFIG_MTD_DOC2000 is not set
|
||||
# CONFIG_MTD_DOC2001 is not set
|
||||
# CONFIG_MTD_DOC2001PLUS is not set
|
||||
# CONFIG_MTD_NAND is not set
|
||||
CONFIG_MTD_NAND=y
|
||||
# CONFIG_MTD_NAND_VERIFY_WRITE is not set
|
||||
CONFIG_MTD_NAND_ECC_SMC=y
|
||||
# CONFIG_MTD_NAND_MUSEUM_IDS is not set
|
||||
CONFIG_MTD_NAND_IDS=y
|
||||
CONFIG_MTD_NAND_NDFC=y
|
||||
# CONFIG_MTD_NAND_DISKONCHIP is not set
|
||||
# CONFIG_MTD_NAND_CAFE is not set
|
||||
# CONFIG_MTD_NAND_NANDSIM is not set
|
||||
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||
# CONFIG_MTD_NAND_FSL_ELBC is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
# LPDDR flash memory drivers
|
||||
#
|
||||
# CONFIG_MTD_LPDDR is not set
|
||||
# CONFIG_MTD_QINFO_PROBE is not set
|
||||
|
||||
#
|
||||
# UBI - Unsorted block images
|
||||
@ -483,12 +505,16 @@ CONFIG_BLK_DEV_RAM_SIZE=35000
|
||||
# CONFIG_BLK_DEV_HD is not set
|
||||
CONFIG_MISC_DEVICES=y
|
||||
# CONFIG_PHANTOM is not set
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
# CONFIG_SGI_IOC4 is not set
|
||||
# CONFIG_TIFM_CORE is not set
|
||||
# CONFIG_ENCLOSURE_SERVICES is not set
|
||||
# CONFIG_HP_ILO is not set
|
||||
# CONFIG_C2PORT is not set
|
||||
|
||||
#
|
||||
# EEPROM support
|
||||
#
|
||||
# CONFIG_EEPROM_93CX6 is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
@ -515,6 +541,7 @@ CONFIG_HAVE_IDE=y
|
||||
# CONFIG_I2O is not set
|
||||
# CONFIG_MACINTOSH_DRIVERS is not set
|
||||
CONFIG_NETDEVICES=y
|
||||
CONFIG_COMPAT_NET_DEV_OPS=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_BONDING is not set
|
||||
# CONFIG_MACVLAN is not set
|
||||
@ -529,6 +556,8 @@ CONFIG_NET_ETHERNET=y
|
||||
# CONFIG_SUNGEM is not set
|
||||
# CONFIG_CASSINI is not set
|
||||
# CONFIG_NET_VENDOR_3COM is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
# CONFIG_DNET is not set
|
||||
# CONFIG_NET_TULIP is not set
|
||||
# CONFIG_HP100 is not set
|
||||
CONFIG_IBM_NEW_EMAC=y
|
||||
@ -568,6 +597,7 @@ CONFIG_NETDEV_1000=y
|
||||
# CONFIG_QLA3XXX is not set
|
||||
# CONFIG_ATL1 is not set
|
||||
# CONFIG_ATL1E is not set
|
||||
# CONFIG_ATL1C is not set
|
||||
# CONFIG_JME is not set
|
||||
CONFIG_NETDEV_10000=y
|
||||
# CONFIG_CHELSIO_T1 is not set
|
||||
@ -577,6 +607,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
|
||||
# CONFIG_IXGBE is not set
|
||||
# CONFIG_IXGB is not set
|
||||
# CONFIG_S2IO is not set
|
||||
# CONFIG_VXGE is not set
|
||||
# CONFIG_MYRI10GE is not set
|
||||
# CONFIG_NETXEN_NIC is not set
|
||||
# CONFIG_NIU is not set
|
||||
@ -586,6 +617,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
|
||||
# CONFIG_BNX2X is not set
|
||||
# CONFIG_QLGE is not set
|
||||
# CONFIG_SFC is not set
|
||||
# CONFIG_BE2NET is not set
|
||||
# CONFIG_TR is not set
|
||||
|
||||
#
|
||||
@ -593,7 +625,6 @@ CONFIG_CHELSIO_T3_DEPENDS=y
|
||||
#
|
||||
# CONFIG_WLAN_PRE80211 is not set
|
||||
# CONFIG_WLAN_80211 is not set
|
||||
# CONFIG_IWLWIFI_LEDS is not set
|
||||
|
||||
#
|
||||
# Enable WiMAX (Networking options) to see the WiMAX drivers
|
||||
@ -734,7 +765,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
#
|
||||
|
||||
#
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed;
|
||||
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
|
||||
#
|
||||
# CONFIG_USB_GADGET is not set
|
||||
|
||||
@ -750,6 +781,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
|
||||
# CONFIG_EDAC is not set
|
||||
# CONFIG_RTC_CLASS is not set
|
||||
# CONFIG_DMADEVICES is not set
|
||||
# CONFIG_AUXDISPLAY is not set
|
||||
# CONFIG_UIO is not set
|
||||
# CONFIG_STAGING is not set
|
||||
|
||||
@ -777,6 +809,11 @@ CONFIG_INOTIFY_USER=y
|
||||
# CONFIG_AUTOFS4_FS is not set
|
||||
# CONFIG_FUSE_FS is not set
|
||||
|
||||
#
|
||||
# Caches
|
||||
#
|
||||
# CONFIG_FSCACHE is not set
|
||||
|
||||
#
|
||||
# CD-ROM/DVD Filesystems
|
||||
#
|
||||
@ -842,7 +879,6 @@ CONFIG_LOCKD=y
|
||||
CONFIG_LOCKD_V4=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
CONFIG_SUNRPC=y
|
||||
# CONFIG_SUNRPC_REGISTER_V4 is not set
|
||||
# CONFIG_RPCSEC_GSS_KRB5 is not set
|
||||
# CONFIG_RPCSEC_GSS_SPKM3 is not set
|
||||
# CONFIG_SMB_FS is not set
|
||||
@ -858,6 +894,7 @@ CONFIG_SUNRPC=y
|
||||
CONFIG_MSDOS_PARTITION=y
|
||||
# CONFIG_NLS is not set
|
||||
# CONFIG_DLM is not set
|
||||
# CONFIG_BINARY_PRINTF is not set
|
||||
|
||||
#
|
||||
# Library routines
|
||||
@ -873,11 +910,12 @@ CONFIG_CRC32=y
|
||||
# CONFIG_LIBCRC32C is not set
|
||||
CONFIG_ZLIB_INFLATE=y
|
||||
CONFIG_ZLIB_DEFLATE=y
|
||||
CONFIG_PLIST=y
|
||||
CONFIG_DECOMPRESS_GZIP=y
|
||||
CONFIG_HAS_IOMEM=y
|
||||
CONFIG_HAS_IOPORT=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_HAVE_LMB=y
|
||||
CONFIG_NLATTR=y
|
||||
|
||||
#
|
||||
# Kernel hacking
|
||||
@ -924,9 +962,12 @@ CONFIG_SCHED_DEBUG=y
|
||||
# CONFIG_FAULT_INJECTION is not set
|
||||
# CONFIG_LATENCYTOP is not set
|
||||
CONFIG_SYSCTL_SYSCALL_CHECK=y
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
CONFIG_HAVE_FUNCTION_TRACER=y
|
||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
|
||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
|
||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
CONFIG_TRACING_SUPPORT=y
|
||||
|
||||
#
|
||||
# Tracers
|
||||
@ -934,17 +975,20 @@ CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
|
||||
# CONFIG_FUNCTION_TRACER is not set
|
||||
# CONFIG_SCHED_TRACER is not set
|
||||
# CONFIG_CONTEXT_SWITCH_TRACER is not set
|
||||
# CONFIG_EVENT_TRACER is not set
|
||||
# CONFIG_BOOT_TRACER is not set
|
||||
# CONFIG_TRACE_BRANCH_PROFILING is not set
|
||||
# CONFIG_STACK_TRACER is not set
|
||||
# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
|
||||
# CONFIG_KMEMTRACE is not set
|
||||
# CONFIG_WORKQUEUE_TRACER is not set
|
||||
# CONFIG_BLK_DEV_IO_TRACE is not set
|
||||
# CONFIG_DYNAMIC_DEBUG is not set
|
||||
# CONFIG_SAMPLES is not set
|
||||
CONFIG_HAVE_ARCH_KGDB=y
|
||||
# CONFIG_KGDB is not set
|
||||
CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_DEBUG_STACKOVERFLOW is not set
|
||||
# CONFIG_DEBUG_STACK_USAGE is not set
|
||||
# CONFIG_DEBUG_PAGEALLOC is not set
|
||||
# CONFIG_CODE_PATCHING_SELFTEST is not set
|
||||
# CONFIG_FTR_FIXUP_SELFTEST is not set
|
||||
# CONFIG_MSI_BITMAP_SELFTEST is not set
|
||||
@ -952,20 +996,7 @@ CONFIG_PRINT_STACK_DEPTH=64
|
||||
# CONFIG_IRQSTACKS is not set
|
||||
# CONFIG_VIRQ_DEBUG is not set
|
||||
# CONFIG_BDI_SWITCH is not set
|
||||
CONFIG_PPC_EARLY_DEBUG=y
|
||||
# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_G5 is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_RTAS_PANEL is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_RTAS_CONSOLE is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_PAS_REALMODE is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_BEAT is not set
|
||||
CONFIG_PPC_EARLY_DEBUG_44x=y
|
||||
# CONFIG_PPC_EARLY_DEBUG_40x is not set
|
||||
# CONFIG_PPC_EARLY_DEBUG_CPM is not set
|
||||
CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300
|
||||
CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1
|
||||
# CONFIG_PPC_EARLY_DEBUG is not set
|
||||
|
||||
#
|
||||
# Security options
|
||||
@ -988,10 +1019,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y
|
||||
CONFIG_CRYPTO_HASH=y
|
||||
CONFIG_CRYPTO_HASH2=y
|
||||
CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_PCOMP=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
# CONFIG_CRYPTO_GF128MUL is not set
|
||||
# CONFIG_CRYPTO_NULL is not set
|
||||
CONFIG_CRYPTO_WORKQUEUE=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_AUTHENC is not set
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
@ -1060,6 +1093,7 @@ CONFIG_CRYPTO_DES=y
|
||||
# Compression
|
||||
#
|
||||
# CONFIG_CRYPTO_DEFLATE is not set
|
||||
# CONFIG_CRYPTO_ZLIB is not set
|
||||
# CONFIG_CRYPTO_LZO is not set
|
||||
|
||||
#
|
||||
@ -1068,5 +1102,6 @@ CONFIG_CRYPTO_DES=y
|
||||
# CONFIG_CRYPTO_ANSI_CPRNG is not set
|
||||
CONFIG_CRYPTO_HW=y
|
||||
# CONFIG_CRYPTO_DEV_HIFN_795X is not set
|
||||
# CONFIG_CRYPTO_DEV_PPC4XX is not set
|
||||
# CONFIG_PPC_CLOCK is not set
|
||||
# CONFIG_VIRTUALIZATION is not set
|
||||
|
@ -260,7 +260,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -263,7 +263,7 @@ CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
CONFIG_ARCH_SUPPORTS_MSI=y
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_LEGACY=y
|
||||
# CONFIG_PCI_LEGACY is not set
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
# CONFIG_PCCARD is not set
|
||||
|
@ -14,10 +14,6 @@
|
||||
#include <asm/cpm.h>
|
||||
#include <sysdev/fsl_soc.h>
|
||||
|
||||
#ifdef CONFIG_PPC_85xx
|
||||
#define CPM_MAP_ADDR (get_immrbase() + 0x80000)
|
||||
#endif
|
||||
|
||||
/* CPM Command register.
|
||||
*/
|
||||
#define CPM_CR_RST ((uint)0x80000000)
|
||||
|
@ -15,9 +15,18 @@
|
||||
#include <linux/scatterlist.h>
|
||||
#include <linux/dma-attrs.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/swiotlb.h>
|
||||
|
||||
#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
|
||||
|
||||
/* Some dma direct funcs must be visible for use in other dma_ops */
|
||||
extern void *dma_direct_alloc_coherent(struct device *dev, size_t size,
|
||||
dma_addr_t *dma_handle, gfp_t flag);
|
||||
extern void dma_direct_free_coherent(struct device *dev, size_t size,
|
||||
void *vaddr, dma_addr_t dma_handle);
|
||||
|
||||
extern unsigned long get_dma_direct_offset(struct device *dev);
|
||||
|
||||
#ifdef CONFIG_NOT_COHERENT_CACHE
|
||||
/*
|
||||
* DMA-consistent mapping functions for PowerPCs that don't support
|
||||
@ -78,6 +87,8 @@ struct dma_mapping_ops {
|
||||
dma_addr_t dma_address, size_t size,
|
||||
enum dma_data_direction direction,
|
||||
struct dma_attrs *attrs);
|
||||
int (*addr_needs_map)(struct device *dev, dma_addr_t addr,
|
||||
size_t size);
|
||||
#ifdef CONFIG_PPC_NEED_DMA_SYNC_OPS
|
||||
void (*sync_single_range_for_cpu)(struct device *hwdev,
|
||||
dma_addr_t dma_handle, unsigned long offset,
|
||||
|
@ -256,11 +256,11 @@ do { \
|
||||
* even if we have an executable stack.
|
||||
*/
|
||||
# define elf_read_implies_exec(ex, exec_stk) (test_thread_flag(TIF_32BIT) ? \
|
||||
(exec_stk != EXSTACK_DISABLE_X) : 0)
|
||||
(exec_stk == EXSTACK_DEFAULT) : 0)
|
||||
#else
|
||||
# define SET_PERSONALITY(ex) \
|
||||
set_personality(PER_LINUX | (current->personality & (~PER_MASK)))
|
||||
# define elf_read_implies_exec(ex, exec_stk) (exec_stk != EXSTACK_DISABLE_X)
|
||||
# define elf_read_implies_exec(ex, exec_stk) (exec_stk == EXSTACK_DEFAULT)
|
||||
#endif /* __powerpc64__ */
|
||||
|
||||
extern int dcache_bsize;
|
||||
|
73
arch/powerpc/include/asm/emulated_ops.h
Normal file
73
arch/powerpc/include/asm/emulated_ops.h
Normal file
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* Copyright 2007 Sony Corporation
|
||||
*
|
||||
* 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; version 2 of the License.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program.
|
||||
* If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef _ASM_POWERPC_EMULATED_OPS_H
|
||||
#define _ASM_POWERPC_EMULATED_OPS_H
|
||||
|
||||
#include <asm/atomic.h>
|
||||
|
||||
|
||||
#ifdef CONFIG_PPC_EMULATED_STATS
|
||||
|
||||
struct ppc_emulated_entry {
|
||||
const char *name;
|
||||
atomic_t val;
|
||||
};
|
||||
|
||||
extern struct ppc_emulated {
|
||||
#ifdef CONFIG_ALTIVEC
|
||||
struct ppc_emulated_entry altivec;
|
||||
#endif
|
||||
struct ppc_emulated_entry dcba;
|
||||
struct ppc_emulated_entry dcbz;
|
||||
struct ppc_emulated_entry fp_pair;
|
||||
struct ppc_emulated_entry isel;
|
||||
struct ppc_emulated_entry mcrxr;
|
||||
struct ppc_emulated_entry mfpvr;
|
||||
struct ppc_emulated_entry multiple;
|
||||
struct ppc_emulated_entry popcntb;
|
||||
struct ppc_emulated_entry spe;
|
||||
struct ppc_emulated_entry string;
|
||||
struct ppc_emulated_entry unaligned;
|
||||
#ifdef CONFIG_MATH_EMULATION
|
||||
struct ppc_emulated_entry math;
|
||||
#elif defined(CONFIG_8XX_MINIMAL_FPEMU)
|
||||
struct ppc_emulated_entry 8xx;
|
||||
#endif
|
||||
#ifdef CONFIG_VSX
|
||||
struct ppc_emulated_entry vsx;
|
||||
#endif
|
||||
} ppc_emulated;
|
||||
|
||||
extern u32 ppc_warn_emulated;
|
||||
|
||||
extern void ppc_warn_emulated_print(const char *type);
|
||||
|
||||
#define PPC_WARN_EMULATED(type) \
|
||||
do { \
|
||||
atomic_inc(&ppc_emulated.type.val); \
|
||||
if (ppc_warn_emulated) \
|
||||
ppc_warn_emulated_print(ppc_emulated.type.name); \
|
||||
} while (0)
|
||||
|
||||
#else /* !CONFIG_PPC_EMULATED_STATS */
|
||||
|
||||
#define PPC_WARN_EMULATED(type) do { } while (0)
|
||||
|
||||
#endif /* !CONFIG_PPC_EMULATED_STATS */
|
||||
|
||||
#endif /* _ASM_POWERPC_EMULATED_OPS_H */
|
@ -8,8 +8,6 @@
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*/
|
||||
|
||||
#ifdef __ASSEMBLY__
|
||||
|
||||
/*
|
||||
* Feature section common macros
|
||||
*
|
||||
@ -23,10 +21,12 @@
|
||||
/* 64 bits kernel, 32 bits code (ie. vdso32) */
|
||||
#define FTR_ENTRY_LONG .llong
|
||||
#define FTR_ENTRY_OFFSET .long 0xffffffff; .long
|
||||
#elif defined(CONFIG_PPC64)
|
||||
#define FTR_ENTRY_LONG .llong
|
||||
#define FTR_ENTRY_OFFSET .llong
|
||||
#else
|
||||
/* 64 bit kernel 64 bit code, or 32 bit kernel 32 bit code */
|
||||
#define FTR_ENTRY_LONG PPC_LONG
|
||||
#define FTR_ENTRY_OFFSET PPC_LONG
|
||||
#define FTR_ENTRY_LONG .long
|
||||
#define FTR_ENTRY_OFFSET .long
|
||||
#endif
|
||||
|
||||
#define START_FTR_SECTION(label) label##1:
|
||||
@ -141,6 +141,21 @@ label##5: \
|
||||
#define ALT_FW_FTR_SECTION_END_IFCLR(msk) \
|
||||
ALT_FW_FTR_SECTION_END_NESTED_IFCLR(msk, 97)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
#define ASM_MMU_FTR_IF(section_if, section_else, msk, val) \
|
||||
stringify_in_c(BEGIN_MMU_FTR_SECTION) \
|
||||
section_if "; " \
|
||||
stringify_in_c(MMU_FTR_SECTION_ELSE) \
|
||||
section_else "; " \
|
||||
stringify_in_c(ALT_MMU_FTR_SECTION_END((msk), (val)))
|
||||
|
||||
#define ASM_MMU_FTR_IFSET(section_if, section_else, msk) \
|
||||
ASM_MMU_FTR_IF(section_if, section_else, (msk), (msk))
|
||||
|
||||
#define ASM_MMU_FTR_IFCLR(section_if, section_else, msk) \
|
||||
ASM_MMU_FTR_IF(section_if, section_else, (msk), 0)
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
|
||||
/* LWSYNC feature sections */
|
||||
|
@ -20,6 +20,11 @@
|
||||
#define _ASM_POWERPC_LPPACA_H
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/* These definitions relate to hypervisors that only exist when using
|
||||
* a server type processor
|
||||
*/
|
||||
#ifdef CONFIG_PPC_BOOK3S
|
||||
|
||||
//=============================================================================
|
||||
//
|
||||
// This control block contains the data that is shared between the
|
||||
@ -158,5 +163,6 @@ struct slb_shadow {
|
||||
|
||||
extern struct slb_shadow slb_shadow[];
|
||||
|
||||
#endif /* CONFIG_PPC_BOOK3S */
|
||||
#endif /* __KERNEL__ */
|
||||
#endif /* _ASM_POWERPC_LPPACA_H */
|
||||
|
@ -110,6 +110,10 @@ struct machdep_calls {
|
||||
void (*show_percpuinfo)(struct seq_file *m, int i);
|
||||
|
||||
void (*init_IRQ)(void);
|
||||
|
||||
/* Return an irq, or NO_IRQ to indicate there are none pending.
|
||||
* If for some reason there is no irq, but the interrupt
|
||||
* shouldn't be counted as spurious, return NO_IRQ_IGNORE. */
|
||||
unsigned int (*get_irq)(void);
|
||||
#ifdef CONFIG_KEXEC
|
||||
void (*kexec_cpu_down)(int crash_shutdown, int secondary);
|
||||
|
@ -52,6 +52,11 @@
|
||||
*/
|
||||
#define MMU_FTR_NEED_DTLB_SW_LRU ASM_CONST(0x00200000)
|
||||
|
||||
/* This indicates that the processor uses the ISA 2.06 server tlbie
|
||||
* mnemonics
|
||||
*/
|
||||
#define MMU_FTR_TLBIE_206 ASM_CONST(0x00400000)
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
#include <asm/cputable.h>
|
||||
|
||||
@ -69,10 +74,10 @@ extern void early_init_mmu_secondary(void);
|
||||
#endif /* !__ASSEMBLY__ */
|
||||
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
#if defined(CONFIG_PPC_STD_MMU_64)
|
||||
/* 64-bit classic hash table MMU */
|
||||
# include <asm/mmu-hash64.h>
|
||||
#elif defined(CONFIG_PPC_STD_MMU)
|
||||
#elif defined(CONFIG_PPC_STD_MMU_32)
|
||||
/* 32-bit classic hash table MMU */
|
||||
# include <asm/mmu-hash32.h>
|
||||
#elif defined(CONFIG_40x)
|
||||
|
@ -1,33 +0,0 @@
|
||||
/*
|
||||
* MPC86xx definitions
|
||||
*
|
||||
* Author: Jeff Brown
|
||||
*
|
||||
* Copyright 2004 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.
|
||||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#ifndef __ASM_POWERPC_MPC86xx_H__
|
||||
#define __ASM_POWERPC_MPC86xx_H__
|
||||
|
||||
#include <asm/mmu.h>
|
||||
|
||||
#ifdef CONFIG_PPC_86xx
|
||||
|
||||
#define CPU0_BOOT_RELEASE 0x01000000
|
||||
#define CPU1_BOOT_RELEASE 0x02000000
|
||||
#define CPU_ALL_RELEASED (CPU0_BOOT_RELEASE | CPU1_BOOT_RELEASE)
|
||||
#define MCM_PORT_CONFIG_OFFSET 0x1010
|
||||
|
||||
/* Offset from CCSRBAR */
|
||||
#define MPC86xx_MCM_OFFSET (0x00000)
|
||||
#define MPC86xx_MCM_SIZE (0x02000)
|
||||
|
||||
#endif /* CONFIG_PPC_86xx */
|
||||
#endif /* __ASM_POWERPC_MPC86xx_H__ */
|
||||
#endif /* __KERNEL__ */
|
@ -43,6 +43,7 @@ struct task_struct;
|
||||
* processor.
|
||||
*/
|
||||
struct paca_struct {
|
||||
#ifdef CONFIG_PPC_BOOK3S
|
||||
/*
|
||||
* Because hw_cpu_id, unlike other paca fields, is accessed
|
||||
* routinely from other CPUs (from the IRQ code), we stick to
|
||||
@ -51,7 +52,7 @@ struct paca_struct {
|
||||
*/
|
||||
|
||||
struct lppaca *lppaca_ptr; /* Pointer to LpPaca for PLIC */
|
||||
|
||||
#endif /* CONFIG_PPC_BOOK3S */
|
||||
/*
|
||||
* MAGIC: the spinlock functions in arch/powerpc/lib/locks.c
|
||||
* load lock_token and paca_index with a single lwz
|
||||
@ -64,13 +65,16 @@ struct paca_struct {
|
||||
u64 kernel_toc; /* Kernel TOC address */
|
||||
u64 kernelbase; /* Base address of kernel */
|
||||
u64 kernel_msr; /* MSR while running in kernel */
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
u64 stab_real; /* Absolute address of segment table */
|
||||
u64 stab_addr; /* Virtual address of segment table */
|
||||
#endif /* CONFIG_PPC_STD_MMU_64 */
|
||||
void *emergency_sp; /* pointer to emergency stack */
|
||||
u64 data_offset; /* per cpu data offset */
|
||||
s16 hw_cpu_id; /* Physical processor number */
|
||||
u8 cpu_start; /* At startup, processor spins until */
|
||||
/* this becomes non-zero. */
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
struct slb_shadow *slb_shadow_ptr;
|
||||
|
||||
/*
|
||||
@ -81,11 +85,13 @@ struct paca_struct {
|
||||
u64 exmc[10]; /* used for machine checks */
|
||||
u64 exslb[10]; /* used for SLB/segment table misses
|
||||
* on the linear mapping */
|
||||
|
||||
mm_context_t context;
|
||||
/* SLB related definitions */
|
||||
u16 vmalloc_sllp;
|
||||
u16 slb_cache_ptr;
|
||||
u16 slb_cache[SLB_CACHE_ENTRIES];
|
||||
#endif /* CONFIG_PPC_STD_MMU_64 */
|
||||
|
||||
mm_context_t context;
|
||||
|
||||
/*
|
||||
* then miscellaneous read-write fields
|
||||
|
@ -231,6 +231,11 @@ extern void copy_user_page(void *to, void *from, unsigned long vaddr,
|
||||
struct page *p);
|
||||
extern int page_is_ram(unsigned long pfn);
|
||||
|
||||
#ifdef CONFIG_PPC_SMLPAR
|
||||
void arch_free_page(struct page *page, int order);
|
||||
#define HAVE_ARCH_FREE_PAGE
|
||||
#endif
|
||||
|
||||
struct vm_area_struct;
|
||||
|
||||
typedef struct page *pgtable_t;
|
||||
|
@ -86,17 +86,12 @@ struct pci_controller {
|
||||
void *io_base_alloc;
|
||||
#endif
|
||||
resource_size_t io_base_phys;
|
||||
#ifndef CONFIG_PPC64
|
||||
resource_size_t pci_io_size;
|
||||
#endif
|
||||
|
||||
/* Some machines (PReP) have a non 1:1 mapping of
|
||||
* the PCI memory space in the CPU bus space
|
||||
*/
|
||||
resource_size_t pci_mem_offset;
|
||||
#ifdef CONFIG_PPC64
|
||||
unsigned long pci_io_size;
|
||||
#endif
|
||||
|
||||
/* Some machines have a special region to forward the ISA
|
||||
* "memory" cycles such as VGA memory regions. Left to 0
|
||||
@ -140,10 +135,12 @@ struct pci_controller {
|
||||
struct resource io_resource;
|
||||
struct resource mem_resources[3];
|
||||
int global_number; /* PCI domain number */
|
||||
|
||||
resource_size_t dma_window_base_cur;
|
||||
resource_size_t dma_window_size;
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
unsigned long buid;
|
||||
unsigned long dma_window_base_cur;
|
||||
unsigned long dma_window_size;
|
||||
|
||||
void *private_data;
|
||||
#endif /* CONFIG_PPC64 */
|
||||
@ -185,7 +182,6 @@ extern int early_find_capability(struct pci_controller *hose, int bus,
|
||||
extern void setup_indirect_pci(struct pci_controller* hose,
|
||||
resource_size_t cfg_addr,
|
||||
resource_size_t cfg_data, u32 flags);
|
||||
extern void setup_grackle(struct pci_controller *hose);
|
||||
#else /* CONFIG_PPC64 */
|
||||
|
||||
/*
|
||||
@ -221,6 +217,7 @@ struct pci_dn {
|
||||
#define PCI_DN(dn) ((struct pci_dn *) (dn)->data)
|
||||
|
||||
extern struct device_node *fetch_dev_dn(struct pci_dev *dev);
|
||||
extern void * update_dn_pci_info(struct device_node *dn, void *data);
|
||||
|
||||
/* Get a device_node from a pci_dev. This code must be fast except
|
||||
* in the case where the sysdata is incorrect and needs to be fixed
|
||||
|
@ -31,9 +31,11 @@
|
||||
#error TASK_SIZE_USER64 exceeds pagetable range
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
#if TASK_SIZE_USER64 > (1UL << (USER_ESID_BITS + SID_SHIFT))
|
||||
#error TASK_SIZE_USER64 exceeds user VSID range
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define the address range of the vmalloc VM area.
|
||||
@ -199,8 +201,11 @@ static inline unsigned long pte_update(struct mm_struct *mm,
|
||||
if (!huge)
|
||||
assert_pte_locked(mm, addr);
|
||||
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
if (old & _PAGE_HASHPTE)
|
||||
hpte_need_flush(mm, addr, ptep, old, huge);
|
||||
#endif
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
|
@ -25,6 +25,7 @@
|
||||
#define PPC_INST_LSWI 0x7c0004aa
|
||||
#define PPC_INST_LSWX 0x7c00042a
|
||||
#define PPC_INST_LWSYNC 0x7c2004ac
|
||||
#define PPC_INST_LXVD2X 0x7c000698
|
||||
#define PPC_INST_MCRXR 0x7c000400
|
||||
#define PPC_INST_MCRXR_MASK 0xfc0007fe
|
||||
#define PPC_INST_MFSPR_PVR 0x7c1f42a6
|
||||
@ -43,14 +44,18 @@
|
||||
|
||||
#define PPC_INST_STSWI 0x7c0005aa
|
||||
#define PPC_INST_STSWX 0x7c00052a
|
||||
#define PPC_INST_STXVD2X 0x7c000798
|
||||
#define PPC_INST_TLBIE 0x7c000264
|
||||
#define PPC_INST_TLBILX 0x7c000024
|
||||
#define PPC_INST_WAIT 0x7c00007c
|
||||
|
||||
/* macros to insert fields into opcodes */
|
||||
#define __PPC_RA(a) ((a & 0x1f) << 16)
|
||||
#define __PPC_RB(b) ((b & 0x1f) << 11)
|
||||
#define __PPC_T_TLB(t) ((t & 0x3) << 21)
|
||||
#define __PPC_WC(w) ((w & 0x3) << 21)
|
||||
#define __PPC_RA(a) (((a) & 0x1f) << 16)
|
||||
#define __PPC_RB(b) (((b) & 0x1f) << 11)
|
||||
#define __PPC_RS(s) (((s) & 0x1f) << 21)
|
||||
#define __PPC_XS(s) ((((s) & 0x1f) << 21) | (((s) & 0x20) >> 5))
|
||||
#define __PPC_T_TLB(t) (((t) & 0x3) << 21)
|
||||
#define __PPC_WC(w) (((w) & 0x3) << 21)
|
||||
|
||||
/* Deal with instructions that older assemblers aren't aware of */
|
||||
#define PPC_DCBAL(a, b) stringify_in_c(.long PPC_INST_DCBAL | \
|
||||
@ -69,5 +74,17 @@
|
||||
#define PPC_TLBILX_VA(a, b) PPC_TLBILX(3, a, b)
|
||||
#define PPC_WAIT(w) stringify_in_c(.long PPC_INST_WAIT | \
|
||||
__PPC_WC(w))
|
||||
#define PPC_TLBIE(lp,a) stringify_in_c(.long PPC_INST_TLBIE | \
|
||||
__PPC_RB(a) | __PPC_RS(lp))
|
||||
|
||||
/*
|
||||
* Define what the VSX XX1 form instructions will look like, then add
|
||||
* the 128 bit load store instructions based on that.
|
||||
*/
|
||||
#define VSX_XX1(s, a, b) (__PPC_XS(s) | __PPC_RA(a) | __PPC_RB(b))
|
||||
#define STXVD2X(s, a, b) stringify_in_c(.long PPC_INST_STXVD2X | \
|
||||
VSX_XX1((s), (a), (b)))
|
||||
#define LXVD2X(s, a, b) stringify_in_c(.long PPC_INST_LXVD2X | \
|
||||
VSX_XX1((s), (a), (b)))
|
||||
|
||||
#endif /* _ASM_POWERPC_PPC_OPCODE_H */
|
||||
|
@ -76,16 +76,6 @@ END_FTR_SECTION_IFCLR(CPU_FTR_PURR); \
|
||||
REST_10GPRS(22, base)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Define what the VSX XX1 form instructions will look like, then add
|
||||
* the 128 bit load store instructions based on that.
|
||||
*/
|
||||
#define VSX_XX1(xs, ra, rb) (((xs) & 0x1f) << 21 | ((ra) << 16) | \
|
||||
((rb) << 11) | (((xs) >> 5)))
|
||||
|
||||
#define STXVD2X(xs, ra, rb) .long (0x7c000798 | VSX_XX1((xs), (ra), (rb)))
|
||||
#define LXVD2X(xs, ra, rb) .long (0x7c000698 | VSX_XX1((xs), (ra), (rb)))
|
||||
|
||||
#define SAVE_2GPRS(n, base) SAVE_GPR(n, base); SAVE_GPR(n+1, base)
|
||||
#define SAVE_4GPRS(n, base) SAVE_2GPRS(n, base); SAVE_2GPRS(n+2, base)
|
||||
#define SAVE_8GPRS(n, base) SAVE_4GPRS(n, base); SAVE_4GPRS(n+4, base)
|
||||
|
@ -135,7 +135,9 @@ do { \
|
||||
* These are defined as per linux/ptrace.h, which see.
|
||||
*/
|
||||
#define arch_has_single_step() (1)
|
||||
#define arch_has_block_step() (!cpu_has_feature(CPU_FTR_601))
|
||||
extern void user_enable_single_step(struct task_struct *);
|
||||
extern void user_enable_block_step(struct task_struct *);
|
||||
extern void user_disable_single_step(struct task_struct *);
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
@ -288,4 +290,6 @@ extern void user_disable_single_step(struct task_struct *);
|
||||
#define PPC_PTRACE_PEEKUSR_3264 0x91
|
||||
#define PPC_PTRACE_POKEUSR_3264 0x90
|
||||
|
||||
#define PTRACE_SINGLEBLOCK 0x100 /* resume execution until next branch */
|
||||
|
||||
#endif /* _ASM_POWERPC_PTRACE_H */
|
||||
|
@ -22,7 +22,7 @@
|
||||
#include <asm/cpm.h>
|
||||
#include <asm/immap_qe.h>
|
||||
|
||||
#define QE_NUM_OF_SNUM 28
|
||||
#define QE_NUM_OF_SNUM 256 /* There are 256 serial number in QE */
|
||||
#define QE_NUM_OF_BRGS 16
|
||||
#define QE_NUM_OF_PORTS 1024
|
||||
|
||||
@ -152,6 +152,9 @@ unsigned int qe_get_brg_clk(void);
|
||||
int qe_setbrg(enum qe_clock brg, unsigned int rate, unsigned int multiplier);
|
||||
int qe_get_snum(void);
|
||||
void qe_put_snum(u8 snum);
|
||||
unsigned int qe_get_num_of_risc(void);
|
||||
unsigned int qe_get_num_of_snums(void);
|
||||
|
||||
/* we actually use cpm_muram implementation, define this for convenience */
|
||||
#define qe_muram_init cpm_muram_init
|
||||
#define qe_muram_alloc cpm_muram_alloc
|
||||
@ -231,12 +234,16 @@ struct qe_bd {
|
||||
#define QE_ALIGNMENT_OF_PRAM 64
|
||||
|
||||
/* RISC allocation */
|
||||
enum qe_risc_allocation {
|
||||
QE_RISC_ALLOCATION_RISC1 = 1, /* RISC 1 */
|
||||
QE_RISC_ALLOCATION_RISC2 = 2, /* RISC 2 */
|
||||
QE_RISC_ALLOCATION_RISC1_AND_RISC2 = 3 /* Dynamically choose
|
||||
RISC 1 or RISC 2 */
|
||||
};
|
||||
#define QE_RISC_ALLOCATION_RISC1 0x1 /* RISC 1 */
|
||||
#define QE_RISC_ALLOCATION_RISC2 0x2 /* RISC 2 */
|
||||
#define QE_RISC_ALLOCATION_RISC3 0x4 /* RISC 3 */
|
||||
#define QE_RISC_ALLOCATION_RISC4 0x8 /* RISC 4 */
|
||||
#define QE_RISC_ALLOCATION_RISC1_AND_RISC2 (QE_RISC_ALLOCATION_RISC1 | \
|
||||
QE_RISC_ALLOCATION_RISC2)
|
||||
#define QE_RISC_ALLOCATION_FOUR_RISCS (QE_RISC_ALLOCATION_RISC1 | \
|
||||
QE_RISC_ALLOCATION_RISC2 | \
|
||||
QE_RISC_ALLOCATION_RISC3 | \
|
||||
QE_RISC_ALLOCATION_RISC4)
|
||||
|
||||
/* QE extended filtering Table Lookup Key Size */
|
||||
enum qe_fltr_tbl_lookup_key_size {
|
||||
|
@ -21,7 +21,7 @@ struct scatterlist {
|
||||
unsigned int offset;
|
||||
unsigned int length;
|
||||
|
||||
/* For TCE support */
|
||||
/* For TCE or SWIOTLB support */
|
||||
dma_addr_t dma_address;
|
||||
u32 dma_length;
|
||||
};
|
||||
@ -34,11 +34,7 @@ struct scatterlist {
|
||||
* is 0.
|
||||
*/
|
||||
#define sg_dma_address(sg) ((sg)->dma_address)
|
||||
#ifdef __powerpc64__
|
||||
#define sg_dma_len(sg) ((sg)->dma_length)
|
||||
#else
|
||||
#define sg_dma_len(sg) ((sg)->length)
|
||||
#endif
|
||||
|
||||
#ifdef __powerpc64__
|
||||
#define ISA_DMA_THRESHOLD (~0UL)
|
||||
|
27
arch/powerpc/include/asm/swiotlb.h
Normal file
27
arch/powerpc/include/asm/swiotlb.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*
|
||||
* Copyright (C) 2009 Becky Bruce, Freescale Semiconductor
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __ASM_SWIOTLB_H
|
||||
#define __ASM_SWIOTLB_H
|
||||
|
||||
#include <linux/swiotlb.h>
|
||||
|
||||
extern struct dma_mapping_ops swiotlb_dma_ops;
|
||||
extern struct dma_mapping_ops swiotlb_pci_dma_ops;
|
||||
|
||||
int swiotlb_arch_address_needs_mapping(struct device *, dma_addr_t,
|
||||
size_t size);
|
||||
|
||||
static inline void dma_mark_clean(void *addr, size_t size) {}
|
||||
|
||||
extern unsigned int ppc_swiotlb_enable;
|
||||
int __init swiotlb_setup_bus_notifier(void);
|
||||
|
||||
#endif /* __ASM_SWIOTLB_H */
|
@ -211,7 +211,7 @@ extern struct task_struct *_switch(struct thread_struct *prev,
|
||||
|
||||
extern unsigned int rtas_data;
|
||||
extern int mem_init_done; /* set on boot once kmalloc can be called */
|
||||
extern int init_bootmem_done; /* set on !NUMA once bootmem is available */
|
||||
extern int init_bootmem_done; /* set once bootmem is available */
|
||||
extern phys_addr_t memory_limit;
|
||||
extern unsigned long klimit;
|
||||
|
||||
|
21
arch/powerpc/include/asm/xilinx_pci.h
Normal file
21
arch/powerpc/include/asm/xilinx_pci.h
Normal file
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Xilinx pci external definitions
|
||||
*
|
||||
* Copyright 2009 Roderick Colenbrander
|
||||
* Copyright 2009 Secret Lab Technologies Ltd.
|
||||
*
|
||||
* This file is licensed under the terms of the GNU General Public License
|
||||
* version 2. This program is licensed "as is" without any warranty of any
|
||||
* kind, whether express or implied.
|
||||
*/
|
||||
|
||||
#ifndef INCLUDE_XILINX_PCI
|
||||
#define INCLUDE_XILINX_PCI
|
||||
|
||||
#ifdef CONFIG_XILINX_PCI
|
||||
extern void __init xilinx_pci_init(void);
|
||||
#else
|
||||
static inline void __init xilinx_pci_init(void) { return; }
|
||||
#endif
|
||||
|
||||
#endif /* INCLUDE_XILINX_PCI */
|
@ -36,7 +36,7 @@ obj-$(CONFIG_PPC64) += setup_64.o sys_ppc32.o \
|
||||
firmware.o nvram_64.o
|
||||
obj64-$(CONFIG_RELOCATABLE) += reloc_64.o
|
||||
obj-$(CONFIG_PPC64) += vdso64/
|
||||
obj-$(CONFIG_ALTIVEC) += vecemu.o vector.o
|
||||
obj-$(CONFIG_ALTIVEC) += vecemu.o
|
||||
obj-$(CONFIG_PPC_970_NAP) += idle_power4.o
|
||||
obj-$(CONFIG_PPC_OF) += of_device.o of_platform.o prom_parse.o
|
||||
obj-$(CONFIG_PPC_CLOCK) += clock.o
|
||||
@ -82,6 +82,7 @@ obj-$(CONFIG_SMP) += smp.o
|
||||
obj-$(CONFIG_KPROBES) += kprobes.o
|
||||
obj-$(CONFIG_PPC_UDBG_16550) += legacy_serial.o udbg_16550.o
|
||||
obj-$(CONFIG_STACKTRACE) += stacktrace.o
|
||||
obj-$(CONFIG_SWIOTLB) += dma-swiotlb.o
|
||||
|
||||
pci64-$(CONFIG_PPC64) += pci_dn.o isa-bridge.o
|
||||
obj-$(CONFIG_PCI) += pci_$(CONFIG_WORD_SIZE).o $(pci64-y) \
|
||||
@ -111,6 +112,7 @@ obj-y += ppc_save_regs.o
|
||||
endif
|
||||
|
||||
extra-$(CONFIG_PPC_FPU) += fpu.o
|
||||
extra-$(CONFIG_ALTIVEC) += vector.o
|
||||
extra-$(CONFIG_PPC64) += entry_64.o
|
||||
|
||||
extra-y += systbl_chk.i
|
||||
|
@ -24,6 +24,7 @@
|
||||
#include <asm/system.h>
|
||||
#include <asm/cache.h>
|
||||
#include <asm/cputable.h>
|
||||
#include <asm/emulated_ops.h>
|
||||
|
||||
struct aligninfo {
|
||||
unsigned char len;
|
||||
@ -730,8 +731,10 @@ int fix_alignment(struct pt_regs *regs)
|
||||
areg = dsisr & 0x1f; /* register to update */
|
||||
|
||||
#ifdef CONFIG_SPE
|
||||
if ((instr >> 26) == 0x4)
|
||||
if ((instr >> 26) == 0x4) {
|
||||
PPC_WARN_EMULATED(spe);
|
||||
return emulate_spe(regs, reg, instr);
|
||||
}
|
||||
#endif
|
||||
|
||||
instr = (dsisr >> 10) & 0x7f;
|
||||
@ -783,23 +786,28 @@ int fix_alignment(struct pt_regs *regs)
|
||||
flags |= SPLT;
|
||||
nb = 8;
|
||||
}
|
||||
PPC_WARN_EMULATED(vsx);
|
||||
return emulate_vsx(addr, reg, areg, regs, flags, nb);
|
||||
}
|
||||
#endif
|
||||
/* A size of 0 indicates an instruction we don't support, with
|
||||
* the exception of DCBZ which is handled as a special case here
|
||||
*/
|
||||
if (instr == DCBZ)
|
||||
if (instr == DCBZ) {
|
||||
PPC_WARN_EMULATED(dcbz);
|
||||
return emulate_dcbz(regs, addr);
|
||||
}
|
||||
if (unlikely(nb == 0))
|
||||
return 0;
|
||||
|
||||
/* Load/Store Multiple instructions are handled in their own
|
||||
* function
|
||||
*/
|
||||
if (flags & M)
|
||||
if (flags & M) {
|
||||
PPC_WARN_EMULATED(multiple);
|
||||
return emulate_multiple(regs, addr, reg, nb,
|
||||
flags, instr, swiz);
|
||||
}
|
||||
|
||||
/* Verify the address of the operand */
|
||||
if (unlikely(user_mode(regs) &&
|
||||
@ -816,8 +824,12 @@ int fix_alignment(struct pt_regs *regs)
|
||||
}
|
||||
|
||||
/* Special case for 16-byte FP loads and stores */
|
||||
if (nb == 16)
|
||||
if (nb == 16) {
|
||||
PPC_WARN_EMULATED(fp_pair);
|
||||
return emulate_fp_pair(addr, reg, flags);
|
||||
}
|
||||
|
||||
PPC_WARN_EMULATED(unaligned);
|
||||
|
||||
/* If we are loading, get the data from user space, else
|
||||
* get it from register values
|
||||
|
@ -122,8 +122,6 @@ int main(void)
|
||||
DEFINE(PACAKSAVE, offsetof(struct paca_struct, kstack));
|
||||
DEFINE(PACACURRENT, offsetof(struct paca_struct, __current));
|
||||
DEFINE(PACASAVEDMSR, offsetof(struct paca_struct, saved_msr));
|
||||
DEFINE(PACASTABREAL, offsetof(struct paca_struct, stab_real));
|
||||
DEFINE(PACASTABVIRT, offsetof(struct paca_struct, stab_addr));
|
||||
DEFINE(PACASTABRR, offsetof(struct paca_struct, stab_rr));
|
||||
DEFINE(PACAR1, offsetof(struct paca_struct, saved_r1));
|
||||
DEFINE(PACATOC, offsetof(struct paca_struct, kernel_toc));
|
||||
@ -132,35 +130,30 @@ int main(void)
|
||||
DEFINE(PACASOFTIRQEN, offsetof(struct paca_struct, soft_enabled));
|
||||
DEFINE(PACAHARDIRQEN, offsetof(struct paca_struct, hard_enabled));
|
||||
DEFINE(PACAPERFPEND, offsetof(struct paca_struct, perf_counter_pending));
|
||||
DEFINE(PACASLBCACHE, offsetof(struct paca_struct, slb_cache));
|
||||
DEFINE(PACASLBCACHEPTR, offsetof(struct paca_struct, slb_cache_ptr));
|
||||
DEFINE(PACACONTEXTID, offsetof(struct paca_struct, context.id));
|
||||
DEFINE(PACAVMALLOCSLLP, offsetof(struct paca_struct, vmalloc_sllp));
|
||||
#ifdef CONFIG_PPC_MM_SLICES
|
||||
DEFINE(PACALOWSLICESPSIZE, offsetof(struct paca_struct,
|
||||
context.low_slices_psize));
|
||||
DEFINE(PACAHIGHSLICEPSIZE, offsetof(struct paca_struct,
|
||||
context.high_slices_psize));
|
||||
DEFINE(MMUPSIZEDEFSIZE, sizeof(struct mmu_psize_def));
|
||||
#endif /* CONFIG_PPC_MM_SLICES */
|
||||
#ifdef CONFIG_PPC_STD_MMU_64
|
||||
DEFINE(PACASTABREAL, offsetof(struct paca_struct, stab_real));
|
||||
DEFINE(PACASTABVIRT, offsetof(struct paca_struct, stab_addr));
|
||||
DEFINE(PACASLBCACHE, offsetof(struct paca_struct, slb_cache));
|
||||
DEFINE(PACASLBCACHEPTR, offsetof(struct paca_struct, slb_cache_ptr));
|
||||
DEFINE(PACAVMALLOCSLLP, offsetof(struct paca_struct, vmalloc_sllp));
|
||||
#ifdef CONFIG_PPC_MM_SLICES
|
||||
DEFINE(MMUPSIZESLLP, offsetof(struct mmu_psize_def, sllp));
|
||||
#else
|
||||
DEFINE(PACACONTEXTSLLP, offsetof(struct paca_struct, context.sllp));
|
||||
|
||||
#endif /* CONFIG_PPC_MM_SLICES */
|
||||
DEFINE(PACA_EXGEN, offsetof(struct paca_struct, exgen));
|
||||
DEFINE(PACA_EXMC, offsetof(struct paca_struct, exmc));
|
||||
DEFINE(PACA_EXSLB, offsetof(struct paca_struct, exslb));
|
||||
DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp));
|
||||
DEFINE(PACALPPACAPTR, offsetof(struct paca_struct, lppaca_ptr));
|
||||
DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id));
|
||||
DEFINE(PACA_STARTPURR, offsetof(struct paca_struct, startpurr));
|
||||
DEFINE(PACA_STARTSPURR, offsetof(struct paca_struct, startspurr));
|
||||
DEFINE(PACA_USER_TIME, offsetof(struct paca_struct, user_time));
|
||||
DEFINE(PACA_SYSTEM_TIME, offsetof(struct paca_struct, system_time));
|
||||
DEFINE(PACA_SLBSHADOWPTR, offsetof(struct paca_struct, slb_shadow_ptr));
|
||||
DEFINE(PACA_DATA_OFFSET, offsetof(struct paca_struct, data_offset));
|
||||
DEFINE(PACA_TRAP_SAVE, offsetof(struct paca_struct, trap_save));
|
||||
|
||||
DEFINE(SLBSHADOW_STACKVSID,
|
||||
offsetof(struct slb_shadow, save_area[SLB_NUM_BOLTED - 1].vsid));
|
||||
DEFINE(SLBSHADOW_STACKESID,
|
||||
@ -170,6 +163,15 @@ int main(void)
|
||||
DEFINE(LPPACAANYINT, offsetof(struct lppaca, int_dword.any_int));
|
||||
DEFINE(LPPACADECRINT, offsetof(struct lppaca, int_dword.fields.decr_int));
|
||||
DEFINE(SLBSHADOW_SAVEAREA, offsetof(struct slb_shadow, save_area));
|
||||
#endif /* CONFIG_PPC_STD_MMU_64 */
|
||||
DEFINE(PACAEMERGSP, offsetof(struct paca_struct, emergency_sp));
|
||||
DEFINE(PACAHWCPUID, offsetof(struct paca_struct, hw_cpu_id));
|
||||
DEFINE(PACA_STARTPURR, offsetof(struct paca_struct, startpurr));
|
||||
DEFINE(PACA_STARTSPURR, offsetof(struct paca_struct, startspurr));
|
||||
DEFINE(PACA_USER_TIME, offsetof(struct paca_struct, user_time));
|
||||
DEFINE(PACA_SYSTEM_TIME, offsetof(struct paca_struct, system_time));
|
||||
DEFINE(PACA_DATA_OFFSET, offsetof(struct paca_struct, data_offset));
|
||||
DEFINE(PACA_TRAP_SAVE, offsetof(struct paca_struct, trap_save));
|
||||
#endif /* CONFIG_PPC64 */
|
||||
|
||||
/* RTAS */
|
||||
|
@ -427,7 +427,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.cpu_name = "POWER7 (architected)",
|
||||
.cpu_features = CPU_FTRS_POWER7,
|
||||
.cpu_user_features = COMMON_USER_POWER7,
|
||||
.mmu_features = MMU_FTR_HPTE_TABLE,
|
||||
.mmu_features = MMU_FTR_HPTE_TABLE |
|
||||
MMU_FTR_TLBIE_206,
|
||||
.icache_bsize = 128,
|
||||
.dcache_bsize = 128,
|
||||
.machine_check = machine_check_generic,
|
||||
@ -441,7 +442,8 @@ static struct cpu_spec __initdata cpu_specs[] = {
|
||||
.cpu_name = "POWER7 (raw)",
|
||||
.cpu_features = CPU_FTRS_POWER7,
|
||||
.cpu_user_features = COMMON_USER_POWER7,
|
||||
.mmu_features = MMU_FTR_HPTE_TABLE,
|
||||
.mmu_features = MMU_FTR_HPTE_TABLE |
|
||||
MMU_FTR_TLBIE_206,
|
||||
.icache_bsize = 128,
|
||||
.dcache_bsize = 128,
|
||||
.num_pmcs = 6,
|
||||
|
163
arch/powerpc/kernel/dma-swiotlb.c
Normal file
163
arch/powerpc/kernel/dma-swiotlb.c
Normal file
@ -0,0 +1,163 @@
|
||||
/*
|
||||
* Contains routines needed to support swiotlb for ppc.
|
||||
*
|
||||
* Copyright (C) 2009 Becky Bruce, Freescale Semiconductor
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/pfn.h>
|
||||
#include <linux/of_platform.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/pci.h>
|
||||
|
||||
#include <asm/machdep.h>
|
||||
#include <asm/swiotlb.h>
|
||||
#include <asm/dma.h>
|
||||
#include <asm/abs_addr.h>
|
||||
|
||||
int swiotlb __read_mostly;
|
||||
unsigned int ppc_swiotlb_enable;
|
||||
|
||||
void *swiotlb_bus_to_virt(struct device *hwdev, dma_addr_t addr)
|
||||
{
|
||||
unsigned long pfn = PFN_DOWN(swiotlb_bus_to_phys(hwdev, addr));
|
||||
void *pageaddr = page_address(pfn_to_page(pfn));
|
||||
|
||||
if (pageaddr != NULL)
|
||||
return pageaddr + (addr % PAGE_SIZE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dma_addr_t swiotlb_phys_to_bus(struct device *hwdev, phys_addr_t paddr)
|
||||
{
|
||||
return paddr + get_dma_direct_offset(hwdev);
|
||||
}
|
||||
|
||||
phys_addr_t swiotlb_bus_to_phys(struct device *hwdev, dma_addr_t baddr)
|
||||
|
||||
{
|
||||
return baddr - get_dma_direct_offset(hwdev);
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine if an address needs bounce buffering via swiotlb.
|
||||
* Going forward I expect the swiotlb code to generalize on using
|
||||
* a dma_ops->addr_needs_map, and this function will move from here to the
|
||||
* generic swiotlb code.
|
||||
*/
|
||||
int
|
||||
swiotlb_arch_address_needs_mapping(struct device *hwdev, dma_addr_t addr,
|
||||
size_t size)
|
||||
{
|
||||
struct dma_mapping_ops *dma_ops = get_dma_ops(hwdev);
|
||||
|
||||
BUG_ON(!dma_ops);
|
||||
return dma_ops->addr_needs_map(hwdev, addr, size);
|
||||
}
|
||||
|
||||
/*
|
||||
* Determine if an address is reachable by a pci device, or if we must bounce.
|
||||
*/
|
||||
static int
|
||||
swiotlb_pci_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
|
||||
{
|
||||
u64 mask = dma_get_mask(hwdev);
|
||||
dma_addr_t max;
|
||||
struct pci_controller *hose;
|
||||
struct pci_dev *pdev = to_pci_dev(hwdev);
|
||||
|
||||
hose = pci_bus_to_host(pdev->bus);
|
||||
max = hose->dma_window_base_cur + hose->dma_window_size;
|
||||
|
||||
/* check that we're within mapped pci window space */
|
||||
if ((addr + size > max) | (addr < hose->dma_window_base_cur))
|
||||
return 1;
|
||||
|
||||
return !is_buffer_dma_capable(mask, addr, size);
|
||||
}
|
||||
|
||||
static int
|
||||
swiotlb_addr_needs_map(struct device *hwdev, dma_addr_t addr, size_t size)
|
||||
{
|
||||
return !is_buffer_dma_capable(dma_get_mask(hwdev), addr, size);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* At the moment, all platforms that use this code only require
|
||||
* swiotlb to be used if we're operating on HIGHMEM. Since
|
||||
* we don't ever call anything other than map_sg, unmap_sg,
|
||||
* map_page, and unmap_page on highmem, use normal dma_ops
|
||||
* for everything else.
|
||||
*/
|
||||
struct dma_mapping_ops swiotlb_dma_ops = {
|
||||
.alloc_coherent = dma_direct_alloc_coherent,
|
||||
.free_coherent = dma_direct_free_coherent,
|
||||
.map_sg = swiotlb_map_sg_attrs,
|
||||
.unmap_sg = swiotlb_unmap_sg_attrs,
|
||||
.dma_supported = swiotlb_dma_supported,
|
||||
.map_page = swiotlb_map_page,
|
||||
.unmap_page = swiotlb_unmap_page,
|
||||
.addr_needs_map = swiotlb_addr_needs_map,
|
||||
.sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu,
|
||||
.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
|
||||
.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
|
||||
.sync_sg_for_device = swiotlb_sync_sg_for_device
|
||||
};
|
||||
|
||||
struct dma_mapping_ops swiotlb_pci_dma_ops = {
|
||||
.alloc_coherent = dma_direct_alloc_coherent,
|
||||
.free_coherent = dma_direct_free_coherent,
|
||||
.map_sg = swiotlb_map_sg_attrs,
|
||||
.unmap_sg = swiotlb_unmap_sg_attrs,
|
||||
.dma_supported = swiotlb_dma_supported,
|
||||
.map_page = swiotlb_map_page,
|
||||
.unmap_page = swiotlb_unmap_page,
|
||||
.addr_needs_map = swiotlb_pci_addr_needs_map,
|
||||
.sync_single_range_for_cpu = swiotlb_sync_single_range_for_cpu,
|
||||
.sync_single_range_for_device = swiotlb_sync_single_range_for_device,
|
||||
.sync_sg_for_cpu = swiotlb_sync_sg_for_cpu,
|
||||
.sync_sg_for_device = swiotlb_sync_sg_for_device
|
||||
};
|
||||
|
||||
static int ppc_swiotlb_bus_notify(struct notifier_block *nb,
|
||||
unsigned long action, void *data)
|
||||
{
|
||||
struct device *dev = data;
|
||||
|
||||
/* We are only intereted in device addition */
|
||||
if (action != BUS_NOTIFY_ADD_DEVICE)
|
||||
return 0;
|
||||
|
||||
/* May need to bounce if the device can't address all of DRAM */
|
||||
if (dma_get_mask(dev) < lmb_end_of_DRAM())
|
||||
set_dma_ops(dev, &swiotlb_dma_ops);
|
||||
|
||||
return NOTIFY_DONE;
|
||||
}
|
||||
|
||||
static struct notifier_block ppc_swiotlb_plat_bus_notifier = {
|
||||
.notifier_call = ppc_swiotlb_bus_notify,
|
||||
.priority = 0,
|
||||
};
|
||||
|
||||
static struct notifier_block ppc_swiotlb_of_bus_notifier = {
|
||||
.notifier_call = ppc_swiotlb_bus_notify,
|
||||
.priority = 0,
|
||||
};
|
||||
|
||||
int __init swiotlb_setup_bus_notifier(void)
|
||||
{
|
||||
bus_register_notifier(&platform_bus_type,
|
||||
&ppc_swiotlb_plat_bus_notifier);
|
||||
bus_register_notifier(&of_platform_bus_type,
|
||||
&ppc_swiotlb_of_bus_notifier);
|
||||
|
||||
return 0;
|
||||
}
|
@ -19,7 +19,7 @@
|
||||
* default the offset is PCI_DRAM_OFFSET.
|
||||
*/
|
||||
|
||||
static unsigned long get_dma_direct_offset(struct device *dev)
|
||||
unsigned long get_dma_direct_offset(struct device *dev)
|
||||
{
|
||||
if (dev)
|
||||
return (unsigned long)dev->archdata.dma_data;
|
||||
|
978
arch/powerpc/kernel/exceptions-64s.S
Normal file
978
arch/powerpc/kernel/exceptions-64s.S
Normal file
@ -0,0 +1,978 @@
|
||||
/*
|
||||
* This file contains the 64-bit "server" PowerPC variant
|
||||
* of the low level exception handling including exception
|
||||
* vectors, exception return, part of the slb and stab
|
||||
* handling and other fixed offset specific things.
|
||||
*
|
||||
* This file is meant to be #included from head_64.S due to
|
||||
* position dependant assembly.
|
||||
*
|
||||
* Most of this originates from head_64.S and thus has the same
|
||||
* copyright history.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* We layout physical memory as follows:
|
||||
* 0x0000 - 0x00ff : Secondary processor spin code
|
||||
* 0x0100 - 0x2fff : pSeries Interrupt prologs
|
||||
* 0x3000 - 0x5fff : interrupt support, iSeries and common interrupt prologs
|
||||
* 0x6000 - 0x6fff : Initial (CPU0) segment table
|
||||
* 0x7000 - 0x7fff : FWNMI data area
|
||||
* 0x8000 - : Early init and support code
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* SPRG Usage
|
||||
*
|
||||
* Register Definition
|
||||
*
|
||||
* SPRG0 reserved for hypervisor
|
||||
* SPRG1 temp - used to save gpr
|
||||
* SPRG2 temp - used to save gpr
|
||||
* SPRG3 virt addr of paca
|
||||
*/
|
||||
|
||||
/*
|
||||
* This is the start of the interrupt handlers for pSeries
|
||||
* This code runs with relocation off.
|
||||
* Code from here to __end_interrupts gets copied down to real
|
||||
* address 0x100 when we are running a relocatable kernel.
|
||||
* Therefore any relative branches in this section must only
|
||||
* branch to labels in this section.
|
||||
*/
|
||||
. = 0x100
|
||||
.globl __start_interrupts
|
||||
__start_interrupts:
|
||||
|
||||
STD_EXCEPTION_PSERIES(0x100, system_reset)
|
||||
|
||||
. = 0x200
|
||||
_machine_check_pSeries:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13 /* save r13 */
|
||||
EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common)
|
||||
|
||||
. = 0x300
|
||||
.globl data_access_pSeries
|
||||
data_access_pSeries:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13
|
||||
BEGIN_FTR_SECTION
|
||||
mtspr SPRN_SPRG2,r12
|
||||
mfspr r13,SPRN_DAR
|
||||
mfspr r12,SPRN_DSISR
|
||||
srdi r13,r13,60
|
||||
rlwimi r13,r12,16,0x20
|
||||
mfcr r12
|
||||
cmpwi r13,0x2c
|
||||
beq do_stab_bolted_pSeries
|
||||
mtcrf 0x80,r12
|
||||
mfspr r12,SPRN_SPRG2
|
||||
END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
|
||||
EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, data_access_common)
|
||||
|
||||
. = 0x380
|
||||
.globl data_access_slb_pSeries
|
||||
data_access_slb_pSeries:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13
|
||||
mfspr r13,SPRN_SPRG3 /* get paca address into r13 */
|
||||
std r3,PACA_EXSLB+EX_R3(r13)
|
||||
mfspr r3,SPRN_DAR
|
||||
std r9,PACA_EXSLB+EX_R9(r13) /* save r9 - r12 */
|
||||
mfcr r9
|
||||
#ifdef __DISABLED__
|
||||
/* Keep that around for when we re-implement dynamic VSIDs */
|
||||
cmpdi r3,0
|
||||
bge slb_miss_user_pseries
|
||||
#endif /* __DISABLED__ */
|
||||
std r10,PACA_EXSLB+EX_R10(r13)
|
||||
std r11,PACA_EXSLB+EX_R11(r13)
|
||||
std r12,PACA_EXSLB+EX_R12(r13)
|
||||
mfspr r10,SPRN_SPRG1
|
||||
std r10,PACA_EXSLB+EX_R13(r13)
|
||||
mfspr r12,SPRN_SRR1 /* and SRR1 */
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b .slb_miss_realmode
|
||||
#else
|
||||
/*
|
||||
* We can't just use a direct branch to .slb_miss_realmode
|
||||
* because the distance from here to there depends on where
|
||||
* the kernel ends up being put.
|
||||
*/
|
||||
mfctr r11
|
||||
ld r10,PACAKBASE(r13)
|
||||
LOAD_HANDLER(r10, .slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
|
||||
STD_EXCEPTION_PSERIES(0x400, instruction_access)
|
||||
|
||||
. = 0x480
|
||||
.globl instruction_access_slb_pSeries
|
||||
instruction_access_slb_pSeries:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13
|
||||
mfspr r13,SPRN_SPRG3 /* get paca address into r13 */
|
||||
std r3,PACA_EXSLB+EX_R3(r13)
|
||||
mfspr r3,SPRN_SRR0 /* SRR0 is faulting address */
|
||||
std r9,PACA_EXSLB+EX_R9(r13) /* save r9 - r12 */
|
||||
mfcr r9
|
||||
#ifdef __DISABLED__
|
||||
/* Keep that around for when we re-implement dynamic VSIDs */
|
||||
cmpdi r3,0
|
||||
bge slb_miss_user_pseries
|
||||
#endif /* __DISABLED__ */
|
||||
std r10,PACA_EXSLB+EX_R10(r13)
|
||||
std r11,PACA_EXSLB+EX_R11(r13)
|
||||
std r12,PACA_EXSLB+EX_R12(r13)
|
||||
mfspr r10,SPRN_SPRG1
|
||||
std r10,PACA_EXSLB+EX_R13(r13)
|
||||
mfspr r12,SPRN_SRR1 /* and SRR1 */
|
||||
#ifndef CONFIG_RELOCATABLE
|
||||
b .slb_miss_realmode
|
||||
#else
|
||||
mfctr r11
|
||||
ld r10,PACAKBASE(r13)
|
||||
LOAD_HANDLER(r10, .slb_miss_realmode)
|
||||
mtctr r10
|
||||
bctr
|
||||
#endif
|
||||
|
||||
MASKABLE_EXCEPTION_PSERIES(0x500, hardware_interrupt)
|
||||
STD_EXCEPTION_PSERIES(0x600, alignment)
|
||||
STD_EXCEPTION_PSERIES(0x700, program_check)
|
||||
STD_EXCEPTION_PSERIES(0x800, fp_unavailable)
|
||||
MASKABLE_EXCEPTION_PSERIES(0x900, decrementer)
|
||||
STD_EXCEPTION_PSERIES(0xa00, trap_0a)
|
||||
STD_EXCEPTION_PSERIES(0xb00, trap_0b)
|
||||
|
||||
. = 0xc00
|
||||
.globl system_call_pSeries
|
||||
system_call_pSeries:
|
||||
HMT_MEDIUM
|
||||
BEGIN_FTR_SECTION
|
||||
cmpdi r0,0x1ebe
|
||||
beq- 1f
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_REAL_LE)
|
||||
mr r9,r13
|
||||
mfspr r13,SPRN_SPRG3
|
||||
mfspr r11,SPRN_SRR0
|
||||
ld r12,PACAKBASE(r13)
|
||||
ld r10,PACAKMSR(r13)
|
||||
LOAD_HANDLER(r12, system_call_entry)
|
||||
mtspr SPRN_SRR0,r12
|
||||
mfspr r12,SPRN_SRR1
|
||||
mtspr SPRN_SRR1,r10
|
||||
rfid
|
||||
b . /* prevent speculative execution */
|
||||
|
||||
/* Fast LE/BE switch system call */
|
||||
1: mfspr r12,SPRN_SRR1
|
||||
xori r12,r12,MSR_LE
|
||||
mtspr SPRN_SRR1,r12
|
||||
rfid /* return to userspace */
|
||||
b .
|
||||
|
||||
STD_EXCEPTION_PSERIES(0xd00, single_step)
|
||||
STD_EXCEPTION_PSERIES(0xe00, trap_0e)
|
||||
|
||||
/* We need to deal with the Altivec unavailable exception
|
||||
* here which is at 0xf20, thus in the middle of the
|
||||
* prolog code of the PerformanceMonitor one. A little
|
||||
* trickery is thus necessary
|
||||
*/
|
||||
. = 0xf00
|
||||
b performance_monitor_pSeries
|
||||
|
||||
. = 0xf20
|
||||
b altivec_unavailable_pSeries
|
||||
|
||||
. = 0xf40
|
||||
b vsx_unavailable_pSeries
|
||||
|
||||
#ifdef CONFIG_CBE_RAS
|
||||
HSTD_EXCEPTION_PSERIES(0x1200, cbe_system_error)
|
||||
#endif /* CONFIG_CBE_RAS */
|
||||
STD_EXCEPTION_PSERIES(0x1300, instruction_breakpoint)
|
||||
#ifdef CONFIG_CBE_RAS
|
||||
HSTD_EXCEPTION_PSERIES(0x1600, cbe_maintenance)
|
||||
#endif /* CONFIG_CBE_RAS */
|
||||
STD_EXCEPTION_PSERIES(0x1700, altivec_assist)
|
||||
#ifdef CONFIG_CBE_RAS
|
||||
HSTD_EXCEPTION_PSERIES(0x1800, cbe_thermal)
|
||||
#endif /* CONFIG_CBE_RAS */
|
||||
|
||||
. = 0x3000
|
||||
|
||||
/*** pSeries interrupt support ***/
|
||||
|
||||
/* moved from 0xf00 */
|
||||
STD_EXCEPTION_PSERIES(., performance_monitor)
|
||||
STD_EXCEPTION_PSERIES(., altivec_unavailable)
|
||||
STD_EXCEPTION_PSERIES(., vsx_unavailable)
|
||||
|
||||
/*
|
||||
* An interrupt came in while soft-disabled; clear EE in SRR1,
|
||||
* clear paca->hard_enabled and return.
|
||||
*/
|
||||
masked_interrupt:
|
||||
stb r10,PACAHARDIRQEN(r13)
|
||||
mtcrf 0x80,r9
|
||||
ld r9,PACA_EXGEN+EX_R9(r13)
|
||||
mfspr r10,SPRN_SRR1
|
||||
rldicl r10,r10,48,1 /* clear MSR_EE */
|
||||
rotldi r10,r10,16
|
||||
mtspr SPRN_SRR1,r10
|
||||
ld r10,PACA_EXGEN+EX_R10(r13)
|
||||
mfspr r13,SPRN_SPRG1
|
||||
rfid
|
||||
b .
|
||||
|
||||
.align 7
|
||||
do_stab_bolted_pSeries:
|
||||
mtcrf 0x80,r12
|
||||
mfspr r12,SPRN_SPRG2
|
||||
EXCEPTION_PROLOG_PSERIES(PACA_EXSLB, .do_stab_bolted)
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
/*
|
||||
* Vectors for the FWNMI option. Share common code.
|
||||
*/
|
||||
.globl system_reset_fwnmi
|
||||
.align 7
|
||||
system_reset_fwnmi:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13 /* save r13 */
|
||||
EXCEPTION_PROLOG_PSERIES(PACA_EXGEN, system_reset_common)
|
||||
|
||||
.globl machine_check_fwnmi
|
||||
.align 7
|
||||
machine_check_fwnmi:
|
||||
HMT_MEDIUM
|
||||
mtspr SPRN_SPRG1,r13 /* save r13 */
|
||||
EXCEPTION_PROLOG_PSERIES(PACA_EXMC, machine_check_common)
|
||||
|
||||
#endif /* CONFIG_PPC_PSERIES */
|
||||
|
||||
#ifdef __DISABLED__
|
||||
/*
|
||||
* This is used for when the SLB miss handler has to go virtual,
|
||||
* which doesn't happen for now anymore but will once we re-implement
|
||||
* dynamic VSIDs for shared page tables
|
||||
*/
|
||||
slb_miss_user_pseries:
|
||||
std r10,PACA_EXGEN+EX_R10(r13)
|
||||
std r11,PACA_EXGEN+EX_R11(r13)
|
||||
std r12,PACA_EXGEN+EX_R12(r13)
|
||||
mfspr r10,SPRG1
|
||||
ld r11,PACA_EXSLB+EX_R9(r13)
|
||||
ld r12,PACA_EXSLB+EX_R3(r13)
|
||||
std r10,PACA_EXGEN+EX_R13(r13)
|
||||
std r11,PACA_EXGEN+EX_R9(r13)
|
||||
std r12,PACA_EXGEN+EX_R3(r13)
|
||||
clrrdi r12,r13,32
|
||||
mfmsr r10
|
||||
mfspr r11,SRR0 /* save SRR0 */
|
||||
ori r12,r12,slb_miss_user_common@l /* virt addr of handler */
|
||||
ori r10,r10,MSR_IR|MSR_DR|MSR_RI
|
||||
mtspr SRR0,r12
|
||||
mfspr r12,SRR1 /* and SRR1 */
|
||||
mtspr SRR1,r10
|
||||
rfid
|
||||
b . /* prevent spec. execution */
|
||||
#endif /* __DISABLED__ */
|
||||
|
||||
.align 7
|
||||
.globl __end_interrupts
|
||||
__end_interrupts:
|
||||
|
||||
/*
|
||||
* Code from here down to __end_handlers is invoked from the
|
||||
* exception prologs above. Because the prologs assemble the
|
||||
* addresses of these handlers using the LOAD_HANDLER macro,
|
||||
* which uses an addi instruction, these handlers must be in
|
||||
* the first 32k of the kernel image.
|
||||
*/
|
||||
|
||||
/*** Common interrupt handlers ***/
|
||||
|
||||
STD_EXCEPTION_COMMON(0x100, system_reset, .system_reset_exception)
|
||||
|
||||
/*
|
||||
* Machine check is different because we use a different
|
||||
* save area: PACA_EXMC instead of PACA_EXGEN.
|
||||
*/
|
||||
.align 7
|
||||
.globl machine_check_common
|
||||
machine_check_common:
|
||||
EXCEPTION_PROLOG_COMMON(0x200, PACA_EXMC)
|
||||
FINISH_NAP
|
||||
DISABLE_INTS
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .machine_check_exception
|
||||
b .ret_from_except
|
||||
|
||||
STD_EXCEPTION_COMMON_LITE(0x900, decrementer, .timer_interrupt)
|
||||
STD_EXCEPTION_COMMON(0xa00, trap_0a, .unknown_exception)
|
||||
STD_EXCEPTION_COMMON(0xb00, trap_0b, .unknown_exception)
|
||||
STD_EXCEPTION_COMMON(0xd00, single_step, .single_step_exception)
|
||||
STD_EXCEPTION_COMMON(0xe00, trap_0e, .unknown_exception)
|
||||
STD_EXCEPTION_COMMON_IDLE(0xf00, performance_monitor, .performance_monitor_exception)
|
||||
STD_EXCEPTION_COMMON(0x1300, instruction_breakpoint, .instruction_breakpoint_exception)
|
||||
#ifdef CONFIG_ALTIVEC
|
||||
STD_EXCEPTION_COMMON(0x1700, altivec_assist, .altivec_assist_exception)
|
||||
#else
|
||||
STD_EXCEPTION_COMMON(0x1700, altivec_assist, .unknown_exception)
|
||||
#endif
|
||||
#ifdef CONFIG_CBE_RAS
|
||||
STD_EXCEPTION_COMMON(0x1200, cbe_system_error, .cbe_system_error_exception)
|
||||
STD_EXCEPTION_COMMON(0x1600, cbe_maintenance, .cbe_maintenance_exception)
|
||||
STD_EXCEPTION_COMMON(0x1800, cbe_thermal, .cbe_thermal_exception)
|
||||
#endif /* CONFIG_CBE_RAS */
|
||||
|
||||
.align 7
|
||||
system_call_entry:
|
||||
b system_call_common
|
||||
|
||||
/*
|
||||
* Here we have detected that the kernel stack pointer is bad.
|
||||
* R9 contains the saved CR, r13 points to the paca,
|
||||
* r10 contains the (bad) kernel stack pointer,
|
||||
* r11 and r12 contain the saved SRR0 and SRR1.
|
||||
* We switch to using an emergency stack, save the registers there,
|
||||
* and call kernel_bad_stack(), which panics.
|
||||
*/
|
||||
bad_stack:
|
||||
ld r1,PACAEMERGSP(r13)
|
||||
subi r1,r1,64+INT_FRAME_SIZE
|
||||
std r9,_CCR(r1)
|
||||
std r10,GPR1(r1)
|
||||
std r11,_NIP(r1)
|
||||
std r12,_MSR(r1)
|
||||
mfspr r11,SPRN_DAR
|
||||
mfspr r12,SPRN_DSISR
|
||||
std r11,_DAR(r1)
|
||||
std r12,_DSISR(r1)
|
||||
mflr r10
|
||||
mfctr r11
|
||||
mfxer r12
|
||||
std r10,_LINK(r1)
|
||||
std r11,_CTR(r1)
|
||||
std r12,_XER(r1)
|
||||
SAVE_GPR(0,r1)
|
||||
SAVE_GPR(2,r1)
|
||||
SAVE_4GPRS(3,r1)
|
||||
SAVE_2GPRS(7,r1)
|
||||
SAVE_10GPRS(12,r1)
|
||||
SAVE_10GPRS(22,r1)
|
||||
lhz r12,PACA_TRAP_SAVE(r13)
|
||||
std r12,_TRAP(r1)
|
||||
addi r11,r1,INT_FRAME_SIZE
|
||||
std r11,0(r1)
|
||||
li r12,0
|
||||
std r12,0(r11)
|
||||
ld r2,PACATOC(r13)
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .kernel_bad_stack
|
||||
b 1b
|
||||
|
||||
/*
|
||||
* Here r13 points to the paca, r9 contains the saved CR,
|
||||
* SRR0 and SRR1 are saved in r11 and r12,
|
||||
* r9 - r13 are saved in paca->exgen.
|
||||
*/
|
||||
.align 7
|
||||
.globl data_access_common
|
||||
data_access_common:
|
||||
mfspr r10,SPRN_DAR
|
||||
std r10,PACA_EXGEN+EX_DAR(r13)
|
||||
mfspr r10,SPRN_DSISR
|
||||
stw r10,PACA_EXGEN+EX_DSISR(r13)
|
||||
EXCEPTION_PROLOG_COMMON(0x300, PACA_EXGEN)
|
||||
ld r3,PACA_EXGEN+EX_DAR(r13)
|
||||
lwz r4,PACA_EXGEN+EX_DSISR(r13)
|
||||
li r5,0x300
|
||||
b .do_hash_page /* Try to handle as hpte fault */
|
||||
|
||||
.align 7
|
||||
.globl instruction_access_common
|
||||
instruction_access_common:
|
||||
EXCEPTION_PROLOG_COMMON(0x400, PACA_EXGEN)
|
||||
ld r3,_NIP(r1)
|
||||
andis. r4,r12,0x5820
|
||||
li r5,0x400
|
||||
b .do_hash_page /* Try to handle as hpte fault */
|
||||
|
||||
/*
|
||||
* Here is the common SLB miss user that is used when going to virtual
|
||||
* mode for SLB misses, that is currently not used
|
||||
*/
|
||||
#ifdef __DISABLED__
|
||||
.align 7
|
||||
.globl slb_miss_user_common
|
||||
slb_miss_user_common:
|
||||
mflr r10
|
||||
std r3,PACA_EXGEN+EX_DAR(r13)
|
||||
stw r9,PACA_EXGEN+EX_CCR(r13)
|
||||
std r10,PACA_EXGEN+EX_LR(r13)
|
||||
std r11,PACA_EXGEN+EX_SRR0(r13)
|
||||
bl .slb_allocate_user
|
||||
|
||||
ld r10,PACA_EXGEN+EX_LR(r13)
|
||||
ld r3,PACA_EXGEN+EX_R3(r13)
|
||||
lwz r9,PACA_EXGEN+EX_CCR(r13)
|
||||
ld r11,PACA_EXGEN+EX_SRR0(r13)
|
||||
mtlr r10
|
||||
beq- slb_miss_fault
|
||||
|
||||
andi. r10,r12,MSR_RI /* check for unrecoverable exception */
|
||||
beq- unrecov_user_slb
|
||||
mfmsr r10
|
||||
|
||||
.machine push
|
||||
.machine "power4"
|
||||
mtcrf 0x80,r9
|
||||
.machine pop
|
||||
|
||||
clrrdi r10,r10,2 /* clear RI before setting SRR0/1 */
|
||||
mtmsrd r10,1
|
||||
|
||||
mtspr SRR0,r11
|
||||
mtspr SRR1,r12
|
||||
|
||||
ld r9,PACA_EXGEN+EX_R9(r13)
|
||||
ld r10,PACA_EXGEN+EX_R10(r13)
|
||||
ld r11,PACA_EXGEN+EX_R11(r13)
|
||||
ld r12,PACA_EXGEN+EX_R12(r13)
|
||||
ld r13,PACA_EXGEN+EX_R13(r13)
|
||||
rfid
|
||||
b .
|
||||
|
||||
slb_miss_fault:
|
||||
EXCEPTION_PROLOG_COMMON(0x380, PACA_EXGEN)
|
||||
ld r4,PACA_EXGEN+EX_DAR(r13)
|
||||
li r5,0
|
||||
std r4,_DAR(r1)
|
||||
std r5,_DSISR(r1)
|
||||
b handle_page_fault
|
||||
|
||||
unrecov_user_slb:
|
||||
EXCEPTION_PROLOG_COMMON(0x4200, PACA_EXGEN)
|
||||
DISABLE_INTS
|
||||
bl .save_nvgprs
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .unrecoverable_exception
|
||||
b 1b
|
||||
|
||||
#endif /* __DISABLED__ */
|
||||
|
||||
|
||||
/*
|
||||
* r13 points to the PACA, r9 contains the saved CR,
|
||||
* r12 contain the saved SRR1, SRR0 is still ready for return
|
||||
* r3 has the faulting address
|
||||
* r9 - r13 are saved in paca->exslb.
|
||||
* r3 is saved in paca->slb_r3
|
||||
* We assume we aren't going to take any exceptions during this procedure.
|
||||
*/
|
||||
_GLOBAL(slb_miss_realmode)
|
||||
mflr r10
|
||||
#ifdef CONFIG_RELOCATABLE
|
||||
mtctr r11
|
||||
#endif
|
||||
|
||||
stw r9,PACA_EXSLB+EX_CCR(r13) /* save CR in exc. frame */
|
||||
std r10,PACA_EXSLB+EX_LR(r13) /* save LR */
|
||||
|
||||
bl .slb_allocate_realmode
|
||||
|
||||
/* All done -- return from exception. */
|
||||
|
||||
ld r10,PACA_EXSLB+EX_LR(r13)
|
||||
ld r3,PACA_EXSLB+EX_R3(r13)
|
||||
lwz r9,PACA_EXSLB+EX_CCR(r13) /* get saved CR */
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
BEGIN_FW_FTR_SECTION
|
||||
ld r11,PACALPPACAPTR(r13)
|
||||
ld r11,LPPACASRR0(r11) /* get SRR0 value */
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
#endif /* CONFIG_PPC_ISERIES */
|
||||
|
||||
mtlr r10
|
||||
|
||||
andi. r10,r12,MSR_RI /* check for unrecoverable exception */
|
||||
beq- 2f
|
||||
|
||||
.machine push
|
||||
.machine "power4"
|
||||
mtcrf 0x80,r9
|
||||
mtcrf 0x01,r9 /* slb_allocate uses cr0 and cr7 */
|
||||
.machine pop
|
||||
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
BEGIN_FW_FTR_SECTION
|
||||
mtspr SPRN_SRR0,r11
|
||||
mtspr SPRN_SRR1,r12
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
#endif /* CONFIG_PPC_ISERIES */
|
||||
ld r9,PACA_EXSLB+EX_R9(r13)
|
||||
ld r10,PACA_EXSLB+EX_R10(r13)
|
||||
ld r11,PACA_EXSLB+EX_R11(r13)
|
||||
ld r12,PACA_EXSLB+EX_R12(r13)
|
||||
ld r13,PACA_EXSLB+EX_R13(r13)
|
||||
rfid
|
||||
b . /* prevent speculative execution */
|
||||
|
||||
2:
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
BEGIN_FW_FTR_SECTION
|
||||
b unrecov_slb
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
#endif /* CONFIG_PPC_ISERIES */
|
||||
mfspr r11,SPRN_SRR0
|
||||
ld r10,PACAKBASE(r13)
|
||||
LOAD_HANDLER(r10,unrecov_slb)
|
||||
mtspr SPRN_SRR0,r10
|
||||
ld r10,PACAKMSR(r13)
|
||||
mtspr SPRN_SRR1,r10
|
||||
rfid
|
||||
b .
|
||||
|
||||
unrecov_slb:
|
||||
EXCEPTION_PROLOG_COMMON(0x4100, PACA_EXSLB)
|
||||
DISABLE_INTS
|
||||
bl .save_nvgprs
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .unrecoverable_exception
|
||||
b 1b
|
||||
|
||||
.align 7
|
||||
.globl hardware_interrupt_common
|
||||
.globl hardware_interrupt_entry
|
||||
hardware_interrupt_common:
|
||||
EXCEPTION_PROLOG_COMMON(0x500, PACA_EXGEN)
|
||||
FINISH_NAP
|
||||
hardware_interrupt_entry:
|
||||
DISABLE_INTS
|
||||
BEGIN_FTR_SECTION
|
||||
bl .ppc64_runlatch_on
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_CTRL)
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .do_IRQ
|
||||
b .ret_from_except_lite
|
||||
|
||||
#ifdef CONFIG_PPC_970_NAP
|
||||
power4_fixup_nap:
|
||||
andc r9,r9,r10
|
||||
std r9,TI_LOCAL_FLAGS(r11)
|
||||
ld r10,_LINK(r1) /* make idle task do the */
|
||||
std r10,_NIP(r1) /* equivalent of a blr */
|
||||
blr
|
||||
#endif
|
||||
|
||||
.align 7
|
||||
.globl alignment_common
|
||||
alignment_common:
|
||||
mfspr r10,SPRN_DAR
|
||||
std r10,PACA_EXGEN+EX_DAR(r13)
|
||||
mfspr r10,SPRN_DSISR
|
||||
stw r10,PACA_EXGEN+EX_DSISR(r13)
|
||||
EXCEPTION_PROLOG_COMMON(0x600, PACA_EXGEN)
|
||||
ld r3,PACA_EXGEN+EX_DAR(r13)
|
||||
lwz r4,PACA_EXGEN+EX_DSISR(r13)
|
||||
std r3,_DAR(r1)
|
||||
std r4,_DSISR(r1)
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ENABLE_INTS
|
||||
bl .alignment_exception
|
||||
b .ret_from_except
|
||||
|
||||
.align 7
|
||||
.globl program_check_common
|
||||
program_check_common:
|
||||
EXCEPTION_PROLOG_COMMON(0x700, PACA_EXGEN)
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ENABLE_INTS
|
||||
bl .program_check_exception
|
||||
b .ret_from_except
|
||||
|
||||
.align 7
|
||||
.globl fp_unavailable_common
|
||||
fp_unavailable_common:
|
||||
EXCEPTION_PROLOG_COMMON(0x800, PACA_EXGEN)
|
||||
bne 1f /* if from user, just load it up */
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ENABLE_INTS
|
||||
bl .kernel_fp_unavailable_exception
|
||||
BUG_OPCODE
|
||||
1: bl .load_up_fpu
|
||||
b fast_exception_return
|
||||
|
||||
.align 7
|
||||
.globl altivec_unavailable_common
|
||||
altivec_unavailable_common:
|
||||
EXCEPTION_PROLOG_COMMON(0xf20, PACA_EXGEN)
|
||||
#ifdef CONFIG_ALTIVEC
|
||||
BEGIN_FTR_SECTION
|
||||
beq 1f
|
||||
bl .load_up_altivec
|
||||
b fast_exception_return
|
||||
1:
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
|
||||
#endif
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ENABLE_INTS
|
||||
bl .altivec_unavailable_exception
|
||||
b .ret_from_except
|
||||
|
||||
.align 7
|
||||
.globl vsx_unavailable_common
|
||||
vsx_unavailable_common:
|
||||
EXCEPTION_PROLOG_COMMON(0xf40, PACA_EXGEN)
|
||||
#ifdef CONFIG_VSX
|
||||
BEGIN_FTR_SECTION
|
||||
bne .load_up_vsx
|
||||
1:
|
||||
END_FTR_SECTION_IFSET(CPU_FTR_VSX)
|
||||
#endif
|
||||
bl .save_nvgprs
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ENABLE_INTS
|
||||
bl .vsx_unavailable_exception
|
||||
b .ret_from_except
|
||||
|
||||
.align 7
|
||||
.globl __end_handlers
|
||||
__end_handlers:
|
||||
|
||||
/*
|
||||
* Return from an exception with minimal checks.
|
||||
* The caller is assumed to have done EXCEPTION_PROLOG_COMMON.
|
||||
* If interrupts have been enabled, or anything has been
|
||||
* done that might have changed the scheduling status of
|
||||
* any task or sent any task a signal, you should use
|
||||
* ret_from_except or ret_from_except_lite instead of this.
|
||||
*/
|
||||
fast_exc_return_irq: /* restores irq state too */
|
||||
ld r3,SOFTE(r1)
|
||||
TRACE_AND_RESTORE_IRQ(r3);
|
||||
ld r12,_MSR(r1)
|
||||
rldicl r4,r12,49,63 /* get MSR_EE to LSB */
|
||||
stb r4,PACAHARDIRQEN(r13) /* restore paca->hard_enabled */
|
||||
b 1f
|
||||
|
||||
.globl fast_exception_return
|
||||
fast_exception_return:
|
||||
ld r12,_MSR(r1)
|
||||
1: ld r11,_NIP(r1)
|
||||
andi. r3,r12,MSR_RI /* check if RI is set */
|
||||
beq- unrecov_fer
|
||||
|
||||
#ifdef CONFIG_VIRT_CPU_ACCOUNTING
|
||||
andi. r3,r12,MSR_PR
|
||||
beq 2f
|
||||
ACCOUNT_CPU_USER_EXIT(r3, r4)
|
||||
2:
|
||||
#endif
|
||||
|
||||
ld r3,_CCR(r1)
|
||||
ld r4,_LINK(r1)
|
||||
ld r5,_CTR(r1)
|
||||
ld r6,_XER(r1)
|
||||
mtcr r3
|
||||
mtlr r4
|
||||
mtctr r5
|
||||
mtxer r6
|
||||
REST_GPR(0, r1)
|
||||
REST_8GPRS(2, r1)
|
||||
|
||||
mfmsr r10
|
||||
rldicl r10,r10,48,1 /* clear EE */
|
||||
rldicr r10,r10,16,61 /* clear RI (LE is 0 already) */
|
||||
mtmsrd r10,1
|
||||
|
||||
mtspr SPRN_SRR1,r12
|
||||
mtspr SPRN_SRR0,r11
|
||||
REST_4GPRS(10, r1)
|
||||
ld r1,GPR1(r1)
|
||||
rfid
|
||||
b . /* prevent speculative execution */
|
||||
|
||||
unrecov_fer:
|
||||
bl .save_nvgprs
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .unrecoverable_exception
|
||||
b 1b
|
||||
|
||||
|
||||
/*
|
||||
* Hash table stuff
|
||||
*/
|
||||
.align 7
|
||||
_STATIC(do_hash_page)
|
||||
std r3,_DAR(r1)
|
||||
std r4,_DSISR(r1)
|
||||
|
||||
andis. r0,r4,0xa450 /* weird error? */
|
||||
bne- handle_page_fault /* if not, try to insert a HPTE */
|
||||
BEGIN_FTR_SECTION
|
||||
andis. r0,r4,0x0020 /* Is it a segment table fault? */
|
||||
bne- do_ste_alloc /* If so handle it */
|
||||
END_FTR_SECTION_IFCLR(CPU_FTR_SLB)
|
||||
|
||||
/*
|
||||
* On iSeries, we soft-disable interrupts here, then
|
||||
* hard-enable interrupts so that the hash_page code can spin on
|
||||
* the hash_table_lock without problems on a shared processor.
|
||||
*/
|
||||
DISABLE_INTS
|
||||
|
||||
/*
|
||||
* Currently, trace_hardirqs_off() will be called by DISABLE_INTS
|
||||
* and will clobber volatile registers when irq tracing is enabled
|
||||
* so we need to reload them. It may be possible to be smarter here
|
||||
* and move the irq tracing elsewhere but let's keep it simple for
|
||||
* now
|
||||
*/
|
||||
#ifdef CONFIG_TRACE_IRQFLAGS
|
||||
ld r3,_DAR(r1)
|
||||
ld r4,_DSISR(r1)
|
||||
ld r5,_TRAP(r1)
|
||||
ld r12,_MSR(r1)
|
||||
clrrdi r5,r5,4
|
||||
#endif /* CONFIG_TRACE_IRQFLAGS */
|
||||
/*
|
||||
* We need to set the _PAGE_USER bit if MSR_PR is set or if we are
|
||||
* accessing a userspace segment (even from the kernel). We assume
|
||||
* kernel addresses always have the high bit set.
|
||||
*/
|
||||
rlwinm r4,r4,32-25+9,31-9,31-9 /* DSISR_STORE -> _PAGE_RW */
|
||||
rotldi r0,r3,15 /* Move high bit into MSR_PR posn */
|
||||
orc r0,r12,r0 /* MSR_PR | ~high_bit */
|
||||
rlwimi r4,r0,32-13,30,30 /* becomes _PAGE_USER access bit */
|
||||
ori r4,r4,1 /* add _PAGE_PRESENT */
|
||||
rlwimi r4,r5,22+2,31-2,31-2 /* Set _PAGE_EXEC if trap is 0x400 */
|
||||
|
||||
/*
|
||||
* r3 contains the faulting address
|
||||
* r4 contains the required access permissions
|
||||
* r5 contains the trap number
|
||||
*
|
||||
* at return r3 = 0 for success
|
||||
*/
|
||||
bl .hash_page /* build HPTE if possible */
|
||||
cmpdi r3,0 /* see if hash_page succeeded */
|
||||
|
||||
BEGIN_FW_FTR_SECTION
|
||||
/*
|
||||
* If we had interrupts soft-enabled at the point where the
|
||||
* DSI/ISI occurred, and an interrupt came in during hash_page,
|
||||
* handle it now.
|
||||
* We jump to ret_from_except_lite rather than fast_exception_return
|
||||
* because ret_from_except_lite will check for and handle pending
|
||||
* interrupts if necessary.
|
||||
*/
|
||||
beq 13f
|
||||
END_FW_FTR_SECTION_IFSET(FW_FEATURE_ISERIES)
|
||||
|
||||
BEGIN_FW_FTR_SECTION
|
||||
/*
|
||||
* Here we have interrupts hard-disabled, so it is sufficient
|
||||
* to restore paca->{soft,hard}_enable and get out.
|
||||
*/
|
||||
beq fast_exc_return_irq /* Return from exception on success */
|
||||
END_FW_FTR_SECTION_IFCLR(FW_FEATURE_ISERIES)
|
||||
|
||||
/* For a hash failure, we don't bother re-enabling interrupts */
|
||||
ble- 12f
|
||||
|
||||
/*
|
||||
* hash_page couldn't handle it, set soft interrupt enable back
|
||||
* to what it was before the trap. Note that .raw_local_irq_restore
|
||||
* handles any interrupts pending at this point.
|
||||
*/
|
||||
ld r3,SOFTE(r1)
|
||||
TRACE_AND_RESTORE_IRQ_PARTIAL(r3, 11f)
|
||||
bl .raw_local_irq_restore
|
||||
b 11f
|
||||
|
||||
/* Here we have a page fault that hash_page can't handle. */
|
||||
handle_page_fault:
|
||||
ENABLE_INTS
|
||||
11: ld r4,_DAR(r1)
|
||||
ld r5,_DSISR(r1)
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
bl .do_page_fault
|
||||
cmpdi r3,0
|
||||
beq+ 13f
|
||||
bl .save_nvgprs
|
||||
mr r5,r3
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
lwz r4,_DAR(r1)
|
||||
bl .bad_page_fault
|
||||
b .ret_from_except
|
||||
|
||||
13: b .ret_from_except_lite
|
||||
|
||||
/* We have a page fault that hash_page could handle but HV refused
|
||||
* the PTE insertion
|
||||
*/
|
||||
12: bl .save_nvgprs
|
||||
mr r5,r3
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
ld r4,_DAR(r1)
|
||||
bl .low_hash_fault
|
||||
b .ret_from_except
|
||||
|
||||
/* here we have a segment miss */
|
||||
do_ste_alloc:
|
||||
bl .ste_allocate /* try to insert stab entry */
|
||||
cmpdi r3,0
|
||||
bne- handle_page_fault
|
||||
b fast_exception_return
|
||||
|
||||
/*
|
||||
* r13 points to the PACA, r9 contains the saved CR,
|
||||
* r11 and r12 contain the saved SRR0 and SRR1.
|
||||
* r9 - r13 are saved in paca->exslb.
|
||||
* We assume we aren't going to take any exceptions during this procedure.
|
||||
* We assume (DAR >> 60) == 0xc.
|
||||
*/
|
||||
.align 7
|
||||
_GLOBAL(do_stab_bolted)
|
||||
stw r9,PACA_EXSLB+EX_CCR(r13) /* save CR in exc. frame */
|
||||
std r11,PACA_EXSLB+EX_SRR0(r13) /* save SRR0 in exc. frame */
|
||||
|
||||
/* Hash to the primary group */
|
||||
ld r10,PACASTABVIRT(r13)
|
||||
mfspr r11,SPRN_DAR
|
||||
srdi r11,r11,28
|
||||
rldimi r10,r11,7,52 /* r10 = first ste of the group */
|
||||
|
||||
/* Calculate VSID */
|
||||
/* This is a kernel address, so protovsid = ESID */
|
||||
ASM_VSID_SCRAMBLE(r11, r9, 256M)
|
||||
rldic r9,r11,12,16 /* r9 = vsid << 12 */
|
||||
|
||||
/* Search the primary group for a free entry */
|
||||
1: ld r11,0(r10) /* Test valid bit of the current ste */
|
||||
andi. r11,r11,0x80
|
||||
beq 2f
|
||||
addi r10,r10,16
|
||||
andi. r11,r10,0x70
|
||||
bne 1b
|
||||
|
||||
/* Stick for only searching the primary group for now. */
|
||||
/* At least for now, we use a very simple random castout scheme */
|
||||
/* Use the TB as a random number ; OR in 1 to avoid entry 0 */
|
||||
mftb r11
|
||||
rldic r11,r11,4,57 /* r11 = (r11 << 4) & 0x70 */
|
||||
ori r11,r11,0x10
|
||||
|
||||
/* r10 currently points to an ste one past the group of interest */
|
||||
/* make it point to the randomly selected entry */
|
||||
subi r10,r10,128
|
||||
or r10,r10,r11 /* r10 is the entry to invalidate */
|
||||
|
||||
isync /* mark the entry invalid */
|
||||
ld r11,0(r10)
|
||||
rldicl r11,r11,56,1 /* clear the valid bit */
|
||||
rotldi r11,r11,8
|
||||
std r11,0(r10)
|
||||
sync
|
||||
|
||||
clrrdi r11,r11,28 /* Get the esid part of the ste */
|
||||
slbie r11
|
||||
|
||||
2: std r9,8(r10) /* Store the vsid part of the ste */
|
||||
eieio
|
||||
|
||||
mfspr r11,SPRN_DAR /* Get the new esid */
|
||||
clrrdi r11,r11,28 /* Permits a full 32b of ESID */
|
||||
ori r11,r11,0x90 /* Turn on valid and kp */
|
||||
std r11,0(r10) /* Put new entry back into the stab */
|
||||
|
||||
sync
|
||||
|
||||
/* All done -- return from exception. */
|
||||
lwz r9,PACA_EXSLB+EX_CCR(r13) /* get saved CR */
|
||||
ld r11,PACA_EXSLB+EX_SRR0(r13) /* get saved SRR0 */
|
||||
|
||||
andi. r10,r12,MSR_RI
|
||||
beq- unrecov_slb
|
||||
|
||||
mtcrf 0x80,r9 /* restore CR */
|
||||
|
||||
mfmsr r10
|
||||
clrrdi r10,r10,2
|
||||
mtmsrd r10,1
|
||||
|
||||
mtspr SPRN_SRR0,r11
|
||||
mtspr SPRN_SRR1,r12
|
||||
ld r9,PACA_EXSLB+EX_R9(r13)
|
||||
ld r10,PACA_EXSLB+EX_R10(r13)
|
||||
ld r11,PACA_EXSLB+EX_R11(r13)
|
||||
ld r12,PACA_EXSLB+EX_R12(r13)
|
||||
ld r13,PACA_EXSLB+EX_R13(r13)
|
||||
rfid
|
||||
b . /* prevent speculative execution */
|
||||
|
||||
/*
|
||||
* Space for CPU0's segment table.
|
||||
*
|
||||
* On iSeries, the hypervisor must fill in at least one entry before
|
||||
* we get control (with relocate on). The address is given to the hv
|
||||
* as a page number (see xLparMap below), so this must be at a
|
||||
* fixed address (the linker can't compute (u64)&initial_stab >>
|
||||
* PAGE_SHIFT).
|
||||
*/
|
||||
. = STAB0_OFFSET /* 0x6000 */
|
||||
.globl initial_stab
|
||||
initial_stab:
|
||||
.space 4096
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
/*
|
||||
* Data area reserved for FWNMI option.
|
||||
* This address (0x7000) is fixed by the RPA.
|
||||
*/
|
||||
.= 0x7000
|
||||
.globl fwnmi_data_area
|
||||
fwnmi_data_area:
|
||||
#endif /* CONFIG_PPC_PSERIES */
|
||||
|
||||
/* iSeries does not use the FWNMI stuff, so it is safe to put
|
||||
* this here, even if we later allow kernels that will boot on
|
||||
* both pSeries and iSeries */
|
||||
#ifdef CONFIG_PPC_ISERIES
|
||||
. = LPARMAP_PHYS
|
||||
.globl xLparMap
|
||||
xLparMap:
|
||||
.quad HvEsidsToMap /* xNumberEsids */
|
||||
.quad HvRangesToMap /* xNumberRanges */
|
||||
.quad STAB0_PAGE /* xSegmentTableOffs */
|
||||
.zero 40 /* xRsvd */
|
||||
/* xEsids (HvEsidsToMap entries of 2 quads) */
|
||||
.quad PAGE_OFFSET_ESID /* xKernelEsid */
|
||||
.quad PAGE_OFFSET_VSID /* xKernelVsid */
|
||||
.quad VMALLOC_START_ESID /* xKernelEsid */
|
||||
.quad VMALLOC_START_VSID /* xKernelVsid */
|
||||
/* xRanges (HvRangesToMap entries of 3 quads) */
|
||||
.quad HvPagesToMap /* xPages */
|
||||
.quad 0 /* xOffset */
|
||||
.quad PAGE_OFFSET_VSID << (SID_SHIFT - HW_PAGE_SHIFT) /* xVPN */
|
||||
|
||||
#endif /* CONFIG_PPC_ISERIES */
|
||||
|
||||
#ifdef CONFIG_PPC_PSERIES
|
||||
. = 0x8000
|
||||
#endif /* CONFIG_PPC_PSERIES */
|
@ -23,25 +23,14 @@
|
||||
#include <asm/code-patching.h>
|
||||
#include <asm/ftrace.h>
|
||||
|
||||
#ifdef CONFIG_PPC32
|
||||
# define GET_ADDR(addr) addr
|
||||
#else
|
||||
/* PowerPC64's functions are data that points to the functions */
|
||||
# define GET_ADDR(addr) (*(unsigned long *)addr)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DYNAMIC_FTRACE
|
||||
static unsigned int ftrace_nop_replace(void)
|
||||
{
|
||||
return PPC_INST_NOP;
|
||||
}
|
||||
|
||||
static unsigned int
|
||||
ftrace_call_replace(unsigned long ip, unsigned long addr, int link)
|
||||
{
|
||||
unsigned int op;
|
||||
|
||||
addr = GET_ADDR(addr);
|
||||
addr = ppc_function_entry((void *)addr);
|
||||
|
||||
/* if (link) set op to 'bl' else 'b' */
|
||||
op = create_branch((unsigned int *)ip, addr, link ? 1 : 0);
|
||||
@ -49,14 +38,6 @@ ftrace_call_replace(unsigned long ip, unsigned long addr, int link)
|
||||
return op;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_PPC64
|
||||
# define _ASM_ALIGN " .align 3 "
|
||||
# define _ASM_PTR " .llong "
|
||||
#else
|
||||
# define _ASM_ALIGN " .align 2 "
|
||||
# define _ASM_PTR " .long "
|
||||
#endif
|
||||
|
||||
static int
|
||||
ftrace_modify_code(unsigned long ip, unsigned int old, unsigned int new)
|
||||
{
|
||||
@ -197,7 +178,7 @@ __ftrace_make_nop(struct module *mod,
|
||||
ptr = ((unsigned long)jmp[0] << 32) + jmp[1];
|
||||
|
||||
/* This should match what was called */
|
||||
if (ptr != GET_ADDR(addr)) {
|
||||
if (ptr != ppc_function_entry((void *)addr)) {
|
||||
printk(KERN_ERR "addr does not match %lx\n", ptr);
|
||||
return -EINVAL;
|
||||
}
|
||||
@ -328,7 +309,7 @@ int ftrace_make_nop(struct module *mod,
|
||||
if (test_24bit_addr(ip, addr)) {
|
||||
/* within range */
|
||||
old = ftrace_call_replace(ip, addr, 1);
|
||||
new = ftrace_nop_replace();
|
||||
new = PPC_INST_NOP;
|
||||
return ftrace_modify_code(ip, old, new);
|
||||
}
|
||||
|
||||
@ -466,7 +447,7 @@ int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
|
||||
*/
|
||||
if (test_24bit_addr(ip, addr)) {
|
||||
/* within range */
|
||||
old = ftrace_nop_replace();
|
||||
old = PPC_INST_NOP;
|
||||
new = ftrace_call_replace(ip, addr, 1);
|
||||
return ftrace_modify_code(ip, old, new);
|
||||
}
|
||||
@ -570,7 +551,7 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
|
||||
return_hooker = (unsigned long)&mod_return_to_handler;
|
||||
#endif
|
||||
|
||||
return_hooker = GET_ADDR(return_hooker);
|
||||
return_hooker = ppc_function_entry((void *)return_hooker);
|
||||
|
||||
/*
|
||||
* Protect against fault, even if it shouldn't
|
||||
|
@ -733,9 +733,11 @@ END_MMU_FTR_SECTION_IFSET(MMU_FTR_NEED_DTLB_SW_LRU)
|
||||
AltiVecUnavailable:
|
||||
EXCEPTION_PROLOG
|
||||
#ifdef CONFIG_ALTIVEC
|
||||
bne load_up_altivec /* if from user, just load it up */
|
||||
beq 1f
|
||||
bl load_up_altivec /* if from user, just load it up */
|
||||
b fast_exception_return
|
||||
#endif /* CONFIG_ALTIVEC */
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
1: addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
EXC_XFER_EE_LITE(0xf20, altivec_unavailable_exception)
|
||||
|
||||
PerformanceMonitor:
|
||||
@ -743,101 +745,6 @@ PerformanceMonitor:
|
||||
addi r3,r1,STACK_FRAME_OVERHEAD
|
||||
EXC_XFER_STD(0xf00, performance_monitor_exception)
|
||||
|
||||
#ifdef CONFIG_ALTIVEC
|
||||
/* Note that the AltiVec support is closely modeled after the FP
|
||||
* support. Changes to one are likely to be applicable to the
|
||||
* other! */
|
||||
load_up_altivec:
|
||||
/*
|
||||
* Disable AltiVec for the task which had AltiVec previously,
|
||||
* and save its AltiVec registers in its thread_struct.
|
||||
* Enables AltiVec for use in the kernel on return.
|
||||
* On SMP we know the AltiVec units are free, since we give it up every
|
||||
* switch. -- Kumar
|
||||
*/
|
||||
mfmsr r5
|
||||
oris r5,r5,MSR_VEC@h
|
||||
MTMSRD(r5) /* enable use of AltiVec now */
|
||||
isync
|
||||
/*
|
||||
* For SMP, we don't do lazy AltiVec switching because it just gets too
|
||||
* horrendously complex, especially when a task switches from one CPU
|
||||
* to another. Instead we call giveup_altivec in switch_to.
|
||||
*/
|
||||
#ifndef CONFIG_SMP
|
||||
tophys(r6,0)
|
||||
addis r3,r6,last_task_used_altivec@ha
|
||||
lwz r4,last_task_used_altivec@l(r3)
|
||||
cmpwi 0,r4,0
|
||||
beq 1f
|
||||
add r4,r4,r6
|
||||
addi r4,r4,THREAD /* want THREAD of last_task_used_altivec */
|
||||
SAVE_32VRS(0,r10,r4)
|
||||
mfvscr vr0
|
||||
li r10,THREAD_VSCR
|
||||
stvx vr0,r10,r4
|
||||
lwz r5,PT_REGS(r4)
|
||||
add r5,r5,r6
|
||||
lwz r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
||||
lis r10,MSR_VEC@h
|
||||
andc r4,r4,r10 /* disable altivec for previous task */
|
||||
stw r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
||||
1:
|
||||
#endif /* CONFIG_SMP */
|
||||
/* enable use of AltiVec after return */
|
||||
oris r9,r9,MSR_VEC@h
|
||||
mfspr r5,SPRN_SPRG3 /* current task's THREAD (phys) */
|
||||
li r4,1
|
||||
li r10,THREAD_VSCR
|
||||
stw r4,THREAD_USED_VR(r5)
|
||||
lvx vr0,r10,r5
|
||||
mtvscr vr0
|
||||
REST_32VRS(0,r10,r5)
|
||||
#ifndef CONFIG_SMP
|
||||
subi r4,r5,THREAD
|
||||
sub r4,r4,r6
|
||||
stw r4,last_task_used_altivec@l(r3)
|
||||
#endif /* CONFIG_SMP */
|
||||
/* restore registers and return */
|
||||
/* we haven't used ctr or xer or lr */
|
||||
b fast_exception_return
|
||||
|
||||
/*
|
||||
* giveup_altivec(tsk)
|
||||
* Disable AltiVec for the task given as the argument,
|
||||
* and save the AltiVec registers in its thread_struct.
|
||||
* Enables AltiVec for use in the kernel on return.
|
||||
*/
|
||||
|
||||
.globl giveup_altivec
|
||||
giveup_altivec:
|
||||
mfmsr r5
|
||||
oris r5,r5,MSR_VEC@h
|
||||
SYNC
|
||||
MTMSRD(r5) /* enable use of AltiVec now */
|
||||
isync
|
||||
cmpwi 0,r3,0
|
||||
beqlr- /* if no previous owner, done */
|
||||
addi r3,r3,THREAD /* want THREAD of task */
|
||||
lwz r5,PT_REGS(r3)
|
||||
cmpwi 0,r5,0
|
||||
SAVE_32VRS(0, r4, r3)
|
||||
mfvscr vr0
|
||||
li r4,THREAD_VSCR
|
||||
stvx vr0,r4,r3
|
||||
beq 1f
|
||||
lwz r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
||||
lis r3,MSR_VEC@h
|
||||
andc r4,r4,r3 /* disable AltiVec for previous task */
|
||||
stw r4,_MSR-STACK_FRAME_OVERHEAD(r5)
|
||||
1:
|
||||
#ifndef CONFIG_SMP
|
||||
li r5,0
|
||||
lis r4,last_task_used_altivec@ha
|
||||
stw r5,last_task_used_altivec@l(r4)
|
||||
#endif /* CONFIG_SMP */
|
||||
blr
|
||||
#endif /* CONFIG_ALTIVEC */
|
||||
|
||||
/*
|
||||
* This code is jumped to from the startup code to copy
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user