[PATCH v2] config-tools: board inspector exits if the VMD is configured


Yang, Yu-chu
 

From: yuchuyang <yu-chu.yang@...>

Board inspector does not support multiple PCI segment. Stop running and
throw out the message for user to disable VMD from BIOS setting.

v1->v2
Refine check_pci_domains from board_inspector.py. Discard the change of
dmar.py.

Signed-off-by: yuchuyang <yu-chu.yang@...>
---
misc/config_tools/board_inspector/board_inspector.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/misc/config_tools/board_inspector/board_inspector.py b/misc/config_tools/board_inspector/board_inspector.py
index 645f1b375..d32f71b26 100755
--- a/misc/config_tools/board_inspector/board_inspector.py
+++ b/misc/config_tools/board_inspector/board_inspector.py
@@ -83,10 +83,11 @@ def native_check():
"Only KVM or QEMU is supported. Unexpected results may occur.")

def check_pci_domains():
- root_buses = filter(lambda x: x.startswith("pci"), os.listdir("/sys/devices"))
- domain_ids = set(map(lambda x: x.split(":")[0].replace("pci", ""), root_buses))
+ root_buses = os.listdir("/sys/bus/pci/devices/")
+ domain_ids = set(map(lambda x: x.split(":")[0], root_buses))
if len(domain_ids) > 1:
- logger.fatal(f"ACRN does not support platforms with multiple PCI domains {domain_ids}. Check if the BIOS has any configuration that consolidates those domains into one.")
+ logger.fatal(f"ACRN does not support platforms with multiple PCI domains {domain_ids}. " \
+ "Please disable VMD (Volume Management Device) from BIOS setting.")
sys.exit(1)

def bring_up_cores():
--
2.25.1


Junjie Mao
 

-----Original Message-----
From: Yang, Yu-chu <yu-chu.yang@...>
Sent: Friday, November 18, 2022 10:46 AM
To: acrn-dev@...
Cc: Mao, Junjie <junjie.mao@...>
Subject: [PATCH v2] config-tools: board inspector exits if the VMD is configured

From: yuchuyang <yu-chu.yang@...>

Board inspector does not support multiple PCI segment. Stop running and
throw out the message for user to disable VMD from BIOS setting.

v1->v2
Refine check_pci_domains from board_inspector.py. Discard the change of
dmar.py.

Signed-off-by: yuchuyang <yu-chu.yang@...>
---
misc/config_tools/board_inspector/board_inspector.py | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/misc/config_tools/board_inspector/board_inspector.py
b/misc/config_tools/board_inspector/board_inspector.py
index 645f1b375..d32f71b26 100755
--- a/misc/config_tools/board_inspector/board_inspector.py
+++ b/misc/config_tools/board_inspector/board_inspector.py
@@ -83,10 +83,11 @@ def native_check():
"Only KVM or QEMU is supported. Unexpected results may occur.")

def check_pci_domains():
- root_buses = filter(lambda x: x.startswith("pci"), os.listdir("/sys/devices"))
- domain_ids = set(map(lambda x: x.split(":")[0].replace("pci", ""), root_buses))
+ root_buses = os.listdir("/sys/bus/pci/devices/")
+ domain_ids = set(map(lambda x: x.split(":")[0], root_buses))
if len(domain_ids) > 1:
- logger.fatal(f"ACRN does not support platforms with multiple PCI domains
{domain_ids}. Check if the BIOS has any configuration that consolidates those domains into
one.")
+ logger.fatal(f"ACRN does not support platforms with multiple PCI domains
{domain_ids}. " \
+ "Please disable VMD (Volume Management Device) from BIOS setting.")
VMD is not the only reason why we see multiple PCI domains. You can write something like "known causes of multiple PCI domains include:" followed by a list which only contains "VMD" for now.

---
Best Regards
Junjie Mao

sys.exit(1)

def bring_up_cores():
--
2.25.1