[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 4/7] xen/arm: Add handler for ID registers on arm64
On Wed, 9 Dec 2020, Bertrand Marquis wrote: > Add vsysreg emulation for registers trapped when TID3 bit is activated > in HSR. > The emulation is returning the value stored in cpuinfo_guest structure > for know registers and is handling reserved registers as RAZ. > > Signed-off-by: Bertrand Marquis <bertrand.marquis@xxxxxxx> > --- > Changes in V2: Rebase > Changes in V3: > Fix commit message > Fix code style for GENERATE_TID3_INFO declaration > Add handling of reserved registers as RAZ. > > --- > xen/arch/arm/arm64/vsysreg.c | 53 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > > diff --git a/xen/arch/arm/arm64/vsysreg.c b/xen/arch/arm/arm64/vsysreg.c > index 8a85507d9d..ef7a11dbdd 100644 > --- a/xen/arch/arm/arm64/vsysreg.c > +++ b/xen/arch/arm/arm64/vsysreg.c > @@ -69,6 +69,14 @@ TVM_REG(CONTEXTIDR_EL1) > break; \ > } > > +/* Macro to generate easily case for ID co-processor emulation */ > +#define GENERATE_TID3_INFO(reg, field, offset) \ > + case HSR_SYSREG_##reg: \ > + { \ > + return handle_ro_read_val(regs, regidx, hsr.sysreg.read, hsr, \ > + 1, guest_cpuinfo.field.bits[offset]); \ [...] > + HSR_SYSREG_TID3_RESERVED_CASE: > + /* Handle all reserved registers as RAZ */ > + return handle_ro_raz(regs, regidx, hsr.sysreg.read, hsr, 1); We are implementing both the known and the implementation defined registers as read-as-zero. On write, we inject an exception. However, reading the manual, it looks like the implementation defined registers should be read-as-zero/write-ignore, is that right? I couldn't easily find in the manual if it is OK to inject an exception on write to a known register.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |