Skip to content

Commit

Permalink
lasi: Add reset I/O ports for LASI audio and FDC
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
hdeller committed Feb 11, 2024
1 parent 9ccbe39 commit 32d26ea
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
11 changes: 11 additions & 0 deletions hw/misc/lasi.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions include/hw/misc/lasi.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,11 @@ OBJECT_DECLARE_SIMPLE_TYPE(LasiState, LASI_CHIP)
#define LASI_IAR 0x10

#define LASI_LPT 0x02000
#define LASI_AUDIO 0x04000
#define LASI_UART 0x05000
#define LASI_LAN 0x07000
#define LASI_RTC 0x09000
#define LASI_FDC 0x0A000

#define LASI_PCR 0x0C000 /* LASI Power Control register */
#define LASI_ERRLOG 0x0C004 /* LASI Error Logging register */
Expand Down

0 comments on commit 32d26ea

Please sign in to comment.