This patch contains a small set of simple tests for testing guest
functionality for powerpc.
        

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

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       .
diff --git a/user/test/powerpc/tlbsx.S b/user/test/powerpc/tlbsx.S
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/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/tlbwe.S b/user/test/powerpc/tlbwe.S
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/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/tlbwe_16KB.S b/user/test/powerpc/tlbwe_16KB.S
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/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/tlbwe_hole.S b/user/test/powerpc/tlbwe_hole.S
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/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       .



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to