lasi: Add reset I/O ports for LASI audio and FDC

Linux writes zeroes at bootup into the default ports for LASI audio and
LASI floppy controller to reset those devices.  Allow writing to those
registers to avoid HPMCs.

Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
Helge Deller 2024-02-03 01:04:45 +01:00
parent 9ccbe394d2
commit 32d26ea407
2 changed files with 13 additions and 0 deletions

View file

@ -36,10 +36,13 @@ static bool lasi_chip_mem_valid(void *opaque, hwaddr addr,
case LASI_IAR:
case LASI_LPT:
case LASI_AUDIO:
case LASI_AUDIO + 4:
case LASI_UART:
case LASI_LAN:
case LASI_LAN + 12: /* LASI LAN MAC */
case LASI_RTC:
case LASI_FDC:
case LASI_PCR ... LASI_AMR:
ret = true;
@ -80,6 +83,7 @@ static MemTxResult lasi_chip_read_with_attrs(void *opaque, hwaddr addr,
case LASI_UART:
case LASI_LAN:
case LASI_LAN + 12:
case LASI_FDC:
val = 0;
break;
case LASI_RTC:
@ -145,12 +149,19 @@ static MemTxResult lasi_chip_write_with_attrs(void *opaque, hwaddr addr,
case LASI_LPT:
/* XXX: reset parallel port */
break;
case LASI_AUDIO:
case LASI_AUDIO + 4:
/* XXX: reset audio port */
break;
case LASI_UART:
/* XXX: reset serial port */
break;
case LASI_LAN:
/* XXX: reset LAN card */
break;
case LASI_FDC:
/* XXX: reset Floppy controller */
break;
case LASI_RTC:
s->rtc_ref = val - time(NULL);
break;