Subject: [PATCH v3 01/62] Revert "xen/arm: vgic-v2: Drop cbase from arch_domain"

From: [email-masked] (Julien Grall)
Date: Wed, 18 Nov 2015 11:41:26 +0000

Hi Shannon,

On 18/11/15 02:28, Shannon Zhao wrote:

> On 2015/11/17 21:57, Julien Grall wrote:
>> On 17/11/15 12:32, Shannon Zhao wrote:
>>>> Hi Julien,
>>>>
>>>> On 2015/11/17 19:27, Julien Grall wrote:
>>>>>> Hi Shannon,
>>>>>>
>>>>>> Why do you want to revert this patch?
>>>>>>
>>>> Because d->arch.vgic.cbase will be used by creating Dom0 MADT table
>>>> later. See [PATCH v3 43/62].
>>>> +            gicc.base_address = d->arch.vgic.cbase;
>>>>
>>>> My previous way is get this from ACPI table but someone suggest get it
>>>> from struct domain and I think this way is better too since it uses the
>>>> value after being parsed.
>> It's pointless to store the value in arch_domain for something that it's
>> only use during building...
>>
>> We have struct kernel_info which store any information related to the
>> DOM0 during the building.
>>
> 
> Yeah, that would be better if it could use kernel_info. But the problem
> is that kernel_info is firstly used in construct_dom0(), while it needs
> to store the cbase in domain_create() which is called before
> construct_dom0(). And if we pass kernel_info as parameter to
> domain_create(), this would introduce more changes to common codes.
> 
> Do you have any better idea to handle this?

Yes, introducing callback to create the ACPI table in the GIC driver.
See what we did for make_hwdom_dt_node.

We are trying to make the domain_build domain as agnostic as possible
from the GIC version. However in patch #43, you implement specific
version in the domain builder.

It will also not scale very well when we will introduce GICv2m and ITS.

The version of the GIC (ACPI_MADT_GIC_*) could be introduced in the
vgic_ops.

The re-distributor could be moved in gic-v3.c and the generic interrupt
controller in gic-v2.c.

Note it's a mandatory to emulate the same version as the hardware for
the virtual GIC.

Regards,

-- 
Julien Grall