[coreboot] Resource Allocation discussion

Rudolf Marek r.marek at assembler.cz
Tue Dec 2 15:56:06 CET 2008


> ------- From k8t890_traf_ctrl.c ------
> 
> 	pci_dev_read_resources(dev);
> 
> 	res = new_resource(dev, 0x40);
> 	/* NB APIC fixed to this address. */
> 	res->base = K8T890_APIC_BASE;
> 	res->size = 256;
> 	res->limit = res->base + res->size - 1;
> 	res->align = 8;
> 	res->gran = 8;
> 	res->flags = IORESOURCE_MEM | IORESOURCE_FIXED |
> 		     IORESOURCE_STORED | IORESOURCE_ASSIGNED;
> 
> 	/* Add an MMCONFIG resource. */
> 	res = new_resource(dev, K8T890_MMCONFIG_MBAR);
> 	res->size = 256 * 1024 * 1024;
> 	res->align = log2(res->size);
> 	res->gran = log2(res->size);
> 	res->limit = 0xffffffff;	/* 4G */
> 	res->flags = IORESOURCE_MEM;
> 
> ------- end ----------

Yes now I remember that I wrote the code ;) so please disregard mine previous 
mail about _LOW and _STATIC_HIGH.

Problem is that some resources needs to go to ACPI. And it is needed to

1) store them in some ACPI table during table construction, read resource should 
work.

2) worse case - store in AML code. This can be done by some SSDT hacks which is 
ugly or write AML code which re-reads the resources from hardware.


Ad 1)
http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-v2/src/mainboard/asus/a8v-e_se/fadt.c
http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-v2/src/mainboard/asus/a8v-e_se/acpi_tables.c

Ad 2)

http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-v2/src/northbridge/amd/amdk8/ssdt.dsl
http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-v2/src/mainboard/agami/aruma/acpi_tables.c

In fact #2 as in ARUMA and proper DSDT code which handles _CSR (CRS?) resources 
is neccessary for Windows to boot properly. Check the Aruma DSDT:

http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-v2/src/mainboard/agami/aruma/dx/dsdt_lb.dsl

(In particular Method (_CRS, 0, NotSerialized) for PCI0).

Rudolf







More information about the coreboot mailing list