mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
dm: pci: Allow delaying auto-config until after relocation
At present PCI auto-configuration happens in U-Boot both before and after relocation. This is a waste of time and may mess up static addresses used in board_init_f(). Adjust the code to supporting doing auto-configuration once, after relocation, under control of a device-tree property. This is needed for Apollo Lake for debugging the silicon-init code. Once the UART is moved to a different MMIO address the debug UART does not work and any debug output in Apollo Lake's arch_fsp_init_r() causes a hang. Signed-off-by: Simon Glass <sjg@chromium.org> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
@@ -571,15 +571,22 @@ extern void pci_cfgfunc_config_device(struct pci_controller* hose, pci_dev_t dev
|
||||
|
||||
#define INDIRECT_TYPE_NO_PCIE_LINK 1
|
||||
|
||||
/*
|
||||
/**
|
||||
* Structure of a PCI controller (host bridge)
|
||||
*
|
||||
* With driver model this is dev_get_uclass_priv(bus)
|
||||
*
|
||||
* @skip_auto_config_until_reloc: true to avoid auto-config until U-Boot has
|
||||
* relocated. Normally if PCI is used before relocation, this happens
|
||||
* before relocation also. Some platforms set up static configuration in
|
||||
* TPL/SPL to reduce code size and boot time, since these phases only know
|
||||
* about a small subset of PCI devices. This is normally false.
|
||||
*/
|
||||
struct pci_controller {
|
||||
#ifdef CONFIG_DM_PCI
|
||||
struct udevice *bus;
|
||||
struct udevice *ctlr;
|
||||
bool skip_auto_config_until_reloc;
|
||||
#else
|
||||
struct pci_controller *next;
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user