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=1773419734; cv=none; d=zohomail.com; s=zohoarc; b=IQ4MldFHhr2K7Y6bFVBKAUox6420RBbAqXyTKkwzFAO9CHt8w1Nl2YCLvXY0IS9k3dEnMDYi3em6TD2xovuqwDG/Qb5ElkRJIavb9OkQPbtq6GFSE6gNuv6NqCPZenLjji0O6yNvfeEkUtTIwyJQJbl7I+ud2sinyjPVEiLyPWA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1773419734; 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=xkR51huuZGxHmTSzRvJUtjlM0MP/Kew4xYHp0fhpCbg=; b=XmjYr0l1cbcmj5B/5UzCxmc0g48Xko6MzZ7L/AljEB51U8SZfgTSiaIFOtlIQzuznPYg74v0rNvPix/UQSQBJ20bwhPJ/C+TGFBmLvEMI06eHbdzIX0FdOnZRC0G/gg+rHdDHRPDLI757FL372SuI1JrRUKfCCVpC3acMWzqkMU= 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 1773419734713903.8069348615215; Fri, 13 Mar 2026 09:35:34 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1253908.1549860 (Exim 4.92) (envelope-from ) id 1w15Tf-0006IC-M8; Fri, 13 Mar 2026 16:35:07 +0000 Received: by outflank-mailman (output) from mailman id 1253908.1549860; Fri, 13 Mar 2026 16:35:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1w15Tf-0006I1-IE; Fri, 13 Mar 2026 16:35:07 +0000 Received: by outflank-mailman (input) for mailman id 1253908; Fri, 13 Mar 2026 16:35:06 +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 1w15Te-0006Ek-Mi for xen-devel@lists.xenproject.org; Fri, 13 Mar 2026 16:35:06 +0000 Received: from mail134-15.atl141.mandrillapp.com (mail134-15.atl141.mandrillapp.com [198.2.134.15]) by se1-gles-flk1.inumbo.com (Halon) with ESMTPS id 958cdc8b-1efa-11f1-9ccf-f158ae23cfc8; Fri, 13 Mar 2026 17:35:03 +0100 (CET) Received: from pmta10.mandrill.prod.atl01.rsglab.com (localhost [127.0.0.1]) by mail134-15.atl141.mandrillapp.com (Mailchimp) with ESMTP id 4fXVT156HszPm0PrP for ; Fri, 13 Mar 2026 16:35:01 +0000 (GMT) Received: from [37.26.189.201] by mandrillapp.com id 73f22918691e4f6590e71139c2bbb6cf; Fri, 13 Mar 2026 16:35:01 +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: 958cdc8b-1efa-11f1-9ccf-f158ae23cfc8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mandrillapp.com; s=mte1; t=1773419701; x=1773689701; bh=xkR51huuZGxHmTSzRvJUtjlM0MP/Kew4xYHp0fhpCbg=; 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=YNiAtf/nxp0NJtbCaQGLI2VrUUiUBaeDLqB3ZduynhWp2LTonNfA9A/Oky/7m/dr6 tLer3bn0irCv6unTBWcy5ZWCxI9ho1Af0IYu2KDVR7zylhktrlbAuPj3VBztQwgkIR gU/ZdL/EbnYAOHEqhVRHWsh395nc++FsVQ059wU2x74iXabqDHWDT64a7tiPfiNpHZ cLibmdl4SPAcRgB6ZkanNk+fskL+DUfTI2oXaUg1COCKRr4mnzs+8/3XcWMaaC8E6Y GvlTtko2QUUgGcD/CeoByhJA9vsRYovWFsJeLPwvNiwm5JTFSvc5JDmfTrjEiS3TEX LWYtcc6X6+G6w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vates.tech; s=mte1; t=1773419701; x=1773680201; i=thierry.escande@vates.tech; bh=xkR51huuZGxHmTSzRvJUtjlM0MP/Kew4xYHp0fhpCbg=; 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=aDCJyBCXYWddBWvMz/tk43hGiVkQL1U5pAV1Ibh9eF+MbSUU8CpG7UFonw0PNyaLr MJP/h1AKv1Eb/f59DJfQfwwNzgqUdPexZgpdxyCHsUUzWz/50uRMfqScLxg5xAq9Rd YLC8b8BTe4f9itCS3vcrj4O59LoCNCI71rNVAaO5w26x3hBsgsdmVhSRTzGJwv03zo 1pevTZSlZQ1b0LzWXYlarkXpMQ9IaWjWcXRmDeRg4J8pQKsT4DAsu6P5oJ0YMdw2FF BK6FPTtEN5jMpom8Pr6EL2Resjc7faV1MQhjU5Ov/TXU2r9ad+Mm1Zo6D3L044IcSm ZZ3+82MzfuTNg== From: "Thierry Escande" Subject: =?utf-8?Q?[PATCH=2001/17]=20libacpi:=20Split=20dsdt.asl=20file=20and=20extract=20i440=20specific=20parts?= 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: 1773419700638 To: xen-devel@lists.xenproject.org Cc: "Thierry Escande" , "Jan Beulich" , "Andrew Cooper" , "=?utf-8?Q?Roger=20Pau=20Monn=C3=A9?=" , "Anthony PERARD" Message-Id: <20260313163455.790692-2-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.73f22918691e4f6590e71139c2bbb6cf?= X-Mandrill-User: md_30504962 Feedback-ID: 30504962:30504962.20260313:md Date: Fri, 13 Mar 2026 16:35:01 +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: 1773419736005154100 Content-Type: text/plain; charset="utf-8" In order to factorize the common parts between i440 and q35 dsdt files, this patch splits dsdt.asl and put the i440 specific parts into dsdt_i400.asl. This also makes use of #include directives instead of file concatenations to build the asl files. Also, the anycpu asl files generation makes use of makefile pattern rules to avoid duplication for i440 and q35. Becuase the LPC controller BDF (which differs between i440 and q35) must be set at device declaration, it is still set in dsdt.asl by checking for a MACHINE_TYPE_I440 macro defined in dsdt_i400.asl. Signed-off-by: Thierry Escande --- tools/firmware/hvmloader/Makefile | 2 +- tools/firmware/hvmloader/ovmf.c | 4 ++-- tools/firmware/hvmloader/seabios.c | 4 ++-- tools/firmware/hvmloader/util.c | 4 ++-- tools/firmware/hvmloader/util.h | 4 ++-- tools/libacpi/Makefile | 10 ++++----- tools/libacpi/dsdt.asl | 25 ++++----------------- tools/libacpi/dsdt_i440.asl | 36 ++++++++++++++++++++++++++++++ 8 files changed, 53 insertions(+), 36 deletions(-) create mode 100644 tools/libacpi/dsdt_i440.asl diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/M= akefile index 21de72187d..bdc33a877f 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -78,7 +78,7 @@ rombios.o: roms.inc smbios.o: CFLAGS +=3D -D__SMBIOS_DATE__=3D"\"$(SMBIOS_REL_DATE)\"" =20 ACPI_PATH =3D ../../libacpi -DSDT_FILES +=3D dsdt_anycpu_qemu_xen.c +DSDT_FILES +=3D dsdt_i440_anycpu_qemu_xen.c ACPI_OBJS =3D $(patsubst %.c,%.o,$(DSDT_FILES)) build.o static_tables.o $(ACPI_OBJS): CFLAGS +=3D -iquote . -DLIBACPI_STDUTILS=3D\"$(CURDIR)/util.= h\" CFLAGS +=3D -I$(ACPI_PATH) diff --git a/tools/firmware/hvmloader/ovmf.c b/tools/firmware/hvmloader/ovm= f.c index 23610a0717..d264a50c73 100644 --- a/tools/firmware/hvmloader/ovmf.c +++ b/tools/firmware/hvmloader/ovmf.c @@ -119,8 +119,8 @@ static void ovmf_load(const struct bios_config *config, static void ovmf_acpi_build_tables(void) { struct acpi_config config =3D { - .dsdt_anycpu =3D dsdt_anycpu_qemu_xen, - .dsdt_anycpu_len =3D dsdt_anycpu_qemu_xen_len, + .dsdt_anycpu =3D dsdt_i440_anycpu_qemu_xen, + .dsdt_anycpu_len =3D dsdt_i440_anycpu_qemu_xen_len, .dsdt_15cpu =3D NULL,=20 .dsdt_15cpu_len =3D 0 }; diff --git a/tools/firmware/hvmloader/seabios.c b/tools/firmware/hvmloader/= seabios.c index 444d118ddb..74b0406b5a 100644 --- a/tools/firmware/hvmloader/seabios.c +++ b/tools/firmware/hvmloader/seabios.c @@ -90,8 +90,8 @@ static void seabios_acpi_build_tables(void) { uint32_t rsdp =3D (uint32_t)scratch_alloc(sizeof(struct acpi_20_rsdp),= 0); struct acpi_config config =3D { - .dsdt_anycpu =3D dsdt_anycpu_qemu_xen, - .dsdt_anycpu_len =3D dsdt_anycpu_qemu_xen_len, + .dsdt_anycpu =3D dsdt_i440_anycpu_qemu_xen, + .dsdt_anycpu_len =3D dsdt_i440_anycpu_qemu_xen_len, .dsdt_15cpu =3D NULL, .dsdt_15cpu_len =3D 0, }; diff --git a/tools/firmware/hvmloader/util.c b/tools/firmware/hvmloader/uti= l.c index e651342681..f1ed1eb48d 100644 --- a/tools/firmware/hvmloader/util.c +++ b/tools/firmware/hvmloader/util.c @@ -843,8 +843,8 @@ void hvmloader_acpi_build_tables(struct acpi_config *co= nfig, s =3D xenstore_read("platform/device-model", ""); if ( !strncmp(s, "qemu_xen", 9) ) { - config->dsdt_anycpu =3D dsdt_anycpu_qemu_xen; - config->dsdt_anycpu_len =3D dsdt_anycpu_qemu_xen_len; + config->dsdt_anycpu =3D dsdt_i440_anycpu_qemu_xen; + config->dsdt_anycpu_len =3D dsdt_i440_anycpu_qemu_xen_len; config->dsdt_15cpu =3D NULL; config->dsdt_15cpu_len =3D 0; } diff --git a/tools/firmware/hvmloader/util.h b/tools/firmware/hvmloader/uti= l.h index 765a013ddd..3c5eeff5e7 100644 --- a/tools/firmware/hvmloader/util.h +++ b/tools/firmware/hvmloader/util.h @@ -381,8 +381,8 @@ extern struct e820map memory_map; bool check_overlap(uint64_t start, uint64_t size, uint64_t reserved_start, uint64_t reserved_size); =20 -extern const unsigned char dsdt_anycpu_qemu_xen[], dsdt_anycpu[], dsdt_15c= pu[]; -extern const int dsdt_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cpu_len; +extern const unsigned char dsdt_i440_anycpu_qemu_xen[], dsdt_anycpu[], dsd= t_15cpu[]; +extern const int dsdt_i440_anycpu_qemu_xen_len, dsdt_anycpu_len, dsdt_15cp= u_len; =20 unsigned long acpi_pages_allocated(void); =20 diff --git a/tools/libacpi/Makefile b/tools/libacpi/Makefile index b21a64c6b4..d3d4bc9543 100644 --- a/tools/libacpi/Makefile +++ b/tools/libacpi/Makefile @@ -11,7 +11,7 @@ endif =20 MK_DSDT =3D $(ACPI_BUILD_DIR)/mk_dsdt =20 -C_SRC-$(CONFIG_X86) =3D dsdt_anycpu.c dsdt_15cpu.c dsdt_anycpu_qemu_xen.c = dsdt_pvh.c +C_SRC-$(CONFIG_X86) =3D dsdt_anycpu.c dsdt_15cpu.c dsdt_i440_anycpu_qemu_x= en.c dsdt_pvh.c C_SRC-$(CONFIG_ARM_64) =3D dsdt_anycpu_arm.c DSDT_FILES ?=3D $(C_SRC-y) C_SRC =3D $(addprefix $(ACPI_BUILD_DIR)/, $(DSDT_FILES)) @@ -39,18 +39,16 @@ $(H_SRC): $(ACPI_BUILD_DIR)/%.h: %.asl $(MK_DSDT): mk_dsdt.c $(HOSTCC) $(HOSTCFLAGS) $(MKDSDT_CFLAGS-y) $(CFLAGS_xeninclude) -D__XEN_T= OOLS__ -o $@ mk_dsdt.c =20 -$(ACPI_BUILD_DIR)/dsdt_anycpu_qemu_xen.asl: dsdt.asl dsdt_acpi_info.asl $(= MK_DSDT) +$(ACPI_BUILD_DIR)/dsdt_%_anycpu_qemu_xen.asl: dsdt_%.asl dsdt.asl dsdt_acp= i_info.asl $(MK_DSDT) # Remove last bracket awk 'NR > 1 {print s} {s=3D$$0}' $< > $@.$(TMP_SUFFIX) - cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX) $(MK_DSDT) --debug=3D$(debug) --dm-version qemu-xen >> $@.$(TMP_SUFFIX) mv -f $@.$(TMP_SUFFIX) $@ =20 # NB. awk invocation is a portable alternative to 'head -n -1' -$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt.asl dsdt_acpi_info.asl $(MK_DSDT) +$(ACPI_BUILD_DIR)/dsdt_%cpu.asl: dsdt_i440.asl dsdt.asl dsdt_acpi_info.asl= $(MK_DSDT) # Remove last bracket awk 'NR > 1 {print s} {s=3D$$0}' $< > $@.$(TMP_SUFFIX) - cat dsdt_acpi_info.asl >> $@.$(TMP_SUFFIX) $(MK_DSDT) --debug=3D$(debug) --maxcpu $* >> $@.$(TMP_SUFFIX) mv -f $@.$(TMP_SUFFIX) $@ =20 @@ -65,7 +63,7 @@ $(ACPI_BUILD_DIR)/dsdt_anycpu_arm.asl: $(MK_DSDT) mv -f $@.$(TMP_SUFFIX) $@ =20 $(C_SRC): $(ACPI_BUILD_DIR)/%.c: $(ACPI_BUILD_DIR)/%.asl - $(IASL) -vs -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $< + $(IASL) -vs -I $(CURDIR) -p $(ACPI_BUILD_DIR)/$*.$(TMP_SUFFIX) -tc $< sed -e 's/AmlCode/$*/g' -e 's/_aml_code//g' $(ACPI_BUILD_DIR)/$*.hex > $@= .$(TMP_SUFFIX) echo "int $*_len=3Dsizeof($*);" >> $@.$(TMP_SUFFIX) mv -f $@.$(TMP_SUFFIX) $@ diff --git a/tools/libacpi/dsdt.asl b/tools/libacpi/dsdt.asl index 32b42f85ae..130826fdcc 100644 --- a/tools/libacpi/dsdt.asl +++ b/tools/libacpi/dsdt.asl @@ -5,8 +5,6 @@ * Copyright (c) 2004, Intel Corporation. */ =20 -DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) -{ Name (\PMBS, 0x0C00) Name (\PMLN, 0x08) Name (\IOB1, 0x00) @@ -199,7 +197,10 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", = 0) =20 Device (ISA) { - Name (_ADR, 0x00010000) /* device 1, fn 0 */ + /* Error will be raised if the machine type is not defined= */ + #ifdef MACHINE_TYPE_I440 + Name (_ADR, 0x00010000) /* device 1, fn 0 */ + #endif =20 OperationRegion(PIRQ, PCI_Config, 0x60, 0x4) Scope(\) { @@ -329,23 +330,6 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", = 0) }) } =20 - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) - Method (_STA, 0, NotSerialized) - { - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () - { - IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) - IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) - IRQNoFlags () {6} - DMA (Compatibility, NotBusMaster, Transfer8) {2} - }) - } - Device (UAR1) { Name (_HID, EisaId ("PNP0501")) @@ -444,4 +428,3 @@ DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) Method(_PIC, 1) { Store(Arg0, PICD) } -} diff --git a/tools/libacpi/dsdt_i440.asl b/tools/libacpi/dsdt_i440.asl new file mode 100644 index 0000000000..e80c454ad9 --- /dev/null +++ b/tools/libacpi/dsdt_i440.asl @@ -0,0 +1,36 @@ +/* SPDX-License-Identifier: LGPL-2.1-only */ +/*************************************************************************= ***** + * DSDT for Xen with Qemu device model (for i440 machine) + * + * Copyright (c) 2004, Intel Corporation. + */ + +DefinitionBlock ("DSDT.aml", "DSDT", 2, "Xen", "HVM", 0) +{ + #define MACHINE_TYPE_I440 + + #include "dsdt.asl" + + Scope (\_SB.PCI0.ISA) + { + Device (FDC0) + { + Name (_HID, EisaId ("PNP0700")) + + Method (_STA, 0, NotSerialized) + { + Return (0x0F) + } + + Name (_CRS, ResourceTemplate () + { + IO (Decode16, 0x03F0, 0x03F0, 0x01, 0x06) + IO (Decode16, 0x03F7, 0x03F7, 0x01, 0x01) + IRQNoFlags () {6} + DMA (Compatibility, NotBusMaster, Transfer8) {2} + }) + } + } + + #include "dsdt_acpi_info.asl" +} --=20 2.51.0 -- Thierry Escande | Vates XCP-ng Developer XCP-ng & Xen Orchestra - Vates solutions web: https://vates.tech