diff options
author | Tom Rini <trini@konsulko.com> | 2018-08-09 11:10:41 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2018-08-09 11:10:41 -0400 |
commit | b243f41f12d63d35234b25949319837e318ff9e0 (patch) | |
tree | f1161e19e75eba5acf78341006609df07a4ac482 /doc | |
parent | 9d17682a57bcc290a2584d81a47537aa0b6b17c1 (diff) | |
parent | 41d7535cba42cd88f3b04f8fbd4409e5a479076f (diff) | |
download | u-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.txt | 28 |
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. |