[coreboot] pci device memory allocation problem

joe at settoplinux.org joe at settoplinux.org
Wed Apr 23 13:53:59 CEST 2008


>Doing it this way is better: first assign align value to be at least
>of min_align then compare align with bridge->align to see if
>bridge->align needs updated.
>... ...
>	while((dev = largest_resource(bus, &resource, type_mask, type))) {
>		resource_t size;
>		/* Do NOT I repeat do not ignore resources which have zero size.
>		 * If they need to be ignored dev->read_resources should not even
>		 * return them.   Some resources must be set even when they have
>		 * no size.  PCI bridge resources are a good example of this.
>		 */
>		/* Make certain we are dealing with a good minimum size */
>		size = resource->size;
>		align = resource->align;
>		if (align < min_align) {
>			align = min_align;
>		}
>
>		/* Propogate the resource alignment to the bridge register  */
>		if (align > bridge->align) {
>			bridge->align = align;
>		}
>
>
>		if (resource->flags & IORESOURCE_FIXED) {
>			continue;
>		}
>... ...
>
I noticed this problem, if certian devices are disabled (like onboard vga for example). The other enabled devices try to use 0xfec00000 for memory allocation, causing APIC to fail. I think the above code looks good :-)
Have you done up a patch?



-- 
Thanks,
Joseph Smith
Set-Top-Linux
www.settoplinux.org




More information about the coreboot mailing list