On Tue, Dec 2, 2008 at 11:44 AM, Marc Jones <[EMAIL PROTECTED]> wrote:
> On Tue, Dec 2, 2008 at 6:57 AM, Myles Watson <[EMAIL PROTECTED]> wrote: > > > > > >> -----Original Message----- > >> From: Marc Jones [mailto:[EMAIL PROTECTED] > >> 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 <[EMAIL PROTECTED]> 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
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

