<br><br><div class="gmail_quote">On Mon, Dec 15, 2008 at 4:15 PM, Corey Osgood <span dir="ltr"><<a href="mailto:corey.osgood@gmail.com">corey.osgood@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">On Mon, Dec 15, 2008 at 6:12 PM, Corey Osgood <span dir="ltr"><<a href="mailto:corey.osgood@gmail.com" target="_blank">corey.osgood@gmail.com</a>></span> wrote:<br></div><div class="gmail_quote">
<div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div>On Mon, Dec 15, 2008 at 5:25 PM, ron minnich <span dir="ltr"><<a href="mailto:rminnich@gmail.com" target="_blank">rminnich@gmail.com</a>></span> wrote:<br></div></div><div class="gmail_quote">
<div><div></div><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div>On Mon, Dec 15, 2008 at 9:24 AM, Myles Watson <<a href="mailto:mylesgw@gmail.com" target="_blank">mylesgw@gmail.com</a>> wrote:<br>
<br>
> I saw that you moved something from phase6_init to phase2.  I don't think<br>
> that's necessary.  My understanding is that only things that are necessary<br>
> to enable basic things like bus reading and writing should go there.<br>
<br>
</div>Yes, Myles is right: in general phase 2 is not needed, it is really<br>
there for pathological hardware ...<br></blockquote></div></div><div></div></div></blockquote></div></div></blockquote><div><br>Sorry.  I did misread it.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div>Ignore that part of the patch, I'm plugging at a couple other things at the moment. I think you're reading the patch wrong, nothing should be moved to phase2, some things are moved from phase2 to phase3_chip_setup (which is not called atm), others might be moved to phase6_init. My problem at the moment is the hang after pci_scan_bus with the error about being called for a PCI domain, which is the same way it's called in qemu. </div>

</div></blockquote></div><div><br>I thought pci_scan_bus() was causing the hang, but the PCI domain error doesn't actually do anything, pci_scan_bus just continues along happily.</div></div></blockquote><div><br>That's right.  It's not really an error.  It's a leftover from v2, when there was a bus device for every bus.  It's correct to call pci_scan_bus from a domain.<br>
 <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div class="Ih2E3d"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div class="gmail_quote"><div>I need to look at a qemu boot log to see where the next step should be, does anyone have one handy? I don't currently have QEMU set up.<br></div></div></blockquote></div></div><font color="#888888">
</font></blockquote></div><br>Here's a snippet from the log.  I think you're probably hanging in pci_probe_dev.  That's why I asked if anything needed to be set up before a PCI config read.<br><br>pci_get_dev gets the device structure from the tree<br>
pci_probe_dev actually talks to it on the bus.<br><br>Thanks,<br>Myles<br><br>Phase 3: Enumerating buses...<br>dev_phase3_scan: scanning root(Root Device)<br>scan_static_bus for root (Root Device)<br>cpus(CPU: 00) enabled<br>
domain_0(PCI_DOMAIN: 0000) enabled<br>domain_0(PCI_DOMAIN: 0000) scanning...<br>dev_phase3_scan: scanning domain_0(PCI_DOMAIN: 0000)<br>pci_domain_scan_bus: calling pci_scan_bus<br>pci_scan_bus start bus->dev domain_0 bus 0<br>
ERROR: pci_scan_bus called with incorrect bus->dev->path.type, path is PCI_DOMAIN: 0000<br>PCI: pci_scan_bus for bus 00<br>pci_scan_bus: old_devices domain_0_pci_0_0, dev for this bus domain_0<br>PCI: scan devfn 0x0 to 0xff<br>
PCI: devfn 0x0<br>pci_get_dev: list is NOT NULL, *list is NOT NULL<br>pci_get_dev: check dev domain_0_pci_0_0 <br>pci_get_dev: check dev domain_0_pci_0_0 it has devfn 0x00<br>PCI: pci_scan_bus pci_get_dev returns dev domain_0_pci_0_0<br>
set_pci_ops: dev domain_0_pci_0_0 already has ops of type 20504349<br>PCI: 00:00.0 [PCI: 8086:1237] enabled<br>PCI: pci_scan_bus pci_probe_dev returns dev domain_0_pci_0_0<br>Not a multi function device, or the device is not present. Skip to next device.<br>
PCI: devfn 0x8<br>pci_get_dev: list is NOT NULL, *list is NOT NULL<br>pci_get_dev: check dev domain_0_pci_1_0 <br>pci_get_dev: check dev domain_0_pci_1_0 it has devfn 0x08<br>PCI: pci_scan_bus pci_get_dev returns dev domain_0_pci_1_0<br>
set_pci_ops: dev domain_0_pci_1_0 already has ops of type 20504349<br>PCI: 00:01.0 [PCI: 8086:7000] enabled<br>PCI: pci_scan_bus pci_probe_dev returns dev domain_0_pci_1_0<br>