* [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc
@ 2008-10-28 9:08 ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c ehrhardt
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8 @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
avi-atKUWr5tajBWk0Htik3J/w
Cc: hollisb-r/Jw6+rmf7HQT0dZR+AlfA,
ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
This is a set of fixes for the powerpc tests kvm-userspace/user.
Patch 1&2 fix main-ppc.c while patch 3 introduces libcflat for powerpc.
Further on patch 4 provides a timebase accessor for the ppc testcases (not
used yet) and patch 5 finally adds a stub nmi handler to main-ppc.c.
[patches in series]
[PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c
[PATCH 2/5] user: ppc: better error reporting in load_file
[PATCH 3/5] user: ppc: implement PowerPC 44x libcflat
[PATCH 4/5] libcflat: ppc: add timebase accessor
[PATCH 5/5] user: ppc: add stub nmi handler
---
[diffstat]
b/user/config-powerpc-44x.mak | 14 +++++++++
b/user/config-powerpc.mak | 46 ++++++++++++++++++++---------
b/user/main-ppc.c | 32 +++++++-------------
b/user/test/lib/powerpc/44x/map.c | 51 +++++++++++++++++++++++++++++++++
b/user/test/lib/powerpc/44x/timebase.S | 28 ++++++++++++++++++
b/user/test/lib/powerpc/44x/timebase.h | 25 ++++++++++++++++
b/user/test/lib/powerpc/44x/tlbwe.S | 29 ++++++++++++++++++
b/user/test/lib/powerpc/io.c | 35 ++++++++++++++++++++++
b/user/test/powerpc/cstart.S | 38 ++++++++++++++++++++++++
b/user/test/powerpc/exit.c | 23 ++++++++++++++
user/config-powerpc-44x.mak | 3 +
user/main-ppc.c | 9 +++++
12 files changed, 296 insertions(+), 37 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c
2008-10-28 9:08 [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
@ 2008-10-28 9:08 ` ehrhardt
2008-10-28 9:08 ` [PATCH 2/5] user: ppc: better error reporting in load_file ehrhardt
` (2 subsequent siblings)
3 siblings, 0 replies; 8+ messages in thread
From: ehrhardt @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc, kvm, avi; +Cc: hollisb, ehrhardt
From: Hollis Blanchard <hollisb@us.ibm.com>
- call io_table_register() before any vcpus have started
- wait for all vcpus to exit before exiting the parent thread
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
---
[diffstat]
main-ppc.c | 32 ++++++++++++--------------------
1 file changed, 12 insertions(+), 20 deletions(-)
[diff]
diff --git a/user/main-ppc.c b/user/main-ppc.c
--- a/user/main-ppc.c
+++ b/user/main-ppc.c
@@ -51,7 +51,7 @@ struct io_table mmio_table;
struct io_table mmio_table;
static int ncpus = 1;
-static sem_t init_sem;
+static sem_t exited_sem;
static __thread int vcpu;
static sigset_t kernel_sigmask;
static sigset_t ipi_sigmask;
@@ -220,16 +220,8 @@ void sync_caches(void *mem, unsigned lon
asm volatile ("sync; isync");
}
-static void init_vcpu(int n, unsigned long entry)
+static void init_vcpu(int n)
{
- /* XXX must set initial TLB state and stack
- struct kvm_regs regs = {
- .pc = entry,
- };
-
- kvm_set_regs(kvm, 0, ®s);
- */
-
sigemptyset(&ipi_sigmask);
sigaddset(&ipi_sigmask, IPI_SIGNAL);
sigprocmask(SIG_UNBLOCK, &ipi_sigmask, NULL);
@@ -237,7 +229,6 @@ static void init_vcpu(int n, unsigned lo
vcpus[n].tid = gettid();
vcpu = n;
kvm_set_signal_mask(kvm, n, &kernel_sigmask);
- sem_post(&init_sem);
}
static void *do_create_vcpu(void *_n)
@@ -245,8 +236,9 @@ static void *do_create_vcpu(void *_n)
int n = (long)_n;
kvm_create_vcpu(kvm, n);
- init_vcpu(n, 0x0);
+ init_vcpu(n);
kvm_run(kvm, n);
+ sem_post(&exited_sem);
return NULL;
}
@@ -368,14 +360,14 @@ int main(int argc, char **argv)
len = load_file(vm_mem, argv[optind], 1);
sync_caches(vm_mem, len);
- sem_init(&init_sem, 0, 0);
- init_vcpu(0, 0x0);
- for (i = 1; i < ncpus; ++i)
- start_vcpu(i);
- for (i = 0; i < ncpus; ++i)
- sem_wait(&init_sem);
-
io_table_register(&mmio_table, 0xf0000000, 64, mmio_handler, NULL);
- return kvm_run(kvm, 0);
+ sem_init(&exited_sem, 0, 0);
+ for (i = 0; i < ncpus; ++i)
+ start_vcpu(i);
+ /* Wait for all vcpus to exit. */
+ for (i = 0; i < ncpus; ++i)
+ sem_wait(&exited_sem);
+
+ return 0;
}
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/5] user: ppc: better error reporting in load_file
2008-10-28 9:08 [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c ehrhardt
@ 2008-10-28 9:08 ` ehrhardt
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-10-28 9:08 ` [PATCH 4/5] libcflat: ppc: add timebase accessor ehrhardt
3 siblings, 0 replies; 8+ messages in thread
From: ehrhardt @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc, kvm, avi; +Cc: hollisb, ehrhardt
From: Hollis Blanchard <hollisb@us.ibm.com>
Fancy description.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
---
[diffstat]
main-ppc.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[diff]
diff --git a/user/main-ppc.c b/user/main-ppc.c
--- a/user/main-ppc.c
+++ b/user/main-ppc.c
@@ -183,7 +183,7 @@ static struct kvm_callbacks test_callbac
static unsigned long load_file(void *mem, const char *fname, int inval_icache)
{
- int r;
+ ssize_t r;
int fd;
unsigned long bytes = 0;
@@ -200,6 +200,7 @@ static unsigned long load_file(void *mem
if (r == -1) {
perror("read");
+ printf("read %d bytes\n", bytes);
exit(1);
}
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc
@ 2008-10-28 9:08 ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
0 siblings, 0 replies; 8+ messages in thread
From: ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8 @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
avi-atKUWr5tajBWk0Htik3J/w, qemu-devel-qX2TKyscuCcdnm+yROfE0A
Cc: hollisb-r/Jw6+rmf7HQT0dZR+AlfA,
ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
This is a set of various functional fixes in kvm-userspace for powerpc.
Patch 1 fullfils the requirement to provide a max smp cpu in the machine
struct, without that value qemu denies to run the guest (cpu 1 > maxcpu 0)
Patch 2 is a intermediate fix to allow ppc (and hopefully all others to
build) until we changed the unifdef to sed'ing files as avi suggested.
Until then it would be nice if that patch could fix the build issues for
all of us in the unifdef style.
Patch3 is a rework of the powerpc 440 guest memory initialization. I looked
at it because the -m option did not work sometimes but it came up that the
memory setup is broken and only running due to a workaround.
qemu-devel is on cc for patch 1/3
[patches in series]
[PATCH 1/3] qemu: ppc: define maximum SMP limit as 1 for Bamboo
[PATCH 2/3] kvm: external module: Treat NONARCH_CONFIG as a list
[PATCH 3/3] kvm-userspace: ppc: fix initial ppc memory setup
---
[diffstat]
b/kernel/Makefile | 3 ++-
b/qemu/hw/ppc440.c | 12 +++++-------
b/qemu/hw/ppc440.h | 8 ++++++--
b/qemu/hw/ppc440_bamboo.c | 7 ++++---
qemu/hw/ppc440_bamboo.c | 30 ++++++++++++++++++++----------
5 files changed, 37 insertions(+), 23 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/5] user: ppc: implement PowerPC 44x libcflat
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
@ 2008-10-28 9:08 ` ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 5/5] user: ppc: add stub nmi handler ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:25 ` [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc Christian Ehrhardt
2 siblings, 0 replies; 8+ messages in thread
From: ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8 @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
avi-atKUWr5tajBWk0Htik3J/w
Cc: hollisb-r/Jw6+rmf7HQT0dZR+AlfA,
ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
From: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
- Create a 44x-specific makefile.
- Reorganize PowerPC makefiles to separate "simple" tests from those which
link with libcflat.
- Create a minimal libcflat testcase (which just exits).
Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---
[diffstat]
config-powerpc-44x.mak | 14 +++++++++++
config-powerpc.mak | 46 ++++++++++++++++++++++++++------------
test/lib/powerpc/44x/map.c | 51 +++++++++++++++++++++++++++++++++++++++++++
test/lib/powerpc/44x/tlbwe.S | 29 ++++++++++++++++++++++++
test/lib/powerpc/io.c | 35 +++++++++++++++++++++++++++++
test/powerpc/cstart.S | 38 ++++++++++++++++++++++++++++++++
test/powerpc/exit.c | 23 +++++++++++++++++++
7 files changed, 221 insertions(+), 15 deletions(-)
[diff]
diff --git a/user/config-powerpc-44x.mak b/user/config-powerpc-44x.mak
new file mode 100644
--- /dev/null
+++ b/user/config-powerpc-44x.mak
@@ -0,0 +1,14 @@
+
+
+# for some reason binutils hates tlbsx unless we say we're 405 :(
+CFLAGS += -Wa,-m405 -I test/lib/powerpc/44x
+
+cflatobjs += \
+ test/lib/powerpc/44x/map.o \
+ test/lib/powerpc/44x/tlbwe.o
+
+simpletests += \
+ test/powerpc/44x/tlbsx.bin \
+ test/powerpc/44x/tlbwe_16KB.bin \
+ test/powerpc/44x/tlbwe_hole.bin \
+ test/powerpc/44x/tlbwe.bin
diff --git a/user/config-powerpc.mak b/user/config-powerpc.mak
--- a/user/config-powerpc.mak
+++ b/user/config-powerpc.mak
@@ -1,26 +1,42 @@
+platform := 44x
+
CFLAGS += -m32
CFLAGS += -D__powerpc__
CFLAGS += -I $(KERNELDIR)/include
-# for some reaons binutils hates tlbsx unless we say we're 405 :(
-CFLAGS += -Wa,-mregnames,-m405
+CFLAGS += -Wa,-mregnames -I test/lib
-%.bin: %.o
- $(OBJCOPY) -O binary $^ $@
+cstart := test/powerpc/cstart.o
-testobjs := \
- io.bin \
- spin.bin \
- sprg.bin \
- 44x/tlbsx.bin \
- 44x/tlbwe_16KB.bin \
- 44x/tlbwe_hole.bin \
- 44x/tlbwe.bin
+cflatobjs += \
+ test/lib/powerpc/io.o
-tests := $(addprefix test/powerpc/, $(testobjs))
+$(libcflat): LDFLAGS += -nostdlib
+$(libcflat): CFLAGS += -ffreestanding
-all: kvmtrace kvmctl $(tests)
+# these tests do not use libcflat
+simpletests := \
+ test/powerpc/spin.bin \
+ test/powerpc/io.bin \
+ test/powerpc/sprg.bin
+
+# theses tests use cstart.o, libcflat, and libgcc
+tests := \
+ test/powerpc/exit.bin
+
+include config-powerpc-$(platform).mak
+
+
+all: kvmtrace kvmctl $(libcflat) $(simpletests) $(tests)
+
+$(simpletests): %.bin: %.o
+ $(CC) -nostdlib $^ -Wl,-T,flat.lds -o $@
+
+$(tests): %.bin: $(cstart) %.o $(libcflat)
+ $(CC) -nostdlib $^ $(libgcc) -Wl,-T,flat.lds -o $@
kvmctl_objs = main-ppc.o iotable.o ../libkvm/libkvm.a
arch_clean:
- rm -f $(tests)
+ $(RM) $(simpletests) $(tests) $(cstart)
+ $(RM) $(patsubst %.bin, %.elf, $(simpletests) $(tests))
+ $(RM) $(patsubst %.bin, %.o, $(simpletests) $(tests))
diff --git a/user/test/lib/powerpc/44x/map.c b/user/test/lib/powerpc/44x/map.c
new file mode 100644
--- /dev/null
+++ b/user/test/lib/powerpc/44x/map.c
@@ -0,0 +1,51 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+ */
+
+#include "libcflat.h"
+
+#define TLB_SIZE 64
+
+extern void tlbwe(unsigned int index,
+ unsigned char tid,
+ unsigned int word0,
+ unsigned int word1,
+ unsigned int word2);
+
+unsigned int next_free_index;
+
+#define PAGE_SHIFT 12
+#define PAGE_MASK (~((1<<PAGE_SHIFT)-1))
+
+#define V (1<<9)
+
+void map(unsigned long vaddr, unsigned long paddr)
+{
+ unsigned int w0, w1, w2;
+
+ /* We don't install exception handlers, so we can't handle TLB misses,
+ * so we can't loop around and overwrite entry 0. */
+ if (next_free_index++ >= TLB_SIZE)
+ panic("TLB overflow");
+
+ w0 = (vaddr & PAGE_MASK) | V;
+ w1 = paddr & PAGE_MASK;
+ w2 = 0x3;
+
+ tlbwe(next_free_index, 0, w0, w1, w2);
+}
diff --git a/user/test/lib/powerpc/44x/tlbwe.S b/user/test/lib/powerpc/44x/tlbwe.S
new file mode 100644
--- /dev/null
+++ b/user/test/lib/powerpc/44x/tlbwe.S
@@ -0,0 +1,29 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+ */
+
+#define SPRN_MMUCR 0x3b2
+
+/* tlbwe(uint index, uint8_t tid, uint word0, uint word1, uint word2) */
+.global tlbwe
+tlbwe:
+ mtspr SPRN_MMUCR, r4
+ tlbwe r5, r3, 0
+ tlbwe r6, r3, 1
+ tlbwe r7, r3, 2
+ blr
diff --git a/user/test/lib/powerpc/io.c b/user/test/lib/powerpc/io.c
new file mode 100644
--- /dev/null
+++ b/user/test/lib/powerpc/io.c
@@ -0,0 +1,35 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+ */
+
+#include "libcflat.h"
+
+#define BASE 0xf0000000
+#define _putc ((volatile char *)(BASE))
+#define _exit ((volatile char *)(BASE+1))
+
+void puts(const char *s)
+{
+ while (*s != '\0')
+ *_putc = *s++;
+}
+
+void exit(int code)
+{
+ *_exit = code;
+}
diff --git a/user/test/powerpc/cstart.S b/user/test/powerpc/cstart.S
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/cstart.S
@@ -0,0 +1,38 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+ */
+
+#define OUTPUT_VADDR 0xf0000000
+#define OUTPUT_PADDR 0xf0000000
+
+.globl _start
+_start:
+ /* In the future we might need to assign a stack and zero BSS here. */
+
+ /* Map the debug page 1:1. */
+ lis r3, OUTPUT_VADDR@h
+ ori r3, r3, OUTPUT_VADDR@l
+ lis r4, OUTPUT_PADDR@h
+ ori r4, r4, OUTPUT_PADDR@l
+ bl map
+
+ /* Call main() and pass return code to exit(). */
+ bl main
+ bl exit
+
+ b .
diff --git a/user/test/powerpc/exit.c b/user/test/powerpc/exit.c
new file mode 100644
--- /dev/null
+++ b/user/test/powerpc/exit.c
@@ -0,0 +1,23 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation;
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
+ */
+
+int main(void)
+{
+ return 1;
+}
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 4/5] libcflat: ppc: add timebase accessor
2008-10-28 9:08 [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
` (2 preceding siblings ...)
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
@ 2008-10-28 9:08 ` ehrhardt
3 siblings, 0 replies; 8+ messages in thread
From: ehrhardt @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc, kvm, avi; +Cc: hollisb, ehrhardt
Provide a timebase accessor for ppc testcases.
Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
[diffstat]
config-powerpc-44x.mak | 3 ++-
test/lib/powerpc/44x/timebase.S | 28 ++++++++++++++++++++++++++++
test/lib/powerpc/44x/timebase.h | 25 +++++++++++++++++++++++++
3 files changed, 55 insertions(+), 1 deletion(-)
[diff]
diff --git a/user/config-powerpc-44x.mak b/user/config-powerpc-44x.mak
--- a/user/config-powerpc-44x.mak
+++ b/user/config-powerpc-44x.mak
@@ -5,7 +5,8 @@
cflatobjs += \
test/lib/powerpc/44x/map.o \
- test/lib/powerpc/44x/tlbwe.o
+ test/lib/powerpc/44x/tlbwe.o \
+ test/lib/powerpc/44x/timebase.o
simpletests += \
test/powerpc/44x/tlbsx.bin \
diff --git a/user/test/lib/powerpc/44x/timebase.S b/user/test/lib/powerpc/44x/timebase.S
new file mode 100644
--- /dev/null
+++ b/user/test/lib/powerpc/44x/timebase.S
@@ -0,0 +1,28 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb@us.ibm.com>
+ */
+
+/* unsigned long long mftb(void); */
+.global mftb
+mftb:
+ mftbu r5
+ mftbl r4
+ mftbu r3
+ cmpw r3, r5
+ bne mftb
+ blr
diff --git a/user/test/lib/powerpc/44x/timebase.h b/user/test/lib/powerpc/44x/timebase.h
new file mode 100644
--- /dev/null
+++ b/user/test/lib/powerpc/44x/timebase.h
@@ -0,0 +1,25 @@
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License, version 2, as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Copyright IBM Corp. 2008
+ *
+ * Authors: Hollis Blanchard <hollisb@us.ibm.com>
+ */
+
+#ifndef __TIMEBASE_H__
+#define __TIMEBASE_H__
+
+unsigned long long mftb(void);
+
+#endif /* __TIMEBASE_H__ */
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 5/5] user: ppc: add stub nmi handler
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-10-28 9:08 ` [PATCH 3/5] user: ppc: implement PowerPC 44x libcflat ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
@ 2008-10-28 9:08 ` ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:25 ` [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc Christian Ehrhardt
2 siblings, 0 replies; 8+ messages in thread
From: ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8 @ 2008-10-28 9:08 UTC (permalink / raw)
To: kvm-ppc-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
avi-atKUWr5tajBWk0Htik3J/w
Cc: hollisb-r/Jw6+rmf7HQT0dZR+AlfA,
ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
From: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Adding a nmi stub handler for user/main-ppc.c. We already pushed a stub
for qemu but not for the test suite in the user dir.
Signed-off-by: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Signed-off-by: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---
[diffstat]
main-ppc.c | 6 ++++++
1 file changed, 6 insertions(+)
[diff]
diff --git a/user/main-ppc.c b/user/main-ppc.c
--- a/user/main-ppc.c
+++ b/user/main-ppc.c
@@ -83,6 +83,11 @@ static int test_io_window(void *opaque)
}
static int test_try_push_interrupts(void *opaque)
+{
+ return 0;
+}
+
+static int test_try_push_nmi(void *opaque)
{
return 0;
}
@@ -175,6 +180,7 @@ static struct kvm_callbacks test_callbac
.halt = test_halt,
.io_window = test_io_window,
.try_push_interrupts = test_try_push_interrupts,
+ .try_push_nmi = test_try_push_nmi,
.post_kvm_run = test_post_kvm_run,
.pre_kvm_run = test_pre_kvm_run,
.powerpc_dcr_read = test_dcr_read,
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-10-28 9:08 ` [PATCH 3/5] user: ppc: implement PowerPC 44x libcflat ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 5/5] user: ppc: add stub nmi handler ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
@ 2008-10-28 9:25 ` Christian Ehrhardt
2 siblings, 0 replies; 8+ messages in thread
From: Christian Ehrhardt @ 2008-10-28 9:25 UTC (permalink / raw)
To: kvm-ppc-u79uwXL29TY76Z2rM5mHXA, kvm-u79uwXL29TY76Z2rM5mHXA,
avi-atKUWr5tajBWk0Htik3J/w
Cc: hollisb-r/Jw6+rmf7HQT0dZR+AlfA
Ok I should have send these two series with some minutes in between to
not intermix them :-/
Additionally I have the wrong header in this one it should be [0/5] :-/++
Overall it is a patch series of three patches for powerpc kvm-userspace,
a five patch series for kvm-suerspace/user/ and a single patch I just
submitted while cleaning our userspace repo to get the missing things
upstream.
Avi, let me know if I confused you and I'll send them once again with
some time in between to order them easier.
ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org wrote:
> From: Christian Ehrhardt <ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>
> This is a set of fixes for the powerpc tests kvm-userspace/user.
>
> Patch 1&2 fix main-ppc.c while patch 3 introduces libcflat for powerpc.
> Further on patch 4 provides a timebase accessor for the ppc testcases (not
> used yet) and patch 5 finally adds a stub nmi handler to main-ppc.c.
>
> [patches in series]
> [PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c
> [PATCH 2/5] user: ppc: better error reporting in load_file
> [PATCH 3/5] user: ppc: implement PowerPC 44x libcflat
> [PATCH 4/5] libcflat: ppc: add timebase accessor
> [PATCH 5/5] user: ppc: add stub nmi handler
>
> ---
> [diffstat]
> b/user/config-powerpc-44x.mak | 14 +++++++++
> b/user/config-powerpc.mak | 46 ++++++++++++++++++++---------
> b/user/main-ppc.c | 32 +++++++-------------
> b/user/test/lib/powerpc/44x/map.c | 51 +++++++++++++++++++++++++++++++++
> b/user/test/lib/powerpc/44x/timebase.S | 28 ++++++++++++++++++
> b/user/test/lib/powerpc/44x/timebase.h | 25 ++++++++++++++++
> b/user/test/lib/powerpc/44x/tlbwe.S | 29 ++++++++++++++++++
> b/user/test/lib/powerpc/io.c | 35 ++++++++++++++++++++++
> b/user/test/powerpc/cstart.S | 38 ++++++++++++++++++++++++
> b/user/test/powerpc/exit.c | 23 ++++++++++++++
> user/config-powerpc-44x.mak | 3 +
> user/main-ppc.c | 9 +++++
> 12 files changed, 296 insertions(+), 37 deletions(-)
> --
> To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
Grüsse / regards,
Christian Ehrhardt
IBM Linux Technology Center, Open Virtualization
--
To unsubscribe from this list: send the line "unsubscribe kvm-ppc" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2008-10-28 9:25 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-28 9:08 [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 1/5] user: ppc: fix threading bugs in main-ppc.c ehrhardt
2008-10-28 9:08 ` [PATCH 2/5] user: ppc: better error reporting in load_file ehrhardt
[not found] ` <1225184902-25769-1-git-send-email-ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
2008-10-28 9:08 ` [PATCH 3/5] user: ppc: implement PowerPC 44x libcflat ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:08 ` [PATCH 5/5] user: ppc: add stub nmi handler ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
2008-10-28 9:25 ` [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc Christian Ehrhardt
2008-10-28 9:08 ` [PATCH 4/5] libcflat: ppc: add timebase accessor ehrhardt
-- strict thread matches above, loose matches on Subject: below --
2008-10-28 9:08 [PATCH 0/3] kvm-userspace: ppc: userspace fixes for powerpc ehrhardt-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox