Skip to content

Commit 65b97fb

Browse files
committed
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Pull powerpc updates from Ben Herrenschmidt: "This is the powerpc changes for the 3.11 merge window. In addition to the usual bug fixes and small updates, the main highlights are: - Support for transparent huge pages by Aneesh Kumar for 64-bit server processors. This allows the use of 16M pages as transparent huge pages on kernels compiled with a 64K base page size. - Base VFIO support for KVM on power by Alexey Kardashevskiy - Wiring up of our nvram to the pstore infrastructure, including putting compressed oopses in there by Aruna Balakrishnaiah - Move, rework and improve our "EEH" (basically PCI error handling and recovery) infrastructure. It is no longer specific to pseries but is now usable by the new "powernv" platform as well (no hypervisor) by Gavin Shan. - I fixed some bugs in our math-emu instruction decoding and made it usable to emulate some optional FP instructions on processors with hard FP that lack them (such as fsqrt on Freescale embedded processors). - Support for Power8 "Event Based Branch" facility by Michael Ellerman. This facility allows what is basically "userspace interrupts" for performance monitor events. - A bunch of Transactional Memory vs. Signals bug fixes and HW breakpoint/watchpoint fixes by Michael Neuling. And more ... I appologize in advance if I've failed to highlight something that somebody deemed worth it." * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (156 commits) pstore: Add hsize argument in write_buf call of pstore_ftrace_call powerpc/fsl: add MPIC timer wakeup support powerpc/mpic: create mpic subsystem object powerpc/mpic: add global timer support powerpc/mpic: add irq_set_wake support powerpc/85xx: enable coreint for all the 64bit boards powerpc/8xx: Erroneous double irq_eoi() on CPM IRQ in MPC8xx powerpc/fsl: Enable CONFIG_E1000E in mpc85xx_smp_defconfig powerpc/mpic: Add get_version API both for internal and external use powerpc: Handle both new style and old style reserve maps powerpc/hw_brk: Fix off by one error when validating DAWR region end powerpc/pseries: Support compression of oops text via pstore powerpc/pseries: Re-organise the oops compression code pstore: Pass header size in the pstore write callback powerpc/powernv: Fix iommu initialization again powerpc/pseries: Inform the hypervisor we are using EBB regs powerpc/perf: Add power8 EBB support powerpc/perf: Core EBB support for 64-bit book3s powerpc/perf: Drop MMCRA from thread_struct powerpc/perf: Don't enable if we have zero events ...
2 parents ddcf660 + 1d8b368 commit 65b97fb

File tree

182 files changed

+7633
-1177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

182 files changed

+7633
-1177
lines changed
Lines changed: 309 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,309 @@
1+
===============================================================================
2+
Freescale Interlaken Look-Aside Controller Device Bindings
3+
Copyright 2012 Freescale Semiconductor Inc.
4+
5+
CONTENTS
6+
- Interlaken Look-Aside Controller (LAC) Node
7+
- Example LAC Node
8+
- Interlaken Look-Aside Controller (LAC) Software Portal Node
9+
- Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes
10+
- Example LAC SWP Node with Child Nodes
11+
12+
==============================================================================
13+
Interlaken Look-Aside Controller (LAC) Node
14+
15+
DESCRIPTION
16+
17+
The Interlaken is a narrow, high speed channelized chip-to-chip interface. To
18+
facilitate interoperability between a data path device and a look-aside
19+
co-processor, the Interlaken Look-Aside protocol is defined for short
20+
transaction-related transfers. Although based on the Interlaken protocol,
21+
Interlaken Look-Aside is not directly compatible with Interlaken and can be
22+
considered a different operation mode.
23+
24+
The Interlaken LA controller connects internal platform to Interlaken serial
25+
interface. It accepts LA command through software portals, which are system
26+
memory mapped 4KB spaces. The LA commands are then translated into the
27+
Interlaken control words and data words, which are sent on TX side to TCAM
28+
through SerDes lanes.
29+
30+
There are two 4KiB spaces defined within the LAC global register memory map.
31+
There is a full register set at 0x0000-0x0FFF (also known as the "hypervisor"
32+
version), and a subset at 0x1000-0x1FFF. The former is a superset of the
33+
latter, and includes certain registers that should not be accessible to
34+
partitioned software. Separate nodes are used for each region, with a phandle
35+
linking the hypervisor node to the normal operating node.
36+
37+
PROPERTIES
38+
39+
- compatible
40+
Usage: required
41+
Value type: <string>
42+
Definition: Must include "fsl,interlaken-lac". This represents only
43+
those LAC CCSR registers not protected in partitioned
44+
software. The version of the device is determined by the LAC
45+
IP Block Revision Register (IPBRR0) at offset 0x0BF8.
46+
47+
Table of correspondences between IPBRR0 values and example
48+
chips:
49+
Value Device
50+
----------- -------
51+
0x02000100 T4240
52+
53+
The Hypervisor node has a different compatible. It must include
54+
"fsl,interlaken-lac-hv". This node represents the protected
55+
LAC register space and is required except inside a partition
56+
where access to the hypervisor node is to be denied.
57+
58+
- fsl,non-hv-node
59+
Usage: required in "fsl,interlaken-lac-hv"
60+
Value type: <phandle>
61+
Definition: Points to the non-protected LAC CCSR mapped register space
62+
node.
63+
64+
- reg
65+
Usage: required
66+
Value type: <prop-encoded-array>
67+
Definition: A standard property. The first resource represents the
68+
Interlaken LAC configuration registers.
69+
70+
- interrupts:
71+
Usage: required in non-hv node only
72+
Value type: <prop-encoded-array>
73+
Definition: Interrupt mapping for Interlaken LAC error IRQ.
74+
75+
EXAMPLE
76+
lac: lac@229000 {
77+
compatible = "fsl,interlaken-lac"
78+
reg = <0x229000 0x1000>;
79+
interrupts = <16 2 1 18>;
80+
};
81+
82+
lac-hv@228000 {
83+
compatible = "fsl,interlaken-lac-hv"
84+
reg = <0x228000 0x1000>;
85+
fsl,non-hv-node = <&lac>;
86+
};
87+
88+
===============================================================================
89+
Interlaken Look-Aside Controller (LAC) Software Portal Container Node
90+
91+
DESCRIPTION
92+
The Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept
93+
Interlaken Look-Aside (ILA) commands. The Interlaken LAC software portal
94+
memory map occupies 128KB of memory space. The software portal memory space is
95+
intended to be cache-enabled. WIMG for each software space is required to be
96+
0010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010.
97+
98+
PROPERTIES
99+
100+
- #address-cells
101+
Usage: required
102+
Value type: <u32>
103+
Definition: A standard property. Must have a value of 1.
104+
105+
- #size-cells
106+
Usage: required
107+
Value type: <u32>
108+
Definition: A standard property. Must have a value of 1.
109+
110+
- compatible
111+
Usage: required
112+
Value type: <string>
113+
Definition: Must include "fsl,interlaken-lac-portals"
114+
115+
- ranges
116+
Usage: required
117+
Value type: <prop-encoded-array>
118+
Definition: A standard property. Specifies the address and length
119+
of the LAC portal memory space.
120+
121+
===============================================================================
122+
Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
123+
124+
DESCRIPTION
125+
There are up to 24 available software portals with each software portal
126+
requiring 4KB of consecutive memory within the software portal memory mapped
127+
space.
128+
129+
PROPERTIES
130+
131+
- compatible
132+
Usage: required
133+
Value type: <string>
134+
Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is
135+
the Major version (IP_MJ) found in the LAC IP Block Revision
136+
Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version
137+
(IP_MN).
138+
139+
Table of correspondences between version values and example chips:
140+
Value Device
141+
------ -------
142+
1.0 T4240
143+
144+
- reg
145+
Usage: required
146+
Value type: <prop-encoded-array>
147+
Definition: A standard property. The first resource represents the
148+
Interlaken LAC software portal registers.
149+
150+
- fsl,liodn
151+
Value type: <u32>
152+
Definition: The logical I/O device number (LIODN) for this device. The
153+
LIODN is a number expressed by this device and used to perform
154+
look-ups in the IOMMU (PAMU) address table when performing
155+
DMAs. This property is automatically added by u-boot.
156+
157+
===============================================================================
158+
EXAMPLE
159+
160+
lac-portals {
161+
#address-cells = <0x1>;
162+
#size-cells = <0x1>;
163+
compatible = "fsl,interlaken-lac-portals";
164+
ranges = <0x0 0xf 0xf4400000 0x20000>;
165+
166+
lportal0: lac-portal@0 {
167+
compatible = "fsl,interlaken-lac-portal-v1.0";
168+
fsl,liodn = <0x204>;
169+
reg = <0x0 0x1000>;
170+
};
171+
172+
lportal1: lac-portal@1000 {
173+
compatible = "fsl,interlaken-lac-portal-v1.0";
174+
fsl,liodn = <0x205>;
175+
reg = <0x1000 0x1000>;
176+
};
177+
178+
lportal2: lac-portal@2000 {
179+
compatible = "fsl,interlaken-lac-portal-v1.0";
180+
fsl,liodn = <0x206>;
181+
reg = <0x2000 0x1000>;
182+
};
183+
184+
lportal3: lac-portal@3000 {
185+
compatible = "fsl,interlaken-lac-portal-v1.0";
186+
fsl,liodn = <0x207>;
187+
reg = <0x3000 0x1000>;
188+
};
189+
190+
lportal4: lac-portal@4000 {
191+
compatible = "fsl,interlaken-lac-portal-v1.0";
192+
fsl,liodn = <0x208>;
193+
reg = <0x4000 0x1000>;
194+
};
195+
196+
lportal5: lac-portal@5000 {
197+
compatible = "fsl,interlaken-lac-portal-v1.0";
198+
fsl,liodn = <0x209>;
199+
reg = <0x5000 0x1000>;
200+
};
201+
202+
lportal6: lac-portal@6000 {
203+
compatible = "fsl,interlaken-lac-portal-v1.0";
204+
fsl,liodn = <0x20A>;
205+
reg = <0x6000 0x1000>;
206+
};
207+
208+
lportal7: lac-portal@7000 {
209+
compatible = "fsl,interlaken-lac-portal-v1.0";
210+
fsl,liodn = <0x20B>;
211+
reg = <0x7000 0x1000>;
212+
};
213+
214+
lportal8: lac-portal@8000 {
215+
compatible = "fsl,interlaken-lac-portal-v1.0";
216+
fsl,liodn = <0x20C>;
217+
reg = <0x8000 0x1000>;
218+
};
219+
220+
lportal9: lac-portal@9000 {
221+
compatible = "fsl,interlaken-lac-portal-v1.0";
222+
fsl,liodn = <0x20D>;
223+
reg = <0x9000 0x1000>;
224+
};
225+
226+
lportal10: lac-portal@A000 {
227+
compatible = "fsl,interlaken-lac-portal-v1.0";
228+
fsl,liodn = <0x20E>;
229+
reg = <0xA000 0x1000>;
230+
};
231+
232+
lportal11: lac-portal@B000 {
233+
compatible = "fsl,interlaken-lac-portal-v1.0";
234+
fsl,liodn = <0x20F>;
235+
reg = <0xB000 0x1000>;
236+
};
237+
238+
lportal12: lac-portal@C000 {
239+
compatible = "fsl,interlaken-lac-portal-v1.0";
240+
fsl,liodn = <0x210>;
241+
reg = <0xC000 0x1000>;
242+
};
243+
244+
lportal13: lac-portal@D000 {
245+
compatible = "fsl,interlaken-lac-portal-v1.0";
246+
fsl,liodn = <0x211>;
247+
reg = <0xD000 0x1000>;
248+
};
249+
250+
lportal14: lac-portal@E000 {
251+
compatible = "fsl,interlaken-lac-portal-v1.0";
252+
fsl,liodn = <0x212>;
253+
reg = <0xE000 0x1000>;
254+
};
255+
256+
lportal15: lac-portal@F000 {
257+
compatible = "fsl,interlaken-lac-portal-v1.0";
258+
fsl,liodn = <0x213>;
259+
reg = <0xF000 0x1000>;
260+
};
261+
262+
lportal16: lac-portal@10000 {
263+
compatible = "fsl,interlaken-lac-portal-v1.0";
264+
fsl,liodn = <0x214>;
265+
reg = <0x10000 0x1000>;
266+
};
267+
268+
lportal17: lac-portal@11000 {
269+
compatible = "fsl,interlaken-lac-portal-v1.0";
270+
fsl,liodn = <0x215>;
271+
reg = <0x11000 0x1000>;
272+
};
273+
274+
lportal8: lac-portal@1200 {
275+
compatible = "fsl,interlaken-lac-portal-v1.0";
276+
fsl,liodn = <0x216>;
277+
reg = <0x12000 0x1000>;
278+
};
279+
280+
lportal19: lac-portal@13000 {
281+
compatible = "fsl,interlaken-lac-portal-v1.0";
282+
fsl,liodn = <0x217>;
283+
reg = <0x13000 0x1000>;
284+
};
285+
286+
lportal20: lac-portal@14000 {
287+
compatible = "fsl,interlaken-lac-portal-v1.0";
288+
fsl,liodn = <0x218>;
289+
reg = <0x14000 0x1000>;
290+
};
291+
292+
lportal21: lac-portal@15000 {
293+
compatible = "fsl,interlaken-lac-portal-v1.0";
294+
fsl,liodn = <0x219>;
295+
reg = <0x15000 0x1000>;
296+
};
297+
298+
lportal22: lac-portal@16000 {
299+
compatible = "fsl,interlaken-lac-portal-v1.0";
300+
fsl,liodn = <0x21A>;
301+
reg = <0x16000 0x1000>;
302+
};
303+
304+
lportal23: lac-portal@17000 {
305+
compatible = "fsl,interlaken-lac-portal-v1.0";
306+
fsl,liodn = <0x21B>;
307+
reg = <0x17000 0x1000>;
308+
};
309+
};

Documentation/powerpc/00-INDEX

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ hvcs.txt
1414
- IBM "Hypervisor Virtual Console Server" Installation Guide
1515
mpc52xx.txt
1616
- Linux 2.6.x on MPC52xx family
17+
pmu-ebb.txt
18+
- Description of the API for using the PMU with Event Based Branches.
1719
qe_firmware.txt
1820
- describes the layout of firmware binaries for the Freescale QUICC
1921
Engine and the code that parses and uploads the microcode therein.

0 commit comments

Comments
 (0)