title: who and when to assign PCI/PCIe device BARs base address?
body: <p>I'm looking for how kernel to do PCI/PCIe enumeration and BAR assigning.</p>
  
  <p>I thought that kernel will assign PCI base addresses of BAR when start-up, but when I tried pci earlydump (before kernel initial PCI subsystem) to see the BARs valuse, I found all base addresses are already assigned !? Does it mean that BIOS do PCI/PCIe enumeration and BAR assigning? How BIOS know each pci devices base addresses and assign these without conflict?</p>
  
  <p>And if so, how the embedded system(without BIOS ) to enumerate and assign base address for PCI/PCIe devices?</p>
  
  <p>By the way, my PC is Ubuntu 14.04.1 LTS (x86_64)</p>