diff options
Diffstat (limited to 'Documentation/devicetree/booting-without-of.txt')
-rw-r--r-- | Documentation/devicetree/booting-without-of.txt | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Documentation/devicetree/booting-without-of.txt b/Documentation/devicetree/booting-without-of.txt index 1f013bd0d320..77685185cf3b 100644 --- a/Documentation/devicetree/booting-without-of.txt +++ b/Documentation/devicetree/booting-without-of.txt | |||
@@ -51,6 +51,8 @@ Table of Contents | |||
51 | 51 | ||
52 | VIII - Specifying device power management information (sleep property) | 52 | VIII - Specifying device power management information (sleep property) |
53 | 53 | ||
54 | IX - Specifying dma bus information | ||
55 | |||
54 | Appendix A - Sample SOC node for MPC8540 | 56 | Appendix A - Sample SOC node for MPC8540 |
55 | 57 | ||
56 | 58 | ||
@@ -1332,6 +1334,57 @@ reasonably grouped in this manner, then create a virtual sleep controller | |||
1332 | (similar to an interrupt nexus, except that defining a standardized | 1334 | (similar to an interrupt nexus, except that defining a standardized |
1333 | sleep-map should wait until its necessity is demonstrated). | 1335 | sleep-map should wait until its necessity is demonstrated). |
1334 | 1336 | ||
1337 | IX - Specifying dma bus information | ||
1338 | |||
1339 | Some devices may have DMA memory range shifted relatively to the beginning of | ||
1340 | RAM, or even placed outside of kernel RAM. For example, the Keystone 2 SoC | ||
1341 | worked in LPAE mode with 4G memory has: | ||
1342 | - RAM range: [0x8 0000 0000, 0x8 FFFF FFFF] | ||
1343 | - DMA range: [ 0x8000 0000, 0xFFFF FFFF] | ||
1344 | and DMA range is aliased into first 2G of RAM in HW. | ||
1345 | |||
1346 | In such cases, DMA addresses translation should be performed between CPU phys | ||
1347 | and DMA addresses. The "dma-ranges" property is intended to be used | ||
1348 | for describing the configuration of such system in DT. | ||
1349 | |||
1350 | In addition, each DMA master device on the DMA bus may or may not support | ||
1351 | coherent DMA operations. The "dma-coherent" property is intended to be used | ||
1352 | for identifying devices supported coherent DMA operations in DT. | ||
1353 | |||
1354 | * DMA Bus master | ||
1355 | Optional property: | ||
1356 | - dma-ranges: <prop-encoded-array> encoded as arbitrary number of triplets of | ||
1357 | (child-bus-address, parent-bus-address, length). Each triplet specified | ||
1358 | describes a contiguous DMA address range. | ||
1359 | The dma-ranges property is used to describe the direct memory access (DMA) | ||
1360 | structure of a memory-mapped bus whose device tree parent can be accessed | ||
1361 | from DMA operations originating from the bus. It provides a means of | ||
1362 | defining a mapping or translation between the physical address space of | ||
1363 | the bus and the physical address space of the parent of the bus. | ||
1364 | (for more information see ePAPR specification) | ||
1365 | |||
1366 | * DMA Bus child | ||
1367 | Optional property: | ||
1368 | - dma-ranges: <empty> value. if present - It means that DMA addresses | ||
1369 | translation has to be enabled for this device. | ||
1370 | - dma-coherent: Present if dma operations are coherent | ||
1371 | |||
1372 | Example: | ||
1373 | soc { | ||
1374 | compatible = "ti,keystone","simple-bus"; | ||
1375 | ranges = <0x0 0x0 0x0 0xc0000000>; | ||
1376 | dma-ranges = <0x80000000 0x8 0x00000000 0x80000000>; | ||
1377 | |||
1378 | [...] | ||
1379 | |||
1380 | usb: usb@2680000 { | ||
1381 | compatible = "ti,keystone-dwc3"; | ||
1382 | |||
1383 | [...] | ||
1384 | dma-coherent; | ||
1385 | }; | ||
1386 | }; | ||
1387 | |||
1335 | Appendix A - Sample SOC node for MPC8540 | 1388 | Appendix A - Sample SOC node for MPC8540 |
1336 | ======================================== | 1389 | ======================================== |
1337 | 1390 | ||