aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/hppa/lasi.c28
-rw-r--r--hw/hppa/lasi.h5
2 files changed, 19 insertions, 14 deletions
diff --git a/hw/hppa/lasi.c b/hw/hppa/lasi.c
index ad50880..11ca33f 100644
--- a/hw/hppa/lasi.c
+++ b/hw/hppa/lasi.c
@@ -36,10 +36,10 @@ static bool lasi_chip_mem_valid(void *opaque, hwaddr addr,
case LASI_ICR:
case LASI_IAR:
- case (LASI_LAN_HPA - LASI_HPA):
- case (LASI_LPT_HPA - LASI_HPA):
- case (LASI_UART_HPA - LASI_HPA):
- case (LASI_RTC_HPA - LASI_HPA):
+ case LASI_LPT:
+ case LASI_UART:
+ case LASI_LAN:
+ case LASI_RTC:
case LASI_PCR ... LASI_AMR:
ret = true;
@@ -76,12 +76,12 @@ static MemTxResult lasi_chip_read_with_attrs(void *opaque, hwaddr addr,
val = s->iar;
break;
- case (LASI_LAN_HPA - LASI_HPA):
- case (LASI_LPT_HPA - LASI_HPA):
- case (LASI_UART_HPA - LASI_HPA):
+ case LASI_LPT:
+ case LASI_UART:
+ case LASI_LAN:
val = 0;
break;
- case (LASI_RTC_HPA - LASI_HPA):
+ case LASI_RTC:
val = time(NULL);
val += s->rtc_ref;
break;
@@ -141,16 +141,16 @@ static MemTxResult lasi_chip_write_with_attrs(void *opaque, hwaddr addr,
s->iar = val;
break;
- case (LASI_LAN_HPA - LASI_HPA):
- /* XXX: reset LAN card */
- break;
- case (LASI_LPT_HPA - LASI_HPA):
+ case LASI_LPT:
/* XXX: reset parallel port */
break;
- case (LASI_UART_HPA - LASI_HPA):
+ case LASI_UART:
/* XXX: reset serial port */
break;
- case (LASI_RTC_HPA - LASI_HPA):
+ case LASI_LAN:
+ /* XXX: reset LAN card */
+ break;
+ case LASI_RTC:
s->rtc_ref = val - time(NULL);
break;
diff --git a/hw/hppa/lasi.h b/hw/hppa/lasi.h
index 63a2be3..11cf7d6 100644
--- a/hw/hppa/lasi.h
+++ b/hw/hppa/lasi.h
@@ -21,6 +21,11 @@ OBJECT_DECLARE_SIMPLE_TYPE(LasiState, LASI_CHIP)
#define LASI_ICR 0x0c
#define LASI_IAR 0x10
+#define LASI_LPT 0x02000
+#define LASI_UART 0x05000
+#define LASI_LAN 0x07000
+#define LASI_RTC 0x09000
+
#define LASI_PCR 0x0C000 /* LASI Power Control register */
#define LASI_ERRLOG 0x0C004 /* LASI Error Logging register */
#define LASI_VER 0x0C008 /* LASI Version Control register */