Back to home page

OSCL-LXR

 
 

    


0001 ===============================================================================
0002 Freescale Interlaken Look-Aside Controller Device Bindings
0003 Copyright 2012 Freescale Semiconductor Inc.
0004 
0005 CONTENTS
0006   - Interlaken Look-Aside Controller (LAC) Node
0007   - Example LAC Node
0008   - Interlaken Look-Aside Controller (LAC) Software Portal Node
0009   - Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes
0010   - Example LAC SWP Node with Child Nodes
0011 
0012 ==============================================================================
0013 Interlaken Look-Aside Controller (LAC) Node
0014 
0015 DESCRIPTION
0016 
0017 The Interlaken is a narrow, high speed channelized chip-to-chip interface. To
0018 facilitate interoperability between a data path device and a look-aside
0019 co-processor, the Interlaken Look-Aside protocol is defined for short
0020 transaction-related transfers. Although based on the Interlaken protocol,
0021 Interlaken Look-Aside is not directly compatible with Interlaken and can be
0022 considered a different operation mode.
0023 
0024 The Interlaken LA controller connects internal platform to Interlaken serial
0025 interface. It accepts LA command through software portals, which are system
0026 memory mapped 4KB spaces. The LA commands are then translated into the
0027 Interlaken control words and data words, which are sent on TX side to TCAM
0028 through SerDes lanes.
0029 
0030 There are two 4KiB spaces defined within the LAC global register memory map.
0031 There is a full register set at 0x0000-0x0FFF (also known as the "hypervisor"
0032 version), and a subset at 0x1000-0x1FFF.  The former is a superset of the
0033 latter, and includes certain registers that should not be accessible to
0034 partitioned software.  Separate nodes are used for each region, with a phandle
0035 linking the hypervisor node to the normal operating node.
0036 
0037 PROPERTIES
0038 
0039   - compatible
0040         Usage: required
0041         Value type: <string>
0042         Definition: Must include "fsl,interlaken-lac". This represents only
0043                 those LAC CCSR registers not protected in partitioned
0044                 software. The version of the device is determined by the LAC
0045                 IP Block Revision Register (IPBRR0) at offset 0x0BF8.
0046 
0047                 Table of correspondences between IPBRR0 values and example
0048                 chips:
0049                         Value           Device
0050                         -----------     -------
0051                         0x02000100      T4240
0052 
0053                 The Hypervisor node has a different compatible. It must include
0054                 "fsl,interlaken-lac-hv". This node represents the protected
0055                 LAC register space and is required except inside a partition
0056                 where access to the hypervisor node is to be denied.
0057 
0058   - fsl,non-hv-node
0059         Usage: required in "fsl,interlaken-lac-hv"
0060         Value type: <phandle>
0061         Definition: Points to the non-protected LAC CCSR mapped register space
0062                 node.
0063 
0064   - reg
0065         Usage: required
0066         Value type: <prop-encoded-array>
0067         Definition: A standard property. The first resource represents the
0068                 Interlaken LAC configuration registers.
0069 
0070   - interrupts:
0071         Usage: required in non-hv node only
0072         Value type: <prop-encoded-array>
0073         Definition: Interrupt mapping for Interlaken LAC error IRQ.
0074 
0075 EXAMPLE
0076         lac: lac@229000 {
0077                 compatible = "fsl,interlaken-lac"
0078                 reg = <0x229000 0x1000>;
0079                 interrupts = <16 2 1 18>;
0080         };
0081 
0082         lac-hv@228000 {
0083                 compatible = "fsl,interlaken-lac-hv"
0084                 reg = <0x228000 0x1000>;
0085                 fsl,non-hv-node = <&lac>;
0086         };
0087 
0088 ===============================================================================
0089 Interlaken Look-Aside Controller (LAC) Software Portal Container Node
0090 
0091 DESCRIPTION
0092 The Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept
0093 Interlaken Look-Aside (ILA) commands. The Interlaken LAC software portal
0094 memory map occupies 128KB of memory space. The software portal memory space is
0095 intended to be cache-enabled. WIMG for each software space is required to be
0096 0010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010.
0097 
0098 PROPERTIES
0099 
0100   - #address-cells
0101         Usage: required
0102         Value type: <u32>
0103         Definition: A standard property. Must have a value of 1.
0104 
0105   - #size-cells
0106         Usage: required
0107         Value type: <u32>
0108         Definition: A standard property. Must have a value of 1.
0109 
0110   - compatible
0111         Usage: required
0112         Value type: <string>
0113         Definition: Must include "fsl,interlaken-lac-portals"
0114 
0115   - ranges
0116         Usage: required
0117         Value type: <prop-encoded-array>
0118         Definition: A standard property. Specifies the address and length
0119                 of the LAC portal memory space.
0120 
0121 ===============================================================================
0122 Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
0123 
0124 DESCRIPTION
0125 There are up to 24 available software portals with each software portal
0126 requiring 4KB of consecutive memory within the software portal memory mapped
0127 space.
0128 
0129 PROPERTIES
0130 
0131   - compatible
0132         Usage: required
0133         Value type: <string>
0134         Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is
0135                 the Major version (IP_MJ) found in the LAC IP Block Revision
0136                 Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version
0137                 (IP_MN).
0138 
0139                 Table of correspondences between version values and example chips:
0140                     Value       Device
0141                     ------      -------
0142                       1.0       T4240
0143 
0144   - reg
0145         Usage: required
0146         Value type: <prop-encoded-array>
0147         Definition: A standard property.  The first resource represents the
0148                 Interlaken LAC software portal registers.
0149 
0150   - fsl,liodn
0151         Value type: <u32>
0152         Definition: The logical I/O device number (LIODN) for this device.  The
0153                 LIODN is a number expressed by this device and used to perform
0154                 look-ups in the IOMMU (PAMU) address table when performing
0155                 DMAs. This property is automatically added by u-boot.
0156 
0157 ===============================================================================
0158 EXAMPLE
0159 
0160 lac-portals {
0161         #address-cells = <0x1>;
0162         #size-cells = <0x1>;
0163         compatible = "fsl,interlaken-lac-portals";
0164         ranges = <0x0 0xf 0xf4400000 0x20000>;
0165 
0166         lportal0: lac-portal@0 {
0167                 compatible = "fsl,interlaken-lac-portal-v1.0";
0168                 fsl,liodn = <0x204>;
0169                 reg = <0x0 0x1000>;
0170         };
0171 
0172         lportal1: lac-portal@1000 {
0173                 compatible = "fsl,interlaken-lac-portal-v1.0";
0174                 fsl,liodn = <0x205>;
0175                 reg = <0x1000 0x1000>;
0176         };
0177 
0178         lportal2: lac-portal@2000 {
0179                 compatible = "fsl,interlaken-lac-portal-v1.0";
0180                 fsl,liodn = <0x206>;
0181                 reg = <0x2000 0x1000>;
0182         };
0183 
0184         lportal3: lac-portal@3000 {
0185                 compatible = "fsl,interlaken-lac-portal-v1.0";
0186                 fsl,liodn = <0x207>;
0187                 reg = <0x3000 0x1000>;
0188         };
0189 
0190         lportal4: lac-portal@4000 {
0191                 compatible = "fsl,interlaken-lac-portal-v1.0";
0192                 fsl,liodn = <0x208>;
0193                 reg = <0x4000 0x1000>;
0194         };
0195 
0196         lportal5: lac-portal@5000 {
0197                 compatible = "fsl,interlaken-lac-portal-v1.0";
0198                 fsl,liodn = <0x209>;
0199                 reg = <0x5000 0x1000>;
0200         };
0201 
0202         lportal6: lac-portal@6000 {
0203                 compatible = "fsl,interlaken-lac-portal-v1.0";
0204                 fsl,liodn = <0x20A>;
0205                 reg = <0x6000 0x1000>;
0206         };
0207 
0208         lportal7: lac-portal@7000 {
0209                 compatible = "fsl,interlaken-lac-portal-v1.0";
0210                 fsl,liodn = <0x20B>;
0211                 reg = <0x7000 0x1000>;
0212         };
0213 
0214         lportal8: lac-portal@8000 {
0215                 compatible = "fsl,interlaken-lac-portal-v1.0";
0216                 fsl,liodn = <0x20C>;
0217                 reg = <0x8000 0x1000>;
0218         };
0219 
0220         lportal9: lac-portal@9000 {
0221                 compatible = "fsl,interlaken-lac-portal-v1.0";
0222                 fsl,liodn = <0x20D>;
0223                 reg = <0x9000 0x1000>;
0224         };
0225 
0226         lportal10: lac-portal@a000 {
0227                 compatible = "fsl,interlaken-lac-portal-v1.0";
0228                 fsl,liodn = <0x20E>;
0229                 reg = <0xA000 0x1000>;
0230         };
0231 
0232         lportal11: lac-portal@b000 {
0233                 compatible = "fsl,interlaken-lac-portal-v1.0";
0234                 fsl,liodn = <0x20F>;
0235                 reg = <0xB000 0x1000>;
0236         };
0237 
0238         lportal12: lac-portal@c000 {
0239                 compatible = "fsl,interlaken-lac-portal-v1.0";
0240                 fsl,liodn = <0x210>;
0241                 reg = <0xC000 0x1000>;
0242         };
0243 
0244         lportal13: lac-portal@d000 {
0245                 compatible = "fsl,interlaken-lac-portal-v1.0";
0246                 fsl,liodn = <0x211>;
0247                 reg = <0xD000 0x1000>;
0248         };
0249 
0250         lportal14: lac-portal@e000 {
0251                 compatible = "fsl,interlaken-lac-portal-v1.0";
0252                 fsl,liodn = <0x212>;
0253                 reg = <0xE000 0x1000>;
0254         };
0255 
0256         lportal15: lac-portal@f000 {
0257                 compatible = "fsl,interlaken-lac-portal-v1.0";
0258                 fsl,liodn = <0x213>;
0259                 reg = <0xF000 0x1000>;
0260         };
0261 
0262         lportal16: lac-portal@10000 {
0263                 compatible = "fsl,interlaken-lac-portal-v1.0";
0264                 fsl,liodn = <0x214>;
0265                 reg = <0x10000 0x1000>;
0266         };
0267 
0268         lportal17: lac-portal@11000 {
0269                 compatible = "fsl,interlaken-lac-portal-v1.0";
0270                 fsl,liodn = <0x215>;
0271                 reg = <0x11000 0x1000>;
0272         };
0273 
0274         lportal8: lac-portal@1200 {
0275                 compatible = "fsl,interlaken-lac-portal-v1.0";
0276                 fsl,liodn = <0x216>;
0277                 reg = <0x12000 0x1000>;
0278         };
0279 
0280         lportal19: lac-portal@13000 {
0281                 compatible = "fsl,interlaken-lac-portal-v1.0";
0282                 fsl,liodn = <0x217>;
0283                 reg = <0x13000 0x1000>;
0284         };
0285 
0286         lportal20: lac-portal@14000 {
0287                 compatible = "fsl,interlaken-lac-portal-v1.0";
0288                 fsl,liodn = <0x218>;
0289                 reg = <0x14000 0x1000>;
0290         };
0291 
0292         lportal21: lac-portal@15000 {
0293                 compatible = "fsl,interlaken-lac-portal-v1.0";
0294                 fsl,liodn = <0x219>;
0295                 reg = <0x15000 0x1000>;
0296         };
0297 
0298         lportal22: lac-portal@16000 {
0299                 compatible = "fsl,interlaken-lac-portal-v1.0";
0300                 fsl,liodn = <0x21A>;
0301                 reg = <0x16000 0x1000>;
0302         };
0303 
0304         lportal23: lac-portal@17000 {
0305                 compatible = "fsl,interlaken-lac-portal-v1.0";
0306                 fsl,liodn = <0x21B>;
0307                 reg = <0x17000 0x1000>;
0308         };
0309 };