162306a36Sopenharmony_ci=============================================================================== 262306a36Sopenharmony_ciFreescale Interlaken Look-Aside Controller Device Bindings 362306a36Sopenharmony_ciCopyright 2012 Freescale Semiconductor Inc. 462306a36Sopenharmony_ci 562306a36Sopenharmony_ciCONTENTS 662306a36Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Node 762306a36Sopenharmony_ci - Example LAC Node 862306a36Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Software Portal Node 962306a36Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes 1062306a36Sopenharmony_ci - Example LAC SWP Node with Child Nodes 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci============================================================================== 1362306a36Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Node 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ciDESCRIPTION 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ciThe Interlaken is a narrow, high speed channelized chip-to-chip interface. To 1862306a36Sopenharmony_cifacilitate interoperability between a data path device and a look-aside 1962306a36Sopenharmony_cico-processor, the Interlaken Look-Aside protocol is defined for short 2062306a36Sopenharmony_citransaction-related transfers. Although based on the Interlaken protocol, 2162306a36Sopenharmony_ciInterlaken Look-Aside is not directly compatible with Interlaken and can be 2262306a36Sopenharmony_ciconsidered a different operation mode. 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ciThe Interlaken LA controller connects internal platform to Interlaken serial 2562306a36Sopenharmony_ciinterface. It accepts LA command through software portals, which are system 2662306a36Sopenharmony_cimemory mapped 4KB spaces. The LA commands are then translated into the 2762306a36Sopenharmony_ciInterlaken control words and data words, which are sent on TX side to TCAM 2862306a36Sopenharmony_cithrough SerDes lanes. 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ciThere are two 4KiB spaces defined within the LAC global register memory map. 3162306a36Sopenharmony_ciThere is a full register set at 0x0000-0x0FFF (also known as the "hypervisor" 3262306a36Sopenharmony_civersion), and a subset at 0x1000-0x1FFF. The former is a superset of the 3362306a36Sopenharmony_cilatter, and includes certain registers that should not be accessible to 3462306a36Sopenharmony_cipartitioned software. Separate nodes are used for each region, with a phandle 3562306a36Sopenharmony_cilinking the hypervisor node to the normal operating node. 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ciPROPERTIES 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci - compatible 4062306a36Sopenharmony_ci Usage: required 4162306a36Sopenharmony_ci Value type: <string> 4262306a36Sopenharmony_ci Definition: Must include "fsl,interlaken-lac". This represents only 4362306a36Sopenharmony_ci those LAC CCSR registers not protected in partitioned 4462306a36Sopenharmony_ci software. The version of the device is determined by the LAC 4562306a36Sopenharmony_ci IP Block Revision Register (IPBRR0) at offset 0x0BF8. 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci Table of correspondences between IPBRR0 values and example 4862306a36Sopenharmony_ci chips: 4962306a36Sopenharmony_ci Value Device 5062306a36Sopenharmony_ci ----------- ------- 5162306a36Sopenharmony_ci 0x02000100 T4240 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci The Hypervisor node has a different compatible. It must include 5462306a36Sopenharmony_ci "fsl,interlaken-lac-hv". This node represents the protected 5562306a36Sopenharmony_ci LAC register space and is required except inside a partition 5662306a36Sopenharmony_ci where access to the hypervisor node is to be denied. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci - fsl,non-hv-node 5962306a36Sopenharmony_ci Usage: required in "fsl,interlaken-lac-hv" 6062306a36Sopenharmony_ci Value type: <phandle> 6162306a36Sopenharmony_ci Definition: Points to the non-protected LAC CCSR mapped register space 6262306a36Sopenharmony_ci node. 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci - reg 6562306a36Sopenharmony_ci Usage: required 6662306a36Sopenharmony_ci Value type: <prop-encoded-array> 6762306a36Sopenharmony_ci Definition: A standard property. The first resource represents the 6862306a36Sopenharmony_ci Interlaken LAC configuration registers. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci - interrupts: 7162306a36Sopenharmony_ci Usage: required in non-hv node only 7262306a36Sopenharmony_ci Value type: <prop-encoded-array> 7362306a36Sopenharmony_ci Definition: Interrupt mapping for Interlaken LAC error IRQ. 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ciEXAMPLE 7662306a36Sopenharmony_ci lac: lac@229000 { 7762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac" 7862306a36Sopenharmony_ci reg = <0x229000 0x1000>; 7962306a36Sopenharmony_ci interrupts = <16 2 1 18>; 8062306a36Sopenharmony_ci }; 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ci lac-hv@228000 { 8362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-hv" 8462306a36Sopenharmony_ci reg = <0x228000 0x1000>; 8562306a36Sopenharmony_ci fsl,non-hv-node = <&lac>; 8662306a36Sopenharmony_ci }; 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci=============================================================================== 8962306a36Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Software Portal Container Node 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ciDESCRIPTION 9262306a36Sopenharmony_ciThe Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept 9362306a36Sopenharmony_ciInterlaken Look-Aside (ILA) commands. The Interlaken LAC software portal 9462306a36Sopenharmony_cimemory map occupies 128KB of memory space. The software portal memory space is 9562306a36Sopenharmony_ciintended to be cache-enabled. WIMG for each software space is required to be 9662306a36Sopenharmony_ci0010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ciPROPERTIES 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci - #address-cells 10162306a36Sopenharmony_ci Usage: required 10262306a36Sopenharmony_ci Value type: <u32> 10362306a36Sopenharmony_ci Definition: A standard property. Must have a value of 1. 10462306a36Sopenharmony_ci 10562306a36Sopenharmony_ci - #size-cells 10662306a36Sopenharmony_ci Usage: required 10762306a36Sopenharmony_ci Value type: <u32> 10862306a36Sopenharmony_ci Definition: A standard property. Must have a value of 1. 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci - compatible 11162306a36Sopenharmony_ci Usage: required 11262306a36Sopenharmony_ci Value type: <string> 11362306a36Sopenharmony_ci Definition: Must include "fsl,interlaken-lac-portals" 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci - ranges 11662306a36Sopenharmony_ci Usage: required 11762306a36Sopenharmony_ci Value type: <prop-encoded-array> 11862306a36Sopenharmony_ci Definition: A standard property. Specifies the address and length 11962306a36Sopenharmony_ci of the LAC portal memory space. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci=============================================================================== 12262306a36Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Software Portals Child Nodes 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ciDESCRIPTION 12562306a36Sopenharmony_ciThere are up to 24 available software portals with each software portal 12662306a36Sopenharmony_cirequiring 4KB of consecutive memory within the software portal memory mapped 12762306a36Sopenharmony_cispace. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ciPROPERTIES 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci - compatible 13262306a36Sopenharmony_ci Usage: required 13362306a36Sopenharmony_ci Value type: <string> 13462306a36Sopenharmony_ci Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is 13562306a36Sopenharmony_ci the Major version (IP_MJ) found in the LAC IP Block Revision 13662306a36Sopenharmony_ci Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version 13762306a36Sopenharmony_ci (IP_MN). 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci Table of correspondences between version values and example chips: 14062306a36Sopenharmony_ci Value Device 14162306a36Sopenharmony_ci ------ ------- 14262306a36Sopenharmony_ci 1.0 T4240 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci - reg 14562306a36Sopenharmony_ci Usage: required 14662306a36Sopenharmony_ci Value type: <prop-encoded-array> 14762306a36Sopenharmony_ci Definition: A standard property. The first resource represents the 14862306a36Sopenharmony_ci Interlaken LAC software portal registers. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci - fsl,liodn 15162306a36Sopenharmony_ci Value type: <u32> 15262306a36Sopenharmony_ci Definition: The logical I/O device number (LIODN) for this device. The 15362306a36Sopenharmony_ci LIODN is a number expressed by this device and used to perform 15462306a36Sopenharmony_ci look-ups in the IOMMU (PAMU) address table when performing 15562306a36Sopenharmony_ci DMAs. This property is automatically added by u-boot. 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci=============================================================================== 15862306a36Sopenharmony_ciEXAMPLE 15962306a36Sopenharmony_ci 16062306a36Sopenharmony_cilac-portals { 16162306a36Sopenharmony_ci #address-cells = <0x1>; 16262306a36Sopenharmony_ci #size-cells = <0x1>; 16362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portals"; 16462306a36Sopenharmony_ci ranges = <0x0 0xf 0xf4400000 0x20000>; 16562306a36Sopenharmony_ci 16662306a36Sopenharmony_ci lportal0: lac-portal@0 { 16762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 16862306a36Sopenharmony_ci fsl,liodn = <0x204>; 16962306a36Sopenharmony_ci reg = <0x0 0x1000>; 17062306a36Sopenharmony_ci }; 17162306a36Sopenharmony_ci 17262306a36Sopenharmony_ci lportal1: lac-portal@1000 { 17362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 17462306a36Sopenharmony_ci fsl,liodn = <0x205>; 17562306a36Sopenharmony_ci reg = <0x1000 0x1000>; 17662306a36Sopenharmony_ci }; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci lportal2: lac-portal@2000 { 17962306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 18062306a36Sopenharmony_ci fsl,liodn = <0x206>; 18162306a36Sopenharmony_ci reg = <0x2000 0x1000>; 18262306a36Sopenharmony_ci }; 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci lportal3: lac-portal@3000 { 18562306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 18662306a36Sopenharmony_ci fsl,liodn = <0x207>; 18762306a36Sopenharmony_ci reg = <0x3000 0x1000>; 18862306a36Sopenharmony_ci }; 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci lportal4: lac-portal@4000 { 19162306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 19262306a36Sopenharmony_ci fsl,liodn = <0x208>; 19362306a36Sopenharmony_ci reg = <0x4000 0x1000>; 19462306a36Sopenharmony_ci }; 19562306a36Sopenharmony_ci 19662306a36Sopenharmony_ci lportal5: lac-portal@5000 { 19762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 19862306a36Sopenharmony_ci fsl,liodn = <0x209>; 19962306a36Sopenharmony_ci reg = <0x5000 0x1000>; 20062306a36Sopenharmony_ci }; 20162306a36Sopenharmony_ci 20262306a36Sopenharmony_ci lportal6: lac-portal@6000 { 20362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 20462306a36Sopenharmony_ci fsl,liodn = <0x20A>; 20562306a36Sopenharmony_ci reg = <0x6000 0x1000>; 20662306a36Sopenharmony_ci }; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci lportal7: lac-portal@7000 { 20962306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 21062306a36Sopenharmony_ci fsl,liodn = <0x20B>; 21162306a36Sopenharmony_ci reg = <0x7000 0x1000>; 21262306a36Sopenharmony_ci }; 21362306a36Sopenharmony_ci 21462306a36Sopenharmony_ci lportal8: lac-portal@8000 { 21562306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 21662306a36Sopenharmony_ci fsl,liodn = <0x20C>; 21762306a36Sopenharmony_ci reg = <0x8000 0x1000>; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci lportal9: lac-portal@9000 { 22162306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 22262306a36Sopenharmony_ci fsl,liodn = <0x20D>; 22362306a36Sopenharmony_ci reg = <0x9000 0x1000>; 22462306a36Sopenharmony_ci }; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci lportal10: lac-portal@a000 { 22762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 22862306a36Sopenharmony_ci fsl,liodn = <0x20E>; 22962306a36Sopenharmony_ci reg = <0xA000 0x1000>; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci 23262306a36Sopenharmony_ci lportal11: lac-portal@b000 { 23362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 23462306a36Sopenharmony_ci fsl,liodn = <0x20F>; 23562306a36Sopenharmony_ci reg = <0xB000 0x1000>; 23662306a36Sopenharmony_ci }; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci lportal12: lac-portal@c000 { 23962306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 24062306a36Sopenharmony_ci fsl,liodn = <0x210>; 24162306a36Sopenharmony_ci reg = <0xC000 0x1000>; 24262306a36Sopenharmony_ci }; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci lportal13: lac-portal@d000 { 24562306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 24662306a36Sopenharmony_ci fsl,liodn = <0x211>; 24762306a36Sopenharmony_ci reg = <0xD000 0x1000>; 24862306a36Sopenharmony_ci }; 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci lportal14: lac-portal@e000 { 25162306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 25262306a36Sopenharmony_ci fsl,liodn = <0x212>; 25362306a36Sopenharmony_ci reg = <0xE000 0x1000>; 25462306a36Sopenharmony_ci }; 25562306a36Sopenharmony_ci 25662306a36Sopenharmony_ci lportal15: lac-portal@f000 { 25762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 25862306a36Sopenharmony_ci fsl,liodn = <0x213>; 25962306a36Sopenharmony_ci reg = <0xF000 0x1000>; 26062306a36Sopenharmony_ci }; 26162306a36Sopenharmony_ci 26262306a36Sopenharmony_ci lportal16: lac-portal@10000 { 26362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 26462306a36Sopenharmony_ci fsl,liodn = <0x214>; 26562306a36Sopenharmony_ci reg = <0x10000 0x1000>; 26662306a36Sopenharmony_ci }; 26762306a36Sopenharmony_ci 26862306a36Sopenharmony_ci lportal17: lac-portal@11000 { 26962306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 27062306a36Sopenharmony_ci fsl,liodn = <0x215>; 27162306a36Sopenharmony_ci reg = <0x11000 0x1000>; 27262306a36Sopenharmony_ci }; 27362306a36Sopenharmony_ci 27462306a36Sopenharmony_ci lportal8: lac-portal@1200 { 27562306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 27662306a36Sopenharmony_ci fsl,liodn = <0x216>; 27762306a36Sopenharmony_ci reg = <0x12000 0x1000>; 27862306a36Sopenharmony_ci }; 27962306a36Sopenharmony_ci 28062306a36Sopenharmony_ci lportal19: lac-portal@13000 { 28162306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 28262306a36Sopenharmony_ci fsl,liodn = <0x217>; 28362306a36Sopenharmony_ci reg = <0x13000 0x1000>; 28462306a36Sopenharmony_ci }; 28562306a36Sopenharmony_ci 28662306a36Sopenharmony_ci lportal20: lac-portal@14000 { 28762306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 28862306a36Sopenharmony_ci fsl,liodn = <0x218>; 28962306a36Sopenharmony_ci reg = <0x14000 0x1000>; 29062306a36Sopenharmony_ci }; 29162306a36Sopenharmony_ci 29262306a36Sopenharmony_ci lportal21: lac-portal@15000 { 29362306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 29462306a36Sopenharmony_ci fsl,liodn = <0x219>; 29562306a36Sopenharmony_ci reg = <0x15000 0x1000>; 29662306a36Sopenharmony_ci }; 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ci lportal22: lac-portal@16000 { 29962306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 30062306a36Sopenharmony_ci fsl,liodn = <0x21A>; 30162306a36Sopenharmony_ci reg = <0x16000 0x1000>; 30262306a36Sopenharmony_ci }; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci lportal23: lac-portal@17000 { 30562306a36Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 30662306a36Sopenharmony_ci fsl,liodn = <0x21B>; 30762306a36Sopenharmony_ci reg = <0x17000 0x1000>; 30862306a36Sopenharmony_ci }; 30962306a36Sopenharmony_ci}; 310