From nobody Mon Mar 23 21:28:12 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass header.i=thierry.escande@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=none dis=none) header.from=vates.tech ARC-Seal: i=1; a=rsa-sha256; t=1773419736; cv=none; d=zohomail.com; s=zohoarc; b=jDxZit+BMmkghTwAA3cpGQazhSEb4K018ttB0xWRFTwDN/oFFv0VQR9GA1BeNBz92wZKPDKSN5OxIjs5hqB2cOyYsyCuu/AqkbENGiSmXPB4bqkCBq+Pim213YNQ+p3EwtDcIcxpHbEwKHOtQXqntiXAPiEeudNVc23YRnhopzQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773419736; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=EZV6VZwcVdA/V+iWTxOZ0DDZfDnD1N74CpP85tJ1xcs=; b=fFsO6A+cJAV95KYA3uDPG/tQKVWYkN+8TGRU0Kjo8B/e+Mjy+xrwNGg4zAifKlqQtFUIB7rNZLlU5NSQtuGeuSUaz1MDvwvO6R7DBaf0/MglHVOIzFqRI7HXKqmu+ijJFS3Mr03kggsBLbu7THgHbsP8v3C8fFhqQO2UfY+5bbc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=thierry.escande@vates.tech; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1773419736675586.3850313729572; Fri, 13 Mar 2026 09:35:36 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1253911.1549883 (Exim 4.92) (envelope-from ) id 1w15Th-0006q8-NM; Fri, 13 Mar 2026 16:35:09 +0000 Received: by outflank-mailman (output) from mailman id 1253911.1549883; Fri, 13 Mar 2026 16:35:09 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w15Th-0006oJ-GI; Fri, 13 Mar 2026 16:35:09 +0000 Received: by outflank-mailman (input) for mailman id 1253911; Fri, 13 Mar 2026 16:35:08 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w15Tg-0006Ek-My for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:08 +0000 Received: from mail136-12.atl41.mandrillapp.com (mail136-12.atl41.mandrillapp.com [198.2.136.12]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 95a21f94-1efa-11f1-9ccf-f158ae23cfc8; Fri, 13 Mar 2026 17:35:03 +0100 (CET) Received: from pmta11.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail136-12.atl41.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT21jsdz5QmHBy for ; Fri, 13 Mar 2026 16:35:02 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id a80daf2a6a5d488eb90b6254a9f1b77a; Fri, 13 Mar 2026 16:35:02 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 95a21f94-1efa-11f1-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1773419702; x=1773689702; bh=EZV6VZwcVdA/V+iWTxOZ0DDZfDnD1N74CpP85tJ1xcs=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=nBTvzgCXtgVPKD443WZh7ijLbsZv+RQ2NglOoLl/d7+/UWjEAbZvpov+QeZGj6Ntj lXsGfAhgbRxLhvQwYTe2fDXufxeOb1hmUGVZTmTmmrAiRmSrt6zNeUwjzKzEx4x3Oc NP7uhuW5V5iVrmGb1fiZAMS+uEq5Kbaf144Owtp3HMaIP20Sqh3HvcstJEGO0YdSxX XdRWmu81ZJfND1bzTQFIJO046ZeGpSGVFC0wYAUaI0PwH5OgQK0SbBg3iQ8gQD2q3/ MVzNKU/7V54hIa2nOrPbTagqOikmp9ro8C9duSAkJxEg89QRmOug5forCLuWOwKBFv 5308YFMqwVK2g== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1773419702; x=1773680202; i=thierry.escande@vates.tech; bh=EZV6VZwcVdA/V+iWTxOZ0DDZfDnD1N74CpP85tJ1xcs=; h=From:Subject:To:Cc:Message-Id:In-Reply-To:References:Feedback-ID: Date:MIME-Version:Content-Type:Content-Transfer-Encoding:CC:Date: Subject:From; b=Jg01yOHajDuGeiFFDGKRfwE1G1TxOV9qEttlhxL4WQfH0W5HO1giUTnCYHNBRIHBU yIfpSa1SK21cU/52PhYIAzc5HKt6Ukw4t5QIDUelOPeSXEa6m/44A6bg429fXLnqE7 CK+1ZSORo2VFCmP+silLs5/2G0qD8gGhDeHJ4jC7F7QKje/Dp3J9hsmBd1fqDywi+T BDsJt7lYDobAyvzmaO970S5tLsSne+J41DB8HMzl5gii7rJG7KZuH0Hwh3SK+CsQfN DrYuZNPAQTpTfuAg+UmFWvuSLa2vSXVkPd/70vfKW1enQSxwne7K3/D+NdIoa4XeLR Y7PTIfAhvIjvw== From: "Thierry Escande" Subject: =?utf-8?Q?[PATCH=2003/17]=20hvmloader:=20add=20function=20to=20set=20the=20emulated=20machine=20type=20(i440/Q35)?= X-Mailer: git-send-email 2.51.0 X-Bm-Disclaimer: Yes X-Bm-Milter-Handled: 4ffbd6c1-ee69-4e1b-aabd-f977039bd3e2 X-Bm-Transport-Timestamp: 1773419701312 To: xen-devel@lists.xenproject.org Cc: "Thierry Escande" , "Jan Beulich" , "Andrew Cooper" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" , "Anthony PERARD" , "Alexey Gerasimenko" Message-Id: <20260313163455.790692-4-thierry.escande@vates.tech> In-Reply-To: <20260313163455.790692-1-thierry.escande@vates.tech> References: <20260313163455.790692-1-thierry.escande@vates.tech> X-Native-Encoded: 1 X-Report-Abuse: =?UTF-8?Q?Please=20forward=20a=20copy=20of=20this=20message,=20including=20all=20headers,=20to=20abuse@mandrill.com.=20You=20can=20also=20report=20abuse=20here:=20https://mandrillapp.com/contact/abuse=3Fid=3D30504962.a80daf2a6a5d488eb90b6254a9f1b77a?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20260313:md Date: Fri, 13 Mar 2026 16:35:02 +0000 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity thierry.escande@vates.tech) (identity @mandrillapp.com) X-ZM-MESSAGEID: 1773419738151158500 Content-Type: text/plain; charset="utf-8" This adds a new function init_pc_machine_type() which allows to determine and set the emulated chipset type. Possible values are MACHINE_TYPE_I440 and MACHINE_TYPE_Q35 and stored in the global variable machine_type. The machine_type variable will be used from multiple places in following commits. Signed-off-by: Alexey Gerasimenko Signed-off-by: Thierry Escande --- tools/firmware/hvmloader/hvmloader.c | 2 ++ tools/firmware/hvmloader/pci_regs.h | 4 +++ tools/firmware/hvmloader/util.c | 42 ++++++++++++++++++++++++++++ tools/firmware/hvmloader/util.h | 11 ++++++++ 4 files changed, 59 insertions(+) diff --git a/tools/firmware/hvmloader/hvmloader.c b/tools/firmware/hvmloade= r/hvmloader.c index 6d23150fc9..626cc53649 100644 --- a/tools/firmware/hvmloader/hvmloader.c +++ b/tools/firmware/hvmloader/hvmloader.c @@ -332,6 +332,8 @@ int main(void) =20 init_hypercalls(); =20 + init_pc_machine_type(); + memory_map_setup(); =20 xenbus_setup(); diff --git a/tools/firmware/hvmloader/pci_regs.h b/tools/firmware/hvmloader= /pci_regs.h index 7bf2d873ab..4d4dc0cd01 100644 --- a/tools/firmware/hvmloader/pci_regs.h +++ b/tools/firmware/hvmloader/pci_regs.h @@ -107,6 +107,10 @@ =20 #define PCI_INTEL_OPREGION 0xfc /* 4 bits */ =20 +#define PCI_VENDOR_ID_INTEL 0x8086 +#define PCI_DEVICE_ID_INTEL_82441 0x1237 +#define PCI_DEVICE_ID_INTEL_Q35_MCH 0x29c0 + #endif /* __HVMLOADER_PCI_REGS_H__ */ =20 /* diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/uti= l.c index f1ed1eb48d..f9116bea4d 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -22,6 +22,7 @@ #include "hypercall.h" #include "ctype.h" #include "vnuma.h" +#include "pci_regs.h" #include #include #include @@ -648,6 +649,47 @@ void __bug(const char *file, int line) crash(); } =20 +machine_type_t machine_type; + +void init_pc_machine_type(void) +{ + uint16_t vendor_id; + uint16_t device_id; + + if ( machine_type !=3D MACHINE_TYPE_UNDEFINED ) + return; + + vendor_id =3D pci_readw(0, PCI_VENDOR_ID); + device_id =3D pci_readw(0, PCI_DEVICE_ID); + + /* only Intel platforms are emulated currently */ + if ( vendor_id !=3D PCI_VENDOR_ID_INTEL ) + goto error; + + switch ( device_id ) + { + case PCI_DEVICE_ID_INTEL_82441: + machine_type =3D MACHINE_TYPE_I440; + printf("Detected i440 chipset\n"); + break; + + case PCI_DEVICE_ID_INTEL_Q35_MCH: + machine_type =3D MACHINE_TYPE_Q35; + printf("Detected Q35 chipset\n"); + break; + + default: + goto error; + } + + return; + +error: + printf("Unknown emulated chipset encountered, VID=3D%04Xh, DID=3D%04Xh= \n", + vendor_id, device_id); + BUG(); +} + static void validate_hvm_info(struct hvm_info_table *t) { uint8_t *ptr =3D (uint8_t *)t; diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/uti= l.h index 3c5eeff5e7..2f37504aca 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -170,6 +170,17 @@ void pci_write(uint32_t devfn, uint32_t reg, uint32_t = len, uint32_t val); #define pci_writew(devfn, reg, val) pci_write(devfn, reg, 2, (uint16_t)(va= l)) #define pci_writel(devfn, reg, val) pci_write(devfn, reg, 4, (uint32_t)(va= l)) =20 +/* Emulated machine types */ +typedef enum { + MACHINE_TYPE_UNDEFINED =3D 0, + MACHINE_TYPE_I440, + MACHINE_TYPE_Q35, +} machine_type_t; + +extern machine_type_t machine_type; + +void init_pc_machine_type(void); + /* Get a pointer to the shared-info page */ struct shared_info *get_shared_info(void) __attribute__ ((const)); =20 --=20 2.51.0 -- Thierry Escande | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech