Simon Glass | 68e35a7 | 2019-12-06 21:41:37 -0700 | [diff] [blame] | 1 | x86 PCI DT details: |
| 2 | =================== |
| 3 | |
| 4 | Some options are available to affect how PCI operates on x86. |
| 5 | |
| 6 | Optional properties: |
| 7 | - u-boot,skip-auto-config-until-reloc : Don't set up PCI configuration until |
| 8 | after U-Boot has relocated. Normally if PCI is used before relocation, |
| 9 | this happens before relocation also. Some platforms set up static |
| 10 | configuration in TPL/SPL to reduce code size and boot time, since these |
| 11 | phases only know about a small subset of PCI devices. |
| 12 | |
Simon Glass | f3005fb | 2020-04-08 16:57:26 -0600 | [diff] [blame] | 13 | For PCI devices the following optional property is available: |
| 14 | |
| 15 | - pci,no-autoconfig : Don't automatically configure this PCI device at all. |
| 16 | This is used when the device is statically configured and must maintain |
| 17 | this same config throughout the boot process. An example is a serial |
| 18 | UART being used to debug PCI configuration, since reconfiguring it stops |
| 19 | the UART from working until the driver is re-probed, and this can cause |
| 20 | output to be lost. This should not generally be used in production code, |
| 21 | although it is often harmless. |
| 22 | |
Simon Glass | 8807a56 | 2021-06-27 17:50:57 -0600 | [diff] [blame] | 23 | - u-boot,pci-pre-reloc : List of vendor/device IDs to bind before relocation, even |
| 24 | if they are not bridges. This is useful if the device is needed (e.g. a |
| 25 | UART). The format is 0xvvvvdddd where d is the device ID and v is the |
| 26 | vendor ID. |
Simon Glass | f3005fb | 2020-04-08 16:57:26 -0600 | [diff] [blame] | 27 | |
Simon Glass | 68e35a7 | 2019-12-06 21:41:37 -0700 | [diff] [blame] | 28 | Example: |
| 29 | |
| 30 | pci { |
| 31 | compatible = "pci-x86"; |
| 32 | #address-cells = <3>; |
| 33 | #size-cells = <2>; |
Simon Glass | 07a8b62 | 2023-02-13 08:56:35 -0700 | [diff] [blame] | 34 | bootph-all; |
Simon Glass | 68e35a7 | 2019-12-06 21:41:37 -0700 | [diff] [blame] | 35 | ranges = <0x02000000 0x0 0xc0000000 0xc0000000 0 0x10000000 |
| 36 | 0x42000000 0x0 0xb0000000 0xb0000000 0 0x10000000 |
| 37 | 0x01000000 0x0 0x1000 0x1000 0 0xefff>; |
| 38 | u-boot,skip-auto-config-until-reloc; |
Simon Glass | 8807a56 | 2021-06-27 17:50:57 -0600 | [diff] [blame] | 39 | u-boot,pci-pre-reloc = < |
| 40 | PCI_VENDEV(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_APL_UART2)>; |
Simon Glass | f3005fb | 2020-04-08 16:57:26 -0600 | [diff] [blame] | 41 | |
| 42 | serial: serial@18,2 { |
| 43 | reg = <0x0200c210 0 0 0 0>; |
Simon Glass | 07a8b62 | 2023-02-13 08:56:35 -0700 | [diff] [blame] | 44 | bootph-all; |
Simon Glass | f3005fb | 2020-04-08 16:57:26 -0600 | [diff] [blame] | 45 | compatible = "intel,apl-ns16550"; |
| 46 | early-regs = <0xde000000 0x20>; |
| 47 | reg-shift = <2>; |
| 48 | clock-frequency = <1843200>; |
| 49 | current-speed = <115200>; |
| 50 | pci,no-autoconfig; |
| 51 | }; |
Simon Glass | 68e35a7 | 2019-12-06 21:41:37 -0700 | [diff] [blame] | 52 | }; |