fix BCD mask for date (Solaris 2.5 guest hang fix) Fix BCD mask for date. The most visible effect of this patch is Solaris 2.5.1 doesn't hang at boot if the day of month is >21. Signed-off-by: Artyom Tarasenko <atar4qemu@gmail.com> Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
diff --git a/hw/m48t59.c b/hw/m48t59.c index 60bbb00..0c50f45 100644 --- a/hw/m48t59.c +++ b/hw/m48t59.c
@@ -239,7 +239,7 @@ break; case 0x1FF5: /* alarm date */ - tmp = from_bcd(val & 0x1F); + tmp = from_bcd(val & 0x3F); if (tmp != 0) { NVRAM->alarm.tm_mday = tmp; NVRAM->buffer[0x1FF5] = val; @@ -310,8 +310,8 @@ break; case 0x1FFD: case 0x07FD: - /* date */ - tmp = from_bcd(val & 0x1F); + /* date (BCD) */ + tmp = from_bcd(val & 0x3F); if (tmp != 0) { get_time(NVRAM, &tm); tm.tm_mday = tmp;