Re: [Xen-devel] [PATCH] xen/arm: Blacklist the memory mapped timer (armv7-timer-mem)

2015-01-14 Thread Ian Campbell
On Wed, 2015-01-14 at 16:03 +, Julien Grall wrote:
> Hi Ian,
> 
> On 14/01/15 11:02, Ian Campbell wrote:
> > On Tue, 2015-01-13 at 20:07 +, Julien Grall wrote:
> >> Some platform (such as the VFP Base AEMv8 model) has a memory mapped
> >> timer. We don't want DOM0 use this timer rather than the generic ARM
> >> timer. So blacklist it for all platforms.
> > 
> > It seems that these registers contain things like the ability to stop
> > the counter or change its frequency. So we certainly don't want dom0
> > getting at those!
> > 
> > It's not clear to me if accesses to these registers are trapped
> > according to the controls available for the CP registers, or if we would
> > have to resort to trapping the entire MMIO page if we wanted to support
> > access to these registers (I don't think we would want to anyway).
> 
> I didn't find any spec for the memory mapped timer. But looking to the
> driver, it looks like they also have the concept of physical/virtual. So
> we may not need to trap.
> 
> Anyway, before implementing anything I'd like to find the corresponding
> spec.

It's in the ARM ARM, Appendix E of v7, plus references from Chapter B8.

I'd imagine it was in the v8 ARM ARM too, but I've not looked.

Ian.


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH] xen/arm: Blacklist the memory mapped timer (armv7-timer-mem)

2015-01-14 Thread Julien Grall
Hi Ian,

On 14/01/15 11:02, Ian Campbell wrote:
> On Tue, 2015-01-13 at 20:07 +, Julien Grall wrote:
>> Some platform (such as the VFP Base AEMv8 model) has a memory mapped
>> timer. We don't want DOM0 use this timer rather than the generic ARM
>> timer. So blacklist it for all platforms.
> 
> It seems that these registers contain things like the ability to stop
> the counter or change its frequency. So we certainly don't want dom0
> getting at those!
> 
> It's not clear to me if accesses to these registers are trapped
> according to the controls available for the CP registers, or if we would
> have to resort to trapping the entire MMIO page if we wanted to support
> access to these registers (I don't think we would want to anyway).

I didn't find any spec for the memory mapped timer. But looking to the
driver, it looks like they also have the concept of physical/virtual. So
we may not need to trap.

Anyway, before implementing anything I'd like to find the corresponding
spec.

>> Signed-off-by: Julien Grall 
>>
>> ---
>> This patch is candidate to backport for Xen 4.5 and Xen 4.4.
>>
>> It may not apply correctly for Xen 4.4.
>> ---
>>  xen/arch/arm/domain_build.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>> index bf8dc78..16ce248 100644
>> --- a/xen/arch/arm/domain_build.c
>> +++ b/xen/arch/arm/domain_build.c
>> @@ -1047,6 +1047,7 @@ static int handle_node(struct domain *d, struct 
>> kernel_info *kinfo,
>>  DT_MATCH_COMPATIBLE("arm,psci"),
>>  DT_MATCH_PATH("/cpus"),
>>  DT_MATCH_TYPE("memory"),
>> +DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),
> 
> This is a bit less obvious that the other things in this list. Could you
> perhaps add a comment?

Sure. I will send a new version.

Regards,

-- 
Julien Grall

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH] xen/arm: Blacklist the memory mapped timer (armv7-timer-mem)

2015-01-14 Thread Ian Campbell
On Tue, 2015-01-13 at 20:07 +, Julien Grall wrote:
> Some platform (such as the VFP Base AEMv8 model) has a memory mapped
> timer. We don't want DOM0 use this timer rather than the generic ARM
> timer. So blacklist it for all platforms.

It seems that these registers contain things like the ability to stop
the counter or change its frequency. So we certainly don't want dom0
getting at those!

It's not clear to me if accesses to these registers are trapped
according to the controls available for the CP registers, or if we would
have to resort to trapping the entire MMIO page if we wanted to support
access to these registers (I don't think we would want to anyway).

> Signed-off-by: Julien Grall 
> 
> ---
> This patch is candidate to backport for Xen 4.5 and Xen 4.4.
> 
> It may not apply correctly for Xen 4.4.
> ---
>  xen/arch/arm/domain_build.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index bf8dc78..16ce248 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1047,6 +1047,7 @@ static int handle_node(struct domain *d, struct 
> kernel_info *kinfo,
>  DT_MATCH_COMPATIBLE("arm,psci"),
>  DT_MATCH_PATH("/cpus"),
>  DT_MATCH_TYPE("memory"),
> +DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),

This is a bit less obvious that the other things in this list. Could you
perhaps add a comment?

>  { /* sentinel */ },
>  };
>  static const struct dt_device_match gic_matches[] __initconst =



___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [PATCH] xen/arm: Blacklist the memory mapped timer (armv7-timer-mem)

2015-01-13 Thread Julien Grall
Some platform (such as the VFP Base AEMv8 model) has a memory mapped
timer. We don't want DOM0 use this timer rather than the generic ARM
timer. So blacklist it for all platforms.

Signed-off-by: Julien Grall 

---
This patch is candidate to backport for Xen 4.5 and Xen 4.4.

It may not apply correctly for Xen 4.4.
---
 xen/arch/arm/domain_build.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index bf8dc78..16ce248 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1047,6 +1047,7 @@ static int handle_node(struct domain *d, struct 
kernel_info *kinfo,
 DT_MATCH_COMPATIBLE("arm,psci"),
 DT_MATCH_PATH("/cpus"),
 DT_MATCH_TYPE("memory"),
+DT_MATCH_COMPATIBLE("arm,armv7-timer-mem"),
 { /* sentinel */ },
 };
 static const struct dt_device_match gic_matches[] __initconst =
-- 
2.1.4


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel