[coreboot] [PATCH] Auto-pick working PCI ops if none are set

Carl-Daniel Hailfinger c-d.hailfinger.devel.2006 at gmx.net
Tue Sep 22 02:12:25 CEST 2009

On 28.08.2009 01:28, Carl-Daniel Hailfinger wrote:
> Until r4340, any usage of pci_{read,write}_config{8,16,32} in
> coreboot_ram before the device tree was set up resulted in either a
> silent hang or a NULL pointer dereference. I changed the code in r4340
> to die() properly with a loud error message. That still was not perfect,
> but at least it allowed people to see why their new ports died.
> Still, die() is not something developers like to see, and thus a patch
> to automatically pick a sensible default instead of dying was created.
> Of course, handling PCI access method selection automatically for
> fallback purposes has certain limitations before the device tree is set
> up. We only check if conf1 works and use conf2 as fallback. No further
> tests are done.
> This patch enables cleanups and readability improvements in early
> coreboot_ram code:
> Without this patch:
> dword = pci_cf8_conf1.read32(&pbus, sm_dev->bus->secondary,
> sm_dev->path.pci.devfn, 0x64);
> With this patch:
> dword = pci_read_config32(sm_dev, 0x64);
> The advantage is obvious.
> Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>

Peter asked for a short summary what the patch does. This it it:
If no pci access method has been set for the device tree so far (e.g.
during early coreboot_ram), pci_{read,write}_config{8,16,32} will die().
This patch changes pci_{read,write}_config{8,16,32} to use the existing
PCI access method autodetection infrastructure instead of die()ing.

Acked-by: Peter Stuge <peter at stuge.se>

and committed in r4646.



More information about the coreboot mailing list