On Thursday 23 August 2018 05:25 PM, Gustavo Pimentel wrote: > Change tool compiling process in order to be build using the same > mechanism used in other linux tools (e.g. iio, perf, etc). This will > allow in future the buildroot tool to build and integrate this tool in > a more expeditious way. > > Update documentation accordingly. > > Signed-off-by: Gustavo Pimentel <gustavo.pimentel@xxxxxxxxxxxx> Reviewed-by: Kishon Vijay Abraham I <kishon@xxxxxx> > --- > Documentation/PCI/endpoint/pci-test-howto.txt | 19 ++++++---- > tools/Makefile | 13 ++++--- > tools/pci/Build | 1 + > tools/pci/Makefile | 53 +++++++++++++++++++++++++++ > 4 files changed, 72 insertions(+), 14 deletions(-) > create mode 100644 tools/pci/Build > create mode 100644 tools/pci/Makefile > > diff --git a/Documentation/PCI/endpoint/pci-test-howto.txt b/Documentation/PCI/endpoint/pci-test-howto.txt > index 75f48c3..16df733 100644 > --- a/Documentation/PCI/endpoint/pci-test-howto.txt > +++ b/Documentation/PCI/endpoint/pci-test-howto.txt > @@ -98,17 +98,20 @@ Note that the devices listed here correspond to the value populated in 1.4 above > 2.2 Using Endpoint Test function Device > > pcitest.sh added in tools/pci/ can be used to run all the default PCI endpoint > -tests. Before pcitest.sh can be used pcitest.c should be compiled using the > -following commands. > +tests. To compile this tool the following commands should be used: > > - cd <kernel-dir> > - make headers_install ARCH=arm > - arm-linux-gnueabihf-gcc -Iusr/include tools/pci/pcitest.c -o pcitest > - cp pcitest <rootfs>/usr/sbin/ > - cp tools/pci/pcitest.sh <rootfs> > + # cd <kernel-dir> > + # make -C tools/pci > + > +or if you desire to compile and install in your system: > + > + # cd <kernel-dir> > + # make -C tools/pci install > + > +The tool and script will be located in <rootfs>/usr/bin/ > > 2.2.1 pcitest.sh Output > - # ./pcitest.sh > + # pcitest.sh > BAR tests > > BAR0: OKAY > diff --git a/tools/Makefile b/tools/Makefile > index be02c8b..abb358a 100644 > --- a/tools/Makefile > +++ b/tools/Makefile > @@ -21,6 +21,7 @@ help: > @echo ' leds - LEDs tools' > @echo ' liblockdep - user-space wrapper for kernel locking-validator' > @echo ' bpf - misc BPF tools' > + @echo ' pci - PCI tools' > @echo ' perf - Linux performance measurement and analysis tool' > @echo ' selftests - various kernel selftests' > @echo ' spi - spi tools' > @@ -59,7 +60,7 @@ acpi: FORCE > cpupower: FORCE > $(call descend,power/$@) > > -cgroup firewire hv guest spi usb virtio vm bpf iio gpio objtool leds wmi: FORCE > +cgroup firewire hv guest spi usb virtio vm bpf iio gpio objtool leds wmi pci: FORCE > $(call descend,$@) > > liblockdep: FORCE > @@ -94,7 +95,7 @@ kvm_stat: FORCE > all: acpi cgroup cpupower gpio hv firewire liblockdep \ > perf selftests spi turbostat usb \ > virtio vm bpf x86_energy_perf_policy \ > - tmon freefall iio objtool kvm_stat wmi > + tmon freefall iio objtool kvm_stat wmi pci > > acpi_install: > $(call descend,power/$(@:_install=),install) > @@ -102,7 +103,7 @@ acpi_install: > cpupower_install: > $(call descend,power/$(@:_install=),install) > > -cgroup_install firewire_install gpio_install hv_install iio_install perf_install spi_install usb_install virtio_install vm_install bpf_install objtool_install wmi_install: > +cgroup_install firewire_install gpio_install hv_install iio_install perf_install spi_install usb_install virtio_install vm_install bpf_install objtool_install wmi_install pci_install: > $(call descend,$(@:_install=),install) > > liblockdep_install: > @@ -128,7 +129,7 @@ install: acpi_install cgroup_install cpupower_install gpio_install \ > perf_install selftests_install turbostat_install usb_install \ > virtio_install vm_install bpf_install x86_energy_perf_policy_install \ > tmon_install freefall_install objtool_install kvm_stat_install \ > - wmi_install > + wmi_install pci_install > > acpi_clean: > $(call descend,power/acpi,clean) > @@ -136,7 +137,7 @@ acpi_clean: > cpupower_clean: > $(call descend,power/cpupower,clean) > > -cgroup_clean hv_clean firewire_clean spi_clean usb_clean virtio_clean vm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean: > +cgroup_clean hv_clean firewire_clean spi_clean usb_clean virtio_clean vm_clean wmi_clean bpf_clean iio_clean gpio_clean objtool_clean leds_clean pci_clean: > $(call descend,$(@:_clean=),clean) > > liblockdep_clean: > @@ -174,6 +175,6 @@ clean: acpi_clean cgroup_clean cpupower_clean hv_clean firewire_clean \ > perf_clean selftests_clean turbostat_clean spi_clean usb_clean virtio_clean \ > vm_clean bpf_clean iio_clean x86_energy_perf_policy_clean tmon_clean \ > freefall_clean build_clean libbpf_clean libsubcmd_clean liblockdep_clean \ > - gpio_clean objtool_clean leds_clean wmi_clean > + gpio_clean objtool_clean leds_clean wmi_clean pci_clean > > .PHONY: FORCE > diff --git a/tools/pci/Build b/tools/pci/Build > new file mode 100644 > index 0000000..c375aea > --- /dev/null > +++ b/tools/pci/Build > @@ -0,0 +1 @@ > +pcitest-y += pcitest.o > diff --git a/tools/pci/Makefile b/tools/pci/Makefile > new file mode 100644 > index 0000000..46e4c2f > --- /dev/null > +++ b/tools/pci/Makefile > @@ -0,0 +1,53 @@ > +# SPDX-License-Identifier: GPL-2.0 > +include ../scripts/Makefile.include > + > +bindir ?= /usr/bin > + > +ifeq ($(srctree),) > +srctree := $(patsubst %/,%,$(dir $(CURDIR))) > +srctree := $(patsubst %/,%,$(dir $(srctree))) > +endif > + > +# Do not use make's built-in rules > +# (this improves performance and avoids hard-to-debug behaviour); > +MAKEFLAGS += -r > + > +CFLAGS += -O2 -Wall -g -D_GNU_SOURCE -I$(OUTPUT)include > + > +ALL_TARGETS := pcitest pcitest.sh > +ALL_PROGRAMS := $(patsubst %,$(OUTPUT)%,$(ALL_TARGETS)) > + > +all: $(ALL_PROGRAMS) > + > +export srctree OUTPUT CC LD CFLAGS > +include $(srctree)/tools/build/Makefile.include > + > +# > +# We need the following to be outside of kernel tree > +# > +$(OUTPUT)include/linux/: ../../include/uapi/linux/ > + mkdir -p $(OUTPUT)include/linux/ 2>&1 || true > + ln -sf $(CURDIR)/../../include/uapi/linux/pcitest.h $@ > + > +prepare: $(OUTPUT)include/linux/ > + > +PCITEST_IN := $(OUTPUT)pcitest-in.o > +$(PCITEST_IN): prepare FORCE > + $(Q)$(MAKE) $(build)=pcitest > +$(OUTPUT)pcitest: $(PCITEST_IN) > + $(QUIET_LINK)$(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ > + > +clean: > + rm -f $(ALL_PROGRAMS) > + rm -rf $(OUTPUT)include/ > + find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.d' -delete > + > +install: $(ALL_PROGRAMS) > + install -d -m 755 $(DESTDIR)$(bindir); \ > + for program in $(ALL_PROGRAMS); do \ > + install $$program $(DESTDIR)$(bindir); \ > + done > + > +FORCE: > + > +.PHONY: all install clean FORCE prepare >