Re: [Xen-devel] [PATCH] xen/arm: Blacklist the memory mapped timer (armv7-timer-mem)
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)
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)
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)
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