[coreboot] Resource Allocation discussion

Myles Watson mylesgw at gmail.com
Tue Dec 2 17:17:29 CET 2008



> -----Original Message-----
> From: Rudolf Marek [mailto:r.marek at assembler.cz]
> Sent: Tuesday, December 02, 2008 7:56 AM
> To: Myles Watson
> Cc: 'Marc Jones'; 'Coreboot'
> Subject: Re: [coreboot] Resource Allocation discussion
> 
> > ------- 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.

:)

I'm wondering why the size of the APIC region here is 256.  That's smaller
than any reference from the resource map link you sent.

> 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.

Which device should logically own the ACPI resources?  We can just allocate
them there.  I vote for the domain or the mainboard (root device) to own
them. 

> 
> 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).

I'm in too deep here.  I'm hoping that we can figure out resource allocation
a little better before we move on to ACPI tables.

Thanks,
Myles





More information about the coreboot mailing list