On 2011-05-19 18:17, Gleb Natapov wrote:
> On Thu, May 19, 2011 at 05:40:50PM +0300, Avi Kivity wrote:
>> On 05/19/2011 05:37 PM, Anthony Liguori wrote:
>>>
>>> So....  do you do:
>>>
>>> isa_register_region(ISABus *bus, MemoryRegion *mr, int priority)
>>> {
>>>    chipset_register_region(bus->chipset, mr, priority + 1);
>>> }
>>>
>>> I don't really understand how you can fold everything into one
>>> table and not allow devices to override their parents using
>>> priorities.
>>
>> Think of how a window manager folds windows with priorities onto a
>> flat framebuffer.
>>
>> You do a depth-first walk of the tree.  For each child list, you
>> iterate it from the lowest to highest priority, allowing later
>> subregions override earlier subregions.
>>
> And how you set those priorities in a sensible way? Why two device on a
> PCI bus will want to register their memory region with anything but
> highest priority? And if you let PCI subsystem to assign priorities how
> it will coordinate with ISA subsystem/memory controller what priorities
> to assign to get meaningful system?

Priorities >default will only be used for explicit overlays, e.g. RAM
over MMIO in PAM regions. Non-default priorities won't be assigned to
normal PCI bars or any other device's region.

Jan

-- 
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux

Reply via email to