1 ===============================================================================
2 Freescale Interlaken Look-Aside Controller Device Bindings
3 Copyright 2012 Freescale Semiconductor Inc.
6 - Interlaken Look-Aside Controller (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
12 ==============================================================================
13 Interlaken Look-Aside Controller (LAC) Node
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.
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
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.
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.
47 Table of correspondences between IPBRR0 values and example
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.
59 Usage: required in "fsl,interlaken-lac-hv"
61 Definition: Points to the non-protected LAC CCSR mapped register space
66 Value type: <prop-encoded-array>
67 Definition: A standard property. The first resource represents the
68 Interlaken LAC configuration registers.
71 Usage: required in non-hv node only
72 Value type: <prop-encoded-array>
73 Definition: Interrupt mapping for Interlaken LAC error IRQ.
77 compatible = "fsl,interlaken-lac"
78 reg = <0x229000 0x1000>;
79 interrupts = <16 2 1 18>;
83 compatible = "fsl,interlaken-lac-hv"
84 reg = <0x228000 0x1000>;
85 fsl,non-hv-node = <&lac>;
88 ===============================================================================
89 Interlaken Look-Aside Controller (LAC) Software Portal Container Node
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.
103 Definition: A standard property. Must have a value of 1.
108 Definition: A standard property. Must have a value of 1.
113 Definition: Must include "fsl,interlaken-lac-portals"
117 Value type: <prop-encoded-array>
118 Definition: A standard property. Specifies the address and length
119 of the LAC portal memory space.
121 ===============================================================================
122 Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
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
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
139 Table of correspondences between version values and example chips:
146 Value type: <prop-encoded-array>
147 Definition: A standard property. The first resource represents the
148 Interlaken LAC software portal registers.
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.
157 ===============================================================================
161 #address-cells = <0x1>;
163 compatible = "fsl,interlaken-lac-portals";
164 ranges = <0x0 0xf 0xf4400000 0x20000>;
166 lportal0: lac-portal@0 {
167 compatible = "fsl,interlaken-lac-portal-v1.0";
172 lportal1: lac-portal@1000 {
173 compatible = "fsl,interlaken-lac-portal-v1.0";
175 reg = <0x1000 0x1000>;
178 lportal2: lac-portal@2000 {
179 compatible = "fsl,interlaken-lac-portal-v1.0";
181 reg = <0x2000 0x1000>;
184 lportal3: lac-portal@3000 {
185 compatible = "fsl,interlaken-lac-portal-v1.0";
187 reg = <0x3000 0x1000>;
190 lportal4: lac-portal@4000 {
191 compatible = "fsl,interlaken-lac-portal-v1.0";
193 reg = <0x4000 0x1000>;
196 lportal5: lac-portal@5000 {
197 compatible = "fsl,interlaken-lac-portal-v1.0";
199 reg = <0x5000 0x1000>;
202 lportal6: lac-portal@6000 {
203 compatible = "fsl,interlaken-lac-portal-v1.0";
205 reg = <0x6000 0x1000>;
208 lportal7: lac-portal@7000 {
209 compatible = "fsl,interlaken-lac-portal-v1.0";
211 reg = <0x7000 0x1000>;
214 lportal8: lac-portal@8000 {
215 compatible = "fsl,interlaken-lac-portal-v1.0";
217 reg = <0x8000 0x1000>;
220 lportal9: lac-portal@9000 {
221 compatible = "fsl,interlaken-lac-portal-v1.0";
223 reg = <0x9000 0x1000>;
226 lportal10: lac-portal@A000 {
227 compatible = "fsl,interlaken-lac-portal-v1.0";
229 reg = <0xA000 0x1000>;
232 lportal11: lac-portal@B000 {
233 compatible = "fsl,interlaken-lac-portal-v1.0";
235 reg = <0xB000 0x1000>;
238 lportal12: lac-portal@C000 {
239 compatible = "fsl,interlaken-lac-portal-v1.0";
241 reg = <0xC000 0x1000>;
244 lportal13: lac-portal@D000 {
245 compatible = "fsl,interlaken-lac-portal-v1.0";
247 reg = <0xD000 0x1000>;
250 lportal14: lac-portal@E000 {
251 compatible = "fsl,interlaken-lac-portal-v1.0";
253 reg = <0xE000 0x1000>;
256 lportal15: lac-portal@F000 {
257 compatible = "fsl,interlaken-lac-portal-v1.0";
259 reg = <0xF000 0x1000>;
262 lportal16: lac-portal@10000 {
263 compatible = "fsl,interlaken-lac-portal-v1.0";
265 reg = <0x10000 0x1000>;
268 lportal17: lac-portal@11000 {
269 compatible = "fsl,interlaken-lac-portal-v1.0";
271 reg = <0x11000 0x1000>;
274 lportal8: lac-portal@1200 {
275 compatible = "fsl,interlaken-lac-portal-v1.0";
277 reg = <0x12000 0x1000>;
280 lportal19: lac-portal@13000 {
281 compatible = "fsl,interlaken-lac-portal-v1.0";
283 reg = <0x13000 0x1000>;
286 lportal20: lac-portal@14000 {
287 compatible = "fsl,interlaken-lac-portal-v1.0";
289 reg = <0x14000 0x1000>;
292 lportal21: lac-portal@15000 {
293 compatible = "fsl,interlaken-lac-portal-v1.0";
295 reg = <0x15000 0x1000>;
298 lportal22: lac-portal@16000 {
299 compatible = "fsl,interlaken-lac-portal-v1.0";
301 reg = <0x16000 0x1000>;
304 lportal23: lac-portal@17000 {
305 compatible = "fsl,interlaken-lac-portal-v1.0";
307 reg = <0x17000 0x1000>;