PCI to PCI Bridge initialization fails or is corrupted

Kurt Jaeger lists at c0mplx.org
Fri Sep 28 11:13:18 PDT 2007


Hi!

> If somebody could point out to me where the prefetch decode
> occurs in the code, this would be a big help.

I assume you have

sys/dev/pci/pci_pci.c, version 1.49

http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/pci/pci_pci.c?rev=1.49;content-type=text%2Fplain

In line 183f, sc->pmembase is set:

	sc->pmembase  = PCI_PPBMEMBASE(pci_read_config(dev, PCIR_PMBASEH_1, 4),
            pci_read_config(dev, PCIR_PMBASEL_1, 2));

and if sc->pmembase is set, the function call to pcib_is_prefetch_open()
leads to the result you are looking for in line 267:

        if (pcib_is_prefetch_open(sc)) 
            device_printf(dev, "  prefetched decode 0x%jx-0x%jx\n",
              (uintmax_t)sc->pmembase, (uintmax_t)sc->pmemlimit);

But why the pci_read_config() returns something different, I do not know.

-- 
pi at c0mplx.org           +49 171 3101372                        13 years to go !


More information about the freebsd-current mailing list