18c2ecf20Sopenharmony_ci=============================================================================== 28c2ecf20Sopenharmony_ciFreescale Interlaken Look-Aside Controller Device Bindings 38c2ecf20Sopenharmony_ciCopyright 2012 Freescale Semiconductor Inc. 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ciCONTENTS 68c2ecf20Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Node 78c2ecf20Sopenharmony_ci - Example LAC Node 88c2ecf20Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Software Portal Node 98c2ecf20Sopenharmony_ci - Interlaken Look-Aside Controller (LAC) Software Portal Child Nodes 108c2ecf20Sopenharmony_ci - Example LAC SWP Node with Child Nodes 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci============================================================================== 138c2ecf20Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Node 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ciDESCRIPTION 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciThe Interlaken is a narrow, high speed channelized chip-to-chip interface. To 188c2ecf20Sopenharmony_cifacilitate interoperability between a data path device and a look-aside 198c2ecf20Sopenharmony_cico-processor, the Interlaken Look-Aside protocol is defined for short 208c2ecf20Sopenharmony_citransaction-related transfers. Although based on the Interlaken protocol, 218c2ecf20Sopenharmony_ciInterlaken Look-Aside is not directly compatible with Interlaken and can be 228c2ecf20Sopenharmony_ciconsidered a different operation mode. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciThe Interlaken LA controller connects internal platform to Interlaken serial 258c2ecf20Sopenharmony_ciinterface. It accepts LA command through software portals, which are system 268c2ecf20Sopenharmony_cimemory mapped 4KB spaces. The LA commands are then translated into the 278c2ecf20Sopenharmony_ciInterlaken control words and data words, which are sent on TX side to TCAM 288c2ecf20Sopenharmony_cithrough SerDes lanes. 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ciThere are two 4KiB spaces defined within the LAC global register memory map. 318c2ecf20Sopenharmony_ciThere is a full register set at 0x0000-0x0FFF (also known as the "hypervisor" 328c2ecf20Sopenharmony_civersion), and a subset at 0x1000-0x1FFF. The former is a superset of the 338c2ecf20Sopenharmony_cilatter, and includes certain registers that should not be accessible to 348c2ecf20Sopenharmony_cipartitioned software. Separate nodes are used for each region, with a phandle 358c2ecf20Sopenharmony_cilinking the hypervisor node to the normal operating node. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciPROPERTIES 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci - compatible 408c2ecf20Sopenharmony_ci Usage: required 418c2ecf20Sopenharmony_ci Value type: <string> 428c2ecf20Sopenharmony_ci Definition: Must include "fsl,interlaken-lac". This represents only 438c2ecf20Sopenharmony_ci those LAC CCSR registers not protected in partitioned 448c2ecf20Sopenharmony_ci software. The version of the device is determined by the LAC 458c2ecf20Sopenharmony_ci IP Block Revision Register (IPBRR0) at offset 0x0BF8. 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ci Table of correspondences between IPBRR0 values and example 488c2ecf20Sopenharmony_ci chips: 498c2ecf20Sopenharmony_ci Value Device 508c2ecf20Sopenharmony_ci ----------- ------- 518c2ecf20Sopenharmony_ci 0x02000100 T4240 528c2ecf20Sopenharmony_ci 538c2ecf20Sopenharmony_ci The Hypervisor node has a different compatible. It must include 548c2ecf20Sopenharmony_ci "fsl,interlaken-lac-hv". This node represents the protected 558c2ecf20Sopenharmony_ci LAC register space and is required except inside a partition 568c2ecf20Sopenharmony_ci where access to the hypervisor node is to be denied. 578c2ecf20Sopenharmony_ci 588c2ecf20Sopenharmony_ci - fsl,non-hv-node 598c2ecf20Sopenharmony_ci Usage: required in "fsl,interlaken-lac-hv" 608c2ecf20Sopenharmony_ci Value type: <phandle> 618c2ecf20Sopenharmony_ci Definition: Points to the non-protected LAC CCSR mapped register space 628c2ecf20Sopenharmony_ci node. 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci - reg 658c2ecf20Sopenharmony_ci Usage: required 668c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 678c2ecf20Sopenharmony_ci Definition: A standard property. The first resource represents the 688c2ecf20Sopenharmony_ci Interlaken LAC configuration registers. 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci - interrupts: 718c2ecf20Sopenharmony_ci Usage: required in non-hv node only 728c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 738c2ecf20Sopenharmony_ci Definition: Interrupt mapping for Interlaken LAC error IRQ. 748c2ecf20Sopenharmony_ci 758c2ecf20Sopenharmony_ciEXAMPLE 768c2ecf20Sopenharmony_ci lac: lac@229000 { 778c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac" 788c2ecf20Sopenharmony_ci reg = <0x229000 0x1000>; 798c2ecf20Sopenharmony_ci interrupts = <16 2 1 18>; 808c2ecf20Sopenharmony_ci }; 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci lac-hv@228000 { 838c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-hv" 848c2ecf20Sopenharmony_ci reg = <0x228000 0x1000>; 858c2ecf20Sopenharmony_ci fsl,non-hv-node = <&lac>; 868c2ecf20Sopenharmony_ci }; 878c2ecf20Sopenharmony_ci 888c2ecf20Sopenharmony_ci=============================================================================== 898c2ecf20Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Software Portal Container Node 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ciDESCRIPTION 928c2ecf20Sopenharmony_ciThe Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept 938c2ecf20Sopenharmony_ciInterlaken Look-Aside (ILA) commands. The Interlaken LAC software portal 948c2ecf20Sopenharmony_cimemory map occupies 128KB of memory space. The software portal memory space is 958c2ecf20Sopenharmony_ciintended to be cache-enabled. WIMG for each software space is required to be 968c2ecf20Sopenharmony_ci0010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010. 978c2ecf20Sopenharmony_ci 988c2ecf20Sopenharmony_ciPROPERTIES 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci - #address-cells 1018c2ecf20Sopenharmony_ci Usage: required 1028c2ecf20Sopenharmony_ci Value type: <u32> 1038c2ecf20Sopenharmony_ci Definition: A standard property. Must have a value of 1. 1048c2ecf20Sopenharmony_ci 1058c2ecf20Sopenharmony_ci - #size-cells 1068c2ecf20Sopenharmony_ci Usage: required 1078c2ecf20Sopenharmony_ci Value type: <u32> 1088c2ecf20Sopenharmony_ci Definition: A standard property. Must have a value of 1. 1098c2ecf20Sopenharmony_ci 1108c2ecf20Sopenharmony_ci - compatible 1118c2ecf20Sopenharmony_ci Usage: required 1128c2ecf20Sopenharmony_ci Value type: <string> 1138c2ecf20Sopenharmony_ci Definition: Must include "fsl,interlaken-lac-portals" 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci - ranges 1168c2ecf20Sopenharmony_ci Usage: required 1178c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 1188c2ecf20Sopenharmony_ci Definition: A standard property. Specifies the address and length 1198c2ecf20Sopenharmony_ci of the LAC portal memory space. 1208c2ecf20Sopenharmony_ci 1218c2ecf20Sopenharmony_ci=============================================================================== 1228c2ecf20Sopenharmony_ciInterlaken Look-Aside Controller (LAC) Software Portals Child Nodes 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ciDESCRIPTION 1258c2ecf20Sopenharmony_ciThere are up to 24 available software portals with each software portal 1268c2ecf20Sopenharmony_cirequiring 4KB of consecutive memory within the software portal memory mapped 1278c2ecf20Sopenharmony_cispace. 1288c2ecf20Sopenharmony_ci 1298c2ecf20Sopenharmony_ciPROPERTIES 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci - compatible 1328c2ecf20Sopenharmony_ci Usage: required 1338c2ecf20Sopenharmony_ci Value type: <string> 1348c2ecf20Sopenharmony_ci Definition: Must include "fsl,interlaken-lac-portal-vX.Y" where X is 1358c2ecf20Sopenharmony_ci the Major version (IP_MJ) found in the LAC IP Block Revision 1368c2ecf20Sopenharmony_ci Register (IPBRR0), at offset 0x0BF8, and Y is the Minor version 1378c2ecf20Sopenharmony_ci (IP_MN). 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ci Table of correspondences between version values and example chips: 1408c2ecf20Sopenharmony_ci Value Device 1418c2ecf20Sopenharmony_ci ------ ------- 1428c2ecf20Sopenharmony_ci 1.0 T4240 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci - reg 1458c2ecf20Sopenharmony_ci Usage: required 1468c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 1478c2ecf20Sopenharmony_ci Definition: A standard property. The first resource represents the 1488c2ecf20Sopenharmony_ci Interlaken LAC software portal registers. 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci - fsl,liodn 1518c2ecf20Sopenharmony_ci Value type: <u32> 1528c2ecf20Sopenharmony_ci Definition: The logical I/O device number (LIODN) for this device. The 1538c2ecf20Sopenharmony_ci LIODN is a number expressed by this device and used to perform 1548c2ecf20Sopenharmony_ci look-ups in the IOMMU (PAMU) address table when performing 1558c2ecf20Sopenharmony_ci DMAs. This property is automatically added by u-boot. 1568c2ecf20Sopenharmony_ci 1578c2ecf20Sopenharmony_ci=============================================================================== 1588c2ecf20Sopenharmony_ciEXAMPLE 1598c2ecf20Sopenharmony_ci 1608c2ecf20Sopenharmony_cilac-portals { 1618c2ecf20Sopenharmony_ci #address-cells = <0x1>; 1628c2ecf20Sopenharmony_ci #size-cells = <0x1>; 1638c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portals"; 1648c2ecf20Sopenharmony_ci ranges = <0x0 0xf 0xf4400000 0x20000>; 1658c2ecf20Sopenharmony_ci 1668c2ecf20Sopenharmony_ci lportal0: lac-portal@0 { 1678c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1688c2ecf20Sopenharmony_ci fsl,liodn = <0x204>; 1698c2ecf20Sopenharmony_ci reg = <0x0 0x1000>; 1708c2ecf20Sopenharmony_ci }; 1718c2ecf20Sopenharmony_ci 1728c2ecf20Sopenharmony_ci lportal1: lac-portal@1000 { 1738c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1748c2ecf20Sopenharmony_ci fsl,liodn = <0x205>; 1758c2ecf20Sopenharmony_ci reg = <0x1000 0x1000>; 1768c2ecf20Sopenharmony_ci }; 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ci lportal2: lac-portal@2000 { 1798c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1808c2ecf20Sopenharmony_ci fsl,liodn = <0x206>; 1818c2ecf20Sopenharmony_ci reg = <0x2000 0x1000>; 1828c2ecf20Sopenharmony_ci }; 1838c2ecf20Sopenharmony_ci 1848c2ecf20Sopenharmony_ci lportal3: lac-portal@3000 { 1858c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1868c2ecf20Sopenharmony_ci fsl,liodn = <0x207>; 1878c2ecf20Sopenharmony_ci reg = <0x3000 0x1000>; 1888c2ecf20Sopenharmony_ci }; 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci lportal4: lac-portal@4000 { 1918c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1928c2ecf20Sopenharmony_ci fsl,liodn = <0x208>; 1938c2ecf20Sopenharmony_ci reg = <0x4000 0x1000>; 1948c2ecf20Sopenharmony_ci }; 1958c2ecf20Sopenharmony_ci 1968c2ecf20Sopenharmony_ci lportal5: lac-portal@5000 { 1978c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 1988c2ecf20Sopenharmony_ci fsl,liodn = <0x209>; 1998c2ecf20Sopenharmony_ci reg = <0x5000 0x1000>; 2008c2ecf20Sopenharmony_ci }; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci lportal6: lac-portal@6000 { 2038c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2048c2ecf20Sopenharmony_ci fsl,liodn = <0x20A>; 2058c2ecf20Sopenharmony_ci reg = <0x6000 0x1000>; 2068c2ecf20Sopenharmony_ci }; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci lportal7: lac-portal@7000 { 2098c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2108c2ecf20Sopenharmony_ci fsl,liodn = <0x20B>; 2118c2ecf20Sopenharmony_ci reg = <0x7000 0x1000>; 2128c2ecf20Sopenharmony_ci }; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci lportal8: lac-portal@8000 { 2158c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2168c2ecf20Sopenharmony_ci fsl,liodn = <0x20C>; 2178c2ecf20Sopenharmony_ci reg = <0x8000 0x1000>; 2188c2ecf20Sopenharmony_ci }; 2198c2ecf20Sopenharmony_ci 2208c2ecf20Sopenharmony_ci lportal9: lac-portal@9000 { 2218c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2228c2ecf20Sopenharmony_ci fsl,liodn = <0x20D>; 2238c2ecf20Sopenharmony_ci reg = <0x9000 0x1000>; 2248c2ecf20Sopenharmony_ci }; 2258c2ecf20Sopenharmony_ci 2268c2ecf20Sopenharmony_ci lportal10: lac-portal@a000 { 2278c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2288c2ecf20Sopenharmony_ci fsl,liodn = <0x20E>; 2298c2ecf20Sopenharmony_ci reg = <0xA000 0x1000>; 2308c2ecf20Sopenharmony_ci }; 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci lportal11: lac-portal@b000 { 2338c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2348c2ecf20Sopenharmony_ci fsl,liodn = <0x20F>; 2358c2ecf20Sopenharmony_ci reg = <0xB000 0x1000>; 2368c2ecf20Sopenharmony_ci }; 2378c2ecf20Sopenharmony_ci 2388c2ecf20Sopenharmony_ci lportal12: lac-portal@c000 { 2398c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2408c2ecf20Sopenharmony_ci fsl,liodn = <0x210>; 2418c2ecf20Sopenharmony_ci reg = <0xC000 0x1000>; 2428c2ecf20Sopenharmony_ci }; 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci lportal13: lac-portal@d000 { 2458c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2468c2ecf20Sopenharmony_ci fsl,liodn = <0x211>; 2478c2ecf20Sopenharmony_ci reg = <0xD000 0x1000>; 2488c2ecf20Sopenharmony_ci }; 2498c2ecf20Sopenharmony_ci 2508c2ecf20Sopenharmony_ci lportal14: lac-portal@e000 { 2518c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2528c2ecf20Sopenharmony_ci fsl,liodn = <0x212>; 2538c2ecf20Sopenharmony_ci reg = <0xE000 0x1000>; 2548c2ecf20Sopenharmony_ci }; 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci lportal15: lac-portal@f000 { 2578c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2588c2ecf20Sopenharmony_ci fsl,liodn = <0x213>; 2598c2ecf20Sopenharmony_ci reg = <0xF000 0x1000>; 2608c2ecf20Sopenharmony_ci }; 2618c2ecf20Sopenharmony_ci 2628c2ecf20Sopenharmony_ci lportal16: lac-portal@10000 { 2638c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2648c2ecf20Sopenharmony_ci fsl,liodn = <0x214>; 2658c2ecf20Sopenharmony_ci reg = <0x10000 0x1000>; 2668c2ecf20Sopenharmony_ci }; 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci lportal17: lac-portal@11000 { 2698c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2708c2ecf20Sopenharmony_ci fsl,liodn = <0x215>; 2718c2ecf20Sopenharmony_ci reg = <0x11000 0x1000>; 2728c2ecf20Sopenharmony_ci }; 2738c2ecf20Sopenharmony_ci 2748c2ecf20Sopenharmony_ci lportal8: lac-portal@1200 { 2758c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2768c2ecf20Sopenharmony_ci fsl,liodn = <0x216>; 2778c2ecf20Sopenharmony_ci reg = <0x12000 0x1000>; 2788c2ecf20Sopenharmony_ci }; 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci lportal19: lac-portal@13000 { 2818c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2828c2ecf20Sopenharmony_ci fsl,liodn = <0x217>; 2838c2ecf20Sopenharmony_ci reg = <0x13000 0x1000>; 2848c2ecf20Sopenharmony_ci }; 2858c2ecf20Sopenharmony_ci 2868c2ecf20Sopenharmony_ci lportal20: lac-portal@14000 { 2878c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2888c2ecf20Sopenharmony_ci fsl,liodn = <0x218>; 2898c2ecf20Sopenharmony_ci reg = <0x14000 0x1000>; 2908c2ecf20Sopenharmony_ci }; 2918c2ecf20Sopenharmony_ci 2928c2ecf20Sopenharmony_ci lportal21: lac-portal@15000 { 2938c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 2948c2ecf20Sopenharmony_ci fsl,liodn = <0x219>; 2958c2ecf20Sopenharmony_ci reg = <0x15000 0x1000>; 2968c2ecf20Sopenharmony_ci }; 2978c2ecf20Sopenharmony_ci 2988c2ecf20Sopenharmony_ci lportal22: lac-portal@16000 { 2998c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 3008c2ecf20Sopenharmony_ci fsl,liodn = <0x21A>; 3018c2ecf20Sopenharmony_ci reg = <0x16000 0x1000>; 3028c2ecf20Sopenharmony_ci }; 3038c2ecf20Sopenharmony_ci 3048c2ecf20Sopenharmony_ci lportal23: lac-portal@17000 { 3058c2ecf20Sopenharmony_ci compatible = "fsl,interlaken-lac-portal-v1.0"; 3068c2ecf20Sopenharmony_ci fsl,liodn = <0x21B>; 3078c2ecf20Sopenharmony_ci reg = <0x17000 0x1000>; 3088c2ecf20Sopenharmony_ci }; 3098c2ecf20Sopenharmony_ci}; 310