From 6498b6269213e27f286e0a50952380a36352593c Mon Sep 17 00:00:00 2001 From: Peter Mikus Date: Thu, 6 Mar 2025 10:58:42 +0100 Subject: fix(infra): Octeon binding Signed-off-by: Peter Mikus Change-Id: I0e8ee3de3fbac53aad6a530804c67b0114b89b50 --- resources/libraries/python/DUTSetup.py | 15 +++++++++++++++ resources/libraries/robot/shared/interfaces.robot | 4 ++-- 2 files changed, 17 insertions(+), 2 deletions(-) (limited to 'resources') diff --git a/resources/libraries/python/DUTSetup.py b/resources/libraries/python/DUTSetup.py index bc8af372df..8c240d9735 100644 --- a/resources/libraries/python/DUTSetup.py +++ b/resources/libraries/python/DUTSetup.py @@ -380,6 +380,21 @@ class DUTSetup: if not driver or cur_driver != driver: DUTSetup.pci_driver_unbind(node, pci_addr) + @staticmethod + def bind_pci_devices_to_specific_driver(node, driver, *pci_addrs): + """Bind PCI devices to input driver on node. Unbind from previous. + + :param node: DUT node. + :param driver: Driver to bind to. + :param pci_addrs: PCI device addresses. + :type node: dict + :type driver: str + :type pci_addrs: list + """ + for pci_addr in pci_addrs: + DUTSetup.pci_driver_unbind(node, pci_addr) + DUTSetup.pci_driver_bind(node, pci_addr, driver) + @staticmethod def pci_driver_bind(node, pci_addr, driver): """Bind PCI device to driver on node. diff --git a/resources/libraries/robot/shared/interfaces.robot b/resources/libraries/robot/shared/interfaces.robot index 393811578e..929ff16196 100644 --- a/resources/libraries/robot/shared/interfaces.robot +++ b/resources/libraries/robot/shared/interfaces.robot @@ -146,8 +146,8 @@ | | Run Keyword If | ${nic_vfs} | | ... | ${dut}.Add OCTEON Dev | @{${dut}_prevf_pci} | | Run Keyword If | not ${nic_vfs} -| | ... | Unbind PCI Devices From Other Driver | ${nodes['${dut}']} | vfio-pci | -| | ... | ... | @{${dut}_pf_pci} +| | ... | Bind PCI Devices To Specific Driver | ${nodes['${dut}']} | vfio-pci +| | ... | @{${dut}_pf_pci} | | Run Keyword If | not ${nic_vfs} | | ... | ${dut}.Add OCTEON Dev | @{${dut}_pf_pci} -- cgit