summaryrefslogtreecommitdiffstats
path: root/Documentation/acpi/dsd/data-node-references.txt
blob: 00c3b5fe1f2ef686ac956f21959cb14d883eeb83 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
Copyright (C) 2018 Intel Corporation
Author: Sakari Ailus <sakari.ailus@linux.intel.com>


Referencing hierarchical data nodes
-----------------------------------

ACPI in general allows referring to device objects in the tree only.
Hierarchical data extension nodes may not be referred to directly, hence this
document defines a scheme to implement such references.

A reference consist of the device object name followed by one or more
hierarchical data extension [1] keys. Specifically, the hierarchical data
extension node which is referred to by the key shall lie directly under the
parent object i.e. either the device object or another hierarchical data
extension node.

Example
-------

	In the ASL snippet below, the "reference" _DSD property [2] contains a
	device object reference to DEV0 and under that device object, a
	hierarchical data extension key "node" referring to the NODE object and
	lastly, a hierarchical data extension key "anothernode" referring to the
	ANOD object which is also the final target of the reference.

	Device (DEV0)
	{
	    Name (_DSD, Package () {
		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
		Package () {
		    Package () { "node", NODE },
		}
	    })
	    Name (NODE, Package() {
		ToUUID("dbb8e3e6-5886-4ba6-8795-1319f52a966b"),
		Package () {
		    Package () { "anothernode", ANOD },
		}
	    })
	    Name (ANOD, Package() {
		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
		Package () {
		    Package () { "random-property", 0 },
		}
	    })
	}

	Device (DEV1)
	{
	    Name (_DSD, Package () {
		ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
		Package () {
		    Package () { "reference", ^DEV0, "node", "anothernode" },
		}
	    })
	}


References
----------

[1] Hierarchical Data Extension UUID For _DSD.
    <URL:http://www.uefi.org/sites/default/files/resources/_DSD-hierarchical-data-extension-UUID-v1.1.pdf>,
    referenced 2018-07-17.

[2] Device Properties UUID For _DSD.
    <URL:http://www.uefi.org/sites/default/files/resources/_DSD-device-properties-UUID.pdf>,
    referenced 2016-10-04.