blob: e6d4b375353cea11a9f5482693bb9aeeaacbd408 [file] [log] [blame]
Simon Glass68e35a72019-12-06 21:41:37 -07001x86 PCI DT details:
2===================
3
4Some options are available to affect how PCI operates on x86.
5
6Optional 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 Glassf3005fb2020-04-08 16:57:26 -060013For 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 Glass8807a562021-06-27 17:50:57 -060023- 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 Glassf3005fb2020-04-08 16:57:26 -060027
Simon Glass68e35a72019-12-06 21:41:37 -070028Example:
29
30pci {
31 compatible = "pci-x86";
32 #address-cells = <3>;
33 #size-cells = <2>;
Simon Glass07a8b622023-02-13 08:56:35 -070034 bootph-all;
Simon Glass68e35a72019-12-06 21:41:37 -070035 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 Glass8807a562021-06-27 17:50:57 -060039 u-boot,pci-pre-reloc = <
40 PCI_VENDEV(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_APL_UART2)>;
Simon Glassf3005fb2020-04-08 16:57:26 -060041
42 serial: serial@18,2 {
43 reg = <0x0200c210 0 0 0 0>;
Simon Glass07a8b622023-02-13 08:56:35 -070044 bootph-all;
Simon Glassf3005fb2020-04-08 16:57:26 -060045 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 Glass68e35a72019-12-06 21:41:37 -070052};