dev-arm: Fix writes to Arm GICv2 GICD_IGROUPRn
Writes to the GICD_IGROUPRn registers are currently applied using the `|=` operator, allowing bits to be set but not cleared. According to the specification [1] this register should allow direct writes. This patch changes the logic to write the new value directly to the register. [1] https://developer.arm.com/documentation/ihi0048/latest/ Change-Id: Ia5f17d05530263d7e918ff33576daaf8165c25c2 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/69682 Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com> Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
@@ -509,7 +509,7 @@ GicV2::writeDistributor(ContextID ctx, Addr daddr, uint32_t data,
|
||||
DPRINTF(GIC,
|
||||
"gic distributor write GICD_IGROUPR%d (%#x) size %#x value %#x \n",
|
||||
ix, daddr, data_sz, data);
|
||||
getIntGroup(ctx, ix) |= data;
|
||||
getIntGroup(ctx, ix) = data;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user