[PATCH 22/30] mac_via: fix rtc command decoding from PRAM addresses 0x0 to 0xf

Mark Cave-Ayland posted 30 patches 1 year, 3 months ago
Maintainers: Paolo Bonzini <pbonzini@redhat.com>, Gerd Hoffmann <kraxel@redhat.com>, Laurent Vivier <laurent@vivier.eu>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>
[PATCH 22/30] mac_via: fix rtc command decoding from PRAM addresses 0x0 to 0xf
Posted by Mark Cave-Ayland 1 year, 3 months ago
A comparison between the rtc command table included in the comment and the code
itself shows that the decoding for PRAM addresses 0x0 to 0xf is being done on
the raw command, and not the shifted version held in value.

Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
---
 hw/misc/mac_via.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c
index 62f0988537..d7067030db 100644
--- a/hw/misc/mac_via.c
+++ b/hw/misc/mac_via.c
@@ -403,7 +403,7 @@ static int via1_rtc_compact_cmd(uint8_t value)
         } else if ((value & 0x1c) == 0x08) {
             /* RAM address 0x10 to 0x13 */
             return read | (REG_PRAM_ADDR + 0x10 + (value & 0x03));
-        } else if ((value & 0x43) == 0x41) {
+        } else if ((value & 0x10) == 0x10) {
             /* RAM address 0x00 to 0x0f */
             return read | (REG_PRAM_ADDR + (value & 0x0f));
         }
-- 
2.30.2
Re: [PATCH 22/30] mac_via: fix rtc command decoding from PRAM addresses 0x0 to 0xf
Posted by Laurent Vivier 1 year, 3 months ago
Le 24/05/2023 à 23:10, Mark Cave-Ayland a écrit :
> A comparison between the rtc command table included in the comment and the code
> itself shows that the decoding for PRAM addresses 0x0 to 0xf is being done on
> the raw command, and not the shifted version held in value.
> 
> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
> ---
>   hw/misc/mac_via.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/hw/misc/mac_via.c b/hw/misc/mac_via.c
> index 62f0988537..d7067030db 100644
> --- a/hw/misc/mac_via.c
> +++ b/hw/misc/mac_via.c
> @@ -403,7 +403,7 @@ static int via1_rtc_compact_cmd(uint8_t value)
>           } else if ((value & 0x1c) == 0x08) {
>               /* RAM address 0x10 to 0x13 */
>               return read | (REG_PRAM_ADDR + 0x10 + (value & 0x03));
> -        } else if ((value & 0x43) == 0x41) {
> +        } else if ((value & 0x10) == 0x10) {
>               /* RAM address 0x00 to 0x0f */
>               return read | (REG_PRAM_ADDR + (value & 0x0f));
>           }

Reviewed-by: Laurent Vivier <laurent@vivier.eu>