summaryrefslogtreecommitdiff
path: root/sys/arch/hppa
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2003-09-25 22:17:41 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2003-09-25 22:17:41 +0000
commitc672e6337e75f6845433174a1091ab88cfa04fbb (patch)
treea016cbe0d64a4c862da35d44e86eeba3705835b2 /sys/arch/hppa
parenta5f6b6516c356e445887fc2637220104789753e3 (diff)
provide a function to enable accel io on pcxl2 and use it on the fb
Diffstat (limited to 'sys/arch/hppa')
-rw-r--r--sys/arch/hppa/dev/sti_sgc.c6
-rw-r--r--sys/arch/hppa/hppa/locore.S17
-rw-r--r--sys/arch/hppa/include/cpufunc.h3
3 files changed, 23 insertions, 3 deletions
diff --git a/sys/arch/hppa/dev/sti_sgc.c b/sys/arch/hppa/dev/sti_sgc.c
index c1bc65ebaea..aa305c8d82e 100644
--- a/sys/arch/hppa/dev/sti_sgc.c
+++ b/sys/arch/hppa/dev/sti_sgc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sti_sgc.c,v 1.16 2003/08/21 18:03:18 mickey Exp $ */
+/* $OpenBSD: sti_sgc.c,v 1.17 2003/09/25 22:17:40 mickey Exp $ */
/*
* Copyright (c) 2000-2003 Michael Shalayeff
@@ -233,6 +233,10 @@ sti_sgc_attach(parent, self, aux)
}
}
+ /* PCXL2: enale accel i/o for this space */
+ if (cpu_type == hpcxl2)
+ eaio_l2(0x8 >> (((ca->ca_hpa >> 25) & 3) - 2));
+
#ifdef STIDEBUG
printf("sti: ioh=%x, romh=%x\n", sc->ioh, sc->romh);
#endif
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S
index ade2be46d44..9f10eb3088e 100644
--- a/sys/arch/hppa/hppa/locore.S
+++ b/sys/arch/hppa/hppa/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.111 2003/08/07 19:23:52 mickey Exp $ */
+/* $OpenBSD: locore.S,v 1.112 2003/09/25 22:17:40 mickey Exp $ */
/*
* Copyright (c) 1998-2003 Michael Shalayeff
@@ -1719,6 +1719,21 @@ LEAF_ENTRY(desidhash_t)
EXIT(desidhash_t)
#endif /* HP7200_CPU */
+#ifdef HP7300LC_CPU
+ .data
+ BSS(eaio_l2_mask, 4)
+LEAF_ENTRY(eaio_l2)
+ ldil L%eaio_l2_mask, t2
+ ldw R%eaio_l2_mask(t2), t1
+ or t1, arg0, t1
+ MTCPU_C(22, DR0_PCXL2_ACCEL_IO)
+ nop
+ nop
+ bv 0(rp)
+ stw t1, R%eaio_l2_mask(t2)
+EXIT(eaio_l2)
+#endif /* HP7300LC_CPU */
+
#if defined(HP7100LC_CPU) || defined(HP7300LC_CPU)
/*
diff --git a/sys/arch/hppa/include/cpufunc.h b/sys/arch/hppa/include/cpufunc.h
index 6a2fdd7270c..34a95870cc8 100644
--- a/sys/arch/hppa/include/cpufunc.h
+++ b/sys/arch/hppa/include/cpufunc.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: cpufunc.h,v 1.22 2003/08/20 06:50:30 mickey Exp $ */
+/* $OpenBSD: cpufunc.h,v 1.23 2003/09/25 22:17:40 mickey Exp $ */
/*
* Copyright (c) 1998,2000 Michael Shalayeff
@@ -215,6 +215,7 @@ void fcacheall(void);
void ptlball(void);
int btlb_insert(pa_space_t space, vaddr_t va, paddr_t pa, vsize_t *lenp, u_int prot);
hppa_hpa_t cpu_gethpa(int n);
+void eaio_l2(int i);
#endif
#endif /* _MACHINE_CPUFUNC_H_ */