From: Jerone Young <[EMAIL PROTECTED]>

This patch adds a set of simple powerpc tests

Signed-off-by: Jerone Young <[EMAIL PROTECTED]>
Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/user/config-powerpc.mak b/user/config-powerpc.mak
new file mode 100644
index 0000000..f825a37
--- /dev/null
+++ b/user/config-powerpc.mak
@@ -0,0 +1,14 @@
+TEST_DIR=test/powerpc
+CFLAGS += -m32
+CFLAGS += -D__powerpc__
+CFLAGS += -I $(KERNELDIR)/include
+
+tests= $(TEST_DIR)/io.S \
+       $(TEST_DIR)/spin.S \
+       $(TEST_DIR)/sprg.S \
+       $(TEST_DIR)/44x/tlbsx.S \
+       $(TEST_DIR)/44x/tlbwe_16KB.S \
+       $(TEST_DIR)/44x/tlbwe_hole.S \
+       $(TEST_DIR)/44x/tlbwe.S
+
+kvmctl_objs = main.o ../libkvm/libkvm.a
diff --git a/user/test/powerpc/44x/tlbsx.S b/user/test/powerpc/44x/tlbsx.S
new file mode 100644
index 0000000..b15874b
--- /dev/null
+++ b/user/test/powerpc/44x/tlbsx.S
@@ -0,0 +1,33 @@
+#define SPRN_MMUCR 0x3b2
+
+#define TLBWORD0 0x10000210
+#define TLBWORD1 0x10000000
+#define TLBWORD2 0x00000003
+
+.global _start
+_start:
+       li      r4, 0
+       mtspr   SPRN_MMUCR, r4
+
+       li      r3, 23
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 0
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 1
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 2
+
+       lis     r4, 0x1000
+       tlbsx   r5, r4, r0
+       cmpwi   r5, 23
+       beq     good
+       trap
+
+good:
+       b       .
diff --git a/user/test/powerpc/44x/tlbwe.S b/user/test/powerpc/44x/tlbwe.S
new file mode 100644
index 0000000..ec6ef5c
--- /dev/null
+++ b/user/test/powerpc/44x/tlbwe.S
@@ -0,0 +1,27 @@
+#define SPRN_MMUCR 0x3b2
+
+/* Create a mapping at 4MB */
+#define TLBWORD0 0x00400210
+#define TLBWORD1 0x00400000
+#define TLBWORD2 0x00000003
+
+.global _start
+_start:
+       li      r4, 0
+       mtspr   SPRN_MMUCR, r4
+
+       li      r3, 23
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 0
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 1
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 2
+
+       b       .
diff --git a/user/test/powerpc/44x/tlbwe_16KB.S 
b/user/test/powerpc/44x/tlbwe_16KB.S
new file mode 100644
index 0000000..1bd10bf
--- /dev/null
+++ b/user/test/powerpc/44x/tlbwe_16KB.S
@@ -0,0 +1,35 @@
+#define SPRN_MMUCR 0x3b2
+
+/* 16KB mapping at 4MB */
+#define TLBWORD0 0x00400220
+#define TLBWORD1 0x00400000
+#define TLBWORD2 0x00000003
+
+.global _start
+_start:
+       li      r4, 0
+       mtspr   SPRN_MMUCR, r4
+
+       li      r3, 5
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 0
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 1
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 2
+
+       /* load from 4MB */
+       lis     r3, 0x0040
+       lwz     r4, 0(r3)
+
+       /* load from 4MB+8KB */
+       ori     r3, r3, 0x2000
+       lwz     r4, 0(r3)
+
+       b       .
diff --git a/user/test/powerpc/44x/tlbwe_hole.S 
b/user/test/powerpc/44x/tlbwe_hole.S
new file mode 100644
index 0000000..5efd303
--- /dev/null
+++ b/user/test/powerpc/44x/tlbwe_hole.S
@@ -0,0 +1,27 @@
+#define SPRN_MMUCR 0x3b2
+
+/* Try to map real address 1GB. */
+#define TLBWORD0 0x40000210
+#define TLBWORD1 0x40000000
+#define TLBWORD2 0x00000003
+
+.global _start
+_start:
+       li      r4, 0
+       mtspr   SPRN_MMUCR, r4
+
+       li      r3, 23
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 0
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 1
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 2
+
+       b       .
diff --git a/user/test/powerpc/io.S b/user/test/powerpc/io.S
new file mode 100644
index 0000000..97567cb
--- /dev/null
+++ b/user/test/powerpc/io.S
@@ -0,0 +1,32 @@
+#define SPRN_MMUCR 0x3b2
+
+#define TLBWORD0 0xf0000210
+#define TLBWORD1 0xf0000000
+#define TLBWORD2 0x00000003
+
+.global _start
+_start:
+       li      r4, 0
+       mtspr   SPRN_MMUCR, r4
+
+       li      r3, 2
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 0
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 1
+
+       lis     r4, [EMAIL PROTECTED]
+       ori     r4, r4, [EMAIL PROTECTED]
+       tlbwe   r4, r3, 2
+
+       lis     r3, 0xf000
+       lis     r4, 0x1234
+       ori     r4, r4, 0x5678
+       stb     r4, 0(r3)
+       lbz     r5, 0(r3)
+
+       b       .
diff --git a/user/test/powerpc/spin.S b/user/test/powerpc/spin.S
new file mode 100644
index 0000000..4406641
--- /dev/null
+++ b/user/test/powerpc/spin.S
@@ -0,0 +1,4 @@
+
+.global _start
+_start:
+       b       .
diff --git a/user/test/powerpc/sprg.S b/user/test/powerpc/sprg.S
new file mode 100644
index 0000000..d0414a4
--- /dev/null
+++ b/user/test/powerpc/sprg.S
@@ -0,0 +1,7 @@
+
+.global _start
+_start:
+       li      r3, 42
+       mtsprg  0, r3
+       mfsprg  r4, 0
+       b       .

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-commits mailing list
kvm-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-commits

Reply via email to