aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2018-08-09 11:10:41 -0400
committerTom Rini <trini@konsulko.com>2018-08-09 11:10:41 -0400
commitb243f41f12d63d35234b25949319837e318ff9e0 (patch)
treef1161e19e75eba5acf78341006609df07a4ac482 /doc
parent9d17682a57bcc290a2584d81a47537aa0b6b17c1 (diff)
parent41d7535cba42cd88f3b04f8fbd4409e5a479076f (diff)
downloadu-boot-b243f41f12d63d35234b25949319837e318ff9e0.zip
u-boot-b243f41f12d63d35234b25949319837e318ff9e0.tar.gz
u-boot-b243f41f12d63d35234b25949319837e318ff9e0.tar.bz2
Merge git://git.denx.de/u-boot-dm
Diffstat (limited to 'doc')
-rw-r--r--doc/driver-model/pci-info.txt28
1 files changed, 28 insertions, 0 deletions
diff --git a/doc/driver-model/pci-info.txt b/doc/driver-model/pci-info.txt
index 52b4389..e1701d1 100644
--- a/doc/driver-model/pci-info.txt
+++ b/doc/driver-model/pci-info.txt
@@ -133,3 +133,31 @@ When this bus is scanned we will end up with something like this:
When accesses go to the pci@1f,0 device they are forwarded to its child, the
emulator.
+
+The sandbox PCI drivers also support dynamic driver binding, allowing device
+driver to declare the driver binding information via U_BOOT_PCI_DEVICE(),
+eliminating the need to provide any device tree node under the host controller
+node. It is required a "sandbox,dev-info" property must be provided in the
+host controller node for this functionality to work.
+
+ pci1: pci-controller1 {
+ compatible = "sandbox,pci";
+ ...
+ sandbox,dev-info = <0x08 0x00 0x1234 0x5678
+ 0x0c 0x00 0x1234 0x5678>;
+ };
+
+The "sandbox,dev-info" property specifies all dynamic PCI devices on this bus.
+Each dynamic PCI device is encoded as 4 cells a group. The first and second
+cells are PCI device number and function number respectively. The third and
+fourth cells are PCI vendor ID and device ID respectively.
+
+When this bus is scanned we will end up with something like this:
+
+ pci [ + ] pci_sandbo |-- pci-controller1
+ pci_emul [ ] sandbox_sw | |-- sandbox_swap_case_emul
+ pci_emul [ ] sandbox_sw | `-- sandbox_swap_case_emul
+
+Note the difference from the statically declared device nodes is that the
+device is directly attached to the host controller, instead of via a container
+device like pci@1f,0.