On Mon, Jun 06, 2016 at 02:46:39PM +0200, Alexander Gordeev wrote: > Cc: Thomas Huth <thuth@xxxxxxxxxx> > Cc: Andrew Jones <drjones@xxxxxxxxxx> > Signed-off-by: Alexander Gordeev <agordeev@xxxxxxxxxx> > --- > arm/Makefile.common | 6 +++++- > arm/pci-test.c | 21 +++++++++++++++++++++ > lib/arm/asm/pci.h | 26 ++++++++++++++++++++++++++ > lib/arm64/asm/pci.h | 1 + > 4 files changed, 53 insertions(+), 1 deletion(-) > 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 a786fcf94154..e27a3fd276ff 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,8 @@ 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/virtio.o > cflatobjs += lib/virtio-mmio.o > cflatobjs += lib/chr-testdev.o > @@ -73,3 +76,4 @@ generated_files = $(asm-offsets) > test_cases: $(generated_files) $(tests-common) $(tests) > > $(TEST_DIR)/selftest.o $(cstart.o): $(asm-offsets) > +$(TEST_DIR)/pci-test.elf: $(cstart.o) $(TEST_DIR)/pci-test.o You don't need this line anymore. See 4c6b5d0b1c "arm/arm64: Makefile cleanup" > diff --git a/arm/pci-test.c b/arm/pci-test.c > new file mode 100644 > index 000000000000..fde5495dd626 > --- /dev/null > +++ b/arm/pci-test.c > @@ -0,0 +1,21 @@ > +/* > + * 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> > + > +int main(void) > +{ > + int ret = pci_probe(); > + > + report("PCI bus probing", ret); > + > + if (ret) > + pci_print(); > + > + return report_summary(); > +} > diff --git a/lib/arm/asm/pci.h b/lib/arm/asm/pci.h > new file mode 100644 > index 000000000000..8263821ad511 > --- /dev/null > +++ b/lib/arm/asm/pci.h > @@ -0,0 +1,26 @@ > +#ifndef _ASMARM_PCI_H_ > +#define _ASMARM_PCI_H_ > +/* > + * 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" > + > +phys_addr_t pci_host_bridge_get_paddr(uint64_t addr); > + > +static inline > +phys_addr_t pci_translate_addr(pcidevaddr_t __unused dev, uint64_t addr) __unused after dev > +{ > + /* > + * Assume we only have single PCI host bridge in a system. > + */ > + return pci_host_bridge_get_paddr(addr); > +} > + > +uint8_t pci_config_readb(pcidevaddr_t dev, uint8_t reg); > +uint16_t pci_config_readw(pcidevaddr_t dev, uint8_t reg); > +uint32_t pci_config_readl(pcidevaddr_t dev, uint8_t reg); > +void pci_config_writel(pcidevaddr_t dev, uint8_t reg, uint32_t val); > + > +#endif The code in lib/arm/asm/pci.h could probably be in a generic include instead, and then included by lib/arm/asm/pci.h, but I'm OK with this until we add ppc64 support. > 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 > Thanks, drew -- 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