mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xen/arm: vgic-v2: Implement correctly ITARGETSR0 - ITARGETSR7 read-only
Each ITARGETSR register are 4-byte wide and the offset is in byte.
The current implementation is computing the end of the range wrongly
resulting to emulate only ITARGETSR{0,1} read-only. The rest will be
treated as read-write.
As 8 registers should be read-only, the end of the range should be
ITARGETSR + (4 * 8) - 1.
For convenience introduce ITARGETSR7 and ITARGETSR8.
Signed-off-by: Julien Grall <julien.grall@citrix.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
(cherry picked from commit bc50de8838)
This commit is contained in:
1 parent
86060f89ad
commit
a48c1d36a4
2 files changed
+4
-2
No files matched your search
@@ -361,11 +361,11 @@ static int vgic_v2_distr_mmio_write(struct vcpu *v, mmio_info_t *info)
|
||||
vgic_unlock_rank(v, rank, flags);
|
||||
return 1;
|
||||
|
||||
case GICD_ITARGETSR ... GICD_ITARGETSR + 7:
|
||||
case GICD_ITARGETSR ... GICD_ITARGETSR7:
|
||||
/* SGI/PPI target is read only */
|
||||
goto write_ignore_32;
|
||||
|
||||
case GICD_ITARGETSR + 8 ... GICD_ITARGETSRN:
|
||||
case GICD_ITARGETSR8 ... GICD_ITARGETSRN:
|
||||
{
|
||||
/* unsigned long needed for find_next_bit */
|
||||
unsigned long target;
|
||||
|
||||
@@ -42,6 +42,8 @@
|
||||
#define GICD_IPRIORITYR (0x400)
|
||||
#define GICD_IPRIORITYRN (0x7F8)
|
||||
#define GICD_ITARGETSR (0x800)
|
||||
#define GICD_ITARGETSR7 (0x81C)
|
||||
#define GICD_ITARGETSR8 (0x820)
|
||||
#define GICD_ITARGETSRN (0xBF8)
|
||||
#define GICD_ICFGR (0xC00)
|
||||
#define GICD_ICFGRN (0xCFC)
|
||||
|
||||