aboutsummaryrefslogtreecommitdiff
path: root/lib/libhvcall/hvcall.code
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2011-07-27 15:45:36 +1000
committerThomas Huth <thuth@linux.vnet.ibm.com>2011-10-12 13:20:00 +0200
commit35fc16fee354457ab171247d9e2b5387304b5eb3 (patch)
tree353b81cabc5d1d936c0bbe97e6cb3263a8bb9349 /lib/libhvcall/hvcall.code
parent32e3430c018ceb8413cb808477449d1968c42497 (diff)
downloadSLOF-35fc16fee354457ab171247d9e2b5387304b5eb3.zip
SLOF-35fc16fee354457ab171247d9e2b5387304b5eb3.tar.gz
SLOF-35fc16fee354457ab171247d9e2b5387304b5eb3.tar.bz2
Move MMIO accessors to board-js2x and implement h-calls based ones for qemu
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'lib/libhvcall/hvcall.code')
-rw-r--r--lib/libhvcall/hvcall.code40
1 files changed, 39 insertions, 1 deletions
diff --git a/lib/libhvcall/hvcall.code b/lib/libhvcall/hvcall.code
index 4e47c06..6d4a141 100644
--- a/lib/libhvcall/hvcall.code
+++ b/lib/libhvcall/hvcall.code
@@ -1,5 +1,5 @@
/******************************************************************************
- * Copyright (c) 2004, 2008 IBM Corporation
+ * Copyright (c) 2004, 2011 IBM Corporation
* All rights reserved.
* This program and the accompanying materials
* are made available under the terms of the BSD License
@@ -49,3 +49,41 @@ PRIM(hv_X2d_send_X2d_crq)
unsigned int unit = TOS.u;
TOS.n = hv_send_crq(unit, msgaddr);
MIRP
+
+
+PRIM(RB_X40)
+ unsigned long qaddr = TOS.u;
+ TOS.u = hv_logical_ci_load(1, qaddr);
+MIRP
+PRIM(RB_X21)
+ unsigned long qaddr = TOS.u; POP;
+ unsigned char val = TOS.u; POP;
+ hv_logical_ci_store(1, qaddr, val);
+MIRP
+PRIM(RW_X40)
+ unsigned long qaddr = TOS.u;
+ TOS.u = hv_logical_ci_load(2, qaddr);
+MIRP
+PRIM(RW_X21)
+ unsigned long qaddr = TOS.u; POP;
+ unsigned short val = TOS.u; POP;
+ hv_logical_ci_store(2, qaddr, val);
+MIRP
+PRIM(RL_X40)
+ unsigned long qaddr = TOS.u;
+ TOS.u = hv_logical_ci_load(4, qaddr);
+MIRP
+PRIM(RL_X21)
+ unsigned long qaddr = TOS.u; POP;
+ unsigned int val = TOS.u; POP;
+ hv_logical_ci_store(4, qaddr, val);
+MIRP
+PRIM(RX_X40)
+ unsigned long qaddr = TOS.u;
+ TOS.u = hv_logical_ci_load(8, qaddr);
+MIRP
+PRIM(RX_X21)
+ unsigned long qaddr = TOS.u; POP;
+ unsigned long val = TOS.u; POP;
+ hv_logical_ci_store(8, qaddr, val);
+MIRP