From: Helge Deller <[email protected]> HP-UX 9 beeps through the harmony audio chip, and it panics if there isn't one, because the 715/64 has no HIL keyboard to beep through instead. Emulate the bare minimum of the chip's registers and report a running audio clock. There's still no sound. In the long run we plan to add a Harmony driver, but for now this is sufficient.
Suggested-by: Keith Monahan <[email protected]> Signed-off-by: Helge Deller <[email protected]> --- hw/misc/lasi.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/hw/misc/lasi.c b/hw/misc/lasi.c index f0dfd78b4d..76029804e1 100644 --- a/hw/misc/lasi.c +++ b/hw/misc/lasi.c @@ -36,8 +36,7 @@ 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_AUDIO ... LASI_AUDIO + 0xFF: case LASI_UART: case LASI_LAN: case LASI_LAN + 12: /* LASI LAN MAC */ @@ -87,6 +86,13 @@ static MemTxResult lasi_chip_read_with_attrs(void *opaque, hwaddr addr, val = s->iar; break; + case LASI_AUDIO ... LASI_AUDIO + 0xFF: + /* + * Harmony audio not yet emulated. DIAG (0x3c) reports a running + * sample clock, which HP-UX 9 checks before using the beeper. + */ + val = (addr == LASI_AUDIO + 0x3c); + break; case LASI_LPT: case LASI_UART: case LASI_LAN: @@ -158,9 +164,8 @@ 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 */ + case LASI_AUDIO ... LASI_AUDIO + 0xFF: + /* XXX: Harmony audio is not emulated */ break; case LASI_UART: /* XXX: reset serial port */ -- 2.54.0
