diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-02 17:27:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-02 17:27:15 -0400 |
commit | b9f2b21a32906a47c220b5167b88869f2c90f1c4 (patch) | |
tree | 96416cec877f9c1f2ee0f0ccdee64e38cc8e0683 /Documentation | |
parent | 70f6c087573eeb406252ff8d98f511eb5f71496e (diff) | |
parent | a0e7398357f297dd22d043fb2d5aa1c44d61ca10 (diff) |
Merge tag 'dt-for-linus' of git://git.secretlab.ca/git/linux
Pull devicetree changes from Grant Likely:
"Updates to devicetree core code. This branch contains the following
notable changes:
- add reserved memory binding
- make struct device_node a kobject and remove legacy
/proc/device-tree
- ePAPR conformance fixes
- update in-kernel DTC copy to version v1.4.0
- preparatory changes for dynamic device tree overlays
- minor bug fixes and documentation changes
The most significant change in this branch is the conversion of struct
device_node to be a kobject that is exposed via sysfs and removal of
the old /proc/device-tree code. This simplifies the device tree
handling code and tightens up the lifecycle on device tree nodes.
[updated: added fix for dangling select PROC_DEVICETREE]"
* tag 'dt-for-linus' of git://git.secretlab.ca/git/linux: (29 commits)
dt: Remove dangling "select PROC_DEVICETREE"
of: Add support for ePAPR "stdout-path" property
of: device_node kobject lifecycle fixes
of: only scan for reserved mem when fdt present
powerpc: add support for reserved memory defined by device tree
arm64: add support for reserved memory defined by device tree
of: add missing major vendors
of: add vendor prefix for SMSC
of: remove /proc/device-tree
of/selftest: Add self tests for manipulation of properties
of: Make device nodes kobjects so they show up in sysfs
arm: add support for reserved memory defined by device tree
drivers: of: add support for custom reserved memory drivers
drivers: of: add initialization code for dynamic reserved memory
drivers: of: add initialization code for static reserved memory
of: document bindings for reserved-memory nodes
Revert "of: fix of_update_property()"
kbuild: dtbs_install: new make target
ARM: mvebu: Allows to get the SoC ID even without PCI enabled
of: Allows to use the PCI translator without the PCI core
...
Diffstat (limited to 'Documentation')
3 files changed, 178 insertions, 0 deletions
diff --git a/Documentation/ABI/testing/sysfs-firmware-ofw b/Documentation/ABI/testing/sysfs-firmware-ofw new file mode 100644 index 000000000000..f562b188e71d --- /dev/null +++ b/Documentation/ABI/testing/sysfs-firmware-ofw | |||
@@ -0,0 +1,28 @@ | |||
1 | What: /sys/firmware/devicetree/* | ||
2 | Date: November 2013 | ||
3 | Contact: Grant Likely <grant.likely@linaro.org> | ||
4 | Description: | ||
5 | When using OpenFirmware or a Flattened Device Tree to enumerate | ||
6 | hardware, the device tree structure will be exposed in this | ||
7 | directory. | ||
8 | |||
9 | It is possible for multiple device-tree directories to exist. | ||
10 | Some device drivers use a separate detached device tree which | ||
11 | have no attachment to the system tree and will appear in a | ||
12 | different subdirectory under /sys/firmware/devicetree. | ||
13 | |||
14 | Userspace must not use the /sys/firmware/devicetree/base | ||
15 | path directly, but instead should follow /proc/device-tree | ||
16 | symlink. It is possible that the absolute path will change | ||
17 | in the future, but the symlink is the stable ABI. | ||
18 | |||
19 | The /proc/device-tree symlink replaces the devicetree /proc | ||
20 | filesystem support, and has largely the same semantics and | ||
21 | should be compatible with existing userspace. | ||
22 | |||
23 | The contents of /sys/firmware/devicetree/ is a | ||
24 | hierarchy of directories, one per device tree node. The | ||
25 | directory name is the resolved path component name (node | ||
26 | name plus address). Properties are represented as files | ||
27 | in the directory. The contents of each file is the exact | ||
28 | binary data from the device tree. | ||
diff --git a/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt new file mode 100644 index 000000000000..3da0ebdba8d9 --- /dev/null +++ b/Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt | |||
@@ -0,0 +1,133 @@ | |||
1 | *** Reserved memory regions *** | ||
2 | |||
3 | Reserved memory is specified as a node under the /reserved-memory node. | ||
4 | The operating system shall exclude reserved memory from normal usage | ||
5 | one can create child nodes describing particular reserved (excluded from | ||
6 | normal use) memory regions. Such memory regions are usually designed for | ||
7 | the special usage by various device drivers. | ||
8 | |||
9 | Parameters for each memory region can be encoded into the device tree | ||
10 | with the following nodes: | ||
11 | |||
12 | /reserved-memory node | ||
13 | --------------------- | ||
14 | #address-cells, #size-cells (required) - standard definition | ||
15 | - Should use the same values as the root node | ||
16 | ranges (required) - standard definition | ||
17 | - Should be empty | ||
18 | |||
19 | /reserved-memory/ child nodes | ||
20 | ----------------------------- | ||
21 | Each child of the reserved-memory node specifies one or more regions of | ||
22 | reserved memory. Each child node may either use a 'reg' property to | ||
23 | specify a specific range of reserved memory, or a 'size' property with | ||
24 | optional constraints to request a dynamically allocated block of memory. | ||
25 | |||
26 | Following the generic-names recommended practice, node names should | ||
27 | reflect the purpose of the node (ie. "framebuffer" or "dma-pool"). Unit | ||
28 | address (@<address>) should be appended to the name if the node is a | ||
29 | static allocation. | ||
30 | |||
31 | Properties: | ||
32 | Requires either a) or b) below. | ||
33 | a) static allocation | ||
34 | reg (required) - standard definition | ||
35 | b) dynamic allocation | ||
36 | size (required) - length based on parent's #size-cells | ||
37 | - Size in bytes of memory to reserve. | ||
38 | alignment (optional) - length based on parent's #size-cells | ||
39 | - Address boundary for alignment of allocation. | ||
40 | alloc-ranges (optional) - prop-encoded-array (address, length pairs). | ||
41 | - Specifies regions of memory that are | ||
42 | acceptable to allocate from. | ||
43 | |||
44 | If both reg and size are present, then the reg property takes precedence | ||
45 | and size is ignored. | ||
46 | |||
47 | Additional properties: | ||
48 | compatible (optional) - standard definition | ||
49 | - may contain the following strings: | ||
50 | - shared-dma-pool: This indicates a region of memory meant to be | ||
51 | used as a shared pool of DMA buffers for a set of devices. It can | ||
52 | be used by an operating system to instanciate the necessary pool | ||
53 | management subsystem if necessary. | ||
54 | - vendor specific string in the form <vendor>,[<device>-]<usage> | ||
55 | no-map (optional) - empty property | ||
56 | - Indicates the operating system must not create a virtual mapping | ||
57 | of the region as part of its standard mapping of system memory, | ||
58 | nor permit speculative access to it under any circumstances other | ||
59 | than under the control of the device driver using the region. | ||
60 | reusable (optional) - empty property | ||
61 | - The operating system can use the memory in this region with the | ||
62 | limitation that the device driver(s) owning the region need to be | ||
63 | able to reclaim it back. Typically that means that the operating | ||
64 | system can use that region to store volatile or cached data that | ||
65 | can be otherwise regenerated or migrated elsewhere. | ||
66 | |||
67 | Linux implementation note: | ||
68 | - If a "linux,cma-default" property is present, then Linux will use the | ||
69 | region for the default pool of the contiguous memory allocator. | ||
70 | |||
71 | Device node references to reserved memory | ||
72 | ----------------------------------------- | ||
73 | Regions in the /reserved-memory node may be referenced by other device | ||
74 | nodes by adding a memory-region property to the device node. | ||
75 | |||
76 | memory-region (optional) - phandle, specifier pairs to children of /reserved-memory | ||
77 | |||
78 | Example | ||
79 | ------- | ||
80 | This example defines 3 contiguous regions are defined for Linux kernel: | ||
81 | one default of all device drivers (named linux,cma@72000000 and 64MiB in size), | ||
82 | one dedicated to the framebuffer device (named framebuffer@78000000, 8MiB), and | ||
83 | one for multimedia processing (named multimedia-memory@77000000, 64MiB). | ||
84 | |||
85 | / { | ||
86 | #address-cells = <1>; | ||
87 | #size-cells = <1>; | ||
88 | |||
89 | memory { | ||
90 | reg = <0x40000000 0x40000000>; | ||
91 | }; | ||
92 | |||
93 | reserved-memory { | ||
94 | #address-cells = <1>; | ||
95 | #size-cells = <1>; | ||
96 | ranges; | ||
97 | |||
98 | /* global autoconfigured region for contiguous allocations */ | ||
99 | linux,cma { | ||
100 | compatible = "shared-dma-pool"; | ||
101 | reusable; | ||
102 | size = <0x4000000>; | ||
103 | alignment = <0x2000>; | ||
104 | linux,cma-default; | ||
105 | }; | ||
106 | |||
107 | display_reserved: framebuffer@78000000 { | ||
108 | reg = <0x78000000 0x800000>; | ||
109 | }; | ||
110 | |||
111 | multimedia_reserved: multimedia@77000000 { | ||
112 | compatible = "acme,multimedia-memory"; | ||
113 | reg = <0x77000000 0x4000000>; | ||
114 | }; | ||
115 | }; | ||
116 | |||
117 | /* ... */ | ||
118 | |||
119 | fb0: video@12300000 { | ||
120 | memory-region = <&display_reserved>; | ||
121 | /* ... */ | ||
122 | }; | ||
123 | |||
124 | scaler: scaler@12500000 { | ||
125 | memory-region = <&multimedia_reserved>; | ||
126 | /* ... */ | ||
127 | }; | ||
128 | |||
129 | codec: codec@12600000 { | ||
130 | memory-region = <&multimedia_reserved>; | ||
131 | /* ... */ | ||
132 | }; | ||
133 | }; | ||
diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index 40ce2df0e0e9..95465d57eb31 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt | |||
@@ -3,6 +3,7 @@ Device tree binding vendor prefix registry. Keep list in alphabetical order. | |||
3 | This isn't an exhaustive list, but you should add new prefixes to it before | 3 | This isn't an exhaustive list, but you should add new prefixes to it before |
4 | using them to avoid name-space collisions. | 4 | using them to avoid name-space collisions. |
5 | 5 | ||
6 | abilis Abilis Systems | ||
6 | active-semi Active-Semi International Inc | 7 | active-semi Active-Semi International Inc |
7 | ad Avionic Design GmbH | 8 | ad Avionic Design GmbH |
8 | adi Analog Devices, Inc. | 9 | adi Analog Devices, Inc. |
@@ -11,14 +12,17 @@ ak Asahi Kasei Corp. | |||
11 | allwinner Allwinner Technology Co., Ltd. | 12 | allwinner Allwinner Technology Co., Ltd. |
12 | altr Altera Corp. | 13 | altr Altera Corp. |
13 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) | 14 | amcc Applied Micro Circuits Corporation (APM, formally AMCC) |
15 | amd Advanced Micro Devices (AMD), Inc. | ||
14 | amstaos AMS-Taos Inc. | 16 | amstaos AMS-Taos Inc. |
15 | apm Applied Micro Circuits Corporation (APM) | 17 | apm Applied Micro Circuits Corporation (APM) |
16 | arm ARM Ltd. | 18 | arm ARM Ltd. |
19 | armadeus ARMadeus Systems SARL | ||
17 | atmel Atmel Corporation | 20 | atmel Atmel Corporation |
18 | auo AU Optronics Corporation | 21 | auo AU Optronics Corporation |
19 | avago Avago Technologies | 22 | avago Avago Technologies |
20 | bosch Bosch Sensortec GmbH | 23 | bosch Bosch Sensortec GmbH |
21 | brcm Broadcom Corporation | 24 | brcm Broadcom Corporation |
25 | calxeda Calxeda | ||
22 | capella Capella Microsystems, Inc | 26 | capella Capella Microsystems, Inc |
23 | cavium Cavium, Inc. | 27 | cavium Cavium, Inc. |
24 | cdns Cadence Design Systems Inc. | 28 | cdns Cadence Design Systems Inc. |
@@ -26,8 +30,10 @@ chrp Common Hardware Reference Platform | |||
26 | chunghwa Chunghwa Picture Tubes Ltd. | 30 | chunghwa Chunghwa Picture Tubes Ltd. |
27 | cirrus Cirrus Logic, Inc. | 31 | cirrus Cirrus Logic, Inc. |
28 | cortina Cortina Systems, Inc. | 32 | cortina Cortina Systems, Inc. |
33 | crystalfontz Crystalfontz America, Inc. | ||
29 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) | 34 | dallas Maxim Integrated Products (formerly Dallas Semiconductor) |
30 | davicom DAVICOM Semiconductor, Inc. | 35 | davicom DAVICOM Semiconductor, Inc. |
36 | dlink D-Link Systems, Inc. | ||
31 | denx Denx Software Engineering | 37 | denx Denx Software Engineering |
32 | edt Emerging Display Technologies | 38 | edt Emerging Display Technologies |
33 | emmicro EM Microelectronic | 39 | emmicro EM Microelectronic |
@@ -37,7 +43,9 @@ est ESTeem Wireless Modems | |||
37 | fsl Freescale Semiconductor | 43 | fsl Freescale Semiconductor |
38 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 44 | GEFanuc GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
39 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. | 45 | gef GE Fanuc Intelligent Platforms Embedded Systems, Inc. |
46 | globalscale Globalscale Technologies, Inc. | ||
40 | gmt Global Mixed-mode Technology, Inc. | 47 | gmt Global Mixed-mode Technology, Inc. |
48 | google Google, Inc. | ||
41 | gumstix Gumstix, Inc. | 49 | gumstix Gumstix, Inc. |
42 | haoyu Haoyu Microelectronic Co. Ltd. | 50 | haoyu Haoyu Microelectronic Co. Ltd. |
43 | hisilicon Hisilicon Limited. | 51 | hisilicon Hisilicon Limited. |
@@ -46,9 +54,12 @@ hp Hewlett Packard | |||
46 | ibm International Business Machines (IBM) | 54 | ibm International Business Machines (IBM) |
47 | idt Integrated Device Technologies, Inc. | 55 | idt Integrated Device Technologies, Inc. |
48 | img Imagination Technologies Ltd. | 56 | img Imagination Technologies Ltd. |
57 | intel Intel Corporation | ||
49 | intercontrol Inter Control Group | 58 | intercontrol Inter Control Group |
50 | isl Intersil | 59 | isl Intersil |
51 | karo Ka-Ro electronics GmbH | 60 | karo Ka-Ro electronics GmbH |
61 | lacie LaCie | ||
62 | lantiq Lantiq Semiconductor | ||
52 | lg LG Corporation | 63 | lg LG Corporation |
53 | linux Linux-specific binding | 64 | linux Linux-specific binding |
54 | lsi LSI Corp. (LSI Logic) | 65 | lsi LSI Corp. (LSI Logic) |
@@ -56,12 +67,16 @@ marvell Marvell Technology Group Ltd. | |||
56 | maxim Maxim Integrated Products | 67 | maxim Maxim Integrated Products |
57 | microchip Microchip Technology Inc. | 68 | microchip Microchip Technology Inc. |
58 | mosaixtech Mosaix Technologies, Inc. | 69 | mosaixtech Mosaix Technologies, Inc. |
70 | moxa Moxa | ||
59 | national National Semiconductor | 71 | national National Semiconductor |
60 | neonode Neonode Inc. | 72 | neonode Neonode Inc. |
73 | netgear NETGEAR | ||
61 | nintendo Nintendo | 74 | nintendo Nintendo |
75 | nokia Nokia | ||
62 | nvidia NVIDIA | 76 | nvidia NVIDIA |
63 | nxp NXP Semiconductors | 77 | nxp NXP Semiconductors |
64 | onnn ON Semiconductor Corp. | 78 | onnn ON Semiconductor Corp. |
79 | opencores OpenCores.org | ||
65 | panasonic Panasonic Corporation | 80 | panasonic Panasonic Corporation |
66 | phytec PHYTEC Messtechnik GmbH | 81 | phytec PHYTEC Messtechnik GmbH |
67 | picochip Picochip Ltd | 82 | picochip Picochip Ltd |
@@ -80,6 +95,7 @@ sil Silicon Image | |||
80 | silabs Silicon Laboratories | 95 | silabs Silicon Laboratories |
81 | simtek | 96 | simtek |
82 | sirf SiRF Technology, Inc. | 97 | sirf SiRF Technology, Inc. |
98 | smsc Standard Microsystems Corporation | ||
83 | snps Synopsys, Inc. | 99 | snps Synopsys, Inc. |
84 | spansion Spansion Inc. | 100 | spansion Spansion Inc. |
85 | st STMicroelectronics | 101 | st STMicroelectronics |
@@ -94,4 +110,5 @@ via VIA Technologies, Inc. | |||
94 | winbond Winbond Electronics corp. | 110 | winbond Winbond Electronics corp. |
95 | wlf Wolfson Microelectronics | 111 | wlf Wolfson Microelectronics |
96 | wm Wondermedia Technologies, Inc. | 112 | wm Wondermedia Technologies, Inc. |
113 | xes Extreme Engineering Solutions (X-ES) | ||
97 | xlnx Xilinx | 114 | xlnx Xilinx |