On Thu, Oct 20, 2016 at 03:10:31PM +0200, Alexander Gordeev wrote: > Suggested-by: Andrew Jones <drjones@xxxxxxxxxx> > Cc: Thomas Huth <thuth@xxxxxxxxxx> > Cc: Andrew Jones <drjones@xxxxxxxxxx> > Cc: Peter Xu <peterx@xxxxxxxxxx> > Reviewed-by: Andrew Jones <drjones@xxxxxxxxxx> > Signed-off-by: Alexander Gordeev <agordeev@xxxxxxxxxx> > --- > arm/Makefile.common | 6 +++++- > arm/pci-test.c | 27 +++++++++++++++++++++++++++ > arm/run | 7 ++++++- > arm/unittests.cfg | 4 ++++ > lib/arm/asm/pci.h | 1 + > lib/arm64/asm/pci.h | 1 + > 6 files changed, 44 insertions(+), 2 deletions(-) > create mode 100644 arm/pci-test.c > create mode 100644 lib/arm/asm/pci.h > create mode 100644 lib/arm64/asm/pci.h > > diff --git a/arm/Makefile.common b/arm/Makefile.common > index ccb554d9251a..f37b5c2a3de4 100644 > --- a/arm/Makefile.common > +++ b/arm/Makefile.common > @@ -11,7 +11,8 @@ endif > > tests-common = \ > $(TEST_DIR)/selftest.flat \ > - $(TEST_DIR)/spinlock-test.flat > + $(TEST_DIR)/spinlock-test.flat \ > + $(TEST_DIR)/pci-test.flat > > all: test_cases > > @@ -33,6 +34,9 @@ include scripts/asm-offsets.mak > cflatobjs += lib/util.o > cflatobjs += lib/alloc.o > cflatobjs += lib/devicetree.o > +cflatobjs += lib/pci.o > +cflatobjs += lib/pci-host-generic.o > +cflatobjs += lib/pci-testdev.o > cflatobjs += lib/virtio.o > cflatobjs += lib/virtio-mmio.o > cflatobjs += lib/chr-testdev.o > diff --git a/arm/pci-test.c b/arm/pci-test.c > new file mode 100644 > index 000000000000..10a367de5357 > --- /dev/null > +++ b/arm/pci-test.c > @@ -0,0 +1,27 @@ > +/* > + * PCI bus operation test > + * > + * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@xxxxxxxxxx> > + * > + * This work is licensed under the terms of the GNU LGPL, version 2. > + */ > +#include <libcflat.h> > +#include <pci.h> > + > +#define NR_TESTS (PCI_TESTDEV_NUM_BARS * PCI_TESTDEV_NUM_TESTS) > + > +int main(void) > +{ > + int ret; > + > + if (!pci_probe()) > + report_abort("PCI bus probing failed\n"); > + > + pci_print(); > + > + ret = pci_testdev(); > + report("PCI test device passed %d/%d tests", > + ret >= NR_TESTS, ret > 0 ? ret : 0, NR_TESTS); > + > + return report_summary(); > +} > diff --git a/arm/run b/arm/run > index a2f35ef6a7e6..1ee6231599d6 100755 > --- a/arm/run > +++ b/arm/run > @@ -67,8 +67,13 @@ fi > chr_testdev='-device virtio-serial-device' > chr_testdev+=' -device virtconsole,chardev=ctd -chardev testdev,id=ctd' > > +pci_testdev= > +if $qemu $M -device '?' 2>&1 | grep pci-testdev > /dev/null; then > + pci_testdev="-device pci-testdev" > +fi > + > M+=",accel=$ACCEL" > -command="$qemu $M -cpu $processor $chr_testdev" > +command="$qemu $M -cpu $processor $chr_testdev $pci_testdev" > command+=" -display none -serial stdio -kernel" > command="$(timeout_cmd) $command" > echo $command "$@" > diff --git a/arm/unittests.cfg b/arm/unittests.cfg > index 3f6fa45c587e..ae32a42a91c3 100644 > --- a/arm/unittests.cfg > +++ b/arm/unittests.cfg > @@ -54,3 +54,7 @@ file = selftest.flat > smp = $MAX_SMP > extra_params = -append 'smp' > groups = selftest > + > +[pci-test] > +file = pci-test.flat > +groups = pci > diff --git a/lib/arm/asm/pci.h b/lib/arm/asm/pci.h > new file mode 100644 > index 000000000000..01ecafe2b6d8 > --- /dev/null > +++ b/lib/arm/asm/pci.h > @@ -0,0 +1 @@ > +#include "asm-generic/pci-host-bridge.h" nit: I would have used <> here, but it doesn't matter. > diff --git a/lib/arm64/asm/pci.h b/lib/arm64/asm/pci.h > new file mode 100644 > index 000000000000..f70ef560e2ab > --- /dev/null > +++ b/lib/arm64/asm/pci.h > @@ -0,0 +1 @@ > +#include "../../arm/asm/pci.h" > -- > 1.8.3.1 > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html