> -----Original Message-----
> From: Rudolf Marek [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, December 02, 2008 7:11 AM
> To: Myles Watson
> Cc: 'Marc Jones'; 'Coreboot'
> Subject: Re: [coreboot] Resource Allocation discussion
> 
> >> Yes, APICs are generally at FEC00000(IO) and FEE00000(local).
> >
> > So these should be created in the domain?
> 
> Yes and no? Check this:
> 
> http://www.coreboot.org/Memory_map

Thanks for the pointers!
 
> Also MMCONFIG region should be somewhere. For VIAs, the static resources
> are in
> .h files in V2
> http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-
> v2/src/southbridge/via/k8t890/k8t890.h
> http://tracker.coreboot.org/trac/coreboot/browser/trunk/coreboot-
> v2/src/southbridge/via/vt8237r/vt8237r.h
> 
> Problem is that some resources (APICs can be only on arbitrary range,
> typically
> 0xfec0 0000 - 0xfecf ffff
> 
> So DEVICE_MEM_HIGH should be lower then those .h files?? And IO_LOW would
> be
> nice too...

I'm hoping that these defines can go away.  I'd like each board or each
domain to define their areas explicitly.  So, for example, the k8t890 has:

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

So it seems like we could add bridge resources that contain all the space
that can be used for allocations to the domain below this.

> -----Original Message-----
> 
> Sorry I forgot to ask if the DEVICE_MEM_HIGH is in fact the HIGH limit for
> MMIO
> or not.
I don't know for sure.

> Of course CPU must be instructed to decode the addresses as MMIO
> too.
Yes.

> But in some range we need static allocation.
> 
> For MMIO decode:
> 
> DEVICE_MEM_LOW =< DEVICE_MEM_LOW_STATIC < DEVICE_MEM_HIGH_STATIC =<
> DEVICE_MEM_HIGH
> 
> And similar for IO decode.
> 
> Like here K8 resources:
> 
> MMIO map: #7 0x0040000000 - 0x00ff70ffff Access: R/W     Dstnode:0 DstLink
> 0
>    IO map: #0  0x000000 - 0x000fff Access: /    Dstnode:0 DstLink 0
>    IO map: #1  0x001000 - 0x0fffff Access: R/W   VGA Dstnode:0 DstLink 0
>    IO map: #2  0x000000 - 0x000fff Access: /    Dstnode:0 DstLink 0
>    IO map: #3  0x000000 - 0x000fff Access: /    Dstnode:0 DstLink 0

If we explicitly declare the resources we use, I'm hoping that the
device-specific code can do the right thing.

Thanks,
Myles


--
coreboot mailing list: [email protected]
http://www.coreboot.org/mailman/listinfo/coreboot

Reply via email to