> Am 19.08.2009 18:18, schrieb Myles Watson: > > The problem is that they have bogus limits, not that they have no > > size. > A zero-sized resource with proper limits still fails. See: > > /* Is it already outside the limits? */ > if (res->size && (((res->base + res->size -1) < lim->base) || (res->base > > lim->limit))) > continue; You're right. It's obvious that I haven't been thinking about this much lately. So we can commit your patch that ignores fixed resources of size 0.
The example you gave in src/devices/pci_device.c was for the old way of specifying PCI ROM locations. Now that CBFS is going mainstream, that should disappear. If it doesn't, I think it should have a size. Even 1 would work, since no Option ROM can be smaller than that. What other fixed resources have 0 size, especially on Kontron? I'd like to fix the root cause. > A resource with size == 0 is never "outside the limits". The code after > these lines assumes that any resource that passes this test is inside > the limits. > > Even if you commit this fix, you should fix the incorrect > > limits. They are two different problems. > > > A fixed resource is supposed to have base+size=limit, with base and size > of the right alignment and granularity, right? No. limit = architectural limit. 0xffff or 0xffffffff usually. Thanks, Myles -- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

