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

data-node-references.rst (2902B)


      1.. SPDX-License-Identifier: GPL-2.0
      2.. include:: <isonum.txt>
      3
      4===================================
      5Referencing hierarchical data nodes
      6===================================
      7
      8:Copyright: |copy| 2018, 2021 Intel Corporation
      9:Author: Sakari Ailus <sakari.ailus@linux.intel.com>
     10
     11ACPI in general allows referring to device objects in the tree only.
     12Hierarchical data extension nodes may not be referred to directly, hence this
     13document defines a scheme to implement such references.
     14
     15A reference consist of the device object name followed by one or more
     16hierarchical data extension [dsd-guide] keys. Specifically, the hierarchical
     17data extension node which is referred to by the key shall lie directly under
     18the parent object i.e. either the device object or another hierarchical data
     19extension node.
     20
     21The keys in the hierarchical data nodes shall consist of the name of the node,
     22"@" character and the number of the node in hexadecimal notation (without pre-
     23or postfixes). The same ACPI object shall include the _DSD property extension
     24with a property "reg" that shall have the same numerical value as the number of
     25the node.
     26
     27In case a hierarchical data extensions node has no numerical value, then the
     28"reg" property shall be omitted from the ACPI object's _DSD properties and the
     29"@" character and the number shall be omitted from the hierarchical data
     30extension key.
     31
     32
     33Example
     34=======
     35
     36In the ASL snippet below, the "reference" _DSD property contains a
     37device object reference to DEV0 and under that device object, a
     38hierarchical data extension key "node@1" referring to the NOD1 object
     39and lastly, a hierarchical data extension key "anothernode" referring to
     40the ANOD object which is also the final target node of the reference.
     41::
     42
     43	Device (DEV0)
     44	{
     45	    Name (_DSD, Package () {
     46		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
     47		Package () {
     48		    Package () { "node@0", "NOD0" },
     49		    Package () { "node@1", "NOD1" },
     50		}
     51	    })
     52	    Name (NOD0, Package() {
     53		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
     54		Package () {
     55		    Package () { "reg", 0 },
     56		    Package () { "random-property", 3 },
     57		}
     58	    })
     59	    Name (NOD1, Package() {
     60		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
     61		Package () {
     62		    Package () { "reg", 1 },
     63		    Package () { "anothernode", "ANOD" },
     64		}
     65	    })
     66	    Name (ANOD, Package() {
     67		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
     68		Package () {
     69		    Package () { "random-property", 0 },
     70		}
     71	    })
     72	}
     73
     74	Device (DEV1)
     75	{
     76	    Name (_DSD, Package () {
     77		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
     78		Package () {
     79		    Package () {
     80			"reference", Package () {
     81			    ^DEV0, "node@1", "anothernode"
     82			}
     83		    },
     84		}
     85	    })
     86	}
     87
     88Please also see a graph example in
     89Documentation/firmware-guide/acpi/dsd/graph.rst.
     90
     91References
     92==========
     93
     94[dsd-guide] DSD Guide.
     95    https://github.com/UEFI/DSD-Guide/blob/main/dsd-guide.adoc, referenced
     96    2021-11-30.