From 71b7baf6135e4458974e96771d22e5972cdf791f Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Mon, 27 Jan 2025 22:50:49 +0100 Subject: [PATCH] fix masking pi regs (#192) --- src/device/pi.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/device/pi.rs b/src/device/pi.rs index 54a82e1..e2adb9c 100644 --- a/src/device/pi.rs +++ b/src/device/pi.rs @@ -149,10 +149,15 @@ pub fn write_regs(device: &mut device::Device, address: u64, value: u32, mask: u device.pi.regs[PI_STATUS_REG as usize] = 0 } } - PI_BSD_DOM1_LAT_REG | PI_BSD_DOM1_PWD_REG | PI_BSD_DOM1_PGS_REG | PI_BSD_DOM1_RLS_REG - | PI_BSD_DOM2_LAT_REG | PI_BSD_DOM2_PWD_REG | PI_BSD_DOM2_PGS_REG | PI_BSD_DOM2_RLS_REG => { + PI_BSD_DOM1_LAT_REG | PI_BSD_DOM1_PWD_REG | PI_BSD_DOM2_LAT_REG | PI_BSD_DOM2_PWD_REG => { device::memory::masked_write_32(&mut device.pi.regs[reg as usize], value & 0xFF, mask) } + PI_BSD_DOM1_PGS_REG | PI_BSD_DOM2_PGS_REG => { + device::memory::masked_write_32(&mut device.pi.regs[reg as usize], value & 0xF, mask) + } + PI_BSD_DOM1_RLS_REG | PI_BSD_DOM2_RLS_REG => { + device::memory::masked_write_32(&mut device.pi.regs[reg as usize], value & 0x3, mask) + } _ => device::memory::masked_write_32(&mut device.pi.regs[reg as usize], value, mask), } }