summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Shalayeff <mickey@cvs.openbsd.org>2004-10-26 20:18:02 +0000
committerMichael Shalayeff <mickey@cvs.openbsd.org>2004-10-26 20:18:02 +0000
commite07f781219c4f16914165db298a868512ced44db (patch)
treed608e44054046390f2657a0d171a330092eec974
parenteb0a5651813d57c26551aaee705ac7f65e30c8fa (diff)
disable sid hashing on pcxu and above
-rw-r--r--sys/arch/hppa/hppa/locore.S13
-rw-r--r--sys/arch/hppa/hppa/machdep.c17
2 files changed, 14 insertions, 16 deletions
diff --git a/sys/arch/hppa/hppa/locore.S b/sys/arch/hppa/hppa/locore.S
index 88bf66136a1..71a32e75dba 100644
--- a/sys/arch/hppa/hppa/locore.S
+++ b/sys/arch/hppa/hppa/locore.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: locore.S,v 1.141 2004/09/18 07:21:27 mickey Exp $ */
+/* $OpenBSD: locore.S,v 1.142 2004/10/26 20:18:01 mickey Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -85,6 +85,8 @@
#define MFCPU_T(r,x) .word 0x14001400 | ((r) << 21) | (x)
#define MTCPU_C(x,t) .word 0x14000240 | ((t) << 21) | ((x) << 16)
#define MFCPU_C(r,x) .word 0x14000600 | ((r) << 21) | ((x) << 16)
+#define MFCPU_U(r,x) .word 0x140008a0 | ((r) << 21) | ((x))
+#define MTCPU_U(x,r) .word 0x14001840 | ((r) << 21) | ((x) << 16)
.import $global$, data
.import pdc, data
@@ -1405,7 +1407,7 @@ $dtlb_done_l
#endif /* HP7100LC_CPU */
#if defined(HP8000_CPU) || defined(HP8200_CPU) || defined(HP8500_CPU)
- .level 2.0
+ .level 2.0w
/* xlate 32bit->64bit pte */
#define TLB_PCX2PCXU \
@@ -1888,9 +1890,13 @@ EXIT(desidhash_l)
#endif /* HP7100LC_CPU */
#if defined(HP8000_CPU) || defined(HP8200_CPU) || defined(HP8500_CPU)
+ .level 2.0w
LEAF_ENTRY(desidhash_u)
+ MFCPU_U(2,28)
+ depdi 0, 54, 1, r28
+ MTCPU_U(28,2)
bv r0(rp)
- nop
+ copy r0, ret0 /* XXX dunno how to get chip rev */
EXIT(desidhash_u)
LEAF_ENTRY(ibtlb_u)
@@ -1904,6 +1910,7 @@ LEAF_ENTRY(pbtlb_u)
bv 0(rp)
nop
EXIT(pbtlb_u)
+ .level 1.1
#endif /* HP8000_CPU */
/*
diff --git a/sys/arch/hppa/hppa/machdep.c b/sys/arch/hppa/hppa/machdep.c
index 3c21bbc16aa..53982b67cf0 100644
--- a/sys/arch/hppa/hppa/machdep.c
+++ b/sys/arch/hppa/hppa/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.138 2004/10/14 18:30:49 mickey Exp $ */
+/* $OpenBSD: machdep.c,v 1.139 2004/10/26 20:18:01 mickey Exp $ */
/*
* Copyright (c) 1999-2003 Michael Shalayeff
@@ -219,7 +219,6 @@ int desidhash_s(void);
int desidhash_t(void);
int desidhash_l(void);
int desidhash_u(void);
-int desidhash_g(void);
const struct hppa_cpu_typed {
char name[8];
enum hppa_cpu_type type;
@@ -255,15 +254,15 @@ const struct hppa_cpu_typed {
#endif
#ifdef HP8000_CPU
{ "PCXU", hpcxu, HPPA_CPU_PCXU, HPPA_FTRS_W32B,
- 4, desidhash_g, ibtlb_u, NULL, pbtlb_g },
+ 4, desidhash_u, ibtlb_u, NULL, pbtlb_g },
#endif
#ifdef HP8200_CPU
{ "PCXU+", hpcxu2,HPPA_CPU_PCXUP, HPPA_FTRS_W32B,
- 4, desidhash_g, ibtlb_u, NULL, pbtlb_u },
+ 4, desidhash_u, ibtlb_u, NULL, pbtlb_u },
#endif
#ifdef HP8500_CPU
{ "PCXW", hpcxw, HPPA_CPU_PCXW, HPPA_FTRS_W32B,
- 4, desidhash_g, ibtlb_u, NULL, pbtlb_u },
+ 4, desidhash_u, ibtlb_u, NULL, pbtlb_u },
#endif
{ "", 0 }
};
@@ -859,14 +858,6 @@ ptlball(void)
}
int
-desidhash_g(void)
-{
- /* TODO call PDC to disable SID hashing in the cache index */
-
- return 0;
-}
-
-int
hpti_g(hpt, hptsize)
vaddr_t hpt;
vsize_t hptsize;