mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 04:44:46 +00:00
dm: pci: Allow disabling auto-config for a device
Add a means to avoid configuring a device when needed. Add an explanation of why this is useful to the binding file. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
88307654af
commit
d8c7fb5036
2 changed files with 25 additions and 0 deletions
|
@ -10,6 +10,17 @@ Optional properties:
|
||||||
configuration in TPL/SPL to reduce code size and boot time, since these
|
configuration in TPL/SPL to reduce code size and boot time, since these
|
||||||
phases only know about a small subset of PCI devices.
|
phases only know about a small subset of PCI devices.
|
||||||
|
|
||||||
|
For PCI devices the following optional property is available:
|
||||||
|
|
||||||
|
- pci,no-autoconfig : Don't automatically configure this PCI device at all.
|
||||||
|
This is used when the device is statically configured and must maintain
|
||||||
|
this same config throughout the boot process. An example is a serial
|
||||||
|
UART being used to debug PCI configuration, since reconfiguring it stops
|
||||||
|
the UART from working until the driver is re-probed, and this can cause
|
||||||
|
output to be lost. This should not generally be used in production code,
|
||||||
|
although it is often harmless.
|
||||||
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
pci {
|
pci {
|
||||||
|
@ -21,4 +32,16 @@ pci {
|
||||||
0x42000000 0x0 0xb0000000 0xb0000000 0 0x10000000
|
0x42000000 0x0 0xb0000000 0xb0000000 0 0x10000000
|
||||||
0x01000000 0x0 0x1000 0x1000 0 0xefff>;
|
0x01000000 0x0 0x1000 0x1000 0 0xefff>;
|
||||||
u-boot,skip-auto-config-until-reloc;
|
u-boot,skip-auto-config-until-reloc;
|
||||||
|
|
||||||
|
|
||||||
|
serial: serial@18,2 {
|
||||||
|
reg = <0x0200c210 0 0 0 0>;
|
||||||
|
u-boot,dm-pre-reloc;
|
||||||
|
compatible = "intel,apl-ns16550";
|
||||||
|
early-regs = <0xde000000 0x20>;
|
||||||
|
reg-shift = <2>;
|
||||||
|
clock-frequency = <1843200>;
|
||||||
|
current-speed = <115200>;
|
||||||
|
pci,no-autoconfig;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -536,6 +536,8 @@ int pci_auto_config_devices(struct udevice *bus)
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
debug("%s: device %s\n", __func__, dev->name);
|
debug("%s: device %s\n", __func__, dev->name);
|
||||||
|
if (dev_read_bool(dev, "pci,no-autoconfig"))
|
||||||
|
continue;
|
||||||
ret = dm_pciauto_config_device(dev);
|
ret = dm_pciauto_config_device(dev);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Add table
Reference in a new issue