# HG changeset patch
# User Jerone Young <[EMAIL PROTECTED]>
# Date 1196367231 21600
# Node ID 6f34b3cd608868c4cc8280ab333aac78a7ba9a6d
# Parent  be65ecf21443ddb74f9adbf6aa9778f798b5761b
Add powerpc tests

This patch adds a set of simple powerpc tests

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

diff --git a/user/config-powerpc.mak b/user/config-powerpc.mak
new file mode 100644
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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
--- /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: The Future of Linux Business White Paper
from Novell.  From the desktop to the data center, Linux is going
mainstream.  Let it simplify your IT future.
http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to