package/linux-tools: add support for pcitest tool

Message ID 676a63fc4e656a81398dc1fca048f3e2bdea327e.1541701306.git.gustavo.pimentel@synopsys.com
State Changes Requested
Headers show
Series
  • package/linux-tools: add support for pcitest tool
Related show

Commit Message

Gustavo Pimentel Nov. 8, 2018, 6:22 p.m.
Add support for selection and compiling the pcitest tool on buildroot.

This tool is available to be compiled since kernel 4.20.

Signed-off-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
---
 package/linux-tools/Config.in            |  7 +++++++
 package/linux-tools/linux-tool-pci.mk.in | 29 +++++++++++++++++++++++++++++
 2 files changed, 36 insertions(+)
 create mode 100644 package/linux-tools/linux-tool-pci.mk.in

Comments

Thomas Petazzoni Nov. 9, 2018, 9:14 p.m. | #1
Hello Gustavo,

Thanks for this contribution, however, I have a question below.

On Thu,  8 Nov 2018 19:22:30 +0100, Gustavo Pimentel wrote:

> +define PCI_BUILD_CMDS
> +	$(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \
> +		echo "Your kernel version is too old and does not have install section in the pci tools." ; \
> +		echo "At least kernel 4.7 must be used." ; \

I tried building with 4.18, but still ran into this error. Indeed, it's
only in 4.19 that your patch
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/pci?id=1ce78ce09430a5ffb987015ab2e24d145690b9a3
was added, which adds the Makefile.

So, either you fallback to building pcitest.c manually if there is no
Makefile, or the error message should be updated to say "At least
kernel 4.19 must be used".

Best regards,

Thomas
Arnout Vandecappelle Nov. 9, 2018, 9:39 p.m. | #2
On 09/11/2018 22:14, Thomas Petazzoni wrote:
> Hello Gustavo,
> 
> Thanks for this contribution, however, I have a question below.
> 
> On Thu,  8 Nov 2018 19:22:30 +0100, Gustavo Pimentel wrote:
> 
>> +define PCI_BUILD_CMDS
>> +	$(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \
>> +		echo "Your kernel version is too old and does not have install section in the pci tools." ; \
>> +		echo "At least kernel 4.7 must be used." ; \
> 
> I tried building with 4.18, but still ran into this error. Indeed, it's
> only in 4.19 that your patch
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/tools/pci?id=1ce78ce09430a5ffb987015ab2e24d145690b9a3
> was added, which adds the Makefile.
> 
> So, either you fallback to building pcitest.c manually if there is no
> Makefile, or the error message should be updated to say "At least
> kernel 4.19 must be used".

 Also, your patch mentions 3 different kernel versions: in the commit log it's
4.20, in the help text it's not mentioned (it should be), in the error message
it's 4.7, and in the comment about DESTDIR it's 4.14.

 But if it's only available in 4.19+, that thing about DESTDIR is irrelevant,
no? So it should always be DESTDIR, never INSTALL_ROOT?

 Regards,
 Arnout
Gustavo Pimentel Nov. 13, 2018, 1:18 a.m. | #3
Hi Thomas,

On 09/11/2018 21:14, Thomas Petazzoni wrote:
> Hello Gustavo,
> 
> Thanks for this contribution, however, I have a question below.
> 
> On Thu,  8 Nov 2018 19:22:30 +0100, Gustavo Pimentel wrote:
> 
>> +define PCI_BUILD_CMDS
>> +	$(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \
>> +		echo "Your kernel version is too old and does not have install section in the pci tools." ; \
>> +		echo "At least kernel 4.7 must be used." ; \
> 
> I tried building with 4.18, but still ran into this error. Indeed, it's
> only in 4.19 that your patch
> https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_pub_scm_linux_kernel_git_torvalds_linux.git_commit_tools_pci-3Fid-3D1ce78ce09430a5ffb987015ab2e24d145690b9a3&d=DwICAg&c=DPL6_X_6JkXFx7AXWqB0tg&r=bkWxpLoW-f-E3EdiDCCa0_h0PicsViasSlvIpzZvPxs&m=qVWqkVnASamZzXF3WT9zuVfDKzd-ifqSCFv7Y-iN10s&s=hndtmBXj6oMoxc26JB-kTsCWJbyEVOy2kYhSbLfqMng&e=
> was added, which adds the Makefile.
> 
> So, either you fallback to building pcitest.c manually if there is no
> Makefile, or the error message should be updated to say "At least
> kernel 4.19 must be used".

You're right. I'll update the error message.
Thanks.

Gustavo

> 
> Best regards,
> 
> Thomas
>
Gustavo Pimentel Nov. 13, 2018, 1:59 a.m. | #4
On 09/11/2018 21:39, Arnout Vandecappelle wrote:
> 
> 
> On 09/11/2018 22:14, Thomas Petazzoni wrote:
>> Hello Gustavo,
>>
>> Thanks for this contribution, however, I have a question below.
>>
>> On Thu,  8 Nov 2018 19:22:30 +0100, Gustavo Pimentel wrote:
>>
>>> +define PCI_BUILD_CMDS
>>> +	$(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \
>>> +		echo "Your kernel version is too old and does not have install section in the pci tools." ; \
>>> +		echo "At least kernel 4.7 must be used." ; \
>>
>> I tried building with 4.18, but still ran into this error. Indeed, it's
>> only in 4.19 that your patch
>> https://urldefense.proofpoint.com/v2/url?u=https-3A__git.kernel.org_pub_scm_linux_kernel_git_torvalds_linux.git_commit_tools_pci-3Fid-3D1ce78ce09430a5ffb987015ab2e24d145690b9a3&d=DwICaQ&c=DPL6_X_6JkXFx7AXWqB0tg&r=bkWxpLoW-f-E3EdiDCCa0_h0PicsViasSlvIpzZvPxs&m=42FtAgE43Y-ecR9vgGhkkdOiiFMdSJR9VC4_qQjO2uA&s=0c1L3G6rzwM1VCMyKHTixgwJlepqW9_c3sEIS6V2Qpg&e=
>> was added, which adds the Makefile.
>>
>> So, either you fallback to building pcitest.c manually if there is no
>> Makefile, or the error message should be updated to say "At least
>> kernel 4.19 must be used".
> 
>  Also, your patch mentions 3 different kernel versions: in the commit log it's
> 4.20, in the help text it's not mentioned (it should be), in the error message
> it's 4.7, and in the comment about DESTDIR it's 4.14.

Ok, I will fix it, should all be 4.20

> 
>  But if it's only available in 4.19+, that thing about DESTDIR is irrelevant,
> no? So it should always be DESTDIR, never INSTALL_ROOT?

It was a copy & paste from linux-tool-iio.mk.in I will fixed it.
Thanks.

> 
>  Regards,
>  Arnout
>

Patch

diff --git a/package/linux-tools/Config.in b/package/linux-tools/Config.in
index 349dc6b..d1b94c2 100644
--- a/package/linux-tools/Config.in
+++ b/package/linux-tools/Config.in
@@ -34,6 +34,13 @@  config BR2_PACKAGE_LINUX_TOOLS_IIO
 
 	  These tools are available only from kernel version 4.7.
 
+config BR2_PACKAGE_LINUX_TOOLS_PCI
+	bool "pci"
+	select BR2_PACKAGE_LINUX_TOOLS
+	help
+	  pcitest is a tool for testing capabilities related to a
+	  PCI Endpoint (only works with specific Endpoints).
+
 config BR2_PACKAGE_LINUX_TOOLS_PERF
 	bool "perf"
 	select BR2_PACKAGE_LINUX_TOOLS
diff --git a/package/linux-tools/linux-tool-pci.mk.in b/package/linux-tools/linux-tool-pci.mk.in
new file mode 100644
index 0000000..e49d4eb
--- /dev/null
+++ b/package/linux-tools/linux-tool-pci.mk.in
@@ -0,0 +1,29 @@ 
+################################################################################
+#
+# pci
+#
+################################################################################
+
+LINUX_TOOLS += pci
+
+PCI_MAKE_OPTS = $(LINUX_MAKE_FLAGS)
+
+define PCI_BUILD_CMDS
+	$(Q)if ! grep install $(LINUX_DIR)/tools/pci/Makefile >/dev/null 2>&1 ; then \
+		echo "Your kernel version is too old and does not have install section in the pci tools." ; \
+		echo "At least kernel 4.7 must be used." ; \
+		exit 1 ; \
+	fi
+
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/pci \
+		$(PCI_MAKE_OPTS)
+endef
+
+# DESTDIR used since kernel version 4.14
+define PCI_INSTALL_TARGET_CMDS
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(LINUX_DIR)/tools/pci \
+		$(PCI_MAKE_OPTS) \
+		INSTALL_ROOT=$(TARGET_DIR) \
+		DESTDIR=$(TARGET_DIR) \
+		install
+endef