cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

interlaken-lac.txt (8800B)


      1===============================================================================
      2Freescale Interlaken Look-Aside Controller Device Bindings
      3Copyright 2012 Freescale Semiconductor Inc.
      4
      5CONTENTS
      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==============================================================================
     13Interlaken Look-Aside Controller (LAC) Node
     14
     15DESCRIPTION
     16
     17The Interlaken is a narrow, high speed channelized chip-to-chip interface. To
     18facilitate interoperability between a data path device and a look-aside
     19co-processor, the Interlaken Look-Aside protocol is defined for short
     20transaction-related transfers. Although based on the Interlaken protocol,
     21Interlaken Look-Aside is not directly compatible with Interlaken and can be
     22considered a different operation mode.
     23
     24The Interlaken LA controller connects internal platform to Interlaken serial
     25interface. It accepts LA command through software portals, which are system
     26memory mapped 4KB spaces. The LA commands are then translated into the
     27Interlaken control words and data words, which are sent on TX side to TCAM
     28through SerDes lanes.
     29
     30There are two 4KiB spaces defined within the LAC global register memory map.
     31There is a full register set at 0x0000-0x0FFF (also known as the "hypervisor"
     32version), and a subset at 0x1000-0x1FFF.  The former is a superset of the
     33latter, and includes certain registers that should not be accessible to
     34partitioned software.  Separate nodes are used for each region, with a phandle
     35linking the hypervisor node to the normal operating node.
     36
     37PROPERTIES
     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
     75EXAMPLE
     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===============================================================================
     89Interlaken Look-Aside Controller (LAC) Software Portal Container Node
     90
     91DESCRIPTION
     92The Interlaken Look-Aside Controller (LAC) utilizes Software Portals to accept
     93Interlaken Look-Aside (ILA) commands. The Interlaken LAC software portal
     94memory map occupies 128KB of memory space. The software portal memory space is
     95intended to be cache-enabled. WIMG for each software space is required to be
     960010 if stashing is enabled; otherwise, WIMG can be 0000 or 0010.
     97
     98PROPERTIES
     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===============================================================================
    122Interlaken Look-Aside Controller (LAC) Software Portals Child Nodes
    123
    124DESCRIPTION
    125There are up to 24 available software portals with each software portal
    126requiring 4KB of consecutive memory within the software portal memory mapped
    127space.
    128
    129PROPERTIES
    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===============================================================================
    158EXAMPLE
    159
    160lac-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};