On Tue, Dec 2, 2008 at 11:44 AM, Marc Jones marcj303@gmail.com wrote:
On Tue, Dec 2, 2008 at 6:57 AM, Myles Watson mylesgw@gmail.com wrote:
-----Original Message----- From: Marc Jones [mailto:marcj303@gmail.com] Sent: Monday, December 01, 2008 10:42 PM To: Myles Watson Cc: Coreboot Subject: Re: [coreboot] Resource Allocation discussion
Hi Myles, I will try to help..... :)
On Mon, Dec 1, 2008 at 2:37 PM, Myles Watson mylesgw@gmail.com wrote:
The resource patches I submitted work fairly well, but still need a
little
help.
I haven't touched subtractively decoded resources, and that's where
the
breakage is right now.
Questions:
- Who should have a resource that moves all other IO resources above
0x400
or 0x1000?
What do you mean? By definition the subtractive port takes all unclaimed cycles. There should be a LPC or ISA bridge in the southbridge that forwards cycles that the legacy southbridge devices don't claim.
Sorry. I wasn't clear enough again. What I meant was something more
like:
Since the resource allocation algorithm can't avoid resources that it doesn't know about, who decides if the subtractive area to avoid is 0x0-0x400, 0x0-0x1000, or some other range? If I declare some device to hold these addresses so that no other resource ends up there, should it
be
subtractive? I'm inclined to put it in the domain or in the SuperIO.
I think it belongs in the southbridge lpc/isa device which is in the domain. It should be 0x0-0x1000.
So like this? For qemu:
static void i82371eb_isa_read_resources(struct device *dev) { struct resource *res; res = new_resource(dev, IOINDEX_SUBTRACTIVE(0,0)); res->base = 0x0UL; res->size = 0x1000UL; res->limit = 0xFFFUL; res->flags = IORESOURCE_MEM | IORESOURCE_SUBTRACTIVE | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; }
static void i82371eb_isa_set_resources(struct device *dev) { struct resource *res; res = probe_resource(dev, IOINDEX_SUBTRACTIVE(0,0)); res->flags |= IORESOURCE_STORED; pci_set_resources(dev); }
Thanks for the help.
Myles