On 2011-05-18 18:21, Avi Kivity wrote:
> On 05/18/2011 06:26 PM, Avi Kivity wrote:
>>> This is about registration.  Right now you can only register IO 
>>> intercepts in the chipset, not on a per-CPU basis.  We could just as 
>>> easily have:
>>>
>>> CPUState {
>>>     MemoryRegion apic_region;
>>> };
>>>
>>> per_cpu_register_memory(env, &env->apic_region);
>>>
>>
>>
>> Right.  Or all memory per-cpu, with two sub-regions:
>>
>>  - global memory
>>  - overlaid apic memory
>>
>> for this, we need to have well defined semantics for overlap (perhaps 
>> a priority argument to memory_region_add_subregion).
> 
> Or even
> 
> cpu_memory_region
>    |
>    +-- global memory map (prio 0)
>    |    |
>    |    +-- RAM (prio 0)
>    |    |
>    |    +-- PCI (prio 1)

It depends on the chipset and its configuration (via PAM e.g.) in what
region which takes precedence. Fixed prios do not help here.

>    |
>    +-- SMM memory (if active, prio 1)
>    |
>    +-- APIC memory (if active, prio 2)

Jan

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

Reply via email to