From patchwork Tue Sep 29 11:13:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Michael S. Tsirkin" X-Patchwork-Id: 1373316 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=fZedbIl0; dkim-atps=neutral Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4C0xk85Sr4z9s1t for ; Tue, 29 Sep 2020 21:19:44 +1000 (AEST) Received: from localhost ([::1]:47972 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kNDfa-0003AW-AU for incoming@patchwork.ozlabs.org; Tue, 29 Sep 2020 07:19:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59768) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kNDaH-00014G-ED for qemu-devel@nongnu.org; Tue, 29 Sep 2020 07:14:13 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55385) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kNDa2-0004K4-Kv for qemu-devel@nongnu.org; Tue, 29 Sep 2020 07:14:13 -0400 Dkim-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1601378037; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=bxNKWUwsuA7u99LEEGSRsGT+YPBQ6RMSePmgUOh+iZA=; b=fZedbIl0+uOx9cTQOB3nl61IbK+tKoxNenG+hdE/Hw6Qp7ZKBP4aOIxkmn7wZibMsbOWcd SZ89b9IoFTRlkfFPX3wUNfxorhXkHkYKnZQUDq2BBafF5ZafTBCmY5tdDsYxaXf90J2Rpc sW7wv89ITCu/Rp38QYQGJr9rGQC5St8= Received: from mail-wr1-f71.google.com (mail-wr1-f71.google.com [209.85.221.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-49-EnCwJFBlMpi_9ABsoqb7-A-1; Tue, 29 Sep 2020 07:13:35 -0400 X-MC-Unique: EnCwJFBlMpi_9ABsoqb7-A-1 Received: by mail-wr1-f71.google.com with SMTP id v5so1590584wrs.17 for ; Tue, 29 Sep 2020 04:13:35 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=bxNKWUwsuA7u99LEEGSRsGT+YPBQ6RMSePmgUOh+iZA=; b=Q9Wg4WgkBuEjL/NKYF+QsmbHEQXEUNUIVhK8O7x3PSn4zpNHQDUFrKEC/+pL2ncXFk jX6wxLn/j2oE0aRJvdWzwv9Ty7e8ecTvzutT/I/lZ1cZ2Lbuvp1YS4OZrxbYGYeiQv0w KPyiH9MKbdEP3oClcog7DR/DB937nQWOPDLHZ8HGka+zK+2sTk/7om74JJcBgEEhBn8M tNocqn4Dgk/xe/5/+PwC3WEqQzf9810xW0Wp4ROulcNkk6nw0balh/L3AQ+JWXBxEvSa vwgZKwXK0NceRS+O1eyssJOStl5hBcc6bNSTTXakUD7orySQOEC+LiUpRRskIJKq0/u+ hmHA== X-Gm-Message-State: AOAM532rtg6vJRGVRmDDDWRlrj1+ym6Q748Jj4ITcxuxLoUL4eGFnH8X u6zAx6Y6kWcz+V23H+mfeYTbAHXZXxFoKe5SwPi1FkqzYDacCKaQwDBfG0LNvaoYtzQ0wMWxkT+ kctdxRBLt4Ef0P/I= X-Received: by 2002:a5d:4a4a:: with SMTP id v10mr3666188wrs.72.1601378011277; Tue, 29 Sep 2020 04:13:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx+FebEHsAUh57r2wUpuPUi5ZWy0Dg+PBFpJeiuCm5Y302KPfxuQkXpp2X/jp/jTO3tl81PzA== X-Received: by 2002:a5d:4a4a:: with SMTP id v10mr3666076wrs.72.1601378009838; Tue, 29 Sep 2020 04:13:29 -0700 (PDT) Received: from redhat.com (bzq-79-179-71-128.red.bezeqint.net. [79.179.71.128]) by smtp.gmail.com with ESMTPSA id o16sm5468872wrp.52.2020.09.29.04.13.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 29 Sep 2020 04:13:27 -0700 (PDT) Date: Tue, 29 Sep 2020 07:13:17 -0400 From: "Michael S. Tsirkin" To: qemu-devel@nongnu.org Subject: [PULL 1/1] tests/acpi: drop unnecessary files Message-ID: <20200929111255.381871-2-mst@redhat.com> References: <20200929111255.381871-1-mst@redhat.com> MIME-Version: 1.0 In-Reply-To: <20200929111255.381871-1-mst@redhat.com> X-Mailer: git-send-email 2.27.0.106.g8ac3dc51b1 X-Mutt-Fcc: =sent Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Received-SPF: pass client-ip=216.205.24.124; envelope-from=mst@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/29 02:22:44 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.687, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" The last pull added a ton of useless files by mistake. Drop them all. Fixes: 0ed93f4c05896 ("update golden master DSDT binary table blobs for q35") Signed-off-by: Michael S. Tsirkin --- tests/test-qapi-event.c | 198 - tests/test-qmp-introspect.c | 58 - tests/test-qmp-marshal.c | 383 -- tests/.vhost-user-test.c.swo | Bin 16384 -> 0 bytes tests/Makefile.include.orig | 1012 ----- tests/Makefile.orig | 569 --- tests/bios-tables-test.c.orig | 925 ----- tests/data/acpi/diff-aml.sh | 0 tests/data/acpi/disassemle-aml.py | 21 - tests/data/acpi/microvm/APIC.dsl | 56 - tests/data/acpi/microvm/DSDT.dsl | 121 - tests/data/acpi/microvm/FACP.dsl | 196 - tests/data/acpi/pc/APIC.acpihmat.dsl | 112 - tests/data/acpi/pc/APIC.bridge | Bin 120 -> 0 bytes tests/data/acpi/pc/APIC.bridge.dsl | 104 - tests/data/acpi/pc/APIC.cphp.dsl | 146 - tests/data/acpi/pc/APIC.dimmpxm.dsl | 129 - tests/data/acpi/pc/APIC.dsl | 104 - tests/data/acpi/pc/APIC.hpbridge | Bin 120 -> 0 bytes tests/data/acpi/pc/APIC.ipmikcs | Bin 120 -> 0 bytes tests/data/acpi/pc/APIC.ipmikcs.dsl | 104 - tests/data/acpi/pc/APIC.memhp | Bin 120 -> 0 bytes tests/data/acpi/pc/APIC.memhp.dsl | 104 - tests/data/acpi/pc/APIC.numamem | Bin 120 -> 0 bytes tests/data/acpi/pc/APIC.numamem.dsl | 104 - tests/data/acpi/pc/APIC.roothp | Bin 120 -> 0 bytes tests/data/acpi/pc/DSDT.acpihmat.dsl | 1619 -------- tests/data/acpi/pc/DSDT.bridge.dsl | 1800 --------- tests/data/acpi/pc/DSDT.cphp.dsl | 1466 ------- tests/data/acpi/pc/DSDT.dimmpxm.dsl | 1719 -------- tests/data/acpi/pc/DSDT.dsl | 1407 ------- tests/data/acpi/pc/DSDT.ipmikcs.dsl | 1337 ------- tests/data/acpi/pc/DSDT.memhp.dsl | 1625 -------- tests/data/acpi/pc/DSDT.numamem.dsl | 1321 ------ tests/data/acpi/pc/FACP.acpihmat | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.acpihmat.dsl | 99 - tests/data/acpi/pc/FACP.bridge | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.bridge.dsl | 99 - tests/data/acpi/pc/FACP.cphp | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.cphp.dsl | 99 - tests/data/acpi/pc/FACP.dimmpxm | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.dimmpxm.dsl | 99 - tests/data/acpi/pc/FACP.dsl | 99 - tests/data/acpi/pc/FACP.hpbridge | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.ipmikcs | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.ipmikcs.dsl | 99 - tests/data/acpi/pc/FACP.memhp | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.memhp.dsl | 99 - tests/data/acpi/pc/FACP.numamem | Bin 116 -> 0 bytes tests/data/acpi/pc/FACP.numamem.dsl | 99 - tests/data/acpi/pc/FACP.roothp | Bin 116 -> 0 bytes tests/data/acpi/pc/FACS.acpihmat | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.acpihmat.dsl | 32 - tests/data/acpi/pc/FACS.bridge | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.bridge.dsl | 32 - tests/data/acpi/pc/FACS.cphp | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.cphp.dsl | 32 - tests/data/acpi/pc/FACS.dimmpxm | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.dimmpxm.dsl | 32 - tests/data/acpi/pc/FACS.dsl | 32 - tests/data/acpi/pc/FACS.hpbridge | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.ipmikcs | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.ipmikcs.dsl | 32 - tests/data/acpi/pc/FACS.memhp | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.memhp.dsl | 32 - tests/data/acpi/pc/FACS.numamem | Bin 64 -> 0 bytes tests/data/acpi/pc/FACS.numamem.dsl | 32 - tests/data/acpi/pc/FACS.roothp | Bin 64 -> 0 bytes tests/data/acpi/pc/HMAT.acpihmat.dsl | 132 - tests/data/acpi/pc/HMAT.dsl | 132 - tests/data/acpi/pc/HPET.acpihmat | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.acpihmat.dsl | 43 - tests/data/acpi/pc/HPET.bridge | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.bridge.dsl | 43 - tests/data/acpi/pc/HPET.cphp | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.cphp.dsl | 43 - tests/data/acpi/pc/HPET.dimmpxm | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.dimmpxm.dsl | 43 - tests/data/acpi/pc/HPET.dsl | 43 - tests/data/acpi/pc/HPET.hpbridge | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.ipmikcs | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.ipmikcs.dsl | 43 - tests/data/acpi/pc/HPET.memhp | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.memhp.dsl | 43 - tests/data/acpi/pc/HPET.numamem | Bin 56 -> 0 bytes tests/data/acpi/pc/HPET.numamem.dsl | 43 - tests/data/acpi/pc/HPET.roothp | Bin 56 -> 0 bytes tests/data/acpi/pc/NFIT.dimmpxm.dsl | 115 - tests/data/acpi/pc/NFIT.dsl | 115 - tests/data/acpi/pc/SLIT.cphp.dsl | 31 - tests/data/acpi/pc/SLIT.dsl | 31 - tests/data/acpi/pc/SLIT.memhp.dsl | 31 - tests/data/acpi/pc/SRAT.acpihmat.dsl | 137 - tests/data/acpi/pc/SRAT.cphp.dsl | 168 - tests/data/acpi/pc/SRAT.dimmpxm.dsl | 194 - tests/data/acpi/pc/SRAT.dsl | 108 - tests/data/acpi/pc/SRAT.memhp.dsl | 125 - tests/data/acpi/pc/SRAT.numamem.dsl | 108 - tests/data/acpi/pc/SSDT.dsl | 205 - tests/data/acpi/pc/WAET.acpihmat | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.acpihmat.dsl | 31 - tests/data/acpi/pc/WAET.bridge | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.bridge.dsl | 31 - tests/data/acpi/pc/WAET.cphp | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.cphp.dsl | 31 - tests/data/acpi/pc/WAET.dimmpxm | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.dimmpxm.dsl | 31 - tests/data/acpi/pc/WAET.dsl | 31 - tests/data/acpi/pc/WAET.hpbridge | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.ipmikcs | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.ipmikcs.dsl | 31 - tests/data/acpi/pc/WAET.memhp | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.memhp.dsl | 31 - tests/data/acpi/pc/WAET.numamem | Bin 40 -> 0 bytes tests/data/acpi/pc/WAET.numamem.dsl | 31 - tests/data/acpi/pc/WAET.roothp | Bin 40 -> 0 bytes tests/data/acpi/q35/APIC.acpihmat.dsl | 112 - tests/data/acpi/q35/APIC.bridge | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.bridge.dsl | 104 - tests/data/acpi/q35/APIC.cphp.dsl | 146 - tests/data/acpi/q35/APIC.dimmpxm.dsl | 129 - tests/data/acpi/q35/APIC.dsl | 104 - tests/data/acpi/q35/APIC.ipmibt | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.ipmibt.dsl | 104 - tests/data/acpi/q35/APIC.memhp | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.memhp.dsl | 104 - tests/data/acpi/q35/APIC.mmio64 | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.mmio64.dsl | 104 - tests/data/acpi/q35/APIC.numamem | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.numamem.dsl | 104 - tests/data/acpi/q35/APIC.tis | Bin 120 -> 0 bytes tests/data/acpi/q35/APIC.tis.dsl | 104 - tests/data/acpi/q35/DSDT.acpihmat.dsl | 3436 ---------------- tests/data/acpi/q35/DSDT.bridge.dsl | 3141 --------------- tests/data/acpi/q35/DSDT.cphp.dsl | 3283 --------------- tests/data/acpi/q35/DSDT.dimmpxm.dsl | 3535 ----------------- tests/data/acpi/q35/DSDT.dsl | 3351 ---------------- tests/data/acpi/q35/DSDT.ipmibt.dsl | 3156 --------------- tests/data/acpi/q35/DSDT.memhp.dsl | 3442 ---------------- tests/data/acpi/q35/DSDT.mmio64.dsl | 3377 ---------------- tests/data/acpi/q35/DSDT.numamem.dsl | 3138 --------------- tests/data/acpi/q35/DSDT.tis.dsl | 3321 ---------------- tests/data/acpi/q35/FACP.acpihmat | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.acpihmat.dsl | 179 - tests/data/acpi/q35/FACP.bridge | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.bridge.dsl | 179 - tests/data/acpi/q35/FACP.cphp | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.cphp.dsl | 179 - tests/data/acpi/q35/FACP.dimmpxm | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.dimmpxm.dsl | 179 - tests/data/acpi/q35/FACP.dsl | 179 - tests/data/acpi/q35/FACP.ipmibt | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.ipmibt.dsl | 179 - tests/data/acpi/q35/FACP.memhp | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.memhp.dsl | 179 - tests/data/acpi/q35/FACP.mmio64 | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.mmio64.dsl | 179 - tests/data/acpi/q35/FACP.numamem | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.numamem.dsl | 179 - tests/data/acpi/q35/FACP.tis | Bin 244 -> 0 bytes tests/data/acpi/q35/FACP.tis.dsl | 179 - tests/data/acpi/q35/FACS.acpihmat | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.acpihmat.dsl | 32 - tests/data/acpi/q35/FACS.bridge | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.bridge.dsl | 32 - tests/data/acpi/q35/FACS.cphp | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.cphp.dsl | 32 - tests/data/acpi/q35/FACS.dimmpxm | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.dimmpxm.dsl | 32 - tests/data/acpi/q35/FACS.dsl | 32 - tests/data/acpi/q35/FACS.ipmibt | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.ipmibt.dsl | 32 - tests/data/acpi/q35/FACS.memhp | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.memhp.dsl | 32 - tests/data/acpi/q35/FACS.mmio64 | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.mmio64.dsl | 32 - tests/data/acpi/q35/FACS.numamem | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.numamem.dsl | 32 - tests/data/acpi/q35/FACS.tis | Bin 64 -> 0 bytes tests/data/acpi/q35/FACS.tis.dsl | 32 - tests/data/acpi/q35/HMAT.acpihmat.dsl | 132 - tests/data/acpi/q35/HMAT.dsl | 132 - tests/data/acpi/q35/HPET.acpihmat | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.acpihmat.dsl | 43 - tests/data/acpi/q35/HPET.bridge | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.bridge.dsl | 43 - tests/data/acpi/q35/HPET.cphp | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.cphp.dsl | 43 - tests/data/acpi/q35/HPET.dimmpxm | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.dimmpxm.dsl | 43 - tests/data/acpi/q35/HPET.dsl | 43 - tests/data/acpi/q35/HPET.ipmibt | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.ipmibt.dsl | 43 - tests/data/acpi/q35/HPET.memhp | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.memhp.dsl | 43 - tests/data/acpi/q35/HPET.mmio64 | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.mmio64.dsl | 43 - tests/data/acpi/q35/HPET.numamem | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.numamem.dsl | 43 - tests/data/acpi/q35/HPET.tis | Bin 56 -> 0 bytes tests/data/acpi/q35/HPET.tis.dsl | 43 - tests/data/acpi/q35/MCFG.acpihmat | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.acpihmat.dsl | 36 - tests/data/acpi/q35/MCFG.bridge | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.bridge.dsl | 36 - tests/data/acpi/q35/MCFG.cphp | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.cphp.dsl | 36 - tests/data/acpi/q35/MCFG.dimmpxm | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.dimmpxm.dsl | 36 - tests/data/acpi/q35/MCFG.dsl | 36 - tests/data/acpi/q35/MCFG.ipmibt | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.ipmibt.dsl | 36 - tests/data/acpi/q35/MCFG.memhp | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.memhp.dsl | 36 - tests/data/acpi/q35/MCFG.mmio64 | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.mmio64.dsl | 36 - tests/data/acpi/q35/MCFG.numamem | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.numamem.dsl | 36 - tests/data/acpi/q35/MCFG.tis | Bin 60 -> 0 bytes tests/data/acpi/q35/MCFG.tis.dsl | 36 - tests/data/acpi/q35/NFIT.dimmpxm.dsl | 115 - tests/data/acpi/q35/NFIT.dsl | 115 - tests/data/acpi/q35/SLIT.cphp.dsl | 31 - tests/data/acpi/q35/SLIT.dsl | 31 - tests/data/acpi/q35/SLIT.memhp.dsl | 31 - tests/data/acpi/q35/SRAT.acpihmat.dsl | 137 - tests/data/acpi/q35/SRAT.cphp.dsl | 168 - tests/data/acpi/q35/SRAT.dimmpxm.dsl | 194 - tests/data/acpi/q35/SRAT.dsl | 108 - tests/data/acpi/q35/SRAT.memhp.dsl | 125 - tests/data/acpi/q35/SRAT.mmio64.dsl | 108 - tests/data/acpi/q35/SRAT.numamem.dsl | 108 - tests/data/acpi/q35/SSDT.dsl | 205 - tests/data/acpi/q35/TPM2.dsl | 38 - tests/data/acpi/q35/TPM2.tis.dsl | 38 - tests/data/acpi/q35/WAET.acpihmat | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.acpihmat.dsl | 31 - tests/data/acpi/q35/WAET.bridge | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.bridge.dsl | 31 - tests/data/acpi/q35/WAET.cphp | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.cphp.dsl | 31 - tests/data/acpi/q35/WAET.dimmpxm | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.dimmpxm.dsl | 31 - tests/data/acpi/q35/WAET.dsl | 31 - tests/data/acpi/q35/WAET.ipmibt | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.ipmibt.dsl | 31 - tests/data/acpi/q35/WAET.memhp | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.memhp.dsl | 31 - tests/data/acpi/q35/WAET.mmio64 | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.mmio64.dsl | 31 - tests/data/acpi/q35/WAET.numamem | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.numamem.dsl | 31 - tests/data/acpi/q35/WAET.tis | Bin 40 -> 0 bytes tests/data/acpi/q35/WAET.tis.dsl | 31 - tests/data/acpi/virt/APIC.dsl | 78 - tests/data/acpi/virt/APIC.memhp.dsl | 78 - tests/data/acpi/virt/APIC.numamem.dsl | 78 - tests/data/acpi/virt/DSDT.dsl | 1906 --------- tests/data/acpi/virt/DSDT.memhp.dsl | 2215 ----------- tests/data/acpi/virt/DSDT.numamem.dsl | 1906 --------- tests/data/acpi/virt/FACP.dsl | 196 - tests/data/acpi/virt/FACP.memhp.dsl | 196 - tests/data/acpi/virt/FACP.numamem.dsl | 196 - tests/data/acpi/virt/GTDT.dsl | 61 - tests/data/acpi/virt/GTDT.memhp.dsl | 61 - tests/data/acpi/virt/GTDT.numamem.dsl | 61 - tests/data/acpi/virt/MCFG.dsl | 36 - tests/data/acpi/virt/MCFG.memhp.dsl | 36 - tests/data/acpi/virt/MCFG.numamem.dsl | 36 - tests/data/acpi/virt/NFIT.dsl | 103 - tests/data/acpi/virt/NFIT.memhp.dsl | 103 - tests/data/acpi/virt/SLIT.dsl | 31 - tests/data/acpi/virt/SLIT.memhp.dsl | 31 - tests/data/acpi/virt/SPCR.dsl | 57 - tests/data/acpi/virt/SPCR.memhp.dsl | 57 - tests/data/acpi/virt/SPCR.numamem.dsl | 57 - tests/data/acpi/virt/SRAT.dsl | 57 - tests/data/acpi/virt/SRAT.memhp.dsl | 107 - tests/data/acpi/virt/SRAT.numamem.dsl | 57 - tests/data/acpi/virt/SSDT.dsl | 205 - .../bios-tables-test.x86_64.iso.raw | Bin 425984 -> 0 bytes tests/libqtest.c.orig | 1106 ------ tests/qemu-iotests/core.12067 | Bin 22716416 -> 0 bytes .../bios-tables-test-allowed-diff.h.orig | 18 - .../qtest/bios-tables-test-allowed-diff.h.rej | 9 - tests/qtest/bios-tables-test.c.orig | 1200 ------ tests/qtest/bios-tables-test.c.rej | 22 - tests/vhost-user-bridge | Bin 83120 -> 0 bytes tests/vhost-user-bridge.c.orig | 1432 ------- tests/vhost-user-test.c.orig | 364 -- 290 files changed, 71489 deletions(-) delete mode 100644 tests/test-qapi-event.c delete mode 100644 tests/test-qmp-introspect.c delete mode 100644 tests/test-qmp-marshal.c delete mode 100644 tests/.vhost-user-test.c.swo delete mode 100644 tests/Makefile.include.orig delete mode 100644 tests/Makefile.orig delete mode 100644 tests/bios-tables-test.c.orig delete mode 100644 tests/data/acpi/diff-aml.sh delete mode 100644 tests/data/acpi/disassemle-aml.py delete mode 100644 tests/data/acpi/microvm/APIC.dsl delete mode 100644 tests/data/acpi/microvm/DSDT.dsl delete mode 100644 tests/data/acpi/microvm/FACP.dsl delete mode 100644 tests/data/acpi/pc/APIC.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/APIC.bridge delete mode 100644 tests/data/acpi/pc/APIC.bridge.dsl delete mode 100644 tests/data/acpi/pc/APIC.cphp.dsl delete mode 100644 tests/data/acpi/pc/APIC.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/APIC.dsl delete mode 100644 tests/data/acpi/pc/APIC.hpbridge delete mode 100644 tests/data/acpi/pc/APIC.ipmikcs delete mode 100644 tests/data/acpi/pc/APIC.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/APIC.memhp delete mode 100644 tests/data/acpi/pc/APIC.memhp.dsl delete mode 100644 tests/data/acpi/pc/APIC.numamem delete mode 100644 tests/data/acpi/pc/APIC.numamem.dsl delete mode 100644 tests/data/acpi/pc/APIC.roothp delete mode 100644 tests/data/acpi/pc/DSDT.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/DSDT.bridge.dsl delete mode 100644 tests/data/acpi/pc/DSDT.cphp.dsl delete mode 100644 tests/data/acpi/pc/DSDT.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/DSDT.dsl delete mode 100644 tests/data/acpi/pc/DSDT.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/DSDT.memhp.dsl delete mode 100644 tests/data/acpi/pc/DSDT.numamem.dsl delete mode 100644 tests/data/acpi/pc/FACP.acpihmat delete mode 100644 tests/data/acpi/pc/FACP.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/FACP.bridge delete mode 100644 tests/data/acpi/pc/FACP.bridge.dsl delete mode 100644 tests/data/acpi/pc/FACP.cphp delete mode 100644 tests/data/acpi/pc/FACP.cphp.dsl delete mode 100644 tests/data/acpi/pc/FACP.dimmpxm delete mode 100644 tests/data/acpi/pc/FACP.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/FACP.dsl delete mode 100644 tests/data/acpi/pc/FACP.hpbridge delete mode 100644 tests/data/acpi/pc/FACP.ipmikcs delete mode 100644 tests/data/acpi/pc/FACP.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/FACP.memhp delete mode 100644 tests/data/acpi/pc/FACP.memhp.dsl delete mode 100644 tests/data/acpi/pc/FACP.numamem delete mode 100644 tests/data/acpi/pc/FACP.numamem.dsl delete mode 100644 tests/data/acpi/pc/FACP.roothp delete mode 100644 tests/data/acpi/pc/FACS.acpihmat delete mode 100644 tests/data/acpi/pc/FACS.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/FACS.bridge delete mode 100644 tests/data/acpi/pc/FACS.bridge.dsl delete mode 100644 tests/data/acpi/pc/FACS.cphp delete mode 100644 tests/data/acpi/pc/FACS.cphp.dsl delete mode 100644 tests/data/acpi/pc/FACS.dimmpxm delete mode 100644 tests/data/acpi/pc/FACS.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/FACS.dsl delete mode 100644 tests/data/acpi/pc/FACS.hpbridge delete mode 100644 tests/data/acpi/pc/FACS.ipmikcs delete mode 100644 tests/data/acpi/pc/FACS.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/FACS.memhp delete mode 100644 tests/data/acpi/pc/FACS.memhp.dsl delete mode 100644 tests/data/acpi/pc/FACS.numamem delete mode 100644 tests/data/acpi/pc/FACS.numamem.dsl delete mode 100644 tests/data/acpi/pc/FACS.roothp delete mode 100644 tests/data/acpi/pc/HMAT.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/HMAT.dsl delete mode 100644 tests/data/acpi/pc/HPET.acpihmat delete mode 100644 tests/data/acpi/pc/HPET.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/HPET.bridge delete mode 100644 tests/data/acpi/pc/HPET.bridge.dsl delete mode 100644 tests/data/acpi/pc/HPET.cphp delete mode 100644 tests/data/acpi/pc/HPET.cphp.dsl delete mode 100644 tests/data/acpi/pc/HPET.dimmpxm delete mode 100644 tests/data/acpi/pc/HPET.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/HPET.dsl delete mode 100644 tests/data/acpi/pc/HPET.hpbridge delete mode 100644 tests/data/acpi/pc/HPET.ipmikcs delete mode 100644 tests/data/acpi/pc/HPET.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/HPET.memhp delete mode 100644 tests/data/acpi/pc/HPET.memhp.dsl delete mode 100644 tests/data/acpi/pc/HPET.numamem delete mode 100644 tests/data/acpi/pc/HPET.numamem.dsl delete mode 100644 tests/data/acpi/pc/HPET.roothp delete mode 100644 tests/data/acpi/pc/NFIT.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/NFIT.dsl delete mode 100644 tests/data/acpi/pc/SLIT.cphp.dsl delete mode 100644 tests/data/acpi/pc/SLIT.dsl delete mode 100644 tests/data/acpi/pc/SLIT.memhp.dsl delete mode 100644 tests/data/acpi/pc/SRAT.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/SRAT.cphp.dsl delete mode 100644 tests/data/acpi/pc/SRAT.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/SRAT.dsl delete mode 100644 tests/data/acpi/pc/SRAT.memhp.dsl delete mode 100644 tests/data/acpi/pc/SRAT.numamem.dsl delete mode 100644 tests/data/acpi/pc/SSDT.dsl delete mode 100644 tests/data/acpi/pc/WAET.acpihmat delete mode 100644 tests/data/acpi/pc/WAET.acpihmat.dsl delete mode 100644 tests/data/acpi/pc/WAET.bridge delete mode 100644 tests/data/acpi/pc/WAET.bridge.dsl delete mode 100644 tests/data/acpi/pc/WAET.cphp delete mode 100644 tests/data/acpi/pc/WAET.cphp.dsl delete mode 100644 tests/data/acpi/pc/WAET.dimmpxm delete mode 100644 tests/data/acpi/pc/WAET.dimmpxm.dsl delete mode 100644 tests/data/acpi/pc/WAET.dsl delete mode 100644 tests/data/acpi/pc/WAET.hpbridge delete mode 100644 tests/data/acpi/pc/WAET.ipmikcs delete mode 100644 tests/data/acpi/pc/WAET.ipmikcs.dsl delete mode 100644 tests/data/acpi/pc/WAET.memhp delete mode 100644 tests/data/acpi/pc/WAET.memhp.dsl delete mode 100644 tests/data/acpi/pc/WAET.numamem delete mode 100644 tests/data/acpi/pc/WAET.numamem.dsl delete mode 100644 tests/data/acpi/pc/WAET.roothp delete mode 100644 tests/data/acpi/q35/APIC.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/APIC.bridge delete mode 100644 tests/data/acpi/q35/APIC.bridge.dsl delete mode 100644 tests/data/acpi/q35/APIC.cphp.dsl delete mode 100644 tests/data/acpi/q35/APIC.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/APIC.dsl delete mode 100644 tests/data/acpi/q35/APIC.ipmibt delete mode 100644 tests/data/acpi/q35/APIC.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/APIC.memhp delete mode 100644 tests/data/acpi/q35/APIC.memhp.dsl delete mode 100644 tests/data/acpi/q35/APIC.mmio64 delete mode 100644 tests/data/acpi/q35/APIC.mmio64.dsl delete mode 100644 tests/data/acpi/q35/APIC.numamem delete mode 100644 tests/data/acpi/q35/APIC.numamem.dsl delete mode 100644 tests/data/acpi/q35/APIC.tis delete mode 100644 tests/data/acpi/q35/APIC.tis.dsl delete mode 100644 tests/data/acpi/q35/DSDT.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/DSDT.bridge.dsl delete mode 100644 tests/data/acpi/q35/DSDT.cphp.dsl delete mode 100644 tests/data/acpi/q35/DSDT.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/DSDT.dsl delete mode 100644 tests/data/acpi/q35/DSDT.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/DSDT.memhp.dsl delete mode 100644 tests/data/acpi/q35/DSDT.mmio64.dsl delete mode 100644 tests/data/acpi/q35/DSDT.numamem.dsl delete mode 100644 tests/data/acpi/q35/DSDT.tis.dsl delete mode 100644 tests/data/acpi/q35/FACP.acpihmat delete mode 100644 tests/data/acpi/q35/FACP.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/FACP.bridge delete mode 100644 tests/data/acpi/q35/FACP.bridge.dsl delete mode 100644 tests/data/acpi/q35/FACP.cphp delete mode 100644 tests/data/acpi/q35/FACP.cphp.dsl delete mode 100644 tests/data/acpi/q35/FACP.dimmpxm delete mode 100644 tests/data/acpi/q35/FACP.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/FACP.dsl delete mode 100644 tests/data/acpi/q35/FACP.ipmibt delete mode 100644 tests/data/acpi/q35/FACP.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/FACP.memhp delete mode 100644 tests/data/acpi/q35/FACP.memhp.dsl delete mode 100644 tests/data/acpi/q35/FACP.mmio64 delete mode 100644 tests/data/acpi/q35/FACP.mmio64.dsl delete mode 100644 tests/data/acpi/q35/FACP.numamem delete mode 100644 tests/data/acpi/q35/FACP.numamem.dsl delete mode 100644 tests/data/acpi/q35/FACP.tis delete mode 100644 tests/data/acpi/q35/FACP.tis.dsl delete mode 100644 tests/data/acpi/q35/FACS.acpihmat delete mode 100644 tests/data/acpi/q35/FACS.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/FACS.bridge delete mode 100644 tests/data/acpi/q35/FACS.bridge.dsl delete mode 100644 tests/data/acpi/q35/FACS.cphp delete mode 100644 tests/data/acpi/q35/FACS.cphp.dsl delete mode 100644 tests/data/acpi/q35/FACS.dimmpxm delete mode 100644 tests/data/acpi/q35/FACS.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/FACS.dsl delete mode 100644 tests/data/acpi/q35/FACS.ipmibt delete mode 100644 tests/data/acpi/q35/FACS.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/FACS.memhp delete mode 100644 tests/data/acpi/q35/FACS.memhp.dsl delete mode 100644 tests/data/acpi/q35/FACS.mmio64 delete mode 100644 tests/data/acpi/q35/FACS.mmio64.dsl delete mode 100644 tests/data/acpi/q35/FACS.numamem delete mode 100644 tests/data/acpi/q35/FACS.numamem.dsl delete mode 100644 tests/data/acpi/q35/FACS.tis delete mode 100644 tests/data/acpi/q35/FACS.tis.dsl delete mode 100644 tests/data/acpi/q35/HMAT.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/HMAT.dsl delete mode 100644 tests/data/acpi/q35/HPET.acpihmat delete mode 100644 tests/data/acpi/q35/HPET.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/HPET.bridge delete mode 100644 tests/data/acpi/q35/HPET.bridge.dsl delete mode 100644 tests/data/acpi/q35/HPET.cphp delete mode 100644 tests/data/acpi/q35/HPET.cphp.dsl delete mode 100644 tests/data/acpi/q35/HPET.dimmpxm delete mode 100644 tests/data/acpi/q35/HPET.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/HPET.dsl delete mode 100644 tests/data/acpi/q35/HPET.ipmibt delete mode 100644 tests/data/acpi/q35/HPET.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/HPET.memhp delete mode 100644 tests/data/acpi/q35/HPET.memhp.dsl delete mode 100644 tests/data/acpi/q35/HPET.mmio64 delete mode 100644 tests/data/acpi/q35/HPET.mmio64.dsl delete mode 100644 tests/data/acpi/q35/HPET.numamem delete mode 100644 tests/data/acpi/q35/HPET.numamem.dsl delete mode 100644 tests/data/acpi/q35/HPET.tis delete mode 100644 tests/data/acpi/q35/HPET.tis.dsl delete mode 100644 tests/data/acpi/q35/MCFG.acpihmat delete mode 100644 tests/data/acpi/q35/MCFG.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/MCFG.bridge delete mode 100644 tests/data/acpi/q35/MCFG.bridge.dsl delete mode 100644 tests/data/acpi/q35/MCFG.cphp delete mode 100644 tests/data/acpi/q35/MCFG.cphp.dsl delete mode 100644 tests/data/acpi/q35/MCFG.dimmpxm delete mode 100644 tests/data/acpi/q35/MCFG.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/MCFG.dsl delete mode 100644 tests/data/acpi/q35/MCFG.ipmibt delete mode 100644 tests/data/acpi/q35/MCFG.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/MCFG.memhp delete mode 100644 tests/data/acpi/q35/MCFG.memhp.dsl delete mode 100644 tests/data/acpi/q35/MCFG.mmio64 delete mode 100644 tests/data/acpi/q35/MCFG.mmio64.dsl delete mode 100644 tests/data/acpi/q35/MCFG.numamem delete mode 100644 tests/data/acpi/q35/MCFG.numamem.dsl delete mode 100644 tests/data/acpi/q35/MCFG.tis delete mode 100644 tests/data/acpi/q35/MCFG.tis.dsl delete mode 100644 tests/data/acpi/q35/NFIT.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/NFIT.dsl delete mode 100644 tests/data/acpi/q35/SLIT.cphp.dsl delete mode 100644 tests/data/acpi/q35/SLIT.dsl delete mode 100644 tests/data/acpi/q35/SLIT.memhp.dsl delete mode 100644 tests/data/acpi/q35/SRAT.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/SRAT.cphp.dsl delete mode 100644 tests/data/acpi/q35/SRAT.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/SRAT.dsl delete mode 100644 tests/data/acpi/q35/SRAT.memhp.dsl delete mode 100644 tests/data/acpi/q35/SRAT.mmio64.dsl delete mode 100644 tests/data/acpi/q35/SRAT.numamem.dsl delete mode 100644 tests/data/acpi/q35/SSDT.dsl delete mode 100644 tests/data/acpi/q35/TPM2.dsl delete mode 100644 tests/data/acpi/q35/TPM2.tis.dsl delete mode 100644 tests/data/acpi/q35/WAET.acpihmat delete mode 100644 tests/data/acpi/q35/WAET.acpihmat.dsl delete mode 100644 tests/data/acpi/q35/WAET.bridge delete mode 100644 tests/data/acpi/q35/WAET.bridge.dsl delete mode 100644 tests/data/acpi/q35/WAET.cphp delete mode 100644 tests/data/acpi/q35/WAET.cphp.dsl delete mode 100644 tests/data/acpi/q35/WAET.dimmpxm delete mode 100644 tests/data/acpi/q35/WAET.dimmpxm.dsl delete mode 100644 tests/data/acpi/q35/WAET.dsl delete mode 100644 tests/data/acpi/q35/WAET.ipmibt delete mode 100644 tests/data/acpi/q35/WAET.ipmibt.dsl delete mode 100644 tests/data/acpi/q35/WAET.memhp delete mode 100644 tests/data/acpi/q35/WAET.memhp.dsl delete mode 100644 tests/data/acpi/q35/WAET.mmio64 delete mode 100644 tests/data/acpi/q35/WAET.mmio64.dsl delete mode 100644 tests/data/acpi/q35/WAET.numamem delete mode 100644 tests/data/acpi/q35/WAET.numamem.dsl delete mode 100644 tests/data/acpi/q35/WAET.tis delete mode 100644 tests/data/acpi/q35/WAET.tis.dsl delete mode 100644 tests/data/acpi/virt/APIC.dsl delete mode 100644 tests/data/acpi/virt/APIC.memhp.dsl delete mode 100644 tests/data/acpi/virt/APIC.numamem.dsl delete mode 100644 tests/data/acpi/virt/DSDT.dsl delete mode 100644 tests/data/acpi/virt/DSDT.memhp.dsl delete mode 100644 tests/data/acpi/virt/DSDT.numamem.dsl delete mode 100644 tests/data/acpi/virt/FACP.dsl delete mode 100644 tests/data/acpi/virt/FACP.memhp.dsl delete mode 100644 tests/data/acpi/virt/FACP.numamem.dsl delete mode 100644 tests/data/acpi/virt/GTDT.dsl delete mode 100644 tests/data/acpi/virt/GTDT.memhp.dsl delete mode 100644 tests/data/acpi/virt/GTDT.numamem.dsl delete mode 100644 tests/data/acpi/virt/MCFG.dsl delete mode 100644 tests/data/acpi/virt/MCFG.memhp.dsl delete mode 100644 tests/data/acpi/virt/MCFG.numamem.dsl delete mode 100644 tests/data/acpi/virt/NFIT.dsl delete mode 100644 tests/data/acpi/virt/NFIT.memhp.dsl delete mode 100644 tests/data/acpi/virt/SLIT.dsl delete mode 100644 tests/data/acpi/virt/SLIT.memhp.dsl delete mode 100644 tests/data/acpi/virt/SPCR.dsl delete mode 100644 tests/data/acpi/virt/SPCR.memhp.dsl delete mode 100644 tests/data/acpi/virt/SPCR.numamem.dsl delete mode 100644 tests/data/acpi/virt/SRAT.dsl delete mode 100644 tests/data/acpi/virt/SRAT.memhp.dsl delete mode 100644 tests/data/acpi/virt/SRAT.numamem.dsl delete mode 100644 tests/data/acpi/virt/SSDT.dsl delete mode 100644 tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw delete mode 100644 tests/libqtest.c.orig delete mode 100644 tests/qemu-iotests/core.12067 delete mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.orig delete mode 100644 tests/qtest/bios-tables-test-allowed-diff.h.rej delete mode 100644 tests/qtest/bios-tables-test.c.orig delete mode 100644 tests/qtest/bios-tables-test.c.rej delete mode 100755 tests/vhost-user-bridge delete mode 100644 tests/vhost-user-bridge.c.orig delete mode 100644 tests/vhost-user-test.c.orig diff --git a/tests/test-qapi-event.c b/tests/test-qapi-event.c deleted file mode 100644 index bdeb9095d4..0000000000 --- a/tests/test-qapi-event.c +++ /dev/null @@ -1,198 +0,0 @@ -/* AUTOMATICALLY GENERATED, DO NOT MODIFY */ - -/* - * schema-defined QAPI event functions - * - * Copyright (c) 2014 Wenchao Xia - * - * Authors: - * Wenchao Xia - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#include "qemu/osdep.h" -#include "qemu-common.h" -#include "test-qapi-event.h" -#include "test-qapi-visit.h" -#include "qapi/qmp-output-visitor.h" -#include "qapi/qmp-event.h" - - -void qapi_event_send_event_a(Error **errp) -{ - QDict *qmp; - Error *err = NULL; - QMPEventFuncEmit emit; - - emit = qmp_event_get_func_emit(); - if (!emit) { - return; - } - - qmp = qmp_event_build_dict("EVENT_A"); - - emit(TEST_QAPI_EVENT_EVENT_A, qmp, &err); - - error_propagate(errp, err); - QDECREF(qmp); -} - -void qapi_event_send_event_b(Error **errp) -{ - QDict *qmp; - Error *err = NULL; - QMPEventFuncEmit emit; - - emit = qmp_event_get_func_emit(); - if (!emit) { - return; - } - - qmp = qmp_event_build_dict("EVENT_B"); - - emit(TEST_QAPI_EVENT_EVENT_B, qmp, &err); - - error_propagate(errp, err); - QDECREF(qmp); -} - -void qapi_event_send_event_c(bool has_a, int64_t a, bool has_b, UserDefOne *b, const char *c, Error **errp) -{ - QDict *qmp; - Error *err = NULL; - QMPEventFuncEmit emit; - QmpOutputVisitor *qov; - Visitor *v; - q_obj_EVENT_C_arg param = { - has_a, a, has_b, b, (char *)c - }; - - emit = qmp_event_get_func_emit(); - if (!emit) { - return; - } - - qmp = qmp_event_build_dict("EVENT_C"); - - qov = qmp_output_visitor_new(); - v = qmp_output_get_visitor(qov); - - visit_start_struct(v, "EVENT_C", NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_EVENT_C_arg_members(v, ¶m, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov)); - emit(TEST_QAPI_EVENT_EVENT_C, qmp, &err); - -out: - qmp_output_visitor_cleanup(qov); - error_propagate(errp, err); - QDECREF(qmp); -} - -void qapi_event_send_event_d(EventStructOne *a, const char *b, bool has_c, const char *c, bool has_enum3, EnumOne enum3, Error **errp) -{ - QDict *qmp; - Error *err = NULL; - QMPEventFuncEmit emit; - QmpOutputVisitor *qov; - Visitor *v; - q_obj_EVENT_D_arg param = { - a, (char *)b, has_c, (char *)c, has_enum3, enum3 - }; - - emit = qmp_event_get_func_emit(); - if (!emit) { - return; - } - - qmp = qmp_event_build_dict("EVENT_D"); - - qov = qmp_output_visitor_new(); - v = qmp_output_get_visitor(qov); - - visit_start_struct(v, "EVENT_D", NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_EVENT_D_arg_members(v, ¶m, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov)); - emit(TEST_QAPI_EVENT_EVENT_D, qmp, &err); - -out: - qmp_output_visitor_cleanup(qov); - error_propagate(errp, err); - QDECREF(qmp); -} - -void qapi_event_send___org_qemu_x_event(__org_qemu_x_Enum __org_qemu_x_member1, const char *__org_qemu_x_member2, bool has_q_wchar_t, int64_t q_wchar_t, Error **errp) -{ - QDict *qmp; - Error *err = NULL; - QMPEventFuncEmit emit; - QmpOutputVisitor *qov; - Visitor *v; - __org_qemu_x_Struct param = { - __org_qemu_x_member1, (char *)__org_qemu_x_member2, has_q_wchar_t, q_wchar_t - }; - - emit = qmp_event_get_func_emit(); - if (!emit) { - return; - } - - qmp = qmp_event_build_dict("__ORG.QEMU_X-EVENT"); - - qov = qmp_output_visitor_new(); - v = qmp_output_get_visitor(qov); - - visit_start_struct(v, "__ORG.QEMU_X-EVENT", NULL, 0, &err); - if (err) { - goto out; - } - visit_type___org_qemu_x_Struct_members(v, ¶m, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - qdict_put_obj(qmp, "data", qmp_output_get_qobject(qov)); - emit(TEST_QAPI_EVENT___ORG_QEMU_X_EVENT, qmp, &err); - -out: - qmp_output_visitor_cleanup(qov); - error_propagate(errp, err); - QDECREF(qmp); -} - -const char *const test_QAPIEvent_lookup[] = { - [TEST_QAPI_EVENT_EVENT_A] = "EVENT_A", - [TEST_QAPI_EVENT_EVENT_B] = "EVENT_B", - [TEST_QAPI_EVENT_EVENT_C] = "EVENT_C", - [TEST_QAPI_EVENT_EVENT_D] = "EVENT_D", - [TEST_QAPI_EVENT___ORG_QEMU_X_EVENT] = "__ORG.QEMU_X-EVENT", - [TEST_QAPI_EVENT__MAX] = NULL, -}; diff --git a/tests/test-qmp-introspect.c b/tests/test-qmp-introspect.c deleted file mode 100644 index edae06c64e..0000000000 --- a/tests/test-qmp-introspect.c +++ /dev/null @@ -1,58 +0,0 @@ -/* AUTOMATICALLY GENERATED, DO NOT MODIFY */ - -/* - * QAPI/QMP schema introspection - * - * Copyright (C) 2015 Red Hat, Inc. - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#include "qemu/osdep.h" -#include "test-qmp-introspect.h" - -const char test_qmp_schema_json[] = "[" - "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_A\"}, " - "{\"arg-type\": \"0\", \"meta-type\": \"event\", \"name\": \"EVENT_B\"}, " - "{\"arg-type\": \"1\", \"meta-type\": \"event\", \"name\": \"EVENT_C\"}, " - "{\"arg-type\": \"2\", \"meta-type\": \"event\", \"name\": \"EVENT_D\"}, " - "{\"arg-type\": \"3\", \"meta-type\": \"event\", \"name\": \"__ORG.QEMU_X-EVENT\"}, " - "{\"arg-type\": \"4\", \"meta-type\": \"command\", \"name\": \"__org.qemu_x-command\", \"ret-type\": \"5\"}, " - "{\"arg-type\": \"6\", \"meta-type\": \"command\", \"name\": \"guest-get-time\", \"ret-type\": \"int\"}, " - "{\"arg-type\": \"7\", \"meta-type\": \"command\", \"name\": \"guest-sync\", \"ret-type\": \"any\"}, " - "{\"arg-type\": \"0\", \"meta-type\": \"command\", \"name\": \"user_def_cmd\", \"ret-type\": \"0\"}, " - "{\"arg-type\": \"8\", \"meta-type\": \"command\", \"name\": \"user_def_cmd0\", \"ret-type\": \"8\"}, " - "{\"arg-type\": \"9\", \"meta-type\": \"command\", \"name\": \"user_def_cmd1\", \"ret-type\": \"0\"}, " - "{\"arg-type\": \"10\", \"meta-type\": \"command\", \"name\": \"user_def_cmd2\", \"ret-type\": \"11\"}, " - "{\"members\": [], \"meta-type\": \"object\", \"name\": \"0\"}, " - "{\"members\": [{\"default\": null, \"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"12\"}, {\"name\": \"c\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"1\"}, " - "{\"members\": [{\"name\": \"a\", \"type\": \"13\"}, {\"name\": \"b\", \"type\": \"str\"}, {\"default\": null, \"name\": \"c\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum3\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"2\"}, " - "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}, {\"name\": \"__org.qemu_x-member2\", \"type\": \"str\"}, {\"default\": null, \"name\": \"wchar-t\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"3\"}, " - "{\"members\": [{\"name\": \"a\", \"type\": \"[15]\"}, {\"name\": \"b\", \"type\": \"[3]\"}, {\"name\": \"c\", \"type\": \"16\"}, {\"name\": \"d\", \"type\": \"17\"}], \"meta-type\": \"object\", \"name\": \"4\"}, " - "{\"members\": [{\"name\": \"type\", \"type\": \"18\"}], \"meta-type\": \"object\", \"name\": \"5\", \"tag\": \"type\", \"variants\": [{\"case\": \"__org.qemu_x-branch\", \"type\": \"19\"}]}, " - "{\"members\": [{\"name\": \"a\", \"type\": \"int\"}, {\"default\": null, \"name\": \"b\", \"type\": \"int\"}], \"meta-type\": \"object\", \"name\": \"6\"}, " - "{\"json-type\": \"int\", \"meta-type\": \"builtin\", \"name\": \"int\"}, " - "{\"members\": [{\"name\": \"arg\", \"type\": \"any\"}], \"meta-type\": \"object\", \"name\": \"7\"}, " - "{\"json-type\": \"value\", \"meta-type\": \"builtin\", \"name\": \"any\"}, " - "{\"members\": [], \"meta-type\": \"object\", \"name\": \"8\"}, " - "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"9\"}, " - "{\"members\": [{\"name\": \"ud1a\", \"type\": \"12\"}, {\"default\": null, \"name\": \"ud1b\", \"type\": \"12\"}], \"meta-type\": \"object\", \"name\": \"10\"}, " - "{\"members\": [{\"name\": \"string0\", \"type\": \"str\"}, {\"name\": \"dict1\", \"type\": \"20\"}], \"meta-type\": \"object\", \"name\": \"11\"}, " - "{\"members\": [{\"name\": \"integer\", \"type\": \"int\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum1\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"12\"}, " - "{\"json-type\": \"string\", \"meta-type\": \"builtin\", \"name\": \"str\"}, " - "{\"members\": [{\"name\": \"struct1\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}, {\"default\": null, \"name\": \"enum2\", \"type\": \"14\"}], \"meta-type\": \"object\", \"name\": \"13\"}, " - "{\"meta-type\": \"enum\", \"name\": \"14\", \"values\": [\"value1\", \"value2\", \"value3\"]}, " - "{\"meta-type\": \"enum\", \"name\": \"15\", \"values\": [\"__org.qemu_x-value\"]}, " - "{\"element-type\": \"15\", \"meta-type\": \"array\", \"name\": \"[15]\"}, " - "{\"element-type\": \"3\", \"meta-type\": \"array\", \"name\": \"[3]\"}, " - "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"16\", \"tag\": \"__org.qemu_x-member1\", \"variants\": [{\"case\": \"__org.qemu_x-value\", \"type\": \"21\"}]}, " - "{\"members\": [{\"type\": \"str\"}, {\"type\": \"22\"}], \"meta-type\": \"alternate\", \"name\": \"17\"}, " - "{\"meta-type\": \"enum\", \"name\": \"18\", \"values\": [\"__org.qemu_x-branch\"]}, " - "{\"members\": [{\"name\": \"data\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"19\"}, " - "{\"members\": [{\"name\": \"string1\", \"type\": \"str\"}, {\"name\": \"dict2\", \"type\": \"23\"}, {\"default\": null, \"name\": \"dict3\", \"type\": \"23\"}], \"meta-type\": \"object\", \"name\": \"20\"}, " - "{\"members\": [{\"name\": \"array\", \"type\": \"[5]\"}], \"meta-type\": \"object\", \"name\": \"21\"}, " - "{\"members\": [{\"name\": \"__org.qemu_x-member1\", \"type\": \"15\"}], \"meta-type\": \"object\", \"name\": \"22\"}, " - "{\"members\": [{\"name\": \"userdef\", \"type\": \"12\"}, {\"name\": \"string\", \"type\": \"str\"}], \"meta-type\": \"object\", \"name\": \"23\"}, " - "{\"element-type\": \"5\", \"meta-type\": \"array\", \"name\": \"[5]\"}]"; diff --git a/tests/test-qmp-marshal.c b/tests/test-qmp-marshal.c deleted file mode 100644 index 54e3952d35..0000000000 --- a/tests/test-qmp-marshal.c +++ /dev/null @@ -1,383 +0,0 @@ -/* AUTOMATICALLY GENERATED, DO NOT MODIFY */ - -/* - * schema-defined QMP->QAPI command dispatch - * - * Copyright IBM, Corp. 2011 - * - * Authors: - * Anthony Liguori - * - * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. - * See the COPYING.LIB file in the top-level directory. - * - */ - -#include "qemu/osdep.h" -#include "qemu-common.h" -#include "qemu/module.h" -#include "qapi/qmp/types.h" -#include "qapi/qmp/dispatch.h" -#include "qapi/visitor.h" -#include "qapi/qmp-output-visitor.h" -#include "qapi/qmp-input-visitor.h" -#include "qapi/dealloc-visitor.h" -#include "test-qapi-types.h" -#include "test-qapi-visit.h" -#include "test-qmp-commands.h" - - -static void qmp_marshal_output___org_qemu_x_Union1(__org_qemu_x_Union1 *ret_in, QObject **ret_out, Error **errp) -{ - Error *err = NULL; - QmpOutputVisitor *qov = qmp_output_visitor_new(); - QapiDeallocVisitor *qdv; - Visitor *v; - - v = qmp_output_get_visitor(qov); - visit_type___org_qemu_x_Union1(v, "unused", &ret_in, &err); - if (err) { - goto out; - } - *ret_out = qmp_output_get_qobject(qov); - -out: - error_propagate(errp, err); - qmp_output_visitor_cleanup(qov); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_type___org_qemu_x_Union1(v, "unused", &ret_in, NULL); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal___org_qemu_x_command(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - __org_qemu_x_Union1 *retval; - QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); - QapiDeallocVisitor *qdv; - Visitor *v; - q_obj___org_qemu_x_command_arg arg = {0}; - - v = qmp_input_get_visitor(qiv); - visit_start_struct(v, NULL, NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - retval = qmp___org_qemu_x_command(arg.a, arg.b, arg.c, arg.d, &err); - if (err) { - goto out; - } - - qmp_marshal_output___org_qemu_x_Union1(retval, ret, &err); - -out: - error_propagate(errp, err); - qmp_input_visitor_cleanup(qiv); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_start_struct(v, NULL, NULL, 0, NULL); - visit_type_q_obj___org_qemu_x_command_arg_members(v, &arg, NULL); - visit_end_struct(v); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_output_int(int64_t ret_in, QObject **ret_out, Error **errp) -{ - Error *err = NULL; - QmpOutputVisitor *qov = qmp_output_visitor_new(); - QapiDeallocVisitor *qdv; - Visitor *v; - - v = qmp_output_get_visitor(qov); - visit_type_int(v, "unused", &ret_in, &err); - if (err) { - goto out; - } - *ret_out = qmp_output_get_qobject(qov); - -out: - error_propagate(errp, err); - qmp_output_visitor_cleanup(qov); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_type_int(v, "unused", &ret_in, NULL); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_guest_get_time(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - int64_t retval; - QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); - QapiDeallocVisitor *qdv; - Visitor *v; - q_obj_guest_get_time_arg arg = {0}; - - v = qmp_input_get_visitor(qiv); - visit_start_struct(v, NULL, NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_guest_get_time_arg_members(v, &arg, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - retval = qmp_guest_get_time(arg.a, arg.has_b, arg.b, &err); - if (err) { - goto out; - } - - qmp_marshal_output_int(retval, ret, &err); - -out: - error_propagate(errp, err); - qmp_input_visitor_cleanup(qiv); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_start_struct(v, NULL, NULL, 0, NULL); - visit_type_q_obj_guest_get_time_arg_members(v, &arg, NULL); - visit_end_struct(v); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_output_any(QObject *ret_in, QObject **ret_out, Error **errp) -{ - Error *err = NULL; - QmpOutputVisitor *qov = qmp_output_visitor_new(); - QapiDeallocVisitor *qdv; - Visitor *v; - - v = qmp_output_get_visitor(qov); - visit_type_any(v, "unused", &ret_in, &err); - if (err) { - goto out; - } - *ret_out = qmp_output_get_qobject(qov); - -out: - error_propagate(errp, err); - qmp_output_visitor_cleanup(qov); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_type_any(v, "unused", &ret_in, NULL); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_guest_sync(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - QObject *retval; - QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); - QapiDeallocVisitor *qdv; - Visitor *v; - q_obj_guest_sync_arg arg = {0}; - - v = qmp_input_get_visitor(qiv); - visit_start_struct(v, NULL, NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_guest_sync_arg_members(v, &arg, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - retval = qmp_guest_sync(arg.arg, &err); - if (err) { - goto out; - } - - qmp_marshal_output_any(retval, ret, &err); - -out: - error_propagate(errp, err); - qmp_input_visitor_cleanup(qiv); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_start_struct(v, NULL, NULL, 0, NULL); - visit_type_q_obj_guest_sync_arg_members(v, &arg, NULL); - visit_end_struct(v); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_user_def_cmd(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - - (void)args; - - qmp_user_def_cmd(&err); - error_propagate(errp, err); -} - -static void qmp_marshal_output_Empty2(Empty2 *ret_in, QObject **ret_out, Error **errp) -{ - Error *err = NULL; - QmpOutputVisitor *qov = qmp_output_visitor_new(); - QapiDeallocVisitor *qdv; - Visitor *v; - - v = qmp_output_get_visitor(qov); - visit_type_Empty2(v, "unused", &ret_in, &err); - if (err) { - goto out; - } - *ret_out = qmp_output_get_qobject(qov); - -out: - error_propagate(errp, err); - qmp_output_visitor_cleanup(qov); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_type_Empty2(v, "unused", &ret_in, NULL); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_user_def_cmd0(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - Empty2 *retval; - - (void)args; - - retval = qmp_user_def_cmd0(&err); - if (err) { - goto out; - } - - qmp_marshal_output_Empty2(retval, ret, &err); - -out: - error_propagate(errp, err); -} - -static void qmp_marshal_user_def_cmd1(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); - QapiDeallocVisitor *qdv; - Visitor *v; - q_obj_user_def_cmd1_arg arg = {0}; - - v = qmp_input_get_visitor(qiv); - visit_start_struct(v, NULL, NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - qmp_user_def_cmd1(arg.ud1a, &err); - -out: - error_propagate(errp, err); - qmp_input_visitor_cleanup(qiv); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_start_struct(v, NULL, NULL, 0, NULL); - visit_type_q_obj_user_def_cmd1_arg_members(v, &arg, NULL); - visit_end_struct(v); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_output_UserDefTwo(UserDefTwo *ret_in, QObject **ret_out, Error **errp) -{ - Error *err = NULL; - QmpOutputVisitor *qov = qmp_output_visitor_new(); - QapiDeallocVisitor *qdv; - Visitor *v; - - v = qmp_output_get_visitor(qov); - visit_type_UserDefTwo(v, "unused", &ret_in, &err); - if (err) { - goto out; - } - *ret_out = qmp_output_get_qobject(qov); - -out: - error_propagate(errp, err); - qmp_output_visitor_cleanup(qov); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_type_UserDefTwo(v, "unused", &ret_in, NULL); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_marshal_user_def_cmd2(QDict *args, QObject **ret, Error **errp) -{ - Error *err = NULL; - UserDefTwo *retval; - QmpInputVisitor *qiv = qmp_input_visitor_new(QOBJECT(args), true); - QapiDeallocVisitor *qdv; - Visitor *v; - q_obj_user_def_cmd2_arg arg = {0}; - - v = qmp_input_get_visitor(qiv); - visit_start_struct(v, NULL, NULL, 0, &err); - if (err) { - goto out; - } - visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, &err); - if (!err) { - visit_check_struct(v, &err); - } - visit_end_struct(v); - if (err) { - goto out; - } - - retval = qmp_user_def_cmd2(arg.ud1a, arg.has_ud1b, arg.ud1b, &err); - if (err) { - goto out; - } - - qmp_marshal_output_UserDefTwo(retval, ret, &err); - -out: - error_propagate(errp, err); - qmp_input_visitor_cleanup(qiv); - qdv = qapi_dealloc_visitor_new(); - v = qapi_dealloc_get_visitor(qdv); - visit_start_struct(v, NULL, NULL, 0, NULL); - visit_type_q_obj_user_def_cmd2_arg_members(v, &arg, NULL); - visit_end_struct(v); - qapi_dealloc_visitor_cleanup(qdv); -} - -static void qmp_init_marshal(void) -{ - qmp_register_command("__org.qemu_x-command", qmp_marshal___org_qemu_x_command, QCO_NO_OPTIONS); - qmp_register_command("guest-get-time", qmp_marshal_guest_get_time, QCO_NO_OPTIONS); - qmp_register_command("guest-sync", qmp_marshal_guest_sync, QCO_NO_OPTIONS); - qmp_register_command("user_def_cmd", qmp_marshal_user_def_cmd, QCO_NO_OPTIONS); - qmp_register_command("user_def_cmd0", qmp_marshal_user_def_cmd0, QCO_NO_OPTIONS); - qmp_register_command("user_def_cmd1", qmp_marshal_user_def_cmd1, QCO_NO_OPTIONS); - qmp_register_command("user_def_cmd2", qmp_marshal_user_def_cmd2, QCO_NO_OPTIONS); -} - -qapi_init(qmp_init_marshal); diff --git a/tests/.vhost-user-test.c.swo b/tests/.vhost-user-test.c.swo deleted file mode 100644 index 5545d2bef350c4c4197c70c9789465cfee8f84ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 XoRgvmQlLSjGu=TNt&UM~TJ!!55Am^f diff --git a/tests/Makefile.include.orig b/tests/Makefile.include.orig deleted file mode 100644 index ba82235bd4..0000000000 --- a/tests/Makefile.include.orig +++ /dev/null @@ -1,1012 +0,0 @@ - -.PHONY: check-help -check-help: - @echo "Regression testing targets:" - @echo - @echo " $(MAKE) check Run all tests" - @echo " $(MAKE) check-qtest-TARGET Run qtest tests for given target" - @echo " $(MAKE) check-qtest Run qtest tests" - @echo " $(MAKE) check-unit Run qobject tests" - @echo " $(MAKE) check-speed Run qobject speed tests" - @echo " $(MAKE) check-qapi-schema Run QAPI schema tests" - @echo " $(MAKE) check-block Run block tests" - @echo " $(MAKE) check-tcg Run TCG tests" - @echo " $(MAKE) check-acceptance Run all acceptance (functional) tests" - @echo " $(MAKE) check-report.html Generates an HTML test report" - @echo " $(MAKE) check-venv Creates a Python venv for tests" - @echo " $(MAKE) check-clean Clean the tests" - @echo - @echo "Please note that HTML reports do not regenerate if the unit tests" - @echo "has not changed." - @echo - @echo "The variable SPEED can be set to control the gtester speed setting." - @echo "Default options are -k and (for $(MAKE) V=1) --verbose; they can be" - @echo "changed with variable GTESTER_OPTIONS." - -ifneq ($(wildcard config-host.mak),) -export SRC_PATH - -# TODO don't duplicate $(SRC_PATH)/Makefile's qapi-py here -qapi-py = $(SRC_PATH)/scripts/qapi/commands.py \ -$(SRC_PATH)/scripts/qapi/events.py \ -$(SRC_PATH)/scripts/qapi/introspect.py \ -$(SRC_PATH)/scripts/qapi/types.py \ -$(SRC_PATH)/scripts/qapi/visit.py \ -$(SRC_PATH)/scripts/qapi/common.py \ -$(SRC_PATH)/scripts/qapi/doc.py \ -$(SRC_PATH)/scripts/qapi-gen.py - -# Get the list of all supported sysemu targets -SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \ - $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak))) - -check-unit-y += tests/check-qdict$(EXESUF) -check-unit-y += tests/check-block-qdict$(EXESUF) -check-unit-y += tests/test-char$(EXESUF) -check-unit-y += tests/check-qnum$(EXESUF) -check-unit-y += tests/check-qstring$(EXESUF) -check-unit-y += tests/check-qlist$(EXESUF) -check-unit-y += tests/check-qnull$(EXESUF) -check-unit-y += tests/check-qobject$(EXESUF) -check-unit-y += tests/check-qjson$(EXESUF) -check-unit-y += tests/check-qlit$(EXESUF) -check-unit-y += tests/test-qobject-output-visitor$(EXESUF) -check-unit-y += tests/test-clone-visitor$(EXESUF) -check-unit-y += tests/test-qobject-input-visitor$(EXESUF) -check-unit-y += tests/test-qmp-cmds$(EXESUF) -check-unit-y += tests/test-string-input-visitor$(EXESUF) -check-unit-y += tests/test-string-output-visitor$(EXESUF) -check-unit-y += tests/test-qmp-event$(EXESUF) -check-unit-y += tests/test-opts-visitor$(EXESUF) -check-unit-y += tests/test-coroutine$(EXESUF) -check-unit-y += tests/test-visitor-serialization$(EXESUF) -check-unit-y += tests/test-iov$(EXESUF) -check-unit-y += tests/test-aio$(EXESUF) -check-unit-y += tests/test-aio-multithread$(EXESUF) -check-unit-y += tests/test-throttle$(EXESUF) -check-unit-y += tests/test-thread-pool$(EXESUF) -check-unit-y += tests/test-hbitmap$(EXESUF) -check-unit-y += tests/test-bdrv-drain$(EXESUF) -check-unit-y += tests/test-blockjob$(EXESUF) -check-unit-y += tests/test-blockjob-txn$(EXESUF) -check-unit-y += tests/test-block-backend$(EXESUF) -check-unit-y += tests/test-image-locking$(EXESUF) -check-unit-y += tests/test-x86-cpuid$(EXESUF) -# all code tested by test-x86-cpuid is inside topology.h -ifeq ($(CONFIG_SOFTMMU),y) -check-unit-y += tests/test-xbzrle$(EXESUF) -check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF) -endif -check-unit-y += tests/test-cutils$(EXESUF) -check-unit-y += tests/test-shift128$(EXESUF) -check-unit-y += tests/test-mul64$(EXESUF) -check-unit-y += tests/test-int128$(EXESUF) -# all code tested by test-int128 is inside int128.h -check-unit-y += tests/rcutorture$(EXESUF) -check-unit-y += tests/test-rcu-list$(EXESUF) -check-unit-y += tests/test-rcu-simpleq$(EXESUF) -check-unit-y += tests/test-rcu-tailq$(EXESUF) -check-unit-y += tests/test-qdist$(EXESUF) -check-unit-y += tests/test-qht$(EXESUF) -# FIXME: {test-qht-par + gprof} often break on Travis CI -check-unit-$(call lnot,$(CONFIG_GPROF)) += tests/test-qht-par$(EXESUF) -check-unit-y += tests/test-bitops$(EXESUF) -check-unit-y += tests/test-bitcnt$(EXESUF) -check-unit-y += tests/test-qdev-global-props$(EXESUF) -check-unit-y += tests/check-qom-interface$(EXESUF) -check-unit-y += tests/check-qom-proplist$(EXESUF) -check-unit-y += tests/test-qemu-opts$(EXESUF) -check-unit-y += tests/test-keyval$(EXESUF) -check-unit-y += tests/test-write-threshold$(EXESUF) -check-unit-y += tests/test-crypto-hash$(EXESUF) -check-speed-y += tests/benchmark-crypto-hash$(EXESUF) -check-unit-y += tests/test-crypto-hmac$(EXESUF) -check-speed-y += tests/benchmark-crypto-hmac$(EXESUF) -check-unit-y += tests/test-crypto-cipher$(EXESUF) -check-speed-y += tests/benchmark-crypto-cipher$(EXESUF) -check-unit-y += tests/test-crypto-secret$(EXESUF) -check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF) -check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF) -ifneq (,$(findstring qemu-ga,$(TOOLS))) -check-unit-$(CONFIG_LINUX) += tests/test-qga$(EXESUF) -endif -check-unit-y += tests/test-timed-average$(EXESUF) -check-unit-y += tests/test-util-sockets$(EXESUF) -check-unit-y += tests/test-io-task$(EXESUF) -check-unit-y += tests/test-io-channel-socket$(EXESUF) -check-unit-y += tests/test-io-channel-file$(EXESUF) -check-unit-$(CONFIG_GNUTLS) += tests/test-io-channel-tls$(EXESUF) -check-unit-y += tests/test-io-channel-command$(EXESUF) -check-unit-y += tests/test-io-channel-buffer$(EXESUF) -check-unit-y += tests/test-base64$(EXESUF) -check-unit-$(if $(CONFIG_NETTLE),y,$(CONFIG_GCRYPT)) += tests/test-crypto-pbkdf$(EXESUF) -check-unit-y += tests/test-crypto-ivgen$(EXESUF) -check-unit-y += tests/test-crypto-afsplit$(EXESUF) -check-unit-y += tests/test-crypto-xts$(EXESUF) -check-unit-y += tests/test-crypto-block$(EXESUF) -check-unit-y += tests/test-logging$(EXESUF) -check-unit-$(CONFIG_REPLICATION) += tests/test-replication$(EXESUF) -check-unit-y += tests/test-bufferiszero$(EXESUF) -check-unit-y += tests/test-uuid$(EXESUF) -check-unit-y += tests/ptimer-test$(EXESUF) -check-unit-y += tests/test-qapi-util$(EXESUF) - -check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh - -# All QTests for now are POSIX-only, but the dependencies are -# really in libqtest, not in the testcases themselves. - -check-qtest-generic-y += tests/qmp-test$(EXESUF) -check-qtest-generic-y += tests/qmp-cmd-test$(EXESUF) - -check-qtest-generic-y += tests/device-introspect-test$(EXESUF) -check-qtest-generic-y += tests/cdrom-test$(EXESUF) - -check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF) - -check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF) - -check-qtest-virtio-y += tests/virtio-net-test$(EXESUF) -check-qtest-virtio-$(CONFIG_VIRTIO_BALLOON) += tests/virtio-balloon-test$(EXESUF) -check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF) -check-qtest-virtio-$(CONFIG_VIRTIO_RNG) += tests/virtio-rng-test$(EXESUF) -check-qtest-virtio-$(CONFIG_VIRTIO_SCSI) += tests/virtio-scsi-test$(EXESUF) -ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) -check-qtest-virtio-$(CONFIG_VIRTIO_9P) += tests/virtio-9p-test$(EXESUF) -endif -check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF) -check-qtest-virtio-y += $(check-qtest-virtioserial-y) - -check-qtest-pci-y += tests/e1000-test$(EXESUF) -check-qtest-pci-y += tests/e1000e-test$(EXESUF) -check-qtest-pci-$(CONFIG_RTL8139_PCI) += tests/rtl8139-test$(EXESUF) -check-qtest-pci-$(CONFIG_PCNET_PCI) += tests/pcnet-test$(EXESUF) -check-qtest-pci-$(CONFIG_EEPRO100_PCI) += tests/eepro100-test$(EXESUF) -check-qtest-pci-$(CONFIG_NE2000_PCI) += tests/ne2000-test$(EXESUF) -check-qtest-pci-$(CONFIG_NVME_PCI) += tests/nvme-test$(EXESUF) -check-qtest-pci-$(CONFIG_AC97) += tests/ac97-test$(EXESUF) -check-qtest-pci-$(CONFIG_ES1370) += tests/es1370-test$(EXESUF) -check-qtest-pci-y += $(check-qtest-virtio-y) -check-qtest-pci-$(CONFIG_IPACK) += tests/tpci200-test$(EXESUF) -check-qtest-pci-$(CONFIG_IPACK) += $(check-qtest-ipack-y) -check-qtest-pci-y += tests/display-vga-test$(EXESUF) -check-qtest-pci-$(CONFIG_HDA) += tests/intel-hda-test$(EXESUF) -check-qtest-pci-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF) -check-qtest-pci-y += tests/megasas-test$(EXESUF) - -check-qtest-i386-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-i386-y += tests/fdc-test$(EXESUF) -check-qtest-i386-y += tests/ide-test$(EXESUF) -check-qtest-i386-y += tests/ahci-test$(EXESUF) -check-qtest-i386-y += tests/hd-geo-test$(EXESUF) -check-qtest-i386-y += tests/boot-order-test$(EXESUF) -check-qtest-i386-y += tests/bios-tables-test$(EXESUF) -check-qtest-i386-$(CONFIG_SGA) += tests/boot-serial-test$(EXESUF) -check-qtest-i386-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF) -check-qtest-i386-y += tests/rtc-test$(EXESUF) -check-qtest-i386-y += tests/ipmi-kcs-test$(EXESUF) -check-qtest-i386-y += tests/ipmi-bt-test$(EXESUF) -check-qtest-i386-y += tests/i440fx-test$(EXESUF) -check-qtest-i386-y += tests/fw_cfg-test$(EXESUF) -check-qtest-i386-y += tests/drive_del-test$(EXESUF) -check-qtest-i386-$(CONFIG_WDT_IB700) += tests/wdt_ib700-test$(EXESUF) -check-qtest-i386-y += tests/tco-test$(EXESUF) -check-qtest-i386-y += $(check-qtest-pci-y) -check-qtest-i386-$(CONFIG_VMXNET3_PCI) += tests/vmxnet3-test$(EXESUF) -check-qtest-i386-$(CONFIG_PVPANIC) += tests/pvpanic-test$(EXESUF) -check-qtest-i386-$(CONFIG_I82801B11) += tests/i82801b11-test$(EXESUF) -check-qtest-i386-$(CONFIG_IOH3420) += tests/ioh3420-test$(EXESUF) -check-qtest-i386-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF) -check-qtest-i386-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF) -ifeq ($(CONFIG_USB_ECHI)$(CONFIG_USB_UHCI),yy) -check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF) -endif -check-qtest-i386-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF) -check-qtest-i386-y += tests/cpu-plug-test$(EXESUF) -check-qtest-i386-y += tests/q35-test$(EXESUF) -check-qtest-i386-y += tests/vmgenid-test$(EXESUF) -check-qtest-i386-$(CONFIG_VHOST_USER_NET_TEST_i386) += tests/vhost-user-test$(EXESUF) -ifeq ($(CONFIG_VHOST_USER_NET_TEST_i386),) -check-qtest-x86_64-$(CONFIG_VHOST_USER_NET_TEST_x86_64) += tests/vhost-user-test$(EXESUF) -endif -check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-swtpm-test$(EXESUF) -check-qtest-i386-$(CONFIG_TPM_CRB) += tests/tpm-crb-test$(EXESUF) -check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-swtpm-test$(EXESUF) -check-qtest-i386-$(CONFIG_TPM_TIS) += tests/tpm-tis-test$(EXESUF) -check-qtest-i386-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF) -check-qtest-i386-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF) -check-qtest-i386-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF) -check-qtest-i386-y += tests/migration-test$(EXESUF) -check-qtest-i386-y += tests/test-x86-cpuid-compat$(EXESUF) -check-qtest-i386-y += tests/numa-test$(EXESUF) -check-qtest-x86_64-y += $(check-qtest-i386-y) -check-qtest-x86_64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF) - -check-qtest-alpha-y += tests/boot-serial-test$(EXESUF) -check-qtest-alpha-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF) - -check-qtest-hppa-y += tests/boot-serial-test$(EXESUF) -check-qtest-hppa-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF) - -check-qtest-m68k-y = tests/boot-serial-test$(EXESUF) - -check-qtest-microblaze-y += tests/boot-serial-test$(EXESUF) - -check-qtest-mips-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-mips-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF) - -check-qtest-mips64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-mips64-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF) - -check-qtest-mips64el-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-mips64el-$(CONFIG_VGA) += tests/display-vga-test$(EXESUF) - -check-qtest-moxie-y += tests/boot-serial-test$(EXESUF) - -check-qtest-ppc-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-ppc-y += tests/boot-order-test$(EXESUF) -check-qtest-ppc-y += tests/prom-env-test$(EXESUF) -check-qtest-ppc-y += tests/drive_del-test$(EXESUF) -check-qtest-ppc-y += tests/boot-serial-test$(EXESUF) -check-qtest-ppc-y += tests/m48t59-test$(EXESUF) - -check-qtest-ppc64-y += $(check-qtest-ppc-y) -check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF) -check-qtest-ppc64-y += tests/pnv-xscom-test$(EXESUF) -check-qtest-ppc64-y += tests/migration-test$(EXESUF) -check-qtest-ppc64-y += tests/rtas-test$(EXESUF) -check-qtest-ppc64-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF) -check-qtest-ppc64-$(CONFIG_USB_OHCI) += tests/usb-hcd-ohci-test$(EXESUF) -check-qtest-ppc64-$(CONFIG_USB_UHCI) += tests/usb-hcd-uhci-test$(EXESUF) -check-qtest-ppc64-$(CONFIG_USB_XHCI_NEC) += tests/usb-hcd-xhci-test$(EXESUF) -check-qtest-ppc64-y += $(check-qtest-virtio-y) -check-qtest-ppc64-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF) -check-qtest-ppc64-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF) -check-qtest-ppc64-$(CONFIG_RTL8139_PCI) += tests/test-filter-redirector$(EXESUF) -check-qtest-ppc64-y += tests/display-vga-test$(EXESUF) -check-qtest-ppc64-y += tests/numa-test$(EXESUF) -check-qtest-ppc64-$(CONFIG_IVSHMEM_DEVICE) += tests/ivshmem-test$(EXESUF) -check-qtest-ppc64-y += tests/cpu-plug-test$(EXESUF) - -check-qtest-sh4-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) - -check-qtest-sh4eb-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) - -check-qtest-sparc-y += tests/prom-env-test$(EXESUF) -check-qtest-sparc-y += tests/m48t59-test$(EXESUF) -check-qtest-sparc-y += tests/boot-serial-test$(EXESUF) - -check-qtest-sparc64-$(CONFIG_ISA_TESTDEV) = tests/endianness-test$(EXESUF) -check-qtest-sparc64-y += tests/prom-env-test$(EXESUF) -check-qtest-sparc64-y += tests/boot-serial-test$(EXESUF) - -check-qtest-arm-y += tests/tmp105-test$(EXESUF) -check-qtest-arm-y += tests/pca9552-test$(EXESUF) -check-qtest-arm-y += tests/ds1338-test$(EXESUF) -check-qtest-arm-y += tests/microbit-test$(EXESUF) -check-qtest-arm-y += tests/m25p80-test$(EXESUF) -check-qtest-arm-y += tests/virtio-blk-test$(EXESUF) -check-qtest-arm-y += tests/test-arm-mptimer$(EXESUF) -check-qtest-arm-y += tests/boot-serial-test$(EXESUF) -check-qtest-arm-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF) -check-qtest-arm-y += tests/hexloader-test$(EXESUF) - -check-qtest-aarch64-y = tests/numa-test$(EXESUF) -check-qtest-aarch64-$(CONFIG_SDHCI) += tests/sdhci-test$(EXESUF) -check-qtest-aarch64-y += tests/boot-serial-test$(EXESUF) -check-qtest-aarch64-y += tests/migration-test$(EXESUF) - -check-qtest-microblazeel-y += $(check-qtest-microblaze-y) - -check-qtest-xtensaeb-y += $(check-qtest-xtensa-y) - -check-qtest-s390x-y = tests/boot-serial-test$(EXESUF) -check-qtest-s390x-$(CONFIG_SLIRP) += tests/pxe-test$(EXESUF) -check-qtest-s390x-$(CONFIG_SLIRP) += tests/test-netfilter$(EXESUF) -check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-mirror$(EXESUF) -check-qtest-s390x-$(CONFIG_POSIX) += tests/test-filter-redirector$(EXESUF) -check-qtest-s390x-y += tests/drive_del-test$(EXESUF) -check-qtest-s390x-y += tests/virtio-ccw-test$(EXESUF) -check-qtest-s390x-y += tests/cpu-plug-test$(EXESUF) -check-qtest-s390x-y += tests/migration-test$(EXESUF) - -check-qtest-generic-y += tests/machine-none-test$(EXESUF) -check-qtest-generic-y += tests/qom-test$(EXESUF) -check-qtest-generic-y += tests/test-hmp$(EXESUF) - -qapi-schema += alternate-any.json -qapi-schema += alternate-array.json -qapi-schema += alternate-base.json -qapi-schema += alternate-clash.json -qapi-schema += alternate-conflict-dict.json -qapi-schema += alternate-conflict-enum-bool.json -qapi-schema += alternate-conflict-enum-int.json -qapi-schema += alternate-conflict-string.json -qapi-schema += alternate-conflict-bool-string.json -qapi-schema += alternate-conflict-num-string.json -qapi-schema += alternate-empty.json -qapi-schema += alternate-invalid-dict.json -qapi-schema += alternate-nested.json -qapi-schema += alternate-unknown.json -qapi-schema += args-alternate.json -qapi-schema += args-any.json -qapi-schema += args-array-empty.json -qapi-schema += args-array-unknown.json -qapi-schema += args-bad-boxed.json -qapi-schema += args-boxed-anon.json -qapi-schema += args-boxed-empty.json -qapi-schema += args-boxed-string.json -qapi-schema += args-int.json -qapi-schema += args-invalid.json -qapi-schema += args-member-array-bad.json -qapi-schema += args-member-case.json -qapi-schema += args-member-unknown.json -qapi-schema += args-name-clash.json -qapi-schema += args-union.json -qapi-schema += args-unknown.json -qapi-schema += bad-base.json -qapi-schema += bad-data.json -qapi-schema += bad-ident.json -qapi-schema += bad-if.json -qapi-schema += bad-if-empty.json -qapi-schema += bad-if-empty-list.json -qapi-schema += bad-if-list.json -qapi-schema += bad-type-bool.json -qapi-schema += bad-type-dict.json -qapi-schema += bad-type-int.json -qapi-schema += base-cycle-direct.json -qapi-schema += base-cycle-indirect.json -qapi-schema += command-int.json -qapi-schema += comments.json -qapi-schema += doc-bad-alternate-member.json -qapi-schema += doc-bad-command-arg.json -qapi-schema += doc-bad-section.json -qapi-schema += doc-bad-symbol.json -qapi-schema += doc-bad-union-member.json -qapi-schema += doc-before-include.json -qapi-schema += doc-before-pragma.json -qapi-schema += doc-duplicated-arg.json -qapi-schema += doc-duplicated-return.json -qapi-schema += doc-duplicated-since.json -qapi-schema += doc-empty-arg.json -qapi-schema += doc-empty-section.json -qapi-schema += doc-empty-symbol.json -qapi-schema += doc-good.json -qapi-schema += doc-interleaved-section.json -qapi-schema += doc-invalid-end.json -qapi-schema += doc-invalid-end2.json -qapi-schema += doc-invalid-return.json -qapi-schema += doc-invalid-section.json -qapi-schema += doc-invalid-start.json -qapi-schema += doc-missing-colon.json -qapi-schema += doc-missing-expr.json -qapi-schema += doc-missing-space.json -qapi-schema += doc-missing.json -qapi-schema += doc-no-symbol.json -qapi-schema += double-data.json -qapi-schema += double-type.json -qapi-schema += duplicate-key.json -qapi-schema += empty.json -qapi-schema += enum-bad-member.json -qapi-schema += enum-bad-name.json -qapi-schema += enum-bad-prefix.json -qapi-schema += enum-clash-member.json -qapi-schema += enum-dict-member-unknown.json -qapi-schema += enum-if-invalid.json -qapi-schema += enum-int-member.json -qapi-schema += enum-member-case.json -qapi-schema += enum-missing-data.json -qapi-schema += enum-wrong-data.json -qapi-schema += escape-outside-string.json -qapi-schema += escape-too-big.json -qapi-schema += escape-too-short.json -qapi-schema += event-boxed-empty.json -qapi-schema += event-case.json -qapi-schema += event-member-invalid-dict.json -qapi-schema += event-nest-struct.json -qapi-schema += flat-union-array-branch.json -qapi-schema += flat-union-bad-base.json -qapi-schema += flat-union-bad-discriminator.json -qapi-schema += flat-union-base-any.json -qapi-schema += flat-union-base-union.json -qapi-schema += flat-union-clash-member.json -qapi-schema += flat-union-empty.json -qapi-schema += flat-union-inline.json -qapi-schema += flat-union-inline-invalid-dict.json -qapi-schema += flat-union-int-branch.json -qapi-schema += flat-union-invalid-branch-key.json -qapi-schema += flat-union-invalid-discriminator.json -qapi-schema += flat-union-invalid-if-discriminator.json -qapi-schema += flat-union-no-base.json -qapi-schema += flat-union-optional-discriminator.json -qapi-schema += flat-union-string-discriminator.json -qapi-schema += funny-char.json -qapi-schema += ident-with-escape.json -qapi-schema += include-before-err.json -qapi-schema += include-cycle.json -qapi-schema += include-extra-junk.json -qapi-schema += include-format-err.json -qapi-schema += include-nested-err.json -qapi-schema += include-no-file.json -qapi-schema += include-non-file.json -qapi-schema += include-relpath.json -qapi-schema += include-repetition.json -qapi-schema += include-self-cycle.json -qapi-schema += include-simple.json -qapi-schema += indented-expr.json -qapi-schema += leading-comma-list.json -qapi-schema += leading-comma-object.json -qapi-schema += missing-colon.json -qapi-schema += missing-comma-list.json -qapi-schema += missing-comma-object.json -qapi-schema += missing-type.json -qapi-schema += nested-struct-data.json -qapi-schema += nested-struct-data-invalid-dict.json -qapi-schema += non-objects.json -qapi-schema += oob-test.json -qapi-schema += allow-preconfig-test.json -qapi-schema += pragma-doc-required-crap.json -qapi-schema += pragma-extra-junk.json -qapi-schema += pragma-name-case-whitelist-crap.json -qapi-schema += pragma-non-dict.json -qapi-schema += pragma-returns-whitelist-crap.json -qapi-schema += qapi-schema-test.json -qapi-schema += quoted-structural-chars.json -qapi-schema += redefined-builtin.json -qapi-schema += redefined-command.json -qapi-schema += redefined-event.json -qapi-schema += redefined-type.json -qapi-schema += reserved-command-q.json -qapi-schema += reserved-enum-q.json -qapi-schema += reserved-member-has.json -qapi-schema += reserved-member-q.json -qapi-schema += reserved-member-u.json -qapi-schema += reserved-member-underscore.json -qapi-schema += reserved-type-kind.json -qapi-schema += reserved-type-list.json -qapi-schema += returns-alternate.json -qapi-schema += returns-array-bad.json -qapi-schema += returns-dict.json -qapi-schema += returns-unknown.json -qapi-schema += returns-whitelist.json -qapi-schema += struct-base-clash-deep.json -qapi-schema += struct-base-clash.json -qapi-schema += struct-data-invalid.json -qapi-schema += struct-member-invalid-dict.json -qapi-schema += struct-member-invalid.json -qapi-schema += trailing-comma-list.json -qapi-schema += trailing-comma-object.json -qapi-schema += type-bypass-bad-gen.json -qapi-schema += unclosed-list.json -qapi-schema += unclosed-object.json -qapi-schema += unclosed-string.json -qapi-schema += unicode-str.json -qapi-schema += union-base-empty.json -qapi-schema += union-base-no-discriminator.json -qapi-schema += union-branch-case.json -qapi-schema += union-branch-invalid-dict.json -qapi-schema += union-clash-branches.json -qapi-schema += union-empty.json -qapi-schema += union-invalid-base.json -qapi-schema += union-optional-branch.json -qapi-schema += union-unknown.json -qapi-schema += unknown-escape.json -qapi-schema += unknown-expr-key.json - - -check-qapi-schema-y := $(addprefix tests/qapi-schema/, $(qapi-schema)) - -GENERATED_FILES += tests/test-qapi-types.h tests/test-qapi-visit.h \ - tests/test-qapi-commands.h tests/test-qapi-events.h \ - tests/test-qapi-introspect.h - -test-obj-y = tests/check-qnum.o tests/check-qstring.o tests/check-qdict.o \ - tests/check-qlist.o tests/check-qnull.o tests/check-qobject.o \ - tests/check-qjson.o tests/check-qlit.o \ - tests/check-block-qtest.o \ - tests/test-coroutine.o tests/test-string-output-visitor.o \ - tests/test-string-input-visitor.o tests/test-qobject-output-visitor.o \ - tests/test-clone-visitor.o \ - tests/test-qobject-input-visitor.o \ - tests/test-qmp-cmds.o tests/test-visitor-serialization.o \ - tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \ - tests/test-opts-visitor.o tests/test-qmp-event.o \ - tests/rcutorture.o tests/test-rcu-list.o \ - tests/test-rcu-simpleq.o \ - tests/test-rcu-tailq.o \ - tests/test-qdist.o tests/test-shift128.o \ - tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o \ - tests/atomic_add-bench.o tests/atomic64-bench.o - -$(test-obj-y): QEMU_INCLUDES += -Itests -QEMU_CFLAGS += -I$(SRC_PATH)/tests - - -# Deps that are common to various different sets of tests below -test-util-obj-y = libqemuutil.a -test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y) -test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \ - tests/test-qapi-events.o tests/test-qapi-introspect.o \ - $(test-qom-obj-y) -benchmark-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y) -test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y) -test-io-obj-y = $(io-obj-y) $(test-crypto-obj-y) -test-block-obj-y = $(block-obj-y) $(test-io-obj-y) tests/iothread.o - -tests/check-qnum$(EXESUF): tests/check-qnum.o $(test-util-obj-y) -tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y) -tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y) -tests/check-block-qdict$(EXESUF): tests/check-block-qdict.o $(test-util-obj-y) -tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y) -tests/check-qnull$(EXESUF): tests/check-qnull.o $(test-util-obj-y) -tests/check-qobject$(EXESUF): tests/check-qobject.o $(test-util-obj-y) -tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y) -tests/check-qlit$(EXESUF): tests/check-qlit.o $(test-util-obj-y) -tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y) -tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y) - -tests/test-char$(EXESUF): tests/test-char.o $(test-util-obj-y) $(qtest-obj-y) $(test-io-obj-y) $(chardev-obj-y) -tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y) -tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y) -tests/test-aio-multithread$(EXESUF): tests/test-aio-multithread.o $(test-block-obj-y) -tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y) -tests/test-bdrv-drain$(EXESUF): tests/test-bdrv-drain.o $(test-block-obj-y) $(test-util-obj-y) -tests/test-blockjob$(EXESUF): tests/test-blockjob.o $(test-block-obj-y) $(test-util-obj-y) -tests/test-blockjob-txn$(EXESUF): tests/test-blockjob-txn.o $(test-block-obj-y) $(test-util-obj-y) -tests/test-block-backend$(EXESUF): tests/test-block-backend.o $(test-block-obj-y) $(test-util-obj-y) -tests/test-image-locking$(EXESUF): tests/test-image-locking.o $(test-block-obj-y) $(test-util-obj-y) -tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y) -tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y) -tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) $(test-crypto-obj-y) -tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o -tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o migration/page_cache.o $(test-util-obj-y) -tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o $(test-util-obj-y) -tests/test-int128$(EXESUF): tests/test-int128.o -tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y) -tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y) -tests/test-rcu-simpleq$(EXESUF): tests/test-rcu-simpleq.o $(test-util-obj-y) -tests/test-rcu-tailq$(EXESUF): tests/test-rcu-tailq.o $(test-util-obj-y) -tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y) -tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y) -tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) $(test-util-obj-y) -tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y) -tests/test-bufferiszero$(EXESUF): tests/test-bufferiszero.o $(test-util-obj-y) -tests/atomic_add-bench$(EXESUF): tests/atomic_add-bench.o $(test-util-obj-y) -tests/atomic64-bench$(EXESUF): tests/atomic64-bench.o $(test-util-obj-y) - -tests/fp/%: - $(MAKE) -C $(dir $@) $(notdir $@) - -tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ - hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\ - hw/core/bus.o \ - hw/core/irq.o \ - hw/core/fw-path-provider.o \ - hw/core/reset.o \ - $(test-qapi-obj-y) -tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ - migration/vmstate.o migration/vmstate-types.o migration/qemu-file.o \ - migration/qemu-file-channel.o migration/qjson.o \ - $(test-io-obj-y) -tests/test-timed-average$(EXESUF): tests/test-timed-average.o $(test-util-obj-y) -tests/test-base64$(EXESUF): tests/test-base64.o $(test-util-obj-y) -tests/ptimer-test$(EXESUF): tests/ptimer-test.o tests/ptimer-test-stubs.o hw/core/ptimer.o - -tests/test-logging$(EXESUF): tests/test-logging.o $(test-util-obj-y) - -tests/test-replication$(EXESUF): tests/test-replication.o $(test-util-obj-y) \ - $(test-block-obj-y) - -tests/test-qapi-types.c tests/test-qapi-types.h \ -tests/test-qapi-visit.c tests/test-qapi-visit.h \ -tests/test-qapi-commands.h tests/test-qapi-commands.c \ -tests/test-qapi-events.c tests/test-qapi-events.h \ -tests/test-qapi-introspect.c tests/test-qapi-introspect.h: \ -tests/test-qapi-gen-timestamp ; -tests/test-qapi-gen-timestamp: $(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \ - -o tests -p "test-" $<, \ - "GEN","$(@:%-timestamp=%)") - @>$@ - -tests/qapi-schema/doc-good.test.texi: $(SRC_PATH)/tests/qapi-schema/doc-good.json $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-gen.py \ - -o tests/qapi-schema -p "doc-good-" $<, \ - "GEN","$@") - @mv tests/qapi-schema/doc-good-qapi-doc.texi $@ - @rm -f tests/qapi-schema/doc-good-qapi-*.[ch] tests/qapi-schema/doc-good-qmp-*.[ch] - -tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) -tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) -tests/test-qobject-output-visitor$(EXESUF): tests/test-qobject-output-visitor.o $(test-qapi-obj-y) -tests/test-clone-visitor$(EXESUF): tests/test-clone-visitor.o $(test-qapi-obj-y) -tests/test-qobject-input-visitor$(EXESUF): tests/test-qobject-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-cmds$(EXESUF): tests/test-qmp-cmds.o tests/test-qapi-commands.o $(test-qapi-obj-y) -tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) -tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y) - -tests/test-shift128$(EXESUF): tests/test-shift128.o $(test-util-obj-y) -tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y) -tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y) -tests/test-bitcnt$(EXESUF): tests/test-bitcnt.o $(test-util-obj-y) -tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y) -tests/benchmark-crypto-hash$(EXESUF): tests/benchmark-crypto-hash.o $(test-crypto-obj-y) -tests/test-crypto-hmac$(EXESUF): tests/test-crypto-hmac.o $(test-crypto-obj-y) -tests/benchmark-crypto-hmac$(EXESUF): tests/benchmark-crypto-hmac.o $(test-crypto-obj-y) -tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y) -tests/benchmark-crypto-cipher$(EXESUF): tests/benchmark-crypto-cipher.o $(test-crypto-obj-y) -tests/test-crypto-secret$(EXESUF): tests/test-crypto-secret.o $(test-crypto-obj-y) -tests/test-crypto-xts$(EXESUF): tests/test-crypto-xts.o $(test-crypto-obj-y) - -tests/crypto-tls-x509-helpers.o-cflags := $(TASN1_CFLAGS) -tests/crypto-tls-x509-helpers.o-libs := $(TASN1_LIBS) -tests/pkix_asn1_tab.o-cflags := $(TASN1_CFLAGS) - -tests/test-crypto-tlscredsx509.o-cflags := $(TASN1_CFLAGS) -tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \ - tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y) - -tests/test-crypto-tlssession.o-cflags := $(TASN1_CFLAGS) -tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \ - tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \ - tests/crypto-tls-psk-helpers.o \ - $(test-crypto-obj-y) -tests/test-util-sockets$(EXESUF): tests/test-util-sockets.o \ - tests/socket-helpers.o $(test-util-obj-y) -tests/test-io-task$(EXESUF): tests/test-io-task.o $(test-io-obj-y) -tests/test-io-channel-socket$(EXESUF): tests/test-io-channel-socket.o \ - tests/io-channel-helpers.o tests/socket-helpers.o $(test-io-obj-y) -tests/tpm-crb-swtpm-test$(EXESUF): tests/tpm-crb-swtpm-test.o tests/tpm-emu.o \ - tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y) -tests/tpm-crb-test$(EXESUF): tests/tpm-crb-test.o tests/tpm-emu.o $(test-io-obj-y) -tests/tpm-tis-swtpm-test$(EXESUF): tests/tpm-tis-swtpm-test.o tests/tpm-emu.o \ - tests/tpm-util.o tests/tpm-tests.o $(test-io-obj-y) -tests/tpm-tis-test$(EXESUF): tests/tpm-tis-test.o tests/tpm-emu.o $(test-io-obj-y) -tests/test-io-channel-file$(EXESUF): tests/test-io-channel-file.o \ - tests/io-channel-helpers.o $(test-io-obj-y) -tests/test-io-channel-tls$(EXESUF): tests/test-io-channel-tls.o \ - tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o \ - tests/io-channel-helpers.o $(test-io-obj-y) -tests/test-io-channel-command$(EXESUF): tests/test-io-channel-command.o \ - tests/io-channel-helpers.o $(test-io-obj-y) -tests/test-io-channel-buffer$(EXESUF): tests/test-io-channel-buffer.o \ - tests/io-channel-helpers.o $(test-io-obj-y) -tests/test-crypto-pbkdf$(EXESUF): tests/test-crypto-pbkdf.o $(test-crypto-obj-y) -tests/test-crypto-ivgen$(EXESUF): tests/test-crypto-ivgen.o $(test-crypto-obj-y) -tests/test-crypto-afsplit$(EXESUF): tests/test-crypto-afsplit.o $(test-crypto-obj-y) -tests/test-crypto-block$(EXESUF): tests/test-crypto-block.o $(test-crypto-obj-y) - -libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o -libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o -libqos-spapr-obj-y = $(libqos-obj-y) tests/libqos/malloc-spapr.o -libqos-spapr-obj-y += tests/libqos/libqos-spapr.o -libqos-spapr-obj-y += tests/libqos/rtas.o -libqos-spapr-obj-y += tests/libqos/pci-spapr.o -libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o -libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o -libqos-pc-obj-y += tests/libqos/ahci.o -libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o -libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o -libqos-usb-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/usb.o -libqos-virtio-obj-y = $(libqos-spapr-obj-y) $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o - -tests/qmp-test$(EXESUF): tests/qmp-test.o -tests/qmp-cmd-test$(EXESUF): tests/qmp-cmd-test.o -tests/device-introspect-test$(EXESUF): tests/device-introspect-test.o -tests/rtc-test$(EXESUF): tests/rtc-test.o -tests/m48t59-test$(EXESUF): tests/m48t59-test.o -tests/hexloader-test$(EXESUF): tests/hexloader-test.o -tests/endianness-test$(EXESUF): tests/endianness-test.o -tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y) -tests/prom-env-test$(EXESUF): tests/prom-env-test.o $(libqos-obj-y) -tests/rtas-test$(EXESUF): tests/rtas-test.o $(libqos-spapr-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o -tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y) -tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y) -tests/ipmi-kcs-test$(EXESUF): tests/ipmi-kcs-test.o -tests/ipmi-bt-test$(EXESUF): tests/ipmi-bt-test.o -tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o -tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y) -tests/boot-serial-test$(EXESUF): tests/boot-serial-test.o $(libqos-obj-y) -tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o \ - tests/boot-sector.o tests/acpi-utils.o $(libqos-obj-y) -tests/pxe-test$(EXESUF): tests/pxe-test.o tests/boot-sector.o $(libqos-obj-y) -tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y) -tests/pca9552-test$(EXESUF): tests/pca9552-test.o $(libqos-omap-obj-y) -tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y) -tests/microbit-test$(EXESUF): tests/microbit-test.o -tests/m25p80-test$(EXESUF): tests/m25p80-test.o -tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y) -tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y) -tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y) -tests/e1000-test$(EXESUF): tests/e1000-test.o -tests/e1000e-test$(EXESUF): tests/e1000e-test.o $(libqos-pc-obj-y) -tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y) -tests/pcnet-test$(EXESUF): tests/pcnet-test.o -tests/pnv-xscom-test$(EXESUF): tests/pnv-xscom-test.o -tests/eepro100-test$(EXESUF): tests/eepro100-test.o -tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o -tests/ne2000-test$(EXESUF): tests/ne2000-test.o -tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o -tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y) -tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o $(libqos-virtio-obj-y) -tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y) -tests/virtio-ccw-test$(EXESUF): tests/virtio-ccw-test.o -tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y) -tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y) -tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y) -tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o $(libqos-virtio-obj-y) -tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o $(libqos-virtio-obj-y) -tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o $(libqos-virtio-obj-y) -tests/tpci200-test$(EXESUF): tests/tpci200-test.o -tests/display-vga-test$(EXESUF): tests/display-vga-test.o -tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o -tests/qom-test$(EXESUF): tests/qom-test.o -tests/test-hmp$(EXESUF): tests/test-hmp.o -tests/machine-none-test$(EXESUF): tests/machine-none-test.o -tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-virtio-obj-y) -tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y) -tests/nvme-test$(EXESUF): tests/nvme-test.o $(libqos-pc-obj-y) -tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o -tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o -tests/ac97-test$(EXESUF): tests/ac97-test.o -tests/es1370-test$(EXESUF): tests/es1370-test.o -tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o -tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o -tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y) -tests/cpu-plug-test$(EXESUF): tests/cpu-plug-test.o -tests/migration-test$(EXESUF): tests/migration-test.o -tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o $(test-util-obj-y) \ - $(qtest-obj-y) $(test-io-obj-y) $(libqos-virtio-obj-y) $(libqos-pc-obj-y) \ - $(chardev-obj-y) -tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o -tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y) -tests/test-keyval$(EXESUF): tests/test-keyval.o $(test-util-obj-y) $(test-qapi-obj-y) -tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y) -tests/test-netfilter$(EXESUF): tests/test-netfilter.o $(qtest-obj-y) -tests/test-filter-mirror$(EXESUF): tests/test-filter-mirror.o $(qtest-obj-y) -tests/test-filter-redirector$(EXESUF): tests/test-filter-redirector.o $(qtest-obj-y) -tests/test-x86-cpuid-compat$(EXESUF): tests/test-x86-cpuid-compat.o $(qtest-obj-y) -tests/ivshmem-test$(EXESUF): tests/ivshmem-test.o contrib/ivshmem-server/ivshmem-server.o $(libqos-pc-obj-y) $(libqos-spapr-obj-y) -tests/megasas-test$(EXESUF): tests/megasas-test.o $(libqos-spapr-obj-y) $(libqos-pc-obj-y) -tests/vhost-user-bridge$(EXESUF): tests/vhost-user-bridge.o $(test-util-obj-y) libvhost-user.a -tests/test-uuid$(EXESUF): tests/test-uuid.o $(test-util-obj-y) -tests/test-arm-mptimer$(EXESUF): tests/test-arm-mptimer.o -tests/test-qapi-util$(EXESUF): tests/test-qapi-util.o $(test-util-obj-y) -tests/numa-test$(EXESUF): tests/numa-test.o -tests/vmgenid-test$(EXESUF): tests/vmgenid-test.o tests/boot-sector.o tests/acpi-utils.o -tests/sdhci-test$(EXESUF): tests/sdhci-test.o $(libqos-pc-obj-y) -tests/cdrom-test$(EXESUF): tests/cdrom-test.o tests/boot-sector.o $(libqos-obj-y) - -tests/migration/stress$(EXESUF): tests/migration/stress.o - $(call quiet-command, $(LINKPROG) -static -O3 $(PTHREAD_LIB) -o $@ $< ,"LINK","$(TARGET_DIR)$@") - -INITRD_WORK_DIR=tests/migration/initrd - -tests/migration/initrd-stress.img: tests/migration/stress$(EXESUF) - mkdir -p $(INITRD_WORK_DIR) - cp $< $(INITRD_WORK_DIR)/init - (cd $(INITRD_WORK_DIR) && (find | cpio --quiet -o -H newc | gzip -9)) > $@ - rm $(INITRD_WORK_DIR)/init - rmdir $(INITRD_WORK_DIR) - -ifeq ($(CONFIG_POSIX),y) -LIBS += -lutil -endif - -# QTest rules - -TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) -ifeq ($(CONFIG_POSIX),y) -QTEST_TARGETS = $(TARGETS) -check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y)) -check-qtest-y += $(check-qtest-generic-y) -else -QTEST_TARGETS = -endif - -qtest-obj-y = tests/libqtest.o $(test-util-obj-y) -$(check-qtest-y): $(qtest-obj-y) - -tests/test-qga$(EXESUF): qemu-ga$(EXESUF) -tests/test-qga$(EXESUF): tests/test-qga.o $(qtest-obj-y) - -SPEED = quick - -# gtester tests, possibly with verbose output -# do_test_tap runs all tests, even if some of them fail, while do_test_human -# stops at the first failure unless -k is given on the command line - -define do_test_human_k - $(quiet-@)rc=0; $(foreach COMMAND, $1, \ - $(call quiet-command-run, \ - export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \ - $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \ - | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only) \ - || rc=$$?;, "TEST", "$@: $(COMMAND)")) exit $$rc -endef -define do_test_human_no_k - $(foreach COMMAND, $1, \ - $(call quiet-command, \ - MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2 \ - $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \ - | ./scripts/tap-driver.pl --test-name="$(notdir $(COMMAND))" $(if $(V),, --show-failures-only), \ - "TEST", "$@: $(COMMAND)") -) -endef -do_test_human = \ - $(if $(findstring k, $(MAKEFLAGS)), $(do_test_human_k), $(do_test_human_no_k)) - -define do_test_tap - $(call quiet-command, \ - { export MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$(( $${RANDOM:-0} % 255 + 1))} $2; \ - $(foreach COMMAND, $1, \ - $(COMMAND) -m=$(SPEED) -k --tap < /dev/null \ - | sed "s/^[a-z][a-z]* [0-9]* /&$(notdir $(COMMAND)) /" || true; ) } \ - | ./scripts/tap-merge.pl | tee "$@" \ - | ./scripts/tap-driver.pl $(if $(V),, --show-failures-only), \ - "TAP","$@") -endef - -.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS)) -$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: subdir-%-softmmu $(check-qtest-y) - $(call do_test_human,$(check-qtest-$*-y) $(check-qtest-generic-y), \ - QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ - QTEST_QEMU_IMG=qemu-img$(EXESUF)) - -check-unit: $(check-unit-y) - $(call do_test_human, $^) - -check-speed: $(check-speed-y) - $(call do_test_human, $^) - -# gtester tests with TAP output - -$(patsubst %, check-report-qtest-%.tap, $(QTEST_TARGETS)): check-report-qtest-%.tap: $(check-qtest-y) - $(call do_test_tap, $(check-qtest-$*-y) $(check-qtest-generic-y), \ - QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ - QTEST_QEMU_IMG=qemu-img$(EXESUF)) - -check-report-unit.tap: $(check-unit-y) - $(call do_test_tap,$^) - -# Reports and overall runs - -check-report.tap: $(patsubst %,check-report-qtest-%.tap, $(QTEST_TARGETS)) check-report-unit.tap - $(call quiet-command,./scripts/tap-merge.py $^ > $@,"GEN","$@") - -# Per guest TCG tests - -LINUX_USER_TARGETS=$(filter %-linux-user,$(TARGET_DIRS)) -BUILD_TCG_TARGET_RULES=$(patsubst %,build-tcg-tests-%, $(LINUX_USER_TARGETS)) -CLEAN_TCG_TARGET_RULES=$(patsubst %,clean-tcg-tests-%, $(LINUX_USER_TARGETS)) -RUN_TCG_TARGET_RULES=$(patsubst %,run-tcg-tests-%, $(LINUX_USER_TARGETS)) - -ifeq ($(HAVE_USER_DOCKER),y) -# Probe for the Docker Builds needed for each build -$(foreach PROBE_TARGET,$(TARGET_DIRS), \ - $(eval -include $(SRC_PATH)/tests/tcg/Makefile.probe) \ - $(if $(DOCKER_PREREQ), \ - $(eval build-tcg-tests-$(PROBE_TARGET): $(DOCKER_PREREQ)))) -endif - -build-tcg-tests-%: - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \ - SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" guest-tests, \ - "BUILD", "TCG tests for $*") - -run-tcg-tests-%: % build-tcg-tests-% - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" \ - SKIP_DOCKER_BUILD=1 TARGET_DIR="$*/" run-guest-tests, \ - "RUN", "TCG tests for $*") - -clean-tcg-tests-%: - $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)" TARGET_DIR="$*/" clean-guest-tests,) - -.PHONY: build-tcg -build-tcg: $(BUILD_TCG_TARGET_RULES) - -.PHONY: check-tcg -check-tcg: $(RUN_TCG_TARGET_RULES) - -.PHONY: clean-tcg -clean-tcg: $(CLEAN_TCG_TARGET_RULES) - -# Other tests - -QEMU_IOTESTS_HELPERS-$(call land,$(CONFIG_SOFTMMU),$(CONFIG_LINUX)) = tests/qemu-iotests/socket_scm_helper$(EXESUF) - -.PHONY: check-tests/qemu-iotests-quick.sh -check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) - $< - -.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y)) -$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json - $(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \ - $(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \ - $^ >$*.test.out 2>$*.test.err; \ - echo $$? >$*.test.exit, \ - "TEST","$*.out") - @# Sanitize error messages (make them independent of build directory) - @perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -u $(SRC_PATH)/$*.err - - @diff -u $(SRC_PATH)/$*.out $*.test.out - @diff -u $(SRC_PATH)/$*.exit $*.test.exit - -.PHONY: check-tests/qapi-schema/doc-good.texi -check-tests/qapi-schema/doc-good.texi: tests/qapi-schema/doc-good.test.texi - @diff -u $(SRC_PATH)/tests/qapi-schema/doc-good.texi $< - -.PHONY: check-decodetree -check-decodetree: - $(call quiet-command, \ - cd $(SRC_PATH)/tests/decode && \ - ./check.sh "$(PYTHON)" "$(SRC_PATH)/scripts/decodetree.py", \ - TEST, decodetree.py) - -# Python venv for running tests - -.PHONY: check-venv check-acceptance - -TESTS_VENV_DIR=$(BUILD_DIR)/tests/venv -TESTS_VENV_REQ=$(SRC_PATH)/tests/requirements.txt -TESTS_RESULTS_DIR=$(BUILD_DIR)/tests/results -# Controls the output generated by Avocado when running tests. -# Any number of command separated loggers are accepted. For more -# information please refer to "avocado --help". -AVOCADO_SHOW=none - -PYTHON3 = $(shell $(PYTHON) -c 'import sys; print(1 if sys.version_info >= (3, 0) else 0)') -ifeq ($(PYTHON3), 1) -$(TESTS_VENV_DIR): $(TESTS_VENV_REQ) - $(call quiet-command, \ - $(PYTHON) -m venv --system-site-packages $@, \ - VENV, $@) - $(call quiet-command, \ - $(TESTS_VENV_DIR)/bin/python -m pip -q install -r $(TESTS_VENV_REQ), \ - PIP, $(TESTS_VENV_REQ)) - $(call quiet-command, touch $@) -else -$(TESTS_VENV_DIR): - $(error "venv directory for tests requires Python 3") -endif - -$(TESTS_RESULTS_DIR): - $(call quiet-command, mkdir -p $@, \ - MKDIR, $@) - -check-venv: $(TESTS_VENV_DIR) - -check-acceptance: check-venv $(TESTS_RESULTS_DIR) - $(call quiet-command, \ - $(TESTS_VENV_DIR)/bin/python -m avocado \ - --show=$(AVOCADO_SHOW) run --job-results-dir=$(TESTS_RESULTS_DIR) \ - --failfast=on $(SRC_PATH)/tests/acceptance, \ - "AVOCADO", "tests/acceptance") - -# Consolidated targets - -.PHONY: check-qapi-schema check-qtest check-unit check check-clean -check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) check-tests/qapi-schema/doc-good.texi -check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) -check-block: $(patsubst %,check-%, $(check-block-y)) -check: check-qapi-schema check-unit check-qtest check-decodetree -check-clean: - rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y) - rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y)) $(check-qtest-generic-y)) - rm -f tests/test-qapi-gen-timestamp - rm -rf $(TESTS_VENV_DIR) $(TESTS_RESULTS_DIR) - -clean: check-clean - -# Build the help program automatically - -all: $(QEMU_IOTESTS_HELPERS-y) - --include $(wildcard tests/*.d) --include $(wildcard tests/libqos/*.d) - -endif diff --git a/tests/Makefile.orig b/tests/Makefile.orig deleted file mode 100644 index e6474ba31b..0000000000 --- a/tests/Makefile.orig +++ /dev/null @@ -1,569 +0,0 @@ -export SRC_PATH - -qapi-py = $(SRC_PATH)/scripts/qapi.py $(SRC_PATH)/scripts/ordereddict.py - -# Get the list of all supported sysemu targets -SYSEMU_TARGET_LIST := $(subst -softmmu.mak,,$(notdir \ - $(wildcard $(SRC_PATH)/default-configs/*-softmmu.mak))) - -check-unit-y = tests/check-qdict$(EXESUF) -gcov-files-check-qdict-y = qobject/qdict.c -check-unit-y += tests/check-qfloat$(EXESUF) -gcov-files-check-qfloat-y = qobject/qfloat.c -check-unit-y += tests/check-qint$(EXESUF) -gcov-files-check-qint-y = qobject/qint.c -check-unit-y += tests/check-qstring$(EXESUF) -gcov-files-check-qstring-y = qobject/qstring.c -check-unit-y += tests/check-qlist$(EXESUF) -gcov-files-check-qlist-y = qobject/qlist.c -check-unit-y += tests/check-qjson$(EXESUF) -gcov-files-check-qjson-y = qobject/qjson.c -check-unit-y += tests/test-qmp-output-visitor$(EXESUF) -gcov-files-test-qmp-output-visitor-y = qapi/qmp-output-visitor.c -check-unit-y += tests/test-qmp-input-visitor$(EXESUF) -gcov-files-test-qmp-input-visitor-y = qapi/qmp-input-visitor.c -check-unit-y += tests/test-qmp-input-strict$(EXESUF) -check-unit-y += tests/test-qmp-commands$(EXESUF) -gcov-files-test-qmp-commands-y = qapi/qmp-dispatch.c -check-unit-y += tests/test-string-input-visitor$(EXESUF) -gcov-files-test-string-input-visitor-y = qapi/string-input-visitor.c -check-unit-y += tests/test-string-output-visitor$(EXESUF) -gcov-files-test-string-output-visitor-y = qapi/string-output-visitor.c -check-unit-y += tests/test-qmp-event$(EXESUF) -gcov-files-test-qmp-event-y += qapi/qmp-event.c -check-unit-y += tests/test-opts-visitor$(EXESUF) -gcov-files-test-opts-visitor-y = qapi/opts-visitor.c -check-unit-y += tests/test-coroutine$(EXESUF) -gcov-files-test-coroutine-y = coroutine-$(CONFIG_COROUTINE_BACKEND).c -check-unit-y += tests/test-visitor-serialization$(EXESUF) -check-unit-y += tests/test-iov$(EXESUF) -gcov-files-test-iov-y = util/iov.c -check-unit-y += tests/test-aio$(EXESUF) -check-unit-$(CONFIG_POSIX) += tests/test-rfifolock$(EXESUF) -check-unit-y += tests/test-throttle$(EXESUF) -gcov-files-test-aio-$(CONFIG_WIN32) = aio-win32.c -gcov-files-test-aio-$(CONFIG_POSIX) = aio-posix.c -check-unit-y += tests/test-thread-pool$(EXESUF) -gcov-files-test-thread-pool-y = thread-pool.c -gcov-files-test-hbitmap-y = util/hbitmap.c -check-unit-y += tests/test-hbitmap$(EXESUF) -check-unit-y += tests/test-x86-cpuid$(EXESUF) -# all code tested by test-x86-cpuid is inside topology.h -gcov-files-test-x86-cpuid-y = -ifeq ($(CONFIG_SOFTMMU),y) -check-unit-y += tests/test-xbzrle$(EXESUF) -gcov-files-test-xbzrle-y = migration/xbzrle.c -check-unit-$(CONFIG_POSIX) += tests/test-vmstate$(EXESUF) -endif -check-unit-y += tests/test-cutils$(EXESUF) -gcov-files-test-cutils-y += util/cutils.c -check-unit-y += tests/test-mul64$(EXESUF) -gcov-files-test-mul64-y = util/host-utils.c -check-unit-y += tests/test-int128$(EXESUF) -# all code tested by test-int128 is inside int128.h -gcov-files-test-int128-y = -check-unit-y += tests/rcutorture$(EXESUF) -gcov-files-rcutorture-y = util/rcu.c -check-unit-y += tests/test-rcu-list$(EXESUF) -gcov-files-test-rcu-list-y = util/rcu.c -check-unit-y += tests/test-bitops$(EXESUF) -check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += tests/test-qdev-global-props$(EXESUF) -check-unit-y += tests/check-qom-interface$(EXESUF) -gcov-files-check-qom-interface-y = qom/object.c -check-unit-y += tests/check-qom-proplist$(EXESUF) -gcov-files-check-qom-proplist-y = qom/object.c -check-unit-y += tests/test-qemu-opts$(EXESUF) -gcov-files-test-qemu-opts-y = qom/test-qemu-opts.c -check-unit-y += tests/test-write-threshold$(EXESUF) -gcov-files-test-write-threshold-y = block/write-threshold.c -check-unit-$(CONFIG_GNUTLS_HASH) += tests/test-crypto-hash$(EXESUF) -check-unit-y += tests/test-crypto-cipher$(EXESUF) -check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlscredsx509$(EXESUF) -check-unit-$(CONFIG_GNUTLS) += tests/test-crypto-tlssession$(EXESUF) - -check-block-$(CONFIG_POSIX) += tests/qemu-iotests-quick.sh - -# All QTests for now are POSIX-only, but the dependencies are -# really in libqtest, not in the testcases themselves. - -gcov-files-ipack-y += hw/ipack/ipack.c -check-qtest-ipack-y += tests/ipoctal232-test$(EXESUF) -gcov-files-ipack-y += hw/char/ipoctal232.c - -check-qtest-virtioserial-y += tests/virtio-console-test$(EXESUF) -gcov-files-virtioserial-y += hw/char/virtio-console.c - -gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio.c -check-qtest-virtio-y += tests/virtio-net-test$(EXESUF) -gcov-files-virtio-y += i386-softmmu/hw/net/virtio-net.c -check-qtest-virtio-y += tests/virtio-balloon-test$(EXESUF) -gcov-files-virtio-y += i386-softmmu/hw/virtio/virtio-balloon.c -check-qtest-virtio-y += tests/virtio-blk-test$(EXESUF) -gcov-files-virtio-y += i386-softmmu/hw/block/virtio-blk.c -check-qtest-virtio-y += tests/virtio-rng-test$(EXESUF) -gcov-files-virtio-y += hw/virtio/virtio-rng.c -check-qtest-virtio-y += tests/virtio-scsi-test$(EXESUF) -gcov-files-virtio-y += i386-softmmu/hw/scsi/virtio-scsi.c -ifeq ($(CONFIG_VIRTIO)$(CONFIG_VIRTFS)$(CONFIG_PCI),yyy) -check-qtest-virtio-y += tests/virtio-9p-test$(EXESUF) -gcov-files-virtio-y += hw/9pfs/virtio-9p.c -gcov-files-virtio-y += i386-softmmu/hw/9pfs/virtio-9p-device.c -endif -check-qtest-virtio-y += tests/virtio-serial-test$(EXESUF) -gcov-files-virtio-y += i386-softmmu/hw/char/virtio-serial-bus.c -check-qtest-virtio-y += $(check-qtest-virtioserial-y) -gcov-files-virtio-y += $(gcov-files-virtioserial-y) - -check-qtest-pci-y += tests/e1000-test$(EXESUF) -gcov-files-pci-y += hw/net/e1000.c -check-qtest-pci-y += tests/rtl8139-test$(EXESUF) -gcov-files-pci-y += hw/net/rtl8139.c -check-qtest-pci-y += tests/pcnet-test$(EXESUF) -gcov-files-pci-y += hw/net/pcnet.c -gcov-files-pci-y += hw/net/pcnet-pci.c -check-qtest-pci-y += tests/eepro100-test$(EXESUF) -gcov-files-pci-y += hw/net/eepro100.c -check-qtest-pci-y += tests/ne2000-test$(EXESUF) -gcov-files-pci-y += hw/net/ne2000.c -check-qtest-pci-y += tests/nvme-test$(EXESUF) -gcov-files-pci-y += hw/block/nvme.c -check-qtest-pci-y += tests/ac97-test$(EXESUF) -gcov-files-pci-y += hw/audio/ac97.c -check-qtest-pci-y += tests/es1370-test$(EXESUF) -gcov-files-pci-y += hw/audio/es1370.c -check-qtest-pci-y += $(check-qtest-virtio-y) -gcov-files-pci-y += $(gcov-files-virtio-y) hw/virtio/virtio-pci.c -check-qtest-pci-y += tests/tpci200-test$(EXESUF) -gcov-files-pci-y += hw/ipack/tpci200.c -check-qtest-pci-y += $(check-qtest-ipack-y) -gcov-files-pci-y += $(gcov-files-ipack-y) -check-qtest-pci-y += tests/display-vga-test$(EXESUF) -gcov-files-pci-y += hw/display/vga.c -gcov-files-pci-y += hw/display/cirrus_vga.c -gcov-files-pci-y += hw/display/vga-pci.c -gcov-files-pci-y += hw/display/virtio-gpu.c -gcov-files-pci-y += hw/display/virtio-gpu-pci.c -gcov-files-pci-$(CONFIG_VIRTIO_VGA) += hw/display/virtio-vga.c -check-qtest-pci-y += tests/intel-hda-test$(EXESUF) -gcov-files-pci-y += hw/audio/intel-hda.c hw/audio/hda-codec.c - -check-qtest-i386-y = tests/endianness-test$(EXESUF) -check-qtest-i386-y += tests/fdc-test$(EXESUF) -gcov-files-i386-y = hw/block/fdc.c -check-qtest-i386-y += tests/ide-test$(EXESUF) -check-qtest-i386-y += tests/ahci-test$(EXESUF) -check-qtest-i386-y += tests/hd-geo-test$(EXESUF) -gcov-files-i386-y += hw/block/hd-geometry.c -check-qtest-i386-y += tests/boot-order-test$(EXESUF) -check-qtest-i386-y += tests/bios-tables-test$(EXESUF) -check-qtest-i386-y += tests/rtc-test$(EXESUF) -check-qtest-i386-y += tests/i440fx-test$(EXESUF) -check-qtest-i386-y += tests/fw_cfg-test$(EXESUF) -check-qtest-i386-y += tests/drive_del-test$(EXESUF) -check-qtest-i386-y += tests/wdt_ib700-test$(EXESUF) -check-qtest-i386-y += tests/tco-test$(EXESUF) -gcov-files-i386-y += hw/watchdog/watchdog.c hw/watchdog/wdt_ib700.c -check-qtest-i386-y += $(check-qtest-pci-y) -gcov-files-i386-y += $(gcov-files-pci-y) -check-qtest-i386-y += tests/vmxnet3-test$(EXESUF) -gcov-files-i386-y += hw/net/vmxnet3.c -gcov-files-i386-y += hw/net/vmxnet_rx_pkt.c -gcov-files-i386-y += hw/net/vmxnet_tx_pkt.c -check-qtest-i386-y += tests/pvpanic-test$(EXESUF) -gcov-files-i386-y += i386-softmmu/hw/misc/pvpanic.c -check-qtest-i386-y += tests/i82801b11-test$(EXESUF) -gcov-files-i386-y += hw/pci-bridge/i82801b11.c -check-qtest-i386-y += tests/ioh3420-test$(EXESUF) -gcov-files-i386-y += hw/pci-bridge/ioh3420.c -check-qtest-i386-y += tests/usb-hcd-ohci-test$(EXESUF) -gcov-files-i386-y += hw/usb/hcd-ohci.c -check-qtest-i386-y += tests/usb-hcd-uhci-test$(EXESUF) -gcov-files-i386-y += hw/usb/hcd-uhci.c -check-qtest-i386-y += tests/usb-hcd-ehci-test$(EXESUF) -gcov-files-i386-y += hw/usb/hcd-ehci.c -gcov-files-i386-y += hw/usb/dev-hid.c -gcov-files-i386-y += hw/usb/dev-storage.c -check-qtest-i386-y += tests/usb-hcd-xhci-test$(EXESUF) -gcov-files-i386-y += hw/usb/hcd-xhci.c -check-qtest-i386-y += tests/pc-cpu-test$(EXESUF) -check-qtest-i386-y += tests/q35-test$(EXESUF) -gcov-files-i386-y += hw/pci-host/q35.c -ifeq ($(CONFIG_VHOST_NET),y) -check-qtest-i386-$(CONFIG_LINUX) += tests/vhost-user-test$(EXESUF) -endif -check-qtest-x86_64-y = $(check-qtest-i386-y) -gcov-files-i386-y += i386-softmmu/hw/timer/mc146818rtc.c -gcov-files-x86_64-y = $(subst i386-softmmu/,x86_64-softmmu/,$(gcov-files-i386-y)) -check-qtest-mips-y = tests/endianness-test$(EXESUF) -check-qtest-mips64-y = tests/endianness-test$(EXESUF) -check-qtest-mips64el-y = tests/endianness-test$(EXESUF) -check-qtest-ppc-y = tests/endianness-test$(EXESUF) -check-qtest-ppc64-y = tests/endianness-test$(EXESUF) -check-qtest-sh4-y = tests/endianness-test$(EXESUF) -check-qtest-sh4eb-y = tests/endianness-test$(EXESUF) -check-qtest-sparc64-y = tests/endianness-test$(EXESUF) -#check-qtest-sparc-y = tests/m48t59-test$(EXESUF) -#check-qtest-sparc64-y += tests/m48t59-test$(EXESUF) -gcov-files-sparc-y += hw/timer/m48t59.c -gcov-files-sparc64-y += hw/timer/m48t59.c -check-qtest-arm-y = tests/tmp105-test$(EXESUF) -check-qtest-arm-y = tests/ds1338-test$(EXESUF) -gcov-files-arm-y += hw/misc/tmp105.c -check-qtest-arm-y += tests/virtio-blk-test$(EXESUF) -gcov-files-arm-y += arm-softmmu/hw/block/virtio-blk.c -check-qtest-ppc-y += tests/boot-order-test$(EXESUF) -check-qtest-ppc64-y += tests/boot-order-test$(EXESUF) -check-qtest-ppc64-y += tests/spapr-phb-test$(EXESUF) -gcov-files-ppc64-y += ppc64-softmmu/hw/ppc/spapr_pci.c -check-qtest-microblazeel-y = $(check-qtest-microblaze-y) -check-qtest-xtensaeb-y = $(check-qtest-xtensa-y) - -# qom-test works for all sysemu architectures: -$(foreach target,$(SYSEMU_TARGET_LIST), \ - $(if $(findstring tests/qom-test$(EXESUF), $(check-qtest-$(target)-y)),, \ - $(eval check-qtest-$(target)-y += tests/qom-test$(EXESUF)))) - -check-qapi-schema-y := $(addprefix tests/qapi-schema/, \ - comments.json empty.json enum-empty.json enum-missing-data.json \ - enum-wrong-data.json enum-int-member.json enum-dict-member.json \ - enum-clash-member.json enum-max-member.json enum-union-clash.json \ - enum-bad-name.json enum-bad-prefix.json \ - funny-char.json indented-expr.json \ - missing-type.json bad-ident.json ident-with-escape.json \ - escape-outside-string.json unknown-escape.json \ - escape-too-short.json escape-too-big.json unicode-str.json \ - double-type.json bad-base.json bad-type-bool.json bad-type-int.json \ - bad-type-dict.json double-data.json unknown-expr-key.json \ - redefined-type.json redefined-command.json redefined-builtin.json \ - redefined-event.json command-int.json bad-data.json event-max.json \ - type-bypass-bad-gen.json \ - args-invalid.json \ - args-array-empty.json args-array-unknown.json args-int.json \ - args-unknown.json args-member-unknown.json args-member-array.json \ - args-member-array-bad.json args-alternate.json args-union.json \ - args-any.json \ - returns-array-bad.json returns-int.json returns-dict.json \ - returns-unknown.json returns-alternate.json returns-whitelist.json \ - missing-colon.json missing-comma-list.json missing-comma-object.json \ - struct-data-invalid.json struct-member-invalid.json \ - nested-struct-data.json non-objects.json \ - qapi-schema-test.json quoted-structural-chars.json \ - leading-comma-list.json leading-comma-object.json \ - trailing-comma-list.json trailing-comma-object.json \ - unclosed-list.json unclosed-object.json unclosed-string.json \ - duplicate-key.json union-invalid-base.json union-bad-branch.json \ - union-optional-branch.json union-unknown.json union-max.json \ - flat-union-optional-discriminator.json flat-union-no-base.json \ - flat-union-invalid-discriminator.json flat-union-inline.json \ - flat-union-invalid-branch-key.json flat-union-reverse-define.json \ - flat-union-string-discriminator.json union-base-no-discriminator.json \ - flat-union-bad-discriminator.json flat-union-bad-base.json \ - flat-union-base-any.json \ - flat-union-array-branch.json flat-union-int-branch.json \ - flat-union-base-union.json flat-union-branch-clash.json \ - alternate-nested.json alternate-unknown.json alternate-clash.json \ - alternate-good.json alternate-base.json alternate-array.json \ - alternate-conflict-string.json alternate-conflict-dict.json \ - include-simple.json include-relpath.json include-format-err.json \ - include-non-file.json include-no-file.json include-before-err.json \ - include-nested-err.json include-self-cycle.json include-cycle.json \ - include-repetition.json event-nest-struct.json event-case.json \ - struct-base-clash.json struct-base-clash-deep.json ) - -GENERATED_HEADERS += tests/test-qapi-types.h tests/test-qapi-visit.h \ - tests/test-qmp-commands.h tests/test-qapi-event.h \ - tests/test-qmp-introspect.h - -test-obj-y = tests/check-qint.o tests/check-qstring.o tests/check-qdict.o \ - tests/check-qlist.o tests/check-qfloat.o tests/check-qjson.o \ - tests/test-coroutine.o tests/test-string-output-visitor.o \ - tests/test-string-input-visitor.o tests/test-qmp-output-visitor.o \ - tests/test-qmp-input-visitor.o tests/test-qmp-input-strict.o \ - tests/test-qmp-commands.o tests/test-visitor-serialization.o \ - tests/test-x86-cpuid.o tests/test-mul64.o tests/test-int128.o \ - tests/test-opts-visitor.o tests/test-qmp-event.o \ - tests/rcutorture.o tests/test-rcu-list.o - -$(test-obj-y): QEMU_INCLUDES += -Itests -QEMU_CFLAGS += -I$(SRC_PATH)/tests - - -# Deps that are common to various different sets of tests below -test-util-obj-y = libqemuutil.a libqemustub.a -test-qom-obj-y = $(qom-obj-y) $(test-util-obj-y) -test-qapi-obj-y = tests/test-qapi-visit.o tests/test-qapi-types.o \ - tests/test-qapi-event.o tests/test-qmp-introspect.o \ - $(test-qom-obj-y) -test-crypto-obj-y = $(crypto-obj-y) $(test-qom-obj-y) -test-block-obj-y = $(block-obj-y) $(test-crypto-obj-y) - -tests/check-qint$(EXESUF): tests/check-qint.o $(test-util-obj-y) -tests/check-qstring$(EXESUF): tests/check-qstring.o $(test-util-obj-y) -tests/check-qdict$(EXESUF): tests/check-qdict.o $(test-util-obj-y) -tests/check-qlist$(EXESUF): tests/check-qlist.o $(test-util-obj-y) -tests/check-qfloat$(EXESUF): tests/check-qfloat.o $(test-util-obj-y) -tests/check-qjson$(EXESUF): tests/check-qjson.o $(test-util-obj-y) -tests/check-qom-interface$(EXESUF): tests/check-qom-interface.o $(test-qom-obj-y) -tests/check-qom-proplist$(EXESUF): tests/check-qom-proplist.o $(test-qom-obj-y) -tests/test-coroutine$(EXESUF): tests/test-coroutine.o $(test-block-obj-y) -tests/test-aio$(EXESUF): tests/test-aio.o $(test-block-obj-y) -tests/test-rfifolock$(EXESUF): tests/test-rfifolock.o $(test-util-obj-y) -tests/test-throttle$(EXESUF): tests/test-throttle.o $(test-block-obj-y) -tests/test-thread-pool$(EXESUF): tests/test-thread-pool.o $(test-block-obj-y) -tests/test-iov$(EXESUF): tests/test-iov.o $(test-util-obj-y) -tests/test-hbitmap$(EXESUF): tests/test-hbitmap.o $(test-util-obj-y) -tests/test-x86-cpuid$(EXESUF): tests/test-x86-cpuid.o -tests/test-xbzrle$(EXESUF): tests/test-xbzrle.o migration/xbzrle.o page_cache.o $(test-util-obj-y) -tests/test-cutils$(EXESUF): tests/test-cutils.o util/cutils.o -tests/test-int128$(EXESUF): tests/test-int128.o -tests/rcutorture$(EXESUF): tests/rcutorture.o $(test-util-obj-y) -tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y) - -tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ - hw/core/qdev.o hw/core/qdev-properties.o hw/core/hotplug.o\ - hw/core/irq.o \ - hw/core/fw-path-provider.o \ - $(test-qapi-obj-y) -tests/test-vmstate$(EXESUF): tests/test-vmstate.o \ - migration/vmstate.o migration/qemu-file.o migration/qemu-file-buf.o \ - migration/qemu-file-unix.o qjson.o \ - $(test-qom-obj-y) - -tests/test-qapi-types.c tests/test-qapi-types.h :\ -$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py \ - $(gen-out-type) -o tests -p "test-" $<, \ - " GEN $@") -tests/test-qapi-visit.c tests/test-qapi-visit.h :\ -$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py \ - $(gen-out-type) -o tests -p "test-" $<, \ - " GEN $@") -tests/test-qmp-commands.h tests/test-qmp-marshal.c :\ -$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py \ - $(gen-out-type) -o tests -p "test-" $<, \ - " GEN $@") -tests/test-qapi-event.c tests/test-qapi-event.h :\ -$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-event.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-event.py \ - $(gen-out-type) -o tests -p "test-" $<, \ - " GEN $@") -tests/test-qmp-introspect.c tests/test-qmp-introspect.h :\ -$(SRC_PATH)/tests/qapi-schema/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-introspect.py $(qapi-py) - $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-introspect.py \ - $(gen-out-type) -o tests -p "test-" $<, \ - " GEN $@") - -tests/test-string-output-visitor$(EXESUF): tests/test-string-output-visitor.o $(test-qapi-obj-y) -tests/test-string-input-visitor$(EXESUF): tests/test-string-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-event$(EXESUF): tests/test-qmp-event.o $(test-qapi-obj-y) -tests/test-qmp-output-visitor$(EXESUF): tests/test-qmp-output-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-visitor$(EXESUF): tests/test-qmp-input-visitor.o $(test-qapi-obj-y) -tests/test-qmp-input-strict$(EXESUF): tests/test-qmp-input-strict.o $(test-qapi-obj-y) -tests/test-qmp-commands$(EXESUF): tests/test-qmp-commands.o tests/test-qmp-marshal.o $(test-qapi-obj-y) -tests/test-visitor-serialization$(EXESUF): tests/test-visitor-serialization.o $(test-qapi-obj-y) -tests/test-opts-visitor$(EXESUF): tests/test-opts-visitor.o $(test-qapi-obj-y) - -tests/test-mul64$(EXESUF): tests/test-mul64.o $(test-util-obj-y) -tests/test-bitops$(EXESUF): tests/test-bitops.o $(test-util-obj-y) -tests/test-crypto-hash$(EXESUF): tests/test-crypto-hash.o $(test-crypto-obj-y) -tests/test-crypto-cipher$(EXESUF): tests/test-crypto-cipher.o $(test-crypto-obj-y) -tests/test-crypto-tlscredsx509$(EXESUF): tests/test-crypto-tlscredsx509.o \ - tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y) -tests/test-crypto-tlssession$(EXESUF): tests/test-crypto-tlssession.o \ - tests/crypto-tls-x509-helpers.o tests/pkix_asn1_tab.o $(test-crypto-obj-y) - -libqos-obj-y = tests/libqos/pci.o tests/libqos/fw_cfg.o tests/libqos/malloc.o -libqos-obj-y += tests/libqos/i2c.o tests/libqos/libqos.o -libqos-pc-obj-y = $(libqos-obj-y) tests/libqos/pci-pc.o -libqos-pc-obj-y += tests/libqos/malloc-pc.o tests/libqos/libqos-pc.o -libqos-pc-obj-y += tests/libqos/ahci.o -libqos-omap-obj-y = $(libqos-obj-y) tests/libqos/i2c-omap.o -libqos-imx-obj-y = $(libqos-obj-y) tests/libqos/i2c-imx.o -libqos-usb-obj-y = $(libqos-pc-obj-y) tests/libqos/usb.o -libqos-virtio-obj-y = $(libqos-pc-obj-y) tests/libqos/virtio.o tests/libqos/virtio-pci.o tests/libqos/virtio-mmio.o tests/libqos/malloc-generic.o - -tests/rtc-test$(EXESUF): tests/rtc-test.o -tests/m48t59-test$(EXESUF): tests/m48t59-test.o -tests/endianness-test$(EXESUF): tests/endianness-test.o -tests/spapr-phb-test$(EXESUF): tests/spapr-phb-test.o $(libqos-obj-y) -tests/fdc-test$(EXESUF): tests/fdc-test.o -tests/ide-test$(EXESUF): tests/ide-test.o $(libqos-pc-obj-y) -tests/ahci-test$(EXESUF): tests/ahci-test.o $(libqos-pc-obj-y) -tests/hd-geo-test$(EXESUF): tests/hd-geo-test.o -tests/boot-order-test$(EXESUF): tests/boot-order-test.o $(libqos-obj-y) -tests/bios-tables-test$(EXESUF): tests/bios-tables-test.o $(libqos-obj-y) -tests/tmp105-test$(EXESUF): tests/tmp105-test.o $(libqos-omap-obj-y) -tests/ds1338-test$(EXESUF): tests/ds1338-test.o $(libqos-imx-obj-y) -tests/i440fx-test$(EXESUF): tests/i440fx-test.o $(libqos-pc-obj-y) -tests/q35-test$(EXESUF): tests/q35-test.o $(libqos-pc-obj-y) -tests/fw_cfg-test$(EXESUF): tests/fw_cfg-test.o $(libqos-pc-obj-y) -tests/e1000-test$(EXESUF): tests/e1000-test.o -tests/rtl8139-test$(EXESUF): tests/rtl8139-test.o $(libqos-pc-obj-y) -tests/pcnet-test$(EXESUF): tests/pcnet-test.o -tests/eepro100-test$(EXESUF): tests/eepro100-test.o -tests/vmxnet3-test$(EXESUF): tests/vmxnet3-test.o -tests/ne2000-test$(EXESUF): tests/ne2000-test.o -tests/wdt_ib700-test$(EXESUF): tests/wdt_ib700-test.o -tests/tco-test$(EXESUF): tests/tco-test.o $(libqos-pc-obj-y) -tests/virtio-balloon-test$(EXESUF): tests/virtio-balloon-test.o -tests/virtio-blk-test$(EXESUF): tests/virtio-blk-test.o $(libqos-virtio-obj-y) -tests/virtio-net-test$(EXESUF): tests/virtio-net-test.o $(libqos-pc-obj-y) $(libqos-virtio-obj-y) -tests/virtio-rng-test$(EXESUF): tests/virtio-rng-test.o $(libqos-pc-obj-y) -tests/virtio-scsi-test$(EXESUF): tests/virtio-scsi-test.o $(libqos-virtio-obj-y) -tests/virtio-9p-test$(EXESUF): tests/virtio-9p-test.o -tests/virtio-serial-test$(EXESUF): tests/virtio-serial-test.o -tests/virtio-console-test$(EXESUF): tests/virtio-console-test.o -tests/tpci200-test$(EXESUF): tests/tpci200-test.o -tests/display-vga-test$(EXESUF): tests/display-vga-test.o -tests/ipoctal232-test$(EXESUF): tests/ipoctal232-test.o -tests/qom-test$(EXESUF): tests/qom-test.o -tests/drive_del-test$(EXESUF): tests/drive_del-test.o $(libqos-pc-obj-y) -tests/qdev-monitor-test$(EXESUF): tests/qdev-monitor-test.o $(libqos-pc-obj-y) -tests/nvme-test$(EXESUF): tests/nvme-test.o -tests/pvpanic-test$(EXESUF): tests/pvpanic-test.o -tests/i82801b11-test$(EXESUF): tests/i82801b11-test.o -tests/ac97-test$(EXESUF): tests/ac97-test.o -tests/es1370-test$(EXESUF): tests/es1370-test.o -tests/intel-hda-test$(EXESUF): tests/intel-hda-test.o -tests/ioh3420-test$(EXESUF): tests/ioh3420-test.o -tests/usb-hcd-ohci-test$(EXESUF): tests/usb-hcd-ohci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-uhci-test$(EXESUF): tests/usb-hcd-uhci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-ehci-test$(EXESUF): tests/usb-hcd-ehci-test.o $(libqos-usb-obj-y) -tests/usb-hcd-xhci-test$(EXESUF): tests/usb-hcd-xhci-test.o $(libqos-usb-obj-y) -tests/pc-cpu-test$(EXESUF): tests/pc-cpu-test.o -tests/vhost-user-test$(EXESUF): tests/vhost-user-test.o qemu-char.o qemu-timer.o $(qtest-obj-y) -tests/qemu-iotests/socket_scm_helper$(EXESUF): tests/qemu-iotests/socket_scm_helper.o -tests/test-qemu-opts$(EXESUF): tests/test-qemu-opts.o $(test-util-obj-y) -tests/test-write-threshold$(EXESUF): tests/test-write-threshold.o $(test-block-obj-y) - -ifeq ($(CONFIG_POSIX),y) -LIBS += -lutil -endif -LIBS += $(TEST_LIBS) -CFLAGS += $(TEST_CFLAGS) - -# QTest rules - -TARGETS=$(patsubst %-softmmu,%, $(filter %-softmmu,$(TARGET_DIRS))) -ifeq ($(CONFIG_POSIX),y) -QTEST_TARGETS=$(foreach TARGET,$(TARGETS), $(if $(check-qtest-$(TARGET)-y), $(TARGET),)) -check-qtest-y=$(foreach TARGET,$(TARGETS), $(check-qtest-$(TARGET)-y)) -endif - -qtest-obj-y = tests/libqtest.o $(test-util-obj-y) -$(check-qtest-y): $(qtest-obj-y) - -.PHONY: check-help -check-help: - @echo "Regression testing targets:" - @echo - @echo " make check Run all tests" - @echo " make check-qtest-TARGET Run qtest tests for given target" - @echo " make check-qtest Run qtest tests" - @echo " make check-unit Run qobject tests" - @echo " make check-qapi-schema Run QAPI schema tests" - @echo " make check-block Run block tests" - @echo " make check-report.html Generates an HTML test report" - @echo " make check-clean Clean the tests" - @echo - @echo "Please note that HTML reports do not regenerate if the unit tests" - @echo "has not changed." - @echo - @echo "The variable SPEED can be set to control the gtester speed setting." - @echo "Default options are -k and (for make V=1) --verbose; they can be" - @echo "changed with variable GTESTER_OPTIONS." - -SPEED = quick -GTESTER_OPTIONS = -k $(if $(V),--verbose,-q) -GCOV_OPTIONS = -n $(if $(V),-f,) - -# gtester tests, possibly with verbose output - -.PHONY: $(patsubst %, check-qtest-%, $(QTEST_TARGETS)) -$(patsubst %, check-qtest-%, $(QTEST_TARGETS)): check-qtest-%: $(check-qtest-y) - $(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,) - $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ - QTEST_QEMU_IMG=qemu-img$(EXESUF) \ - MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \ - gtester $(GTESTER_OPTIONS) -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@") - $(if $(CONFIG_GCOV),@for f in $(gcov-files-$*-y); do \ - echo Gcov report for $$f:;\ - $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \ - done,) - -.PHONY: $(patsubst %, check-%, $(check-unit-y)) -$(patsubst %, check-%, $(check-unit-y)): check-%: % - $(if $(CONFIG_GCOV),@rm -f *.gcda */*.gcda */*/*.gcda */*/*/*.gcda,) - $(call quiet-command, \ - MALLOC_PERTURB_=$${MALLOC_PERTURB_:-$$((RANDOM % 255 + 1))} \ - gtester $(GTESTER_OPTIONS) -m=$(SPEED) $*,"GTESTER $*") - $(if $(CONFIG_GCOV),@for f in $(gcov-files-$(subst tests/,,$*)-y); do \ - echo Gcov report for $$f:;\ - $(GCOV) $(GCOV_OPTIONS) $$f -o `dirname $$f`; \ - done,) - -# gtester tests with XML output - -$(patsubst %, check-report-qtest-%.xml, $(QTEST_TARGETS)): check-report-qtest-%.xml: $(check-qtest-y) - $(call quiet-command,QTEST_QEMU_BINARY=$*-softmmu/qemu-system-$* \ - QTEST_QEMU_IMG=qemu-img$(EXESUF) \ - gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $(check-qtest-$*-y),"GTESTER $@") - -check-report-unit.xml: $(check-unit-y) - $(call quiet-command,gtester -q $(GTESTER_OPTIONS) -o $@ -m=$(SPEED) $^, "GTESTER $@") - -# Reports and overall runs - -check-report.xml: $(patsubst %,check-report-qtest-%.xml, $(QTEST_TARGETS)) check-report-unit.xml - $(call quiet-command,$(SRC_PATH)/scripts/gtester-cat $^ > $@, " GEN $@") - -check-report.html: check-report.xml - $(call quiet-command,gtester-report $< > $@, " GEN $@") - - -# Other tests - -QEMU_IOTESTS_HELPERS-$(CONFIG_LINUX) = tests/qemu-iotests/socket_scm_helper$(EXESUF) - -.PHONY: check-tests/qemu-iotests-quick.sh -check-tests/qemu-iotests-quick.sh: tests/qemu-iotests-quick.sh qemu-img$(EXESUF) qemu-io$(EXESUF) $(QEMU_IOTESTS_HELPERS-y) - $< - -.PHONY: check-tests/test-qapi.py -check-tests/test-qapi.py: tests/test-qapi.py - -.PHONY: $(patsubst %, check-%, $(check-qapi-schema-y)) -$(patsubst %, check-%, $(check-qapi-schema-y)): check-%.json: $(SRC_PATH)/%.json - $(call quiet-command, PYTHONPATH=$(SRC_PATH)/scripts \ - $(PYTHON) $(SRC_PATH)/tests/qapi-schema/test-qapi.py \ - $^ >$*.test.out 2>$*.test.err; \ - echo $$? >$*.test.exit, \ - " TEST $*.out") - @diff -q $(SRC_PATH)/$*.out $*.test.out - @# Sanitize error messages (make them independent of build directory) - @perl -p -e 's|\Q$(SRC_PATH)\E/||g' $*.test.err | diff -q $(SRC_PATH)/$*.err - - @diff -q $(SRC_PATH)/$*.exit $*.test.exit - -# Consolidated targets - -.PHONY: check-qapi-schema check-qtest check-unit check check-clean -check-qapi-schema: $(patsubst %,check-%, $(check-qapi-schema-y)) -check-qtest: $(patsubst %,check-qtest-%, $(QTEST_TARGETS)) -check-unit: $(patsubst %,check-%, $(check-unit-y)) -check-block: $(patsubst %,check-%, $(check-block-y)) -check: check-qapi-schema check-unit check-qtest -check-clean: - $(MAKE) -C tests/tcg clean - rm -rf $(check-unit-y) tests/*.o $(QEMU_IOTESTS_HELPERS-y) - rm -rf $(sort $(foreach target,$(SYSEMU_TARGET_LIST), $(check-qtest-$(target)-y))) - -clean: check-clean - -# Build the help program automatically - -all: $(QEMU_IOTESTS_HELPERS-y) - --include $(wildcard tests/*.d) --include $(wildcard tests/libqos/*.d) diff --git a/tests/bios-tables-test.c.orig b/tests/bios-tables-test.c.orig deleted file mode 100644 index d455b2abfc..0000000000 --- a/tests/bios-tables-test.c.orig +++ /dev/null @@ -1,925 +0,0 @@ -/* - * Boot order test cases. - * - * Copyright (c) 2013 Red Hat Inc. - * - * Authors: - * Michael S. Tsirkin , - * - * This work is licensed under the terms of the GNU GPL, version 2 or later. - * See the COPYING file in the top-level directory. - */ - -#include "qemu/osdep.h" -#include -#include "qemu-common.h" -#include "hw/firmware/smbios.h" -#include "qemu/bitmap.h" -#include "acpi-utils.h" -#include "boot-sector.h" - -#define MACHINE_PC "pc" -#define MACHINE_Q35 "q35" - -#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML" - -typedef struct { - const char *machine; - const char *variant; - uint32_t rsdp_addr; - uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */]; - AcpiRsdtDescriptorRev1 rsdt_table; - uint32_t dsdt_addr; - uint32_t facs_addr; - AcpiFacsDescriptorRev1 facs_table; - uint32_t *rsdt_tables_addr; - int rsdt_tables_nr; - GArray *tables; - uint32_t smbios_ep_addr; - struct smbios_21_entry_point smbios_ep_table; - uint8_t *required_struct_types; - int required_struct_types_len; - QTestState *qts; -} test_data; - -static char disk[] = "tests/acpi-test-disk-XXXXXX"; -static const char *data_dir = "tests/data/acpi"; -#ifdef CONFIG_IASL -static const char *iasl = stringify(CONFIG_IASL); -#else -static const char *iasl; -#endif - -static void free_test_data(test_data *data) -{ - AcpiSdtTable *temp; - int i; - - g_free(data->rsdt_tables_addr); - - for (i = 0; i < data->tables->len; ++i) { - temp = &g_array_index(data->tables, AcpiSdtTable, i); - g_free(temp->aml); - if (temp->aml_file && - !temp->tmp_files_retain && - g_strstr_len(temp->aml_file, -1, "aml-")) { - unlink(temp->aml_file); - } - g_free(temp->aml_file); - g_free(temp->asl); - if (temp->asl_file && - !temp->tmp_files_retain) { - unlink(temp->asl_file); - } - g_free(temp->asl_file); - } - - g_array_free(data->tables, true); -} - -static void test_acpi_rsdp_address(test_data *data) -{ - uint32_t off = acpi_find_rsdp_address(data->qts); - g_assert_cmphex(off, <, 0x100000); - data->rsdp_addr = off; -} - -static void test_acpi_rsdp_table(test_data *data) -{ - uint8_t *rsdp_table = data->rsdp_table, revision; - uint32_t addr = data->rsdp_addr; - - acpi_parse_rsdp_table(data->qts, addr, rsdp_table); - revision = rsdp_table[15 /* Revision offset */]; - - switch (revision) { - case 0: /* ACPI 1.0 RSDP */ - /* With rev 1, checksum is only for the first 20 bytes */ - g_assert(!acpi_calc_checksum(rsdp_table, 20)); - break; - case 2: /* ACPI 2.0+ RSDP */ - /* With revision 2, we have 2 checksums */ - g_assert(!acpi_calc_checksum(rsdp_table, 20)); - g_assert(!acpi_calc_checksum(rsdp_table, 36)); - break; - default: - g_assert_not_reached(); - } -} - -static void test_acpi_rsdt_table(test_data *data) -{ - AcpiRsdtDescriptorRev1 *rsdt_table = &data->rsdt_table; - uint32_t addr = acpi_get_rsdt_address(data->rsdp_table); - uint32_t *tables; - int tables_nr; - uint8_t checksum; - uint32_t rsdt_table_length; - - /* read the header */ - ACPI_READ_TABLE_HEADER(data->qts, rsdt_table, addr); - ACPI_ASSERT_CMP(rsdt_table->signature, "RSDT"); - - rsdt_table_length = le32_to_cpu(rsdt_table->length); - - /* compute the table entries in rsdt */ - tables_nr = (rsdt_table_length - sizeof(AcpiRsdtDescriptorRev1)) / - sizeof(uint32_t); - g_assert(tables_nr > 0); - - /* get the addresses of the tables pointed by rsdt */ - tables = g_new0(uint32_t, tables_nr); - ACPI_READ_ARRAY_PTR(data->qts, tables, tables_nr, addr); - - checksum = acpi_calc_checksum((uint8_t *)rsdt_table, rsdt_table_length) + - acpi_calc_checksum((uint8_t *)tables, - tables_nr * sizeof(uint32_t)); - g_assert(!checksum); - - /* SSDT tables after FADT */ - data->rsdt_tables_addr = tables; - data->rsdt_tables_nr = tables_nr; -} - -static void fadt_fetch_facs_and_dsdt_ptrs(test_data *data) -{ - uint32_t addr; - AcpiTableHeader hdr; - - /* FADT table comes first */ - addr = le32_to_cpu(data->rsdt_tables_addr[0]); - ACPI_READ_TABLE_HEADER(data->qts, &hdr, addr); - ACPI_ASSERT_CMP(hdr.signature, "FACP"); - - ACPI_READ_FIELD(data->qts, data->facs_addr, addr); - ACPI_READ_FIELD(data->qts, data->dsdt_addr, addr); -} - -static void sanitize_fadt_ptrs(test_data *data) -{ - /* fixup pointers in FADT */ - int i; - - for (i = 0; i < data->tables->len; i++) { - AcpiSdtTable *sdt = &g_array_index(data->tables, AcpiSdtTable, i); - - if (memcmp(&sdt->header.signature, "FACP", 4)) { - continue; - } - - /* check original FADT checksum before sanitizing table */ - g_assert(!(uint8_t)( - acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) + - acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len) - )); - - /* sdt->aml field offset := spec offset - header size */ - memset(sdt->aml + 0, 0, 4); /* sanitize FIRMWARE_CTRL(36) ptr */ - memset(sdt->aml + 4, 0, 4); /* sanitize DSDT(40) ptr */ - if (sdt->header.revision >= 3) { - memset(sdt->aml + 96, 0, 8); /* sanitize X_FIRMWARE_CTRL(132) ptr */ - memset(sdt->aml + 104, 0, 8); /* sanitize X_DSDT(140) ptr */ - } - - /* update checksum */ - sdt->header.checksum = 0; - sdt->header.checksum -= - acpi_calc_checksum((uint8_t *)sdt, sizeof(AcpiTableHeader)) + - acpi_calc_checksum((uint8_t *)sdt->aml, sdt->aml_len); - break; - } -} - -static void test_acpi_facs_table(test_data *data) -{ - AcpiFacsDescriptorRev1 *facs_table = &data->facs_table; - uint32_t addr = le32_to_cpu(data->facs_addr); - - ACPI_READ_FIELD(data->qts, facs_table->signature, addr); - ACPI_READ_FIELD(data->qts, facs_table->length, addr); - ACPI_READ_FIELD(data->qts, facs_table->hardware_signature, addr); - ACPI_READ_FIELD(data->qts, facs_table->firmware_waking_vector, addr); - ACPI_READ_FIELD(data->qts, facs_table->global_lock, addr); - ACPI_READ_FIELD(data->qts, facs_table->flags, addr); - ACPI_READ_ARRAY(data->qts, facs_table->resverved3, addr); - - ACPI_ASSERT_CMP(facs_table->signature, "FACS"); -} - -/** fetch_table - * load ACPI table at @addr into table descriptor @sdt_table - * and check that header checksum matches actual one. - */ -static void fetch_table(QTestState *qts, AcpiSdtTable *sdt_table, uint32_t addr) -{ - uint8_t checksum; - - memset(sdt_table, 0, sizeof(*sdt_table)); - ACPI_READ_TABLE_HEADER(qts, &sdt_table->header, addr); - - sdt_table->aml_len = le32_to_cpu(sdt_table->header.length) - - sizeof(AcpiTableHeader); - sdt_table->aml = g_malloc0(sdt_table->aml_len); - ACPI_READ_ARRAY_PTR(qts, sdt_table->aml, sdt_table->aml_len, addr); - - checksum = acpi_calc_checksum((uint8_t *)sdt_table, - sizeof(AcpiTableHeader)) + - acpi_calc_checksum((uint8_t *)sdt_table->aml, - sdt_table->aml_len); - g_assert(!checksum); -} - -static void test_acpi_dsdt_table(test_data *data) -{ - AcpiSdtTable dsdt_table; - uint32_t addr = le32_to_cpu(data->dsdt_addr); - - fetch_table(data->qts, &dsdt_table, addr); - ACPI_ASSERT_CMP(dsdt_table.header.signature, "DSDT"); - - /* Since DSDT isn't in RSDT, add DSDT to ASL test tables list manually */ - g_array_append_val(data->tables, dsdt_table); -} - -/* Load all tables and add to test list directly RSDT referenced tables */ -static void fetch_rsdt_referenced_tables(test_data *data) -{ - int tables_nr = data->rsdt_tables_nr; - int i; - - for (i = 0; i < tables_nr; i++) { - AcpiSdtTable ssdt_table; - uint32_t addr; - - addr = le32_to_cpu(data->rsdt_tables_addr[i]); - fetch_table(data->qts, &ssdt_table, addr); - - /* Add table to ASL test tables list */ - g_array_append_val(data->tables, ssdt_table); - } -} - -static void dump_aml_files(test_data *data, bool rebuild) -{ - AcpiSdtTable *sdt; - GError *error = NULL; - gchar *aml_file = NULL; - gint fd; - ssize_t ret; - int i; - - for (i = 0; i < data->tables->len; ++i) { - const char *ext = data->variant ? data->variant : ""; - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - g_assert(sdt->aml); - - if (rebuild) { - aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine, - (gchar *)&sdt->header.signature, ext); - fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT, - S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - } else { - fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error); - g_assert_no_error(error); - } - g_assert(fd >= 0); - - ret = qemu_write_full(fd, sdt, sizeof(AcpiTableHeader)); - g_assert(ret == sizeof(AcpiTableHeader)); - ret = qemu_write_full(fd, sdt->aml, sdt->aml_len); - g_assert(ret == sdt->aml_len); - - close(fd); - - g_free(aml_file); - } -} - -static bool compare_signature(AcpiSdtTable *sdt, const char *signature) -{ - return !memcmp(&sdt->header.signature, signature, 4); -} - -static bool load_asl(GArray *sdts, AcpiSdtTable *sdt) -{ - AcpiSdtTable *temp; - GError *error = NULL; - GString *command_line = g_string_new(iasl); - gint fd; - gchar *out, *out_err; - gboolean ret; - int i; - - fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error); - g_assert_no_error(error); - close(fd); - - /* build command line */ - g_string_append_printf(command_line, " -p %s ", sdt->asl_file); - if (compare_signature(sdt, "DSDT") || - compare_signature(sdt, "SSDT")) { - for (i = 0; i < sdts->len; ++i) { - temp = &g_array_index(sdts, AcpiSdtTable, i); - if (compare_signature(temp, "DSDT") || - compare_signature(temp, "SSDT")) { - g_string_append_printf(command_line, "-e %s ", temp->aml_file); - } - } - } - g_string_append_printf(command_line, "-d %s", sdt->aml_file); - - /* pass 'out' and 'out_err' in order to be redirected */ - ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error); - g_assert_no_error(error); - if (ret) { - ret = g_file_get_contents(sdt->asl_file, &sdt->asl, - &sdt->asl_len, &error); - g_assert(ret); - g_assert_no_error(error); - ret = (sdt->asl_len > 0); - } - - g_free(out); - g_free(out_err); - g_string_free(command_line, true); - - return !ret; -} - -#define COMMENT_END "*/" -#define DEF_BLOCK "DefinitionBlock (" -#define BLOCK_NAME_END "," - -static GString *normalize_asl(gchar *asl_code) -{ - GString *asl = g_string_new(asl_code); - gchar *comment, *block_name; - - /* strip comments (different generation days) */ - comment = g_strstr_len(asl->str, asl->len, COMMENT_END); - if (comment) { - comment += strlen(COMMENT_END); - while (*comment == '\n') { - comment++; - } - asl = g_string_erase(asl, 0, comment - asl->str); - } - - /* strip def block name (it has file path in it) */ - if (g_str_has_prefix(asl->str, DEF_BLOCK)) { - block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END); - g_assert(block_name); - asl = g_string_erase(asl, 0, - block_name + sizeof(BLOCK_NAME_END) - asl->str); - } - - return asl; -} - -static GArray *load_expected_aml(test_data *data) -{ - int i; - AcpiSdtTable *sdt; - GError *error = NULL; - gboolean ret; - - GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable)); - if (getenv("V")) { - fputc('\n', stderr); - } - for (i = 0; i < data->tables->len; ++i) { - AcpiSdtTable exp_sdt; - gchar *aml_file = NULL; - const char *ext = data->variant ? data->variant : ""; - - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - - memset(&exp_sdt, 0, sizeof(exp_sdt)); - exp_sdt.header.signature = sdt->header.signature; - -try_again: - aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine, - (gchar *)&sdt->header.signature, ext); - if (getenv("V")) { - fprintf(stderr, "Looking for expected file '%s'\n", aml_file); - } - if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) { - exp_sdt.aml_file = aml_file; - } else if (*ext != '\0') { - /* try fallback to generic (extension less) expected file */ - ext = ""; - g_free(aml_file); - goto try_again; - } - g_assert(exp_sdt.aml_file); - if (getenv("V")) { - fprintf(stderr, "Using expected file '%s'\n", aml_file); - } - ret = g_file_get_contents(aml_file, &exp_sdt.aml, - &exp_sdt.aml_len, &error); - g_assert(ret); - g_assert_no_error(error); - g_assert(exp_sdt.aml); - g_assert(exp_sdt.aml_len); - - g_array_append_val(exp_tables, exp_sdt); - } - - return exp_tables; -} - -/* test the list of tables in @data->tables against reference tables */ -static void test_acpi_asl(test_data *data) -{ - int i; - AcpiSdtTable *sdt, *exp_sdt; - test_data exp_data; - gboolean exp_err, err; - - memset(&exp_data, 0, sizeof(exp_data)); - exp_data.tables = load_expected_aml(data); - dump_aml_files(data, false); - for (i = 0; i < data->tables->len; ++i) { - GString *asl, *exp_asl; - - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i); - - err = load_asl(data->tables, sdt); - asl = normalize_asl(sdt->asl); - - exp_err = load_asl(exp_data.tables, exp_sdt); - exp_asl = normalize_asl(exp_sdt->asl); - - /* TODO: check for warnings */ - g_assert(!err || exp_err); - - if (g_strcmp0(asl->str, exp_asl->str)) { - if (exp_err) { - fprintf(stderr, - "Warning! iasl couldn't parse the expected aml\n"); - } else { - uint32_t signature = cpu_to_le32(exp_sdt->header.signature); - sdt->tmp_files_retain = true; - exp_sdt->tmp_files_retain = true; - fprintf(stderr, - "acpi-test: Warning! %.4s mismatch. " - "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n", - (gchar *)&signature, - sdt->asl_file, sdt->aml_file, - exp_sdt->asl_file, exp_sdt->aml_file); - if (getenv("V")) { - const char *diff_cmd = getenv("DIFF"); - if (diff_cmd) { - int ret G_GNUC_UNUSED; - char *diff = g_strdup_printf("%s %s %s", diff_cmd, - exp_sdt->asl_file, sdt->asl_file); - ret = system(diff) ; - g_free(diff); - } else { - fprintf(stderr, "acpi-test: Warning. not showing " - "difference since no diff utility is specified. " - "Set 'DIFF' environment variable to a preferred " - "diff utility and run 'make V=1 check' again to " - "see ASL difference."); - } - } - } - } - g_string_free(asl, true); - g_string_free(exp_asl, true); - } - - free_test_data(&exp_data); -} - -static bool smbios_ep_table_ok(test_data *data) -{ - struct smbios_21_entry_point *ep_table = &data->smbios_ep_table; - uint32_t addr = data->smbios_ep_addr; - - ACPI_READ_ARRAY(data->qts, ep_table->anchor_string, addr); - if (memcmp(ep_table->anchor_string, "_SM_", 4)) { - return false; - } - ACPI_READ_FIELD(data->qts, ep_table->checksum, addr); - ACPI_READ_FIELD(data->qts, ep_table->length, addr); - ACPI_READ_FIELD(data->qts, ep_table->smbios_major_version, addr); - ACPI_READ_FIELD(data->qts, ep_table->smbios_minor_version, addr); - ACPI_READ_FIELD(data->qts, ep_table->max_structure_size, addr); - ACPI_READ_FIELD(data->qts, ep_table->entry_point_revision, addr); - ACPI_READ_ARRAY(data->qts, ep_table->formatted_area, addr); - ACPI_READ_ARRAY(data->qts, ep_table->intermediate_anchor_string, addr); - if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) { - return false; - } - ACPI_READ_FIELD(data->qts, ep_table->intermediate_checksum, addr); - ACPI_READ_FIELD(data->qts, ep_table->structure_table_length, addr); - if (ep_table->structure_table_length == 0) { - return false; - } - ACPI_READ_FIELD(data->qts, ep_table->structure_table_address, addr); - ACPI_READ_FIELD(data->qts, ep_table->number_of_structures, addr); - if (ep_table->number_of_structures == 0) { - return false; - } - ACPI_READ_FIELD(data->qts, ep_table->smbios_bcd_revision, addr); - if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) || - acpi_calc_checksum((uint8_t *)ep_table + 0x10, - sizeof *ep_table - 0x10)) { - return false; - } - return true; -} - -static void test_smbios_entry_point(test_data *data) -{ - uint32_t off; - - /* find smbios entry point structure */ - for (off = 0xf0000; off < 0x100000; off += 0x10) { - uint8_t sig[] = "_SM_"; - int i; - - for (i = 0; i < sizeof sig - 1; ++i) { - sig[i] = qtest_readb(data->qts, off + i); - } - - if (!memcmp(sig, "_SM_", sizeof sig)) { - /* signature match, but is this a valid entry point? */ - data->smbios_ep_addr = off; - if (smbios_ep_table_ok(data)) { - break; - } - } - } - - g_assert_cmphex(off, <, 0x100000); -} - -static inline bool smbios_single_instance(uint8_t type) -{ - switch (type) { - case 0: - case 1: - case 2: - case 3: - case 16: - case 32: - case 127: - return true; - default: - return false; - } -} - -static void test_smbios_structs(test_data *data) -{ - DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 }; - struct smbios_21_entry_point *ep_table = &data->smbios_ep_table; - uint32_t addr = le32_to_cpu(ep_table->structure_table_address); - int i, len, max_len = 0; - uint8_t type, prv, crt; - - /* walk the smbios tables */ - for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) { - - /* grab type and formatted area length from struct header */ - type = qtest_readb(data->qts, addr); - g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE); - len = qtest_readb(data->qts, addr + 1); - - /* single-instance structs must not have been encountered before */ - if (smbios_single_instance(type)) { - g_assert(!test_bit(type, struct_bitmap)); - } - set_bit(type, struct_bitmap); - - /* seek to end of unformatted string area of this struct ("\0\0") */ - prv = crt = 1; - while (prv || crt) { - prv = crt; - crt = qtest_readb(data->qts, addr + len); - len++; - } - - /* keep track of max. struct size */ - if (max_len < len) { - max_len = len; - g_assert_cmpuint(max_len, <=, ep_table->max_structure_size); - } - - /* start of next structure */ - addr += len; - } - - /* total table length and max struct size must match entry point values */ - g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==, - addr - le32_to_cpu(ep_table->structure_table_address)); - g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len); - - /* required struct types must all be present */ - for (i = 0; i < data->required_struct_types_len; i++) { - g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); - } -} - -static void test_acpi_one(const char *params, test_data *data) -{ - char *args; - - /* Disable kernel irqchip to be able to override apic irq0. */ - args = g_strdup_printf("-machine %s,accel=%s,kernel-irqchip=off " - "-net none -display none %s " - "-drive id=hd0,if=none,file=%s,format=raw " - "-device ide-hd,drive=hd0 ", - data->machine, "kvm:tcg", - params ? params : "", disk); - - data->qts = qtest_init(args); - - boot_sector_test(data->qts); - - data->tables = g_array_new(false, true, sizeof(AcpiSdtTable)); - test_acpi_rsdp_address(data); - test_acpi_rsdp_table(data); - test_acpi_rsdt_table(data); - fadt_fetch_facs_and_dsdt_ptrs(data); - test_acpi_facs_table(data); - test_acpi_dsdt_table(data); - fetch_rsdt_referenced_tables(data); - - sanitize_fadt_ptrs(data); - - if (iasl) { - if (getenv(ACPI_REBUILD_EXPECTED_AML)) { - dump_aml_files(data, true); - } else { - test_acpi_asl(data); - } - } - - test_smbios_entry_point(data); - test_smbios_structs(data); - - assert(!global_qtest); - qtest_quit(data->qts); - g_free(args); -} - -static uint8_t base_required_struct_types[] = { - 0, 1, 3, 4, 16, 17, 19, 32, 127 -}; - -static void test_acpi_piix4_tcg(void) -{ - test_data data; - - /* Supplying -machine accel argument overrides the default (qtest). - * This is to make guest actually run. - */ - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one(NULL, &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_bridge(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".bridge"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-device pci-bridge,chassis_nr=1", &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one(NULL, &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_bridge(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".bridge"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-device pci-bridge,chassis_nr=1", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_mmio64(void) -{ - test_data data = { - .machine = MACHINE_Q35, - .variant = ".mmio64", - .required_struct_types = base_required_struct_types, - .required_struct_types_len = ARRAY_SIZE(base_required_struct_types) - }; - - test_acpi_one("-m 128M,slots=1,maxmem=2G " - "-device pci-testdev,membar=2G", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_cphp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".cphp"; - test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6" - " -numa node -numa node" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_cphp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".cphp"; - test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6" - " -numa node -numa node" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static uint8_t ipmi_required_struct_types[] = { - 0, 1, 3, 4, 16, 17, 19, 32, 38, 127 -}; - -static void test_acpi_q35_tcg_ipmi(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".ipmibt"; - data.required_struct_types = ipmi_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); - test_acpi_one("-device ipmi-bmc-sim,id=bmc0" - " -device isa-ipmi-bt,bmc=bmc0", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_ipmi(void) -{ - test_data data; - - /* Supplying -machine accel argument overrides the default (qtest). - * This is to make guest actually run. - */ - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".ipmikcs"; - data.required_struct_types = ipmi_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); - test_acpi_one("-device ipmi-bmc-sim,id=bmc0" - " -device isa-ipmi-kcs,irq=0,bmc=bmc0", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_memhp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".memhp"; - test_acpi_one(" -m 128,slots=3,maxmem=1G" - " -numa node -numa node" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_memhp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".memhp"; - test_acpi_one(" -m 128,slots=3,maxmem=1G" - " -numa node -numa node" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_numamem(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".numamem"; - test_acpi_one(" -numa node -numa node,mem=128", &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_numamem(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".numamem"; - test_acpi_one(" -numa node -numa node,mem=128", &data); - free_test_data(&data); -} - -static void test_acpi_tcg_dimm_pxm(const char *machine) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = machine; - data.variant = ".dimmpxm"; - test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu" - " -smp 4,sockets=4" - " -m 128M,slots=3,maxmem=1G" - " -numa node,mem=32M,nodeid=0" - " -numa node,mem=32M,nodeid=1" - " -numa node,mem=32M,nodeid=2" - " -numa node,mem=32M,nodeid=3" - " -numa cpu,node-id=0,socket-id=0" - " -numa cpu,node-id=1,socket-id=1" - " -numa cpu,node-id=2,socket-id=2" - " -numa cpu,node-id=3,socket-id=3" - " -object memory-backend-ram,id=ram0,size=128M" - " -object memory-backend-ram,id=nvm0,size=128M" - " -device pc-dimm,id=dimm0,memdev=ram0,node=1" - " -device nvdimm,id=dimm1,memdev=nvm0,node=2", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_dimm_pxm(void) -{ - test_acpi_tcg_dimm_pxm(MACHINE_Q35); -} - -static void test_acpi_piix4_tcg_dimm_pxm(void) -{ - test_acpi_tcg_dimm_pxm(MACHINE_PC); -} - -int main(int argc, char *argv[]) -{ - const char *arch = qtest_get_arch(); - int ret; - - ret = boot_sector_init(disk); - if(ret) - return ret; - - g_test_init(&argc, &argv, NULL); - - if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { - qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); - qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge); - qtest_add_func("acpi/q35", test_acpi_q35_tcg); - qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge); - qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64); - qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi); - qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi); - qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp); - qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp); - qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp); - qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); - qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem); - qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); - qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); - qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); - } - ret = g_test_run(); - boot_sector_cleanup(disk); - return ret; -} diff --git a/tests/data/acpi/diff-aml.sh b/tests/data/acpi/diff-aml.sh deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/tests/data/acpi/disassemle-aml.py b/tests/data/acpi/disassemle-aml.py deleted file mode 100644 index 0398fada63..0000000000 --- a/tests/data/acpi/disassemle-aml.py +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/python - -import os, re -root = "tests/data/acpi" -for machine in os.listdir(root): - machine_root = os.path.join(root, machine) - if not os.path.isdir(machine_root): - continue - files = os.listdir(machine_root): - for file in files: - if file.endswith(".dsl"): - continue - extension_prefix = "^[^.]*\." - if re.match(extension_prefix, file): - variant = re.sub(extension_prefix, "", file) - - -for dirpath, dirnames, filenames in os.walk("tests/data/acpi"): - for file in files: - if file.endswith(".txt"): - print(os.path.join(root, file)) diff --git a/tests/data/acpi/microvm/APIC.dsl b/tests/data/acpi/microvm/APIC.dsl deleted file mode 100644 index 02f56dce43..0000000000 --- a/tests/data/acpi/microvm/APIC.dsl +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/microvm/APIC, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 00000046 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : D7 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : FEE00000 -[028h 0040 4] Flags (decoded below) : 00000001 - PC-AT Compatibility : 1 - -[02Ch 0044 1] Subtable Type : 00 [Processor Local APIC] -[02Dh 0045 1] Length : 08 -[02Eh 0046 1] Processor ID : 00 -[02Fh 0047 1] Local Apic ID : 00 -[030h 0048 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[034h 0052 1] Subtable Type : 01 [I/O APIC] -[035h 0053 1] Length : 0C -[036h 0054 1] I/O Apic ID : 00 -[037h 0055 1] Reserved : 00 -[038h 0056 4] Address : FEC00000 -[03Ch 0060 4] Interrupt : 00000000 - -[040h 0064 1] Subtable Type : 04 [Local APIC NMI] -[041h 0065 1] Length : 06 -[042h 0066 1] Processor ID : FF -[043h 0067 2] Flags (decoded below) : 0000 - Polarity : 0 - Trigger Mode : 0 -[045h 0069 1] Interrupt Input LINT : 01 - -Raw Table Data: Length 70 (0x46) - - 0000: 41 50 49 43 46 00 00 00 01 D7 42 4F 43 48 53 20 // APICF.....BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00 // ................ - 0030: 01 00 00 00 01 0C 00 00 00 00 C0 FE 00 00 00 00 // ................ - 0040: 04 06 FF 00 00 01 // ...... diff --git a/tests/data/acpi/microvm/DSDT.dsl b/tests/data/acpi/microvm/DSDT.dsl deleted file mode 100644 index fd53f08128..0000000000 --- a/tests/data/acpi/microvm/DSDT.dsl +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/microvm/DSDT, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x0000016D (365) - * Revision 0x02 - * Checksum 0x62 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (_SB) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (GED) - { - Name (_HID, "ACPI0013" /* Generic Event Device */) // _HID: Hardware ID - Name (_UID, "GED") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) - { - 0x00000009, - } - }) - OperationRegion (EREG, SystemMemory, 0xFEA00000, 0x04) - Field (EREG, DWordAcc, NoLock, WriteAsZeros) - { - ESEL, 32 - } - - Method (_EVT, 1, Serialized) // _EVT: Event - { - Local0 = ESEL /* \_SB_.GED_.ESEL */ - If (((Local0 & 0x02) == 0x02)) - { - Notify (PWRB, 0x80) // Status Change - } - } - } - - Device (PWRB) - { - Name (_HID, "PNP0C0C" /* Power Button Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - - Device (VR07) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0xFEB00E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000017, - } - }) - } - } - - Scope (\) - { - Name (_S5, Package (0x04) // _S5_: S5 System State - { - 0x05, - Zero, - Zero, - Zero - }) - } -} - diff --git a/tests/data/acpi/microvm/FACP.dsl b/tests/data/acpi/microvm/FACP.dsl deleted file mode 100644 index 4cf780caec..0000000000 --- a/tests/data/acpi/microvm/FACP.dsl +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/microvm/FACP, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 0000010C -[008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : 7E -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 00 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0000 -[030h 0048 4] SMI Command Port : 00000000 -[034h 0052 1] ACPI Enable Value : 00 -[035h 0053 1] ACPI Disable Value : 00 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000000 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000000 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000000 -[050h 0080 4] GPE0 Block Address : 00000000 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 00 -[059h 0089 1] PM1 Control Block Length : 00 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 00 -[05Ch 0092 1] GPE0 Block Length : 00 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0000 -[062h 0098 2] C3 Latency : 0000 -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 00 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 00100400 - WBINVD instruction is operational (V1) : 0 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 0 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 0 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 0 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 1 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 0 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 1 - Low Power S0 Idle (V5) : 0 - -[074h 0116 12] Reset Register : [Generic Address Structure] -[074h 0116 1] Space ID : 00 [SystemMemory] -[075h 0117 1] Bit Width : 08 -[076h 0118 1] Bit Offset : 00 -[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] -[078h 0120 8] Address : 00000000FEA00202 - -[080h 0128 1] Value to cause reset : 42 -[081h 0129 2] ARM Flags (decoded below) : 0000 - PSCI Compliant : 0 - Must use HVC for PSCI : 0 - -[083h 0131 1] FADT Minor Revision : 00 -[084h 0132 8] FACS Address : 0000000000000000 -[08Ch 0140 8] DSDT Address : 0000000000000000 -[094h 0148 12] PM1A Event Block : [Generic Address Structure] -[094h 0148 1] Space ID : 00 [SystemMemory] -[095h 0149 1] Bit Width : 00 -[096h 0150 1] Bit Offset : 00 -[097h 0151 1] Encoded Access Width : 00 [Undefined/Legacy] -[098h 0152 8] Address : 0000000000000000 - -[0A0h 0160 12] PM1B Event Block : [Generic Address Structure] -[0A0h 0160 1] Space ID : 00 [SystemMemory] -[0A1h 0161 1] Bit Width : 00 -[0A2h 0162 1] Bit Offset : 00 -[0A3h 0163 1] Encoded Access Width : 00 [Undefined/Legacy] -[0A4h 0164 8] Address : 0000000000000000 - -[0ACh 0172 12] PM1A Control Block : [Generic Address Structure] -[0ACh 0172 1] Space ID : 00 [SystemMemory] -[0ADh 0173 1] Bit Width : 00 -[0AEh 0174 1] Bit Offset : 00 -[0AFh 0175 1] Encoded Access Width : 00 [Undefined/Legacy] -[0B0h 0176 8] Address : 0000000000000000 - -[0B8h 0184 12] PM1B Control Block : [Generic Address Structure] -[0B8h 0184 1] Space ID : 00 [SystemMemory] -[0B9h 0185 1] Bit Width : 00 -[0BAh 0186 1] Bit Offset : 00 -[0BBh 0187 1] Encoded Access Width : 00 [Undefined/Legacy] -[0BCh 0188 8] Address : 0000000000000000 - -[0C4h 0196 12] PM2 Control Block : [Generic Address Structure] -[0C4h 0196 1] Space ID : 00 [SystemMemory] -[0C5h 0197 1] Bit Width : 00 -[0C6h 0198 1] Bit Offset : 00 -[0C7h 0199 1] Encoded Access Width : 00 [Undefined/Legacy] -[0C8h 0200 8] Address : 0000000000000000 - -[0D0h 0208 12] PM Timer Block : [Generic Address Structure] -[0D0h 0208 1] Space ID : 00 [SystemMemory] -[0D1h 0209 1] Bit Width : 00 -[0D2h 0210 1] Bit Offset : 00 -[0D3h 0211 1] Encoded Access Width : 00 [Undefined/Legacy] -[0D4h 0212 8] Address : 0000000000000000 - -[0DCh 0220 12] GPE0 Block : [Generic Address Structure] -[0DCh 0220 1] Space ID : 00 [SystemMemory] -[0DDh 0221 1] Bit Width : 00 -[0DEh 0222 1] Bit Offset : 00 -[0DFh 0223 1] Encoded Access Width : 00 [Undefined/Legacy] -[0E0h 0224 8] Address : 0000000000000000 - -[0E8h 0232 12] GPE1 Block : [Generic Address Structure] -[0E8h 0232 1] Space ID : 00 [SystemMemory] -[0E9h 0233 1] Bit Width : 00 -[0EAh 0234 1] Bit Offset : 00 -[0EBh 0235 1] Encoded Access Width : 00 [Undefined/Legacy] -[0ECh 0236 8] Address : 0000000000000000 - - -[0F4h 0244 12] Sleep Control Register : [Generic Address Structure] -[0F4h 0244 1] Space ID : 00 [SystemMemory] -[0F5h 0245 1] Bit Width : 08 -[0F6h 0246 1] Bit Offset : 00 -[0F7h 0247 1] Encoded Access Width : 00 [Undefined/Legacy] -[0F8h 0248 8] Address : 00000000FEA00200 - -[100h 0256 12] Sleep Status Register : [Generic Address Structure] -[100h 0256 1] Space ID : 00 [SystemMemory] -[101h 0257 1] Bit Width : 08 -[102h 0258 1] Bit Offset : 00 -[103h 0259 1] Encoded Access Width : 00 [Undefined/Legacy] -[104h 0260 8] Address : 00000000FEA00201 - -/**** ACPI table terminates in the middle of a data structure! (dump table) */ - -Raw Table Data: Length 268 (0x10C) - - 0000: 46 41 43 50 0C 01 00 00 05 7E 42 4F 43 48 53 20 // FACP.....~BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 04 10 00 00 08 00 00 02 02 A0 FE 00 00 00 00 // ................ - 0080: 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // B............... - 0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 00 00 00 00 00 08 00 00 00 02 A0 FE 00 00 00 00 // ................ - 0100: 00 08 00 00 01 02 A0 FE 00 00 00 00 // ............ diff --git a/tests/data/acpi/pc/APIC.acpihmat.dsl b/tests/data/acpi/pc/APIC.acpihmat.dsl deleted file mode 100644 index 15155cac55..0000000000 --- a/tests/data/acpi/pc/APIC.acpihmat.dsl +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/APIC.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 00000080 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : DA -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : FEE00000 -[028h 0040 4] Flags (decoded below) : 00000001 - PC-AT Compatibility : 1 - -[02Ch 0044 1] Subtable Type : 00 [Processor Local APIC] -[02Dh 0045 1] Length : 08 -[02Eh 0046 1] Processor ID : 00 -[02Fh 0047 1] Local Apic ID : 00 -[030h 0048 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[034h 0052 1] Subtable Type : 00 [Processor Local APIC] -[035h 0053 1] Length : 08 -[036h 0054 1] Processor ID : 01 -[037h 0055 1] Local Apic ID : 01 -[038h 0056 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[03Ch 0060 1] Subtable Type : 01 [I/O APIC] -[03Dh 0061 1] Length : 0C -[03Eh 0062 1] I/O Apic ID : 00 -[03Fh 0063 1] Reserved : 00 -[040h 0064 4] Address : FEC00000 -[044h 0068 4] Interrupt : 00000000 - -[048h 0072 1] Subtable Type : 02 [Interrupt Source Override] -[049h 0073 1] Length : 0A -[04Ah 0074 1] Bus : 00 -[04Bh 0075 1] Source : 00 -[04Ch 0076 4] Interrupt : 00000002 -[050h 0080 2] Flags (decoded below) : 0000 - Polarity : 0 - Trigger Mode : 0 - -[052h 0082 1] Subtable Type : 02 [Interrupt Source Override] -[053h 0083 1] Length : 0A -[054h 0084 1] Bus : 00 -[055h 0085 1] Source : 05 -[056h 0086 4] Interrupt : 00000005 -[05Ah 0090 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[05Ch 0092 1] Subtable Type : 02 [Interrupt Source Override] -[05Dh 0093 1] Length : 0A -[05Eh 0094 1] Bus : 00 -[05Fh 0095 1] Source : 09 -[060h 0096 4] Interrupt : 00000009 -[064h 0100 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[066h 0102 1] Subtable Type : 02 [Interrupt Source Override] -[067h 0103 1] Length : 0A -[068h 0104 1] Bus : 00 -[069h 0105 1] Source : 0A -[06Ah 0106 4] Interrupt : 0000000A -[06Eh 0110 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[070h 0112 1] Subtable Type : 02 [Interrupt Source Override] -[071h 0113 1] Length : 0A -[072h 0114 1] Bus : 00 -[073h 0115 1] Source : 0B -[074h 0116 4] Interrupt : 0000000B -[078h 0120 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[07Ah 0122 1] Subtable Type : 04 [Local APIC NMI] -[07Bh 0123 1] Length : 06 -[07Ch 0124 1] Processor ID : FF -[07Dh 0125 2] Flags (decoded below) : 0000 - Polarity : 0 - Trigger Mode : 0 -[07Fh 0127 1] Interrupt Input LINT : 01 - -Raw Table Data: Length 128 (0x80) - - 0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20 // APIC......BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00 // ................ - 0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00 // ................ - 0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00 // ................ - 0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09 // ................ - 0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00 // ................ - 0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01 // ................ diff --git a/tests/data/acpi/pc/APIC.bridge b/tests/data/acpi/pc/APIC.bridge deleted file mode 100644 index 84509e0ae4cabeb5ead3e42a4edfa50abddbc17d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x02) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x00000001C0000000, // Range Minimum - 0x000000023FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.bridge.dsl b/tests/data/acpi/pc/DSDT.bridge.dsl deleted file mode 100644 index 3311b57ecb..0000000000 --- a/tests/data/acpi/pc/DSDT.bridge.dsl +++ /dev/null @@ -1,1800 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.bridge, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001A89 (6793) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x09 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x000000017FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_ADR, 0x00030000) // _ADR: Address - Name (BSEL, One) - Device (S00) - { - Name (_SUN, Zero) // _SUN: Slot User Number - Name (_ADR, Zero) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S08) - { - Name (_SUN, One) // _SUN: Slot User Number - Name (_ADR, 0x00010000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S10) - { - Name (_SUN, 0x02) // _SUN: Slot User Number - Name (_ADR, 0x00020000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & One)) - { - Notify (S00, Arg1) - } - - If ((Arg0 & 0x02)) - { - Notify (S08, Arg1) - } - - If ((Arg0 & 0x04)) - { - Notify (S10, Arg1) - } - - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = One - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - ^S18.PCNT () - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.cphp.dsl b/tests/data/acpi/pc/DSDT.cphp.dsl deleted file mode 100644 index 22ed37d7dc..0000000000 --- a/tests/data/acpi/pc/DSDT.cphp.dsl +++ /dev/null @@ -1,1466 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.cphp, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001515 (5397) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x39 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (C002, Arg1) - } - - If ((Arg0 == 0x03)) - { - Notify (C003, Arg1) - } - - If ((Arg0 == 0x04)) - { - Notify (C004, Arg1) - } - - If ((Arg0 == 0x05)) - { - Notify (C005, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C002, 0x02, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x02)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x02) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x02, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C003, 0x03, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x03)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x03) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x03, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C004, 0x04, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x04)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x04) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x04, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C005, 0x05, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x05)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x05) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x05, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x000000017FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.dimmpxm.dsl b/tests/data/acpi/pc/DSDT.dimmpxm.dsl deleted file mode 100644 index 798056147b..0000000000 --- a/tests/data/acpi/pc/DSDT.dimmpxm.dsl +++ /dev/null @@ -1,1719 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x000019BB (6587) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x21 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - External (_SB_.NVDR, UnknownObj) - - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (C002, Arg1) - } - - If ((Arg0 == 0x03)) - { - Notify (C003, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C002, 0x02, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x02)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x02) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x02, Arg0, Arg1, Arg2) - } - - Name (_PXM, 0x02) // _PXM: Device Proximity - } - - Processor (C003, 0x03, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x03)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x03) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x03, Arg0, Arg1, Arg2) - } - - Name (_PXM, 0x03) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x03) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP02) - { - Name (_UID, "0x02") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (MP02, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - - Method (_E04, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Notify (\_SB.NVDR, 0x80) // Status Change - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000200000000, // Range Minimum - 0x000000027FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.dsl b/tests/data/acpi/pc/DSDT.dsl deleted file mode 100644 index da2b413efc..0000000000 --- a/tests/data/acpi/pc/DSDT.dsl +++ /dev/null @@ -1,1407 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.roothp, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001488 (5256) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0xF2 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Name (CNEW, Package (0xFF){}) - Local3 = Zero - Local4 = One - While ((Local4 == One)) - { - Local4 = Zero - Local0 = One - Local1 = Zero - While (((Local0 == One) && (Local3 < One))) - { - Local0 = Zero - \_SB.PCI0.PRES.CSEL = Local3 - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CDAT < Local3)) - { - Break - } - - If ((Local1 == 0xFF)) - { - Local4 = One - Break - } - - Local3 = \_SB.PCI0.PRES.CDAT - If ((\_SB.PCI0.PRES.CINS == One)) - { - CNEW [Local1] = Local3 - Local1++ - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (Local3, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - - Local3++ - } - - Local2 = Zero - While ((Local2 < Local1)) - { - Local3 = DerefOf (CNEW [Local2]) - CTFY (Local3, One) - Debug = Local3 - \_SB.PCI0.PRES.CSEL = Local3 - \_SB.PCI0.PRES.CINS = One - Local2++ - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x000000017FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_ADR, 0x00030000) // _ADR: Address - Name (BSEL, Zero) - Device (S00) - { - Name (_SUN, Zero) // _SUN: Slot User Number - Name (_ADR, Zero) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S08) - { - Name (_SUN, One) // _SUN: Slot User Number - Name (_ADR, 0x00010000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S10) - { - Name (_SUN, 0x02) // _SUN: Slot User Number - Name (_ADR, 0x00020000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & One)) - { - Notify (S00, Arg1) - } - - If ((Arg0 & 0x02)) - { - Notify (S08, Arg1) - } - - If ((Arg0 & 0x04)) - { - Notify (S10, Arg1) - } - - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - - Method (PCNT, 0, NotSerialized) - { - ^S18.PCNT () - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.ipmikcs.dsl b/tests/data/acpi/pc/DSDT.ipmikcs.dsl deleted file mode 100644 index 2e4b524ab8..0000000000 --- a/tests/data/acpi/pc/DSDT.ipmikcs.dsl +++ /dev/null @@ -1,1337 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.ipmikcs, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x0000138E (5006) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x54 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (MI1) - { - Name (_HID, EisaId ("IPI0001")) // _HID: Hardware ID - Name (_STR, "ipmi_kcs") // _STR: Description String - Name (_UID, One) // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CA2, // Range Minimum - 0x0CA3, // Range Maximum - 0x01, // Alignment - 0x02, // Length - ) - }) - Name (_IFT, One) // _IFT: IPMI Interface Type - Name (_SRV, 0x0200) // _SRV: IPMI Spec Revision - } - - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x000000017FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.memhp.dsl b/tests/data/acpi/pc/DSDT.memhp.dsl deleted file mode 100644 index 299315051e..0000000000 --- a/tests/data/acpi/pc/DSDT.memhp.dsl +++ /dev/null @@ -1,1625 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.memhp, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001895 (6293) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0xB2 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x03) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP02) - { - Name (_UID, "0x02") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (MP02, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000200000000, // Range Minimum - 0x000000027FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/DSDT.numamem.dsl b/tests/data/acpi/pc/DSDT.numamem.dsl deleted file mode 100644 index 3d08447f1e..0000000000 --- a/tests/data/acpi/pc/DSDT.numamem.dsl +++ /dev/null @@ -1,1321 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/DSDT.numamem, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x0000134C (4940) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x6A - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A03") /* PCI Bus */) // _HID: Hardware ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x00010000) // _ADR: Address - OperationRegion (P40C, PCI_Config, 0x60, 0x04) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (FDC0) - { - Name (_HID, EisaId ("PNP0700")) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F2, // Range Minimum - 0x03F2, // Range Maximum - 0x00, // Alignment - 0x04, // Length - ) - IO (Decode16, - 0x03F7, // Range Minimum - 0x03F7, // Range Maximum - 0x00, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {6} - DMA (Compatibility, NotBusMaster, Transfer8, ) - {2} - }) - Device (FLPA) - { - Name (_ADR, Zero) // _ADR: Address - Name (_FDI, Package (0x10) // _FDI: Floppy Drive Information - { - Zero, - 0x05, - 0x4F, - 0x30, - One, - 0xAF, - 0x02, - 0x25, - 0x02, - 0x12, - 0x1B, - 0xFF, - 0x6C, - 0xF6, - 0x0F, - 0x08 - }) - } - - Name (_FDE, Buffer (0x14) // _FDE: Floppy Disk Enumerate - { - /* 0000 */ 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0008 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // ........ - /* 0010 */ 0x02, 0x00, 0x00, 0x00 // .... - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Scope (_SB.PCI0) - { - OperationRegion (PCST, SystemIO, 0xAE00, 0x08) - Field (PCST, DWordAcc, NoLock, WriteAsZeros) - { - PCIU, 32, - PCID, 32 - } - - OperationRegion (SEJ, SystemIO, 0xAE08, 0x04) - Field (SEJ, DWordAcc, NoLock, WriteAsZeros) - { - B0EJ, 32 - } - - OperationRegion (BNMR, SystemIO, 0xAE10, 0x04) - Field (BNMR, DWordAcc, NoLock, WriteAsZeros) - { - BNUM, 32 - } - - Mutex (BLCK, 0x00) - Method (PCEJ, 2, NotSerialized) - { - Acquire (BLCK, 0xFFFF) - BNUM = Arg0 - B0EJ = (One << Arg1) - Release (BLCK) - Return (Zero) - } - } - - Scope (_SB) - { - Scope (PCI0) - { - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - Local0 = Package (0x80){} - Local1 = Zero - While ((Local1 < 0x80)) - { - Local2 = (Local1 >> 0x02) - Local3 = ((Local1 + Local2) & 0x03) - If ((Local3 == Zero)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKD, - Zero - } - } - - If ((Local3 == One)) - { - If ((Local1 == 0x04)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKS, - Zero - } - } - Else - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKA, - Zero - } - } - } - - If ((Local3 == 0x02)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKB, - Zero - } - } - - If ((Local3 == 0x03)) - { - Local4 = Package (0x04) - { - Zero, - Zero, - LNKC, - Zero - } - } - - Local4 [Zero] = ((Local2 << 0x10) | 0xFFFF) - Local4 [One] = (Local1 & 0x03) - Local0 [Local1] = Local4 - Local1++ - } - - Return (Local0) - } - } - - Field (PCI0.ISA.P40C, ByteAcc, NoLock, Preserve) - { - PRQ0, 8, - PRQ1, 8, - PRQ2, 8, - PRQ3, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - If ((Arg0 < 0x80)) - { - PRRI = Arg0 - } - - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ0)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ0 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ0)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ0 = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ1)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ1 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ1)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ1 = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ2)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ2 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ2)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ2 = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQ3)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQ3 |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQ3)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQ3 = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKS) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000009, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (0x0B) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (_PRS) /* \_SB_.LNKS._PRS */ - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAF00, // Range Minimum - 0xAF00, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0xAF00, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E01, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Acquire (\_SB.PCI0.BLCK, 0xFFFF) - \_SB.PCI0.PCNT () - Release (\_SB.PCI0.BLCK) - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xF6C00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x000000017FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000080000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAFE0, // Range Minimum - 0xAFE0, // Range Maximum - 0x01, // Alignment - 0x04, // Length - ) - }) - } - - Device (PHPR) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "PCI Hotplug resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0xAE00, // Range Minimum - 0xAE00, // Range Maximum - 0x01, // Alignment - 0x14, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Name (BSEL, Zero) - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S18) - { - Name (_SUN, 0x03) // _SUN: Slot User Number - Name (_ADR, 0x00030000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S20) - { - Name (_SUN, 0x04) // _SUN: Slot User Number - Name (_ADR, 0x00040000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S28) - { - Name (_SUN, 0x05) // _SUN: Slot User Number - Name (_ADR, 0x00050000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S30) - { - Name (_SUN, 0x06) // _SUN: Slot User Number - Name (_ADR, 0x00060000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S38) - { - Name (_SUN, 0x07) // _SUN: Slot User Number - Name (_ADR, 0x00070000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S40) - { - Name (_SUN, 0x08) // _SUN: Slot User Number - Name (_ADR, 0x00080000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S48) - { - Name (_SUN, 0x09) // _SUN: Slot User Number - Name (_ADR, 0x00090000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S50) - { - Name (_SUN, 0x0A) // _SUN: Slot User Number - Name (_ADR, 0x000A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S58) - { - Name (_SUN, 0x0B) // _SUN: Slot User Number - Name (_ADR, 0x000B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S60) - { - Name (_SUN, 0x0C) // _SUN: Slot User Number - Name (_ADR, 0x000C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S68) - { - Name (_SUN, 0x0D) // _SUN: Slot User Number - Name (_ADR, 0x000D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S70) - { - Name (_SUN, 0x0E) // _SUN: Slot User Number - Name (_ADR, 0x000E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S78) - { - Name (_SUN, 0x0F) // _SUN: Slot User Number - Name (_ADR, 0x000F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S80) - { - Name (_SUN, 0x10) // _SUN: Slot User Number - Name (_ADR, 0x00100000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S88) - { - Name (_SUN, 0x11) // _SUN: Slot User Number - Name (_ADR, 0x00110000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S90) - { - Name (_SUN, 0x12) // _SUN: Slot User Number - Name (_ADR, 0x00120000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (S98) - { - Name (_SUN, 0x13) // _SUN: Slot User Number - Name (_ADR, 0x00130000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA0) - { - Name (_SUN, 0x14) // _SUN: Slot User Number - Name (_ADR, 0x00140000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SA8) - { - Name (_SUN, 0x15) // _SUN: Slot User Number - Name (_ADR, 0x00150000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB0) - { - Name (_SUN, 0x16) // _SUN: Slot User Number - Name (_ADR, 0x00160000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SB8) - { - Name (_SUN, 0x17) // _SUN: Slot User Number - Name (_ADR, 0x00170000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC0) - { - Name (_SUN, 0x18) // _SUN: Slot User Number - Name (_ADR, 0x00180000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SC8) - { - Name (_SUN, 0x19) // _SUN: Slot User Number - Name (_ADR, 0x00190000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD0) - { - Name (_SUN, 0x1A) // _SUN: Slot User Number - Name (_ADR, 0x001A0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SD8) - { - Name (_SUN, 0x1B) // _SUN: Slot User Number - Name (_ADR, 0x001B0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE0) - { - Name (_SUN, 0x1C) // _SUN: Slot User Number - Name (_ADR, 0x001C0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SE8) - { - Name (_SUN, 0x1D) // _SUN: Slot User Number - Name (_ADR, 0x001D0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF0) - { - Name (_SUN, 0x1E) // _SUN: Slot User Number - Name (_ADR, 0x001E0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Device (SF8) - { - Name (_SUN, 0x1F) // _SUN: Slot User Number - Name (_ADR, 0x001F0000) // _ADR: Address - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - PCEJ (BSEL, _SUN) - } - } - - Method (DVNT, 2, NotSerialized) - { - If ((Arg0 & 0x08)) - { - Notify (S18, Arg1) - } - - If ((Arg0 & 0x10)) - { - Notify (S20, Arg1) - } - - If ((Arg0 & 0x20)) - { - Notify (S28, Arg1) - } - - If ((Arg0 & 0x40)) - { - Notify (S30, Arg1) - } - - If ((Arg0 & 0x80)) - { - Notify (S38, Arg1) - } - - If ((Arg0 & 0x0100)) - { - Notify (S40, Arg1) - } - - If ((Arg0 & 0x0200)) - { - Notify (S48, Arg1) - } - - If ((Arg0 & 0x0400)) - { - Notify (S50, Arg1) - } - - If ((Arg0 & 0x0800)) - { - Notify (S58, Arg1) - } - - If ((Arg0 & 0x1000)) - { - Notify (S60, Arg1) - } - - If ((Arg0 & 0x2000)) - { - Notify (S68, Arg1) - } - - If ((Arg0 & 0x4000)) - { - Notify (S70, Arg1) - } - - If ((Arg0 & 0x8000)) - { - Notify (S78, Arg1) - } - - If ((Arg0 & 0x00010000)) - { - Notify (S80, Arg1) - } - - If ((Arg0 & 0x00020000)) - { - Notify (S88, Arg1) - } - - If ((Arg0 & 0x00040000)) - { - Notify (S90, Arg1) - } - - If ((Arg0 & 0x00080000)) - { - Notify (S98, Arg1) - } - - If ((Arg0 & 0x00100000)) - { - Notify (SA0, Arg1) - } - - If ((Arg0 & 0x00200000)) - { - Notify (SA8, Arg1) - } - - If ((Arg0 & 0x00400000)) - { - Notify (SB0, Arg1) - } - - If ((Arg0 & 0x00800000)) - { - Notify (SB8, Arg1) - } - - If ((Arg0 & 0x01000000)) - { - Notify (SC0, Arg1) - } - - If ((Arg0 & 0x02000000)) - { - Notify (SC8, Arg1) - } - - If ((Arg0 & 0x04000000)) - { - Notify (SD0, Arg1) - } - - If ((Arg0 & 0x08000000)) - { - Notify (SD8, Arg1) - } - - If ((Arg0 & 0x10000000)) - { - Notify (SE0, Arg1) - } - - If ((Arg0 & 0x20000000)) - { - Notify (SE8, Arg1) - } - - If ((Arg0 & 0x40000000)) - { - Notify (SF0, Arg1) - } - - If ((Arg0 & 0x80000000)) - { - Notify (SF8, Arg1) - } - } - - Method (PCNT, 0, NotSerialized) - { - BNUM = Zero - DVNT (PCIU, One) - DVNT (PCID, 0x03) - } - } - } -} - diff --git a/tests/data/acpi/pc/FACP.acpihmat b/tests/data/acpi/pc/FACP.acpihmat deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.acpihmat.dsl b/tests/data/acpi/pc/FACP.acpihmat.dsl deleted file mode 100644 index 226fd58ec9..0000000000 --- a/tests/data/acpi/pc/FACP.acpihmat.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.bridge b/tests/data/acpi/pc/FACP.bridge deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.bridge.dsl b/tests/data/acpi/pc/FACP.bridge.dsl deleted file mode 100644 index 11b371812d..0000000000 --- a/tests/data/acpi/pc/FACP.bridge.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.cphp b/tests/data/acpi/pc/FACP.cphp deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.cphp.dsl b/tests/data/acpi/pc/FACP.cphp.dsl deleted file mode 100644 index affffe9b64..0000000000 --- a/tests/data/acpi/pc/FACP.cphp.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.dimmpxm b/tests/data/acpi/pc/FACP.dimmpxm deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.dimmpxm.dsl b/tests/data/acpi/pc/FACP.dimmpxm.dsl deleted file mode 100644 index fd5a5ef375..0000000000 --- a/tests/data/acpi/pc/FACP.dimmpxm.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.dsl b/tests/data/acpi/pc/FACP.dsl deleted file mode 100644 index c5e3718772..0000000000 --- a/tests/data/acpi/pc/FACP.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.roothp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.hpbridge b/tests/data/acpi/pc/FACP.hpbridge deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.ipmikcs b/tests/data/acpi/pc/FACP.ipmikcs deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.ipmikcs.dsl b/tests/data/acpi/pc/FACP.ipmikcs.dsl deleted file mode 100644 index 3f1dd018da..0000000000 --- a/tests/data/acpi/pc/FACP.ipmikcs.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.ipmikcs, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.memhp b/tests/data/acpi/pc/FACP.memhp deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.memhp.dsl b/tests/data/acpi/pc/FACP.memhp.dsl deleted file mode 100644 index b2c466e989..0000000000 --- a/tests/data/acpi/pc/FACP.memhp.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.numamem b/tests/data/acpi/pc/FACP.numamem deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACP.numamem.dsl b/tests/data/acpi/pc/FACP.numamem.dsl deleted file mode 100644 index 34ed95d536..0000000000 --- a/tests/data/acpi/pc/FACP.numamem.dsl +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACP.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 00000074 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 01 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0009 -[030h 0048 4] SMI Command Port : 000000B2 -[034h 0052 1] ACPI Enable Value : F1 -[035h 0053 1] ACPI Disable Value : F0 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000600 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000604 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000608 -[050h 0080 4] GPE0 Block Address : 0000AFE0 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 04 -[059h 0089 1] PM1 Control Block Length : 02 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 04 -[05Ch 0092 1] GPE0 Block Length : 04 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0FFF -[062h 0098 2] C3 Latency : 0FFF -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 32 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 000080A5 - WBINVD instruction is operational (V1) : 1 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 1 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 1 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 1 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 1 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 0 - Low Power S0 Idle (V5) : 0 - -Raw Table Data: Length 116 (0x74) - - 0000: 46 41 43 50 74 00 00 00 01 A1 42 4F 43 48 53 20 // FACPt.....BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 01 00 09 00 // ................ - 0030: B2 00 00 00 F1 F0 00 00 00 06 00 00 00 00 00 00 // ................ - 0040: 04 06 00 00 00 00 00 00 00 00 00 00 08 06 00 00 // ................ - 0050: E0 AF 00 00 00 00 00 00 04 02 00 04 04 00 00 00 // ................ - 0060: FF 0F FF 0F 00 00 00 00 00 00 00 00 32 00 00 00 // ............2... - 0070: A5 80 00 00 // .... diff --git a/tests/data/acpi/pc/FACP.roothp b/tests/data/acpi/pc/FACP.roothp deleted file mode 100644 index 261ebdc5d1c3bdf18fb7935314a04fd7f6f92a7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmZ>BbPgzCU|?We=;ZJ05v<@85#a0w6k`O6f!H7#1{fJQ88!hqA3p#IHi#$-lm_uQ ffb0kBq2f#oEG$6gfBygc5D^9jBOqgG0|Ns9?p_Z8 diff --git a/tests/data/acpi/pc/FACS.acpihmat b/tests/data/acpi/pc/FACS.acpihmat deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.acpihmat.dsl b/tests/data/acpi/pc/FACS.acpihmat.dsl deleted file mode 100644 index bff165ba4e..0000000000 --- a/tests/data/acpi/pc/FACS.acpihmat.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.bridge b/tests/data/acpi/pc/FACS.bridge deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.bridge.dsl b/tests/data/acpi/pc/FACS.bridge.dsl deleted file mode 100644 index 981354f0f3..0000000000 --- a/tests/data/acpi/pc/FACS.bridge.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.cphp b/tests/data/acpi/pc/FACS.cphp deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.cphp.dsl b/tests/data/acpi/pc/FACS.cphp.dsl deleted file mode 100644 index bb44e525b9..0000000000 --- a/tests/data/acpi/pc/FACS.cphp.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.dimmpxm b/tests/data/acpi/pc/FACS.dimmpxm deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.dimmpxm.dsl b/tests/data/acpi/pc/FACS.dimmpxm.dsl deleted file mode 100644 index e7586d3236..0000000000 --- a/tests/data/acpi/pc/FACS.dimmpxm.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.dsl b/tests/data/acpi/pc/FACS.dsl deleted file mode 100644 index 11d622cdf7..0000000000 --- a/tests/data/acpi/pc/FACS.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.roothp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.hpbridge b/tests/data/acpi/pc/FACS.hpbridge deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.ipmikcs b/tests/data/acpi/pc/FACS.ipmikcs deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.ipmikcs.dsl b/tests/data/acpi/pc/FACS.ipmikcs.dsl deleted file mode 100644 index f4b7c9718c..0000000000 --- a/tests/data/acpi/pc/FACS.ipmikcs.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.ipmikcs, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.memhp b/tests/data/acpi/pc/FACS.memhp deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.memhp.dsl b/tests/data/acpi/pc/FACS.memhp.dsl deleted file mode 100644 index da2e230a62..0000000000 --- a/tests/data/acpi/pc/FACS.memhp.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.numamem b/tests/data/acpi/pc/FACS.numamem deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/FACS.numamem.dsl b/tests/data/acpi/pc/FACS.numamem.dsl deleted file mode 100644 index c856f8b230..0000000000 --- a/tests/data/acpi/pc/FACS.numamem.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/FACS.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/FACS.roothp b/tests/data/acpi/pc/FACS.roothp deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/pc/HMAT.acpihmat.dsl b/tests/data/acpi/pc/HMAT.acpihmat.dsl deleted file mode 100644 index b55564d383..0000000000 --- a/tests/data/acpi/pc/HMAT.acpihmat.dsl +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HMAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HMAT" [Heterogeneous Memory Attributes Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 98 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHMAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[02Ah 0042 2] Reserved : 0000 -[02Ch 0044 4] Length : 00000028 -[030h 0048 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[032h 0050 2] Reserved1 : 0000 -[034h 0052 4] Processor Proximity Domain : 00000000 -[038h 0056 4] Memory Proximity Domain : 00000000 -[03Ch 0060 4] Reserved2 : 00000000 -[040h 0064 8] Reserved3 : 0000000000000000 -[048h 0072 8] Reserved4 : 0000000000000000 - -[050h 0080 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[052h 0082 2] Reserved : 0000 -[054h 0084 4] Length : 00000028 -[058h 0088 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[05Ah 0090 2] Reserved1 : 0000 -[05Ch 0092 4] Processor Proximity Domain : 00000000 -[060h 0096 4] Memory Proximity Domain : 00000001 -[064h 0100 4] Reserved2 : 00000000 -[068h 0104 8] Reserved3 : 0000000000000000 -[070h 0112 8] Reserved4 : 0000000000000000 - -[078h 0120 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[07Ah 0122 2] Reserved : 0000 -[07Ch 0124 4] Length : 00000030 -[080h 0128 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[081h 0129 1] Data Type : 00 -[082h 0130 2] Reserved1 : 0000 -[084h 0132 4] Initiator Proximity Domains # : 00000001 -[088h 0136 4] Target Proximity Domains # : 00000002 -[08Ch 0140 4] Reserved2 : 00000000 -[090h 0144 8] Entry Base Unit : 00000000000003E8 -[098h 0152 4] Initiator Proximity Domain List : 00000000 -[09Ch 0156 4] Target Proximity Domain List : 00000000 -[0A0h 0160 4] Target Proximity Domain List : 00000001 -[0A4h 0164 2] Entry : 0001 -[0A6h 0166 2] Entry : FFFE - -[0A8h 0168 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[0AAh 0170 2] Reserved : 0000 -[0ACh 0172 4] Length : 00000030 -[0B0h 0176 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[0B1h 0177 1] Data Type : 03 -[0B2h 0178 2] Reserved1 : 0000 -[0B4h 0180 4] Initiator Proximity Domains # : 00000001 -[0B8h 0184 4] Target Proximity Domains # : 00000002 -[0BCh 0188 4] Reserved2 : 00000000 -[0C0h 0192 8] Entry Base Unit : 0000000000000001 -[0C8h 0200 4] Initiator Proximity Domain List : 00000000 -[0CCh 0204 4] Target Proximity Domain List : 00000000 -[0D0h 0208 4] Target Proximity Domain List : 00000001 -[0D4h 0212 2] Entry : FFFE -[0D6h 0214 2] Entry : 7FFF - -[0D8h 0216 2] Structure Type : 0002 [Memory Side Cache Information] -[0DAh 0218 2] Reserved : 0000 -[0DCh 0220 4] Length : 00000020 -[0E0h 0224 4] Memory Proximity Domain : 00000000 -[0E4h 0228 4] Reserved1 : 00000000 -[0E8h 0232 8] Memory Side Cache Size : 0000000000002800 -[0F0h 0240 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[0F4h 0244 2] Reserved2 : 0000 -[0F6h 0246 2] SMBIOS Handle # : 0000 - -[0F8h 0248 2] Structure Type : 0002 [Memory Side Cache Information] -[0FAh 0250 2] Reserved : 0000 -[0FCh 0252 4] Length : 00000020 -[100h 0256 4] Memory Proximity Domain : 00000001 -[104h 0260 4] Reserved1 : 00000000 -[108h 0264 8] Memory Side Cache Size : 0000000000002800 -[110h 0272 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[114h 0276 2] Reserved2 : 0000 -[116h 0278 2] SMBIOS Handle # : 0000 - -Raw Table Data: Length 280 (0x118) - - 0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20 // HMAT......BOCHS - 0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43 // BXPCHMAT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 // ............(... - 0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 // ....(........... - 0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00 // ............0... - 0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00 // ............0... - 00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00 // ............ ... - 00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00 // ............ ... - 0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 0110: 11 11 08 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HMAT.dsl b/tests/data/acpi/pc/HMAT.dsl deleted file mode 100644 index 8031f62433..0000000000 --- a/tests/data/acpi/pc/HMAT.dsl +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HMAT.acpihmat, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [HMAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HMAT" [Heterogeneous Memory Attributes Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 98 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHMAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[02Ah 0042 2] Reserved : 0000 -[02Ch 0044 4] Length : 00000028 -[030h 0048 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[032h 0050 2] Reserved1 : 0000 -[034h 0052 4] Processor Proximity Domain : 00000000 -[038h 0056 4] Memory Proximity Domain : 00000000 -[03Ch 0060 4] Reserved2 : 00000000 -[040h 0064 8] Reserved3 : 0000000000000000 -[048h 0072 8] Reserved4 : 0000000000000000 - -[050h 0080 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[052h 0082 2] Reserved : 0000 -[054h 0084 4] Length : 00000028 -[058h 0088 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[05Ah 0090 2] Reserved1 : 0000 -[05Ch 0092 4] Processor Proximity Domain : 00000000 -[060h 0096 4] Memory Proximity Domain : 00000001 -[064h 0100 4] Reserved2 : 00000000 -[068h 0104 8] Reserved3 : 0000000000000000 -[070h 0112 8] Reserved4 : 0000000000000000 - -[078h 0120 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[07Ah 0122 2] Reserved : 0000 -[07Ch 0124 4] Length : 00000030 -[080h 0128 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[081h 0129 1] Data Type : 00 -[082h 0130 2] Reserved1 : 0000 -[084h 0132 4] Initiator Proximity Domains # : 00000001 -[088h 0136 4] Target Proximity Domains # : 00000002 -[08Ch 0140 4] Reserved2 : 00000000 -[090h 0144 8] Entry Base Unit : 00000000000003E8 -[098h 0152 4] Initiator Proximity Domain List : 00000000 -[09Ch 0156 4] Target Proximity Domain List : 00000000 -[0A0h 0160 4] Target Proximity Domain List : 00000001 -[0A4h 0164 2] Entry : 0001 -[0A6h 0166 2] Entry : FFFE - -[0A8h 0168 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[0AAh 0170 2] Reserved : 0000 -[0ACh 0172 4] Length : 00000030 -[0B0h 0176 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[0B1h 0177 1] Data Type : 03 -[0B2h 0178 2] Reserved1 : 0000 -[0B4h 0180 4] Initiator Proximity Domains # : 00000001 -[0B8h 0184 4] Target Proximity Domains # : 00000002 -[0BCh 0188 4] Reserved2 : 00000000 -[0C0h 0192 8] Entry Base Unit : 0000000000000001 -[0C8h 0200 4] Initiator Proximity Domain List : 00000000 -[0CCh 0204 4] Target Proximity Domain List : 00000000 -[0D0h 0208 4] Target Proximity Domain List : 00000001 -[0D4h 0212 2] Entry : FFFE -[0D6h 0214 2] Entry : 7FFF - -[0D8h 0216 2] Structure Type : 0002 [Memory Side Cache Information] -[0DAh 0218 2] Reserved : 0000 -[0DCh 0220 4] Length : 00000020 -[0E0h 0224 4] Memory Proximity Domain : 00000000 -[0E4h 0228 4] Reserved1 : 00000000 -[0E8h 0232 8] Memory Side Cache Size : 0000000000002800 -[0F0h 0240 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[0F4h 0244 2] Reserved2 : 0000 -[0F6h 0246 2] SMBIOS Handle # : 0000 - -[0F8h 0248 2] Structure Type : 0002 [Memory Side Cache Information] -[0FAh 0250 2] Reserved : 0000 -[0FCh 0252 4] Length : 00000020 -[100h 0256 4] Memory Proximity Domain : 00000001 -[104h 0260 4] Reserved1 : 00000000 -[108h 0264 8] Memory Side Cache Size : 0000000000002800 -[110h 0272 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[114h 0276 2] Reserved2 : 0000 -[116h 0278 2] SMBIOS Handle # : 0000 - -Raw Table Data: Length 280 (0x118) - - 0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20 // HMAT......BOCHS - 0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43 // BXPCHMAT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 // ............(... - 0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 // ....(........... - 0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00 // ............0... - 0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00 // ............0... - 00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00 // ............ ... - 00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00 // ............ ... - 0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 0110: 11 11 08 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.acpihmat b/tests/data/acpi/pc/HPET.acpihmat deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.acpihmat.dsl b/tests/data/acpi/pc/HPET.acpihmat.dsl deleted file mode 100644 index 9029afb2a2..0000000000 --- a/tests/data/acpi/pc/HPET.acpihmat.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.bridge b/tests/data/acpi/pc/HPET.bridge deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.bridge.dsl b/tests/data/acpi/pc/HPET.bridge.dsl deleted file mode 100644 index 936616faa8..0000000000 --- a/tests/data/acpi/pc/HPET.bridge.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.cphp b/tests/data/acpi/pc/HPET.cphp deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.cphp.dsl b/tests/data/acpi/pc/HPET.cphp.dsl deleted file mode 100644 index e095a43ee7..0000000000 --- a/tests/data/acpi/pc/HPET.cphp.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.dimmpxm b/tests/data/acpi/pc/HPET.dimmpxm deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.dimmpxm.dsl b/tests/data/acpi/pc/HPET.dimmpxm.dsl deleted file mode 100644 index 84ce218492..0000000000 --- a/tests/data/acpi/pc/HPET.dimmpxm.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.dsl b/tests/data/acpi/pc/HPET.dsl deleted file mode 100644 index b392de5c95..0000000000 --- a/tests/data/acpi/pc/HPET.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.roothp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.hpbridge b/tests/data/acpi/pc/HPET.hpbridge deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.ipmikcs b/tests/data/acpi/pc/HPET.ipmikcs deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.ipmikcs.dsl b/tests/data/acpi/pc/HPET.ipmikcs.dsl deleted file mode 100644 index 34d10927dc..0000000000 --- a/tests/data/acpi/pc/HPET.ipmikcs.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.ipmikcs, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.memhp b/tests/data/acpi/pc/HPET.memhp deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.memhp.dsl b/tests/data/acpi/pc/HPET.memhp.dsl deleted file mode 100644 index f9f62dd9c8..0000000000 --- a/tests/data/acpi/pc/HPET.memhp.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.numamem b/tests/data/acpi/pc/HPET.numamem deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/HPET.numamem.dsl b/tests/data/acpi/pc/HPET.numamem.dsl deleted file mode 100644 index 1f51efad19..0000000000 --- a/tests/data/acpi/pc/HPET.numamem.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/HPET.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/HPET.roothp b/tests/data/acpi/pc/HPET.roothp deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/pc/NFIT.dimmpxm.dsl b/tests/data/acpi/pc/NFIT.dimmpxm.dsl deleted file mode 100644 index 33212b0a17..0000000000 --- a/tests/data/acpi/pc/NFIT.dimmpxm.dsl +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000F0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 24 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000002 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000108000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -[0E0h 0224 2] Subtable Type : 0007 [Platform Capabilities] -[0E2h 0226 2] Length : 0010 - -[0E4h 0228 1] Highest Capability : 01 -[0E5h 0229 3] Reserved : 000000 -[0E8h 0232 4] Capabilities (decoded below) : 00000003 - Cache Flush to NVDIMM : 1 - Memory Flush to NVDIMM : 1 - Memory Mirroring : 0 -[0ECh 0236 4] Reserved : 00000000 - -Raw Table Data: Length 240 (0xF0) - - 0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20 // NFIT.....$BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/NFIT.dsl b/tests/data/acpi/pc/NFIT.dsl deleted file mode 100644 index f4a8034f87..0000000000 --- a/tests/data/acpi/pc/NFIT.dsl +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000F0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 24 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000002 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000108000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -[0E0h 0224 2] Subtable Type : 0007 [Platform Capabilities] -[0E2h 0226 2] Length : 0010 - -[0E4h 0228 1] Highest Capability : 01 -[0E5h 0229 3] Reserved : 000000 -[0E8h 0232 4] Capabilities (decoded below) : 00000003 - Cache Flush to NVDIMM : 1 - Memory Flush to NVDIMM : 1 - Memory Mirroring : 0 -[0ECh 0236 4] Reserved : 00000000 - -Raw Table Data: Length 240 (0xF0) - - 0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20 // NFIT.....$BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/SLIT.cphp.dsl b/tests/data/acpi/pc/SLIT.cphp.dsl deleted file mode 100644 index 20289608db..0000000000 --- a/tests/data/acpi/pc/SLIT.cphp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SLIT.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/pc/SLIT.dsl b/tests/data/acpi/pc/SLIT.dsl deleted file mode 100644 index 8b923249af..0000000000 --- a/tests/data/acpi/pc/SLIT.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SLIT.memhp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/pc/SLIT.memhp.dsl b/tests/data/acpi/pc/SLIT.memhp.dsl deleted file mode 100644 index b3a0170144..0000000000 --- a/tests/data/acpi/pc/SLIT.memhp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SLIT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/pc/SRAT.acpihmat.dsl b/tests/data/acpi/pc/SRAT.acpihmat.dsl deleted file mode 100644 index e3c788672f..0000000000 --- a/tests/data/acpi/pc/SRAT.acpihmat.dsl +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : C0 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 00 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 01 [Memory Affinity] -[051h 0081 1] Length : 28 - -[052h 0082 4] Proximity Domain : 00000000 -[056h 0086 2] Reserved1 : 0000 -[058h 0088 8] Base Address : 0000000000000000 -[060h 0096 8] Address Length : 00000000000A0000 -[068h 0104 4] Reserved2 : 00000000 -[06Ch 0108 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[070h 0112 8] Reserved3 : 0000000000000000 - -[078h 0120 1] Subtable Type : 01 [Memory Affinity] -[079h 0121 1] Length : 28 - -[07Ah 0122 4] Proximity Domain : 00000000 -[07Eh 0126 2] Reserved1 : 0000 -[080h 0128 8] Base Address : 0000000000100000 -[088h 0136 8] Address Length : 0000000003F00000 -[090h 0144 4] Reserved2 : 00000000 -[094h 0148 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[098h 0152 8] Reserved3 : 0000000000000000 - -[0A0h 0160 1] Subtable Type : 01 [Memory Affinity] -[0A1h 0161 1] Length : 28 - -[0A2h 0162 4] Proximity Domain : 00000001 -[0A6h 0166 2] Reserved1 : 0000 -[0A8h 0168 8] Base Address : 0000000004000000 -[0B0h 0176 8] Address Length : 0000000004000000 -[0B8h 0184 4] Reserved2 : 00000000 -[0BCh 0188 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0C0h 0192 8] Reserved3 : 0000000000000000 - -[0C8h 0200 1] Subtable Type : 01 [Memory Affinity] -[0C9h 0201 1] Length : 28 - -[0CAh 0202 4] Proximity Domain : 00000000 -[0CEh 0206 2] Reserved1 : 0000 -[0D0h 0208 8] Base Address : 0000000000000000 -[0D8h 0216 8] Address Length : 0000000000000000 -[0E0h 0224 4] Reserved2 : 00000000 -[0E4h 0228 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0E8h 0232 8] Reserved3 : 0000000000000000 - -[0F0h 0240 1] Subtable Type : 01 [Memory Affinity] -[0F1h 0241 1] Length : 28 - -[0F2h 0242 4] Proximity Domain : 00000001 -[0F6h 0246 2] Reserved1 : 0000 -[0F8h 0248 8] Base Address : 0000000100000000 -[100h 0256 8] Address Length : 00000000B8000000 -[108h 0264 4] Reserved2 : 00000000 -[10Ch 0268 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[110h 0272 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 280 (0x118) - - 0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0110: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/SRAT.cphp.dsl b/tests/data/acpi/pc/SRAT.cphp.dsl deleted file mode 100644 index 20c38ee3cc..0000000000 --- a/tests/data/acpi/pc/SRAT.cphp.dsl +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000130 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 36 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 00 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[051h 0081 1] Length : 10 - -[052h 0082 1] Proximity Domain Low(8) : 00 -[053h 0083 1] Apic ID : 02 -[054h 0084 4] Flags (decoded below) : 00000001 - Enabled : 1 -[058h 0088 1] Local Sapic EID : 00 -[059h 0089 3] Proximity Domain High(24) : 000000 -[05Ch 0092 4] Clock Domain : 00000000 - -[060h 0096 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[061h 0097 1] Length : 10 - -[062h 0098 1] Proximity Domain Low(8) : 01 -[063h 0099 1] Apic ID : 04 -[064h 0100 4] Flags (decoded below) : 00000001 - Enabled : 1 -[068h 0104 1] Local Sapic EID : 00 -[069h 0105 3] Proximity Domain High(24) : 000000 -[06Ch 0108 4] Clock Domain : 00000000 - -[070h 0112 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[071h 0113 1] Length : 10 - -[072h 0114 1] Proximity Domain Low(8) : 01 -[073h 0115 1] Apic ID : 05 -[074h 0116 4] Flags (decoded below) : 00000001 - Enabled : 1 -[078h 0120 1] Local Sapic EID : 00 -[079h 0121 3] Proximity Domain High(24) : 000000 -[07Ch 0124 4] Clock Domain : 00000000 - -[080h 0128 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[081h 0129 1] Length : 10 - -[082h 0130 1] Proximity Domain Low(8) : 01 -[083h 0131 1] Apic ID : 06 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 -[088h 0136 1] Local Sapic EID : 00 -[089h 0137 3] Proximity Domain High(24) : 000000 -[08Ch 0140 4] Clock Domain : 00000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 00000000000A0000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000100000 -[0C8h 0200 8] Address Length : 0000000003F00000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -[0E0h 0224 1] Subtable Type : 01 [Memory Affinity] -[0E1h 0225 1] Length : 28 - -[0E2h 0226 4] Proximity Domain : 00000001 -[0E6h 0230 2] Reserved1 : 0000 -[0E8h 0232 8] Base Address : 0000000004000000 -[0F0h 0240 8] Address Length : 0000000004000000 -[0F8h 0248 4] Reserved2 : 00000000 -[0FCh 0252 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[100h 0256 8] Reserved3 : 0000000000000000 - -[108h 0264 1] Subtable Type : 01 [Memory Affinity] -[109h 0265 1] Length : 28 - -[10Ah 0266 4] Proximity Domain : 00000000 -[10Eh 0270 2] Reserved1 : 0000 -[110h 0272 8] Base Address : 0000000000000000 -[118h 0280 8] Address Length : 0000000000000000 -[120h 0288 4] Reserved2 : 00000000 -[124h 0292 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[128h 0296 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 304 (0x130) - - 0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20 // SRAT0....6BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/SRAT.dimmpxm.dsl b/tests/data/acpi/pc/SRAT.dimmpxm.dsl deleted file mode 100644 index 888fef1b5c..0000000000 --- a/tests/data/acpi/pc/SRAT.dimmpxm.dsl +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000188 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 68 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 01 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[051h 0081 1] Length : 10 - -[052h 0082 1] Proximity Domain Low(8) : 02 -[053h 0083 1] Apic ID : 02 -[054h 0084 4] Flags (decoded below) : 00000001 - Enabled : 1 -[058h 0088 1] Local Sapic EID : 00 -[059h 0089 3] Proximity Domain High(24) : 000000 -[05Ch 0092 4] Clock Domain : 00000000 - -[060h 0096 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[061h 0097 1] Length : 10 - -[062h 0098 1] Proximity Domain Low(8) : 03 -[063h 0099 1] Apic ID : 03 -[064h 0100 4] Flags (decoded below) : 00000001 - Enabled : 1 -[068h 0104 1] Local Sapic EID : 00 -[069h 0105 3] Proximity Domain High(24) : 000000 -[06Ch 0108 4] Clock Domain : 00000000 - -[070h 0112 1] Subtable Type : 01 [Memory Affinity] -[071h 0113 1] Length : 28 - -[072h 0114 4] Proximity Domain : 00000000 -[076h 0118 2] Reserved1 : 0000 -[078h 0120 8] Base Address : 0000000000000000 -[080h 0128 8] Address Length : 00000000000A0000 -[088h 0136 4] Reserved2 : 00000000 -[08Ch 0140 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[090h 0144 8] Reserved3 : 0000000000000000 - -[098h 0152 1] Subtable Type : 01 [Memory Affinity] -[099h 0153 1] Length : 28 - -[09Ah 0154 4] Proximity Domain : 00000000 -[09Eh 0158 2] Reserved1 : 0000 -[0A0h 0160 8] Base Address : 0000000000100000 -[0A8h 0168 8] Address Length : 0000000001F00000 -[0B0h 0176 4] Reserved2 : 00000000 -[0B4h 0180 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B8h 0184 8] Reserved3 : 0000000000000000 - -[0C0h 0192 1] Subtable Type : 01 [Memory Affinity] -[0C1h 0193 1] Length : 28 - -[0C2h 0194 4] Proximity Domain : 00000001 -[0C6h 0198 2] Reserved1 : 0000 -[0C8h 0200 8] Base Address : 0000000002000000 -[0D0h 0208 8] Address Length : 0000000002000000 -[0D8h 0216 4] Reserved2 : 00000000 -[0DCh 0220 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0E0h 0224 8] Reserved3 : 0000000000000000 - -[0E8h 0232 1] Subtable Type : 01 [Memory Affinity] -[0E9h 0233 1] Length : 28 - -[0EAh 0234 4] Proximity Domain : 00000002 -[0EEh 0238 2] Reserved1 : 0000 -[0F0h 0240 8] Base Address : 0000000004000000 -[0F8h 0248 8] Address Length : 0000000002000000 -[100h 0256 4] Reserved2 : 00000000 -[104h 0260 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[108h 0264 8] Reserved3 : 0000000000000000 - -[110h 0272 1] Subtable Type : 01 [Memory Affinity] -[111h 0273 1] Length : 28 - -[112h 0274 4] Proximity Domain : 00000003 -[116h 0278 2] Reserved1 : 0000 -[118h 0280 8] Base Address : 0000000006000000 -[120h 0288 8] Address Length : 0000000002000000 -[128h 0296 4] Reserved2 : 00000000 -[12Ch 0300 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[130h 0304 8] Reserved3 : 0000000000000000 - -[138h 0312 1] Subtable Type : 01 [Memory Affinity] -[139h 0313 1] Length : 28 - -[13Ah 0314 4] Proximity Domain : 00000002 -[13Eh 0318 2] Reserved1 : 0000 -[140h 0320 8] Base Address : 0000000108000000 -[148h 0328 8] Address Length : 0000000008000000 -[150h 0336 4] Reserved2 : 00000000 -[154h 0340 4] Flags (decoded below) : 00000005 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 1 -[158h 0344 8] Reserved3 : 0000000000000000 - -[160h 0352 1] Subtable Type : 01 [Memory Affinity] -[161h 0353 1] Length : 28 - -[162h 0354 4] Proximity Domain : 00000003 -[166h 0358 2] Reserved1 : 0000 -[168h 0360 8] Base Address : 0000000100000000 -[170h 0368 8] Address Length : 00000000F8000000 -[178h 0376 4] Reserved2 : 00000000 -[17Ch 0380 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[180h 0384 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 392 (0x188) - - 0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20 // SRAT.....hBOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00 // ................ - 00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00 // .(.............. - 00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00 // .........(...... - 00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00 // ................ - 0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00 // .(.............. - 0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00 // .........(...... - 0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00 // ................ - 0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0180: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/SRAT.dsl b/tests/data/acpi/pc/SRAT.dsl deleted file mode 100644 index 77bbfebc81..0000000000 --- a/tests/data/acpi/pc/SRAT.dsl +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : F5 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000001 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000001 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000007F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 0000000000000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/SRAT.memhp.dsl b/tests/data/acpi/pc/SRAT.memhp.dsl deleted file mode 100644 index 803f9c8f1a..0000000000 --- a/tests/data/acpi/pc/SRAT.memhp.dsl +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000108 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A2 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000000 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000000 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000003F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000001 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000004000000 -[0A0h 0160 8] Address Length : 0000000004000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -[0E0h 0224 1] Subtable Type : 01 [Memory Affinity] -[0E1h 0225 1] Length : 28 - -[0E2h 0226 4] Proximity Domain : 00000001 -[0E6h 0230 2] Reserved1 : 0000 -[0E8h 0232 8] Base Address : 0000000100000000 -[0F0h 0240 8] Address Length : 00000000F8000000 -[0F8h 0248 4] Reserved2 : 00000000 -[0FCh 0252 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[100h 0256 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 264 (0x108) - - 0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/pc/SRAT.numamem.dsl b/tests/data/acpi/pc/SRAT.numamem.dsl deleted file mode 100644 index 74f4382dd1..0000000000 --- a/tests/data/acpi/pc/SRAT.numamem.dsl +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/SRAT.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : F5 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000001 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000001 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000007F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 0000000000000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/pc/SSDT.dsl b/tests/data/acpi/pc/SSDT.dsl deleted file mode 100644 index abd64f6133..0000000000 --- a/tests/data/acpi/pc/SSDT.dsl +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/pc/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "SSDT" - * Length 0x000002DE (734) - * Revision 0x01 - * Checksum 0x56 - * OEM ID "BOCHS " - * OEM Table ID "NVDIMM" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001) -{ - Scope (\_SB) - { - Device (NVDR) - { - Name (_HID, "ACPI0012" /* NVDIMM Root Device */) // _HID: Hardware ID - Method (NCAL, 5, Serialized) - { - Local6 = MEMA /* \MEMA */ - OperationRegion (NPIO, SystemIO, 0x0A18, 0x04) - OperationRegion (NRAM, SystemMemory, Local6, 0x1000) - Field (NPIO, DWordAcc, NoLock, Preserve) - { - NTFI, 32 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - HDLE, 32, - REVS, 32, - FUNC, 32, - FARG, 32672 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - RLEN, 32, - ODAT, 32736 - } - - If ((Arg4 == Zero)) - { - Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba") - } - ElseIf ((Arg4 == 0x00010000)) - { - Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62") - } - Else - { - Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66") - } - - If (((Local6 == Zero) | (Arg0 != Local0))) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x00 // . - }) - } - - Return (Buffer (One) - { - 0x01 // . - }) - } - - HDLE = Arg4 - REVS = Arg1 - FUNC = Arg2 - If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One))) - { - Local2 = Arg3 [Zero] - Local3 = DerefOf (Local2) - FARG = Local3 - } - - NTFI = Local6 - Local1 = (RLEN - 0x04) - If ((Local1 < 0x08)) - { - Local2 = Zero - Name (TBUF, Buffer (One) - { - 0x00 // . - }) - Local7 = Buffer (Zero){} - While ((Local2 < Local1)) - { - TBUF [Zero] = DerefOf (ODAT [Local2]) - Concatenate (Local7, TBUF, Local7) - Local2++ - } - - Return (Local7) - } - - Local1 = (Local1 << 0x03) - CreateField (ODAT, Zero, Local1, OBUF) - Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */ - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero)) - } - - Name (RSTA, Zero) - Method (RFIT, 1, Serialized) - { - Name (OFST, Zero) - OFST = Arg0 - Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01) - { - OFST - }, 0x00010000) - CreateDWordField (Local0, Zero, STAU) - RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */ - If ((Zero != STAU)) - { - Return (Buffer (Zero){}) - } - - Local1 = SizeOf (Local0) - Local1 -= 0x04 - If ((Local1 == Zero)) - { - Return (Buffer (Zero){}) - } - - CreateField (Local0, 0x20, (Local1 << 0x03), BUFF) - Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */ - } - - Method (_FIT, 0, Serialized) // _FIT: Firmware Interface Table - { - Local2 = Buffer (Zero){} - Local3 = Zero - While (One) - { - Local0 = RFIT (Local3) - Local1 = SizeOf (Local0) - If ((RSTA == 0x0100)) - { - Local2 = Buffer (Zero){} - Local3 = Zero - } - Else - { - If ((Local1 == Zero)) - { - Return (Local2) - } - - Local3 += Local1 - Concatenate (Local2, Local0, Local2) - } - } - } - - Device (NV00) - { - Name (_ADR, One) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, One)) - } - } - - Device (NV01) - { - Name (_ADR, 0x02) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02)) - } - } - - Device (NV02) - { - Name (_ADR, 0x03) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03)) - } - } - } - } - - Name (MEMA, 0x07FFE000) -} - diff --git a/tests/data/acpi/pc/WAET.acpihmat b/tests/data/acpi/pc/WAET.acpihmat deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.acpihmat.dsl b/tests/data/acpi/pc/WAET.acpihmat.dsl deleted file mode 100644 index 991c8773b8..0000000000 --- a/tests/data/acpi/pc/WAET.acpihmat.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.bridge b/tests/data/acpi/pc/WAET.bridge deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.bridge.dsl b/tests/data/acpi/pc/WAET.bridge.dsl deleted file mode 100644 index f47dbb17a7..0000000000 --- a/tests/data/acpi/pc/WAET.bridge.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.cphp b/tests/data/acpi/pc/WAET.cphp deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.cphp.dsl b/tests/data/acpi/pc/WAET.cphp.dsl deleted file mode 100644 index ff077a14eb..0000000000 --- a/tests/data/acpi/pc/WAET.cphp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.dimmpxm b/tests/data/acpi/pc/WAET.dimmpxm deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.dimmpxm.dsl b/tests/data/acpi/pc/WAET.dimmpxm.dsl deleted file mode 100644 index b8192c8601..0000000000 --- a/tests/data/acpi/pc/WAET.dimmpxm.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.dsl b/tests/data/acpi/pc/WAET.dsl deleted file mode 100644 index 53b6c1dc42..0000000000 --- a/tests/data/acpi/pc/WAET.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.roothp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.hpbridge b/tests/data/acpi/pc/WAET.hpbridge deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.ipmikcs b/tests/data/acpi/pc/WAET.ipmikcs deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.ipmikcs.dsl b/tests/data/acpi/pc/WAET.ipmikcs.dsl deleted file mode 100644 index 5144bada0f..0000000000 --- a/tests/data/acpi/pc/WAET.ipmikcs.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.ipmikcs, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.memhp b/tests/data/acpi/pc/WAET.memhp deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.memhp.dsl b/tests/data/acpi/pc/WAET.memhp.dsl deleted file mode 100644 index bfe3a036d7..0000000000 --- a/tests/data/acpi/pc/WAET.memhp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.numamem b/tests/data/acpi/pc/WAET.numamem deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/pc/WAET.numamem.dsl b/tests/data/acpi/pc/WAET.numamem.dsl deleted file mode 100644 index e4c6cf4bf8..0000000000 --- a/tests/data/acpi/pc/WAET.numamem.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/pc/WAET.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/pc/WAET.roothp b/tests/data/acpi/pc/WAET.roothp deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/APIC.acpihmat.dsl b/tests/data/acpi/q35/APIC.acpihmat.dsl deleted file mode 100644 index 5fe9fb4669..0000000000 --- a/tests/data/acpi/q35/APIC.acpihmat.dsl +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/APIC.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 00000080 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : DA -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : FEE00000 -[028h 0040 4] Flags (decoded below) : 00000001 - PC-AT Compatibility : 1 - -[02Ch 0044 1] Subtable Type : 00 [Processor Local APIC] -[02Dh 0045 1] Length : 08 -[02Eh 0046 1] Processor ID : 00 -[02Fh 0047 1] Local Apic ID : 00 -[030h 0048 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[034h 0052 1] Subtable Type : 00 [Processor Local APIC] -[035h 0053 1] Length : 08 -[036h 0054 1] Processor ID : 01 -[037h 0055 1] Local Apic ID : 01 -[038h 0056 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Runtime Online Capable : 0 - -[03Ch 0060 1] Subtable Type : 01 [I/O APIC] -[03Dh 0061 1] Length : 0C -[03Eh 0062 1] I/O Apic ID : 00 -[03Fh 0063 1] Reserved : 00 -[040h 0064 4] Address : FEC00000 -[044h 0068 4] Interrupt : 00000000 - -[048h 0072 1] Subtable Type : 02 [Interrupt Source Override] -[049h 0073 1] Length : 0A -[04Ah 0074 1] Bus : 00 -[04Bh 0075 1] Source : 00 -[04Ch 0076 4] Interrupt : 00000002 -[050h 0080 2] Flags (decoded below) : 0000 - Polarity : 0 - Trigger Mode : 0 - -[052h 0082 1] Subtable Type : 02 [Interrupt Source Override] -[053h 0083 1] Length : 0A -[054h 0084 1] Bus : 00 -[055h 0085 1] Source : 05 -[056h 0086 4] Interrupt : 00000005 -[05Ah 0090 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[05Ch 0092 1] Subtable Type : 02 [Interrupt Source Override] -[05Dh 0093 1] Length : 0A -[05Eh 0094 1] Bus : 00 -[05Fh 0095 1] Source : 09 -[060h 0096 4] Interrupt : 00000009 -[064h 0100 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[066h 0102 1] Subtable Type : 02 [Interrupt Source Override] -[067h 0103 1] Length : 0A -[068h 0104 1] Bus : 00 -[069h 0105 1] Source : 0A -[06Ah 0106 4] Interrupt : 0000000A -[06Eh 0110 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[070h 0112 1] Subtable Type : 02 [Interrupt Source Override] -[071h 0113 1] Length : 0A -[072h 0114 1] Bus : 00 -[073h 0115 1] Source : 0B -[074h 0116 4] Interrupt : 0000000B -[078h 0120 2] Flags (decoded below) : 000D - Polarity : 1 - Trigger Mode : 3 - -[07Ah 0122 1] Subtable Type : 04 [Local APIC NMI] -[07Bh 0123 1] Length : 06 -[07Ch 0124 1] Processor ID : FF -[07Dh 0125 2] Flags (decoded below) : 0000 - Polarity : 0 - Trigger Mode : 0 -[07Fh 0127 1] Interrupt Input LINT : 01 - -Raw Table Data: Length 128 (0x80) - - 0000: 41 50 49 43 80 00 00 00 01 DA 42 4F 43 48 53 20 // APIC......BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 E0 FE 01 00 00 00 00 08 00 00 // ................ - 0030: 01 00 00 00 00 08 01 01 01 00 00 00 01 0C 00 00 // ................ - 0040: 00 00 C0 FE 00 00 00 00 02 0A 00 00 02 00 00 00 // ................ - 0050: 00 00 02 0A 00 05 05 00 00 00 0D 00 02 0A 00 09 // ................ - 0060: 09 00 00 00 0D 00 02 0A 00 0A 0A 00 00 00 0D 00 // ................ - 0070: 02 0A 00 0B 0B 00 00 00 0D 00 04 06 FF 00 00 01 // ................ diff --git a/tests/data/acpi/q35/APIC.bridge b/tests/data/acpi/q35/APIC.bridge deleted file mode 100644 index 84509e0ae4cabeb5ead3e42a4edfa50abddbc17d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmZ<^@N}+VU|?W;>*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4*Vk35v<@85#a0y6k`O6f!H9Lf#JbFFwFr}2jnsGfW!{`1CdNz hKn!AlSgfo-nis_4>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x02) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x00000001C0000000, // Range Minimum - 0x00000009BFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.bridge.dsl b/tests/data/acpi/q35/DSDT.bridge.dsl deleted file mode 100644 index 51fbeb729d..0000000000 --- a/tests/data/acpi/q35/DSDT.bridge.dsl +++ /dev/null @@ -1,3141 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.bridge, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001E0F (7695) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x4B - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.cphp.dsl b/tests/data/acpi/q35/DSDT.cphp.dsl deleted file mode 100644 index d3677e802c..0000000000 --- a/tests/data/acpi/q35/DSDT.cphp.dsl +++ /dev/null @@ -1,3283 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.cphp, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001FCD (8141) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x25 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (C002, Arg1) - } - - If ((Arg0 == 0x03)) - { - Notify (C003, Arg1) - } - - If ((Arg0 == 0x04)) - { - Notify (C004, Arg1) - } - - If ((Arg0 == 0x05)) - { - Notify (C005, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C002, 0x02, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x02)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x02) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x02, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C003, 0x03, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x03)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x03, 0x04, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x03) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x03, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C004, 0x04, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x04)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x04, 0x05, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x04) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x04, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C005, 0x05, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x05)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x05, 0x06, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x05) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x05, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.dimmpxm.dsl b/tests/data/acpi/q35/DSDT.dimmpxm.dsl deleted file mode 100644 index 9cab76729e..0000000000 --- a/tests/data/acpi/q35/DSDT.dimmpxm.dsl +++ /dev/null @@ -1,3535 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00002473 (9331) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0xEE - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - External (_SB_.NVDR, UnknownObj) - - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - - If ((Arg0 == One)) - { - Notify (C001, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (C002, Arg1) - } - - If ((Arg0 == 0x03)) - { - Notify (C003, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - - Processor (C001, 0x01, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (One)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (One) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (One, Arg0, Arg1, Arg2) - } - - Name (_PXM, One) // _PXM: Device Proximity - } - - Processor (C002, 0x02, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x02)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x02) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x02, Arg0, Arg1, Arg2) - } - - Name (_PXM, 0x02) // _PXM: Device Proximity - } - - Processor (C003, 0x03, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (0x03)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - CEJ0 (0x03) - } - - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (0x03, Arg0, Arg1, Arg2) - } - - Name (_PXM, 0x03) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x03) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP02) - { - Name (_UID, "0x02") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (MP02, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - Method (_E04, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - Notify (\_SB.NVDR, 0x80) // Status Change - } - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000200000000, // Range Minimum - 0x00000009FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.dsl b/tests/data/acpi/q35/DSDT.dsl deleted file mode 100644 index 5adfe001c7..0000000000 --- a/tests/data/acpi/q35/DSDT.dsl +++ /dev/null @@ -1,3351 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.tis, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x000020D2 (8402) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0xF4 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Name (CNEW, Package (0xFF){}) - Local3 = Zero - Local4 = One - While ((Local4 == One)) - { - Local4 = Zero - Local0 = One - Local1 = Zero - While (((Local0 == One) && (Local3 < One))) - { - Local0 = Zero - \_SB.PCI0.PRES.CSEL = Local3 - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CDAT < Local3)) - { - Break - } - - If ((Local1 == 0xFF)) - { - Local4 = One - Break - } - - Local3 = \_SB.PCI0.PRES.CDAT - If ((\_SB.PCI0.PRES.CINS == One)) - { - CNEW [Local1] = Local3 - Local1++ - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (Local3, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - - Local3++ - } - - Local2 = Zero - While ((Local2 < Local1)) - { - Local3 = DerefOf (CNEW [Local2]) - CTFY (Local3, One) - Debug = Local3 - \_SB.PCI0.PRES.CSEL = Local3 - \_SB.PCI0.PRES.CINS = One - Local2++ - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - Memory32Fixed (ReadWrite, - 0xFED40000, // Address Base - 0x00005000, // Address Length - ) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (TPM) - { - Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0xFED40000, // Address Base - 0x00005000, // Address Length - ) - }) - OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A) - Field (TPP2, AnyAcc, NoLock, Preserve) - { - PPIN, 8, - PPIP, 32, - PPRP, 32, - PPRQ, 32, - PPRM, 32, - LPPR, 32 - } - - OperationRegion (TPP3, SystemMemory, 0xFED4515A, One) - Field (TPP3, ByteAcc, NoLock, Preserve) - { - MOVV, 8 - } - - Method (TPFN, 1, Serialized) - { - If ((Arg0 >= 0x0100)) - { - Return (Zero) - } - - OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One) - Field (TPP1, ByteAcc, NoLock, Preserve) - { - TPPF, 8 - } - - Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */ - } - - Name (TPM2, Package (0x02) - { - Zero, - Zero - }) - Name (TPM3, Package (0x03) - { - Zero, - Zero, - Zero - }) - Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method - { - If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */)) - { - If ((Arg2 == Zero)) - { - Return (Buffer (0x02) - { - 0xFF, 0x01 // .. - }) - } - - If ((Arg2 == One)) - { - Return ("1.3") - } - - If ((Arg2 == 0x02)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - If (((Local1 & 0x07) == Zero)) - { - Return (One) - } - - PPRQ = Local0 - PPRM = Zero - Return (Zero) - } - - If ((Arg2 == 0x03)) - { - If ((Arg1 == One)) - { - TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */ - Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */ - } - - If ((Arg1 == 0x02)) - { - TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */ - TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */ - Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */ - } - } - - If ((Arg2 == 0x04)) - { - Return (0x02) - } - - If ((Arg2 == 0x05)) - { - TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */ - TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */ - Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */ - } - - If ((Arg2 == 0x06)) - { - Return (0x03) - } - - If ((Arg2 == 0x07)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - If (((Local1 & 0x07) == Zero)) - { - Return (One) - } - - If (((Local1 & 0x07) == 0x02)) - { - Return (0x03) - } - - If ((Arg1 == One)) - { - PPRQ = Local0 - PPRM = Zero - } - - If ((Arg1 == 0x02)) - { - PPRQ = Local0 - PPRM = DerefOf (Arg3 [One]) - } - - Return (Zero) - } - - If ((Arg2 == 0x08)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - Return ((Local1 & 0x07)) - } - - Return (Buffer (One) - { - 0x00 // . - }) - } - - If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d"))) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x03 // . - }) - } - - If ((Arg2 == One)) - { - Local0 = DerefOf (Arg3 [Zero]) - MOVV = Local0 - Return (Zero) - } - } - } - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.ipmibt.dsl b/tests/data/acpi/q35/DSDT.ipmibt.dsl deleted file mode 100644 index 63c1140a61..0000000000 --- a/tests/data/acpi/q35/DSDT.ipmibt.dsl +++ /dev/null @@ -1,3156 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.ipmibt, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001E49 (7753) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0xDF - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (MI1) - { - Name (_HID, EisaId ("IPI0001")) // _HID: Hardware ID - Name (_STR, "ipmi_bt") // _STR: Description String - Name (_UID, One) // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x00E4, // Range Minimum - 0x00E6, // Range Maximum - 0x01, // Alignment - 0x03, // Length - ) - IRQNoFlags () - {5} - }) - Name (_IFT, 0x03) // _IFT: IPMI Interface Type - Name (_SRV, 0x0200) // _SRV: IPMI Spec Revision - } - - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.memhp.dsl b/tests/data/acpi/q35/DSDT.memhp.dsl deleted file mode 100644 index 18cea090e6..0000000000 --- a/tests/data/acpi/q35/DSDT.memhp.dsl +++ /dev/null @@ -1,3442 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.memhp, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x0000234D (9037) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x9D - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x03) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP02) - { - Name (_UID, "0x02") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (MP02, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000200000000, // Range Minimum - 0x00000009FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.mmio64.dsl b/tests/data/acpi/q35/DSDT.mmio64.dsl deleted file mode 100644 index a724c886e8..0000000000 --- a/tests/data/acpi/q35/DSDT.mmio64.dsl +++ /dev/null @@ -1,3377 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.mmio64, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00002268 (8808) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x59 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Device (\_SB.PCI0.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0A00, // Range Minimum - 0x0A00, // Range Maximum - 0x00, // Alignment - 0x18, // Length - ) - }) - OperationRegion (HPMR, SystemIO, 0x0A00, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, One) - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.PCI0.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.PCI0.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y01._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y02, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y02._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - } - } - - Method (\_GPE._E03, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.MHPC.MSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000200000000, // Range Minimum - 0x00000009FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Device (S10) - { - Name (_ADR, 0x00020000) // _ADR: Address - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.numamem.dsl b/tests/data/acpi/q35/DSDT.numamem.dsl deleted file mode 100644 index e76de462f0..0000000000 --- a/tests/data/acpi/q35/DSDT.numamem.dsl +++ /dev/null @@ -1,3138 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.numamem, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001E04 (7684) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x55 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - - Name (_PXM, Zero) // _PXM: Device Proximity - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - } - } -} - diff --git a/tests/data/acpi/q35/DSDT.tis.dsl b/tests/data/acpi/q35/DSDT.tis.dsl deleted file mode 100644 index a43e36bfe3..0000000000 --- a/tests/data/acpi/q35/DSDT.tis.dsl +++ /dev/null @@ -1,3321 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/DSDT.tis, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x0000205B (8283) - * Revision 0x01 **** 32-bit table (V1), no 64-bit math support - * Checksum 0x84 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 1, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\) - { - OperationRegion (DBG, SystemIO, 0x0402, One) - Field (DBG, ByteAcc, NoLock, Preserve) - { - DBGB, 8 - } - - Method (DBUG, 1, NotSerialized) - { - ToHexString (Arg0, Local0) - ToBuffer (Local0, Local0) - Local1 = (SizeOf (Local0) - One) - Local2 = Zero - While ((Local2 < Local1)) - { - DBGB = DerefOf (Local0 [Local2]) - Local2++ - } - - DBGB = 0x0A - } - } - - Scope (_SB) - { - Device (PCI0) - { - Name (_HID, EisaId ("PNP0A08") /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A03") /* PCI Bus */) // _CID: Compatible ID - Name (_ADR, Zero) // _ADR: Address - Name (_UID, Zero) // _UID: Unique ID - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - Local0 = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - Local0 &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != Local0)) - { - CDW1 |= 0x10 - } - - CDW3 = Local0 - } - Else - { - CDW1 |= 0x04 - } - - Return (Arg3) - } - } - } - - Scope (_SB) - { - Device (HPET) - { - Name (_HID, EisaId ("PNP0103") /* HPET System Timer */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - OperationRegion (HPTM, SystemMemory, 0xFED00000, 0x0400) - Field (HPTM, DWordAcc, Lock, Preserve) - { - VEND, 32, - PRD, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Local0 = VEND /* \_SB_.HPET.VEND */ - Local1 = PRD /* \_SB_.HPET.PRD_ */ - Local0 >>= 0x10 - If (((Local0 == Zero) || (Local0 == 0xFFFF))) - { - Return (Zero) - } - - If (((Local1 == Zero) || (Local1 > 0x05F5E100))) - { - Return (Zero) - } - - Return (0x0F) - } - - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadOnly, - 0xFED00000, // Address Base - 0x00000400, // Address Length - ) - }) - } - } - - Scope (_SB.PCI0) - { - Device (ISA) - { - Name (_ADR, 0x001F0000) // _ADR: Address - OperationRegion (PIRQ, PCI_Config, 0x60, 0x0C) - } - } - - Scope (_SB.PCI0.ISA) - { - Device (KBD) - { - Name (_HID, EisaId ("PNP0303") /* IBM Enhanced Keyboard (101/102-key, PS/2 Mouse) */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0060, // Range Minimum - 0x0060, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IO (Decode16, - 0x0064, // Range Minimum - 0x0064, // Range Maximum - 0x01, // Alignment - 0x01, // Length - ) - IRQNoFlags () - {1} - }) - } - - Device (MOU) - { - Name (_HID, EisaId ("PNP0F13") /* PS/2 Mouse */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IRQNoFlags () - {12} - }) - } - - Device (LPT1) - { - Name (_HID, EisaId ("PNP0400") /* Standard LPT Parallel Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0378, // Range Minimum - 0x0378, // Range Maximum - 0x08, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {7} - }) - } - - Device (COM1) - { - Name (_HID, EisaId ("PNP0501") /* 16550A-compatible COM Serial Port */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x03F8, // Range Minimum - 0x03F8, // Range Maximum - 0x00, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {4} - }) - } - - Device (RTC) - { - Name (_HID, EisaId ("PNP0B00") /* AT Real-Time Clock */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0070, // Range Minimum - 0x0070, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - IRQNoFlags () - {8} - }) - } - } - - Name (PICF, Zero) - Method (_PIC, 1, NotSerialized) // _PIC: Interrupt Model - { - PICF = Arg0 - } - - Scope (_SB) - { - Scope (PCI0) - { - Name (PRTP, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - LNKD, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - LNKE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - LNKF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - LNKG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - LNKH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - LNKA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - LNKB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - LNKC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - LNKD, - Zero - } - }) - Name (PRTA, Package (0x80) - { - Package (0x04) - { - 0xFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSID, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSIE, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSIF, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSIG, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSIH, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSIA, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSIB, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSIC, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSID, - Zero - } - }) - Method (_PRT, 0, NotSerialized) // _PRT: PCI Routing Table - { - If ((PICF == Zero)) - { - Return (PRTP) /* \_SB_.PCI0.PRTP */ - } - Else - { - Return (PRTA) /* \_SB_.PCI0.PRTA */ - } - } - } - - Field (PCI0.ISA.PIRQ, ByteAcc, NoLock, Preserve) - { - PRQA, 8, - PRQB, 8, - PRQC, 8, - PRQD, 8, - Offset (0x08), - PRQE, 8, - PRQF, 8, - PRQG, 8, - PRQH, 8 - } - - Method (IQST, 1, NotSerialized) - { - If ((0x80 & Arg0)) - { - Return (0x09) - } - - Return (0x0B) - } - - Method (IQCR, 1, Serialized) - { - Name (PRR0, ResourceTemplate () - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, _Y00) - { - 0x00000000, - } - }) - CreateDWordField (PRR0, \_SB.IQCR._Y00._INT, PRRI) // _INT: Interrupts - PRRI = (Arg0 & 0x0F) - Return (PRR0) /* \_SB_.IQCR.PRR0 */ - } - - Device (LNKA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQA)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQA |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQA)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQA = PRRI /* \_SB_.LNKA._SRS.PRRI */ - } - } - - Device (LNKB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQB)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQB |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQB)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQB = PRRI /* \_SB_.LNKB._SRS.PRRI */ - } - } - - Device (LNKC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQC)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQC |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQC)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQC = PRRI /* \_SB_.LNKC._SRS.PRRI */ - } - } - - Device (LNKD) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQD)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQD |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQD)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQD = PRRI /* \_SB_.LNKD._SRS.PRRI */ - } - } - - Device (LNKE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQE)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQE |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQE)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQE = PRRI /* \_SB_.LNKE._SRS.PRRI */ - } - } - - Device (LNKF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQF)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQF |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQF)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQF = PRRI /* \_SB_.LNKF._SRS.PRRI */ - } - } - - Device (LNKG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQG)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQG |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQG)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQG = PRRI /* \_SB_.LNKG._SRS.PRRI */ - } - } - - Device (LNKH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000005, - 0x0000000A, - 0x0000000B, - } - }) - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (IQST (PRQH)) - } - - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - PRQH |= 0x80 - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (IQCR (PRQH)) - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - CreateDWordField (Arg0, 0x05, PRRI) - PRQH = PRRI /* \_SB_.LNKH._SRS.PRRI */ - } - } - - Device (GSIA) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000010, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIB) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000011, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIC) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000012, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSID) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000013, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIE) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000014, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIF) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000015, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIG) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000016, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSIH) - { - Name (_HID, EisaId ("PNP0C0F") /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Shared, ,, ) - { - 0x00000017, - } - }) - Method (_DIS, 0, NotSerialized) // _DIS: Disable Device - { - } - - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - } - - Scope (_SB.PCI0) - { - Device (SMB0) - { - Name (_ADR, 0x001F0003) // _ADR: Address - } - } - - Scope (_SB) - { - Device (\_SB.PCI0.PRES) - { - Name (_HID, EisaId ("PNP0A06") /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "CPU Hotplug resources") // _UID: Unique ID - Mutex (CPLK, 0x00) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0CD8, // Range Minimum - 0x0CD8, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - OperationRegion (PRST, SystemIO, 0x0CD8, 0x0C) - Field (PRST, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x04), - CPEN, 1, - CINS, 1, - CRMV, 1, - CEJ0, 1, - Offset (0x05), - CCMD, 8 - } - - Field (PRST, DWordAcc, NoLock, Preserve) - { - CSEL, 32, - Offset (0x08), - CDAT, 32 - } - - Method (_INI, 0, Serialized) // _INI: Initialize - { - CSEL = Zero - } - } - - Device (\_SB.CPUS) - { - Name (_HID, "ACPI0010" /* Processor Container Device */) // _HID: Hardware ID - Name (_CID, EisaId ("PNP0A05") /* Generic Container Device */) // _CID: Compatible ID - Method (CTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (C000, Arg1) - } - } - - Method (CSTA, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - Local0 = Zero - If ((\_SB.PCI0.PRES.CPEN == One)) - { - Local0 = 0x0F - } - - Release (\_SB.PCI0.PRES.CPLK) - Return (Local0) - } - - Method (CEJ0, 1, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CEJ0 = One - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (CSCN, 0, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - Local0 = One - While ((Local0 == One)) - { - Local0 = Zero - \_SB.PCI0.PRES.CCMD = Zero - If ((\_SB.PCI0.PRES.CINS == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, One) - \_SB.PCI0.PRES.CINS = One - Local0 = One - } - ElseIf ((\_SB.PCI0.PRES.CRMV == One)) - { - CTFY (\_SB.PCI0.PRES.CDAT, 0x03) - \_SB.PCI0.PRES.CRMV = One - Local0 = One - } - } - - Release (\_SB.PCI0.PRES.CPLK) - } - - Method (COST, 4, Serialized) - { - Acquire (\_SB.PCI0.PRES.CPLK, 0xFFFF) - \_SB.PCI0.PRES.CSEL = Arg0 - \_SB.PCI0.PRES.CCMD = One - \_SB.PCI0.PRES.CDAT = Arg1 - \_SB.PCI0.PRES.CCMD = 0x02 - \_SB.PCI0.PRES.CDAT = Arg2 - Release (\_SB.PCI0.PRES.CPLK) - } - - Processor (C000, 0x00, 0x00000000, 0x00) - { - Method (_STA, 0, Serialized) // _STA: Status - { - Return (CSTA (Zero)) - } - - Name (_MAT, Buffer (0x08) // _MAT: Multiple APIC Table Entry - { - 0x00, 0x08, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 // ........ - }) - Method (_OST, 3, Serialized) // _OST: OSPM Status Indication - { - COST (Zero, Arg0, Arg1, Arg2) - } - } - } - } - - Method (\_GPE._E02, 0, NotSerialized) // _Exx: Edge-Triggered GPE, xx=0x00-0xFF - { - \_SB.CPUS.CSCN () - } - - Scope (_GPE) - { - Name (_HID, "ACPI0006" /* GPE Block Device */) // _HID: Hardware ID - } - - Scope (\_SB.PCI0) - { - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - IO (Decode16, - 0x0CF8, // Range Minimum - 0x0CF8, // Range Maximum - 0x01, // Alignment - 0x08, // Length - ) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x0CF7, // Range Maximum - 0x0000, // Translation Offset - 0x0CF8, // Length - ,, , TypeStatic, DenseTranslation) - WordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x0000, // Granularity - 0x0D00, // Range Minimum - 0xFFFF, // Range Maximum - 0x0000, // Translation Offset - 0xF300, // Length - ,, , TypeStatic, DenseTranslation) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x000A0000, // Range Minimum - 0x000BFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x00020000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x08000000, // Range Minimum - 0xAFFFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0xA8000000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0xC0000000, // Range Minimum - 0xFEBFFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x3EC00000, // Length - ,, , AddressRangeMemory, TypeStatic) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000100000000, // Range Minimum - 0x00000008FFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000800000000, // Length - ,, , AddressRangeMemory, TypeStatic) - Memory32Fixed (ReadWrite, - 0xFED40000, // Address Base - 0x00005000, // Address Length - ) - }) - Device (GPE0) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "GPE0 resources") // _UID: Unique ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0620, // Range Minimum - 0x0620, // Range Maximum - 0x01, // Alignment - 0x10, // Length - ) - }) - } - } - - Scope (\) - { - Name (_S3, Package (0x04) // _S3_: S3 System State - { - One, - One, - Zero, - Zero - }) - Name (_S4, Package (0x04) // _S4_: S4 System State - { - 0x02, - 0x02, - Zero, - Zero - }) - Name (_S5, Package (0x04) // _S5_: S5 System State - { - Zero, - Zero, - Zero, - Zero - }) - } - - Scope (\_SB.PCI0) - { - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - IO (Decode16, - 0x0510, // Range Minimum - 0x0510, // Range Maximum - 0x01, // Alignment - 0x0C, // Length - ) - }) - } - } - - Scope (\_SB) - { - Scope (PCI0) - { - Device (S00) - { - Name (_ADR, Zero) // _ADR: Address - } - - Device (S08) - { - Name (_ADR, 0x00010000) // _ADR: Address - Method (_S1D, 0, NotSerialized) // _S1D: S1 Device State - { - Return (Zero) - } - - Method (_S2D, 0, NotSerialized) // _S2D: S2 Device State - { - Return (Zero) - } - - Method (_S3D, 0, NotSerialized) // _S3D: S3 Device State - { - Return (Zero) - } - } - - Method (PCNT, 0, NotSerialized) - { - } - - Device (TPM) - { - Name (_HID, "MSFT0101" /* TPM 2.0 Security Device */) // _HID: Hardware ID - Name (_STA, 0x0F) // _STA: Status - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0xFED40000, // Address Base - 0x00005000, // Address Length - ) - }) - OperationRegion (TPP2, SystemMemory, 0xFED45100, 0x5A) - Field (TPP2, AnyAcc, NoLock, Preserve) - { - PPIN, 8, - PPIP, 32, - PPRP, 32, - PPRQ, 32, - PPRM, 32, - LPPR, 32 - } - - OperationRegion (TPP3, SystemMemory, 0xFED4515A, One) - Field (TPP3, ByteAcc, NoLock, Preserve) - { - MOVV, 8 - } - - Method (TPFN, 1, Serialized) - { - If ((Arg0 >= 0x0100)) - { - Return (Zero) - } - - OperationRegion (TPP1, SystemMemory, (0xFED45000 + Arg0), One) - Field (TPP1, ByteAcc, NoLock, Preserve) - { - TPPF, 8 - } - - Return (TPPF) /* \_SB_.PCI0.TPM_.TPFN.TPPF */ - } - - Name (TPM2, Package (0x02) - { - Zero, - Zero - }) - Name (TPM3, Package (0x03) - { - Zero, - Zero, - Zero - }) - Method (_DSM, 4, Serialized) // _DSM: Device-Specific Method - { - If ((Arg0 == ToUUID ("3dddfaa6-361b-4eb4-a424-8d10089d1653") /* Physical Presence Interface */)) - { - If ((Arg2 == Zero)) - { - Return (Buffer (0x02) - { - 0xFF, 0x01 // .. - }) - } - - If ((Arg2 == One)) - { - Return ("1.3") - } - - If ((Arg2 == 0x02)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - If (((Local1 & 0x07) == Zero)) - { - Return (One) - } - - PPRQ = Local0 - PPRM = Zero - Return (Zero) - } - - If ((Arg2 == 0x03)) - { - If ((Arg1 == One)) - { - TPM2 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */ - Return (TPM2) /* \_SB_.PCI0.TPM_.TPM2 */ - } - - If ((Arg1 == 0x02)) - { - TPM3 [One] = PPRQ /* \_SB_.PCI0.TPM_.PPRQ */ - TPM3 [0x02] = PPRM /* \_SB_.PCI0.TPM_.PPRM */ - Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */ - } - } - - If ((Arg2 == 0x04)) - { - Return (0x02) - } - - If ((Arg2 == 0x05)) - { - TPM3 [One] = LPPR /* \_SB_.PCI0.TPM_.LPPR */ - TPM3 [0x02] = PPRP /* \_SB_.PCI0.TPM_.PPRP */ - Return (TPM3) /* \_SB_.PCI0.TPM_.TPM3 */ - } - - If ((Arg2 == 0x06)) - { - Return (0x03) - } - - If ((Arg2 == 0x07)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - If (((Local1 & 0x07) == Zero)) - { - Return (One) - } - - If (((Local1 & 0x07) == 0x02)) - { - Return (0x03) - } - - If ((Arg1 == One)) - { - PPRQ = Local0 - PPRM = Zero - } - - If ((Arg1 == 0x02)) - { - PPRQ = Local0 - PPRM = DerefOf (Arg3 [One]) - } - - Return (Zero) - } - - If ((Arg2 == 0x08)) - { - Local0 = DerefOf (Arg3 [Zero]) - Local1 = TPFN (Local0) - Return ((Local1 & 0x07)) - } - - Return (Buffer (One) - { - 0x00 // . - }) - } - - If ((Arg0 == ToUUID ("376054ed-cc13-4675-901c-4756d7f2d45d"))) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x03 // . - }) - } - - If ((Arg2 == One)) - { - Local0 = DerefOf (Arg3 [Zero]) - MOVV = Local0 - Return (Zero) - } - } - } - } - } - } -} - diff --git a/tests/data/acpi/q35/FACP.acpihmat b/tests/data/acpi/q35/FACP.acpihmat deleted file mode 100644 index 72c9d97902a4bbf14896023d9ba78e0899d6517b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmZ>BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPo8!z`(#P@8s|75v<@85#a0w6k`O6f!H7#1{fJQ88!hqOw2%n4I;_{r9nIn zAX@<@&cwhX02KSr|DPYCl7Ybp$XMFKz`)4C!0?j?A_|v;DFV`r3P1wMTp$k&7=Z>N X+XoXzrWq9=?f{7~HXz&s;==#{BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.acpihmat.dsl b/tests/data/acpi/q35/FACS.acpihmat.dsl deleted file mode 100644 index 0bd98653ce..0000000000 --- a/tests/data/acpi/q35/FACS.acpihmat.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.bridge b/tests/data/acpi/q35/FACS.bridge deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.bridge.dsl b/tests/data/acpi/q35/FACS.bridge.dsl deleted file mode 100644 index 116dce1f2d..0000000000 --- a/tests/data/acpi/q35/FACS.bridge.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.cphp b/tests/data/acpi/q35/FACS.cphp deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.cphp.dsl b/tests/data/acpi/q35/FACS.cphp.dsl deleted file mode 100644 index 580d502491..0000000000 --- a/tests/data/acpi/q35/FACS.cphp.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.dimmpxm b/tests/data/acpi/q35/FACS.dimmpxm deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.dimmpxm.dsl b/tests/data/acpi/q35/FACS.dimmpxm.dsl deleted file mode 100644 index 4106387866..0000000000 --- a/tests/data/acpi/q35/FACS.dimmpxm.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.dsl b/tests/data/acpi/q35/FACS.dsl deleted file mode 100644 index 0595b4ddb9..0000000000 --- a/tests/data/acpi/q35/FACS.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.tis, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.ipmibt b/tests/data/acpi/q35/FACS.ipmibt deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.ipmibt.dsl b/tests/data/acpi/q35/FACS.ipmibt.dsl deleted file mode 100644 index 8c019f3475..0000000000 --- a/tests/data/acpi/q35/FACS.ipmibt.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.ipmibt, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.memhp b/tests/data/acpi/q35/FACS.memhp deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.memhp.dsl b/tests/data/acpi/q35/FACS.memhp.dsl deleted file mode 100644 index fb6d84c152..0000000000 --- a/tests/data/acpi/q35/FACS.memhp.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.mmio64 b/tests/data/acpi/q35/FACS.mmio64 deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.mmio64.dsl b/tests/data/acpi/q35/FACS.mmio64.dsl deleted file mode 100644 index 1a20060749..0000000000 --- a/tests/data/acpi/q35/FACS.mmio64.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.mmio64, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.numamem b/tests/data/acpi/q35/FACS.numamem deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.numamem.dsl b/tests/data/acpi/q35/FACS.numamem.dsl deleted file mode 100644 index 740e0bca9a..0000000000 --- a/tests/data/acpi/q35/FACS.numamem.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/FACS.tis b/tests/data/acpi/q35/FACS.tis deleted file mode 100644 index fc67ecc40782bd7fe8921e430d7de67f0bfaad93..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 PcmZ>BbPjf4ARhn#RKNjV diff --git a/tests/data/acpi/q35/FACS.tis.dsl b/tests/data/acpi/q35/FACS.tis.dsl deleted file mode 100644 index cb35bde06c..0000000000 --- a/tests/data/acpi/q35/FACS.tis.dsl +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/FACS.tis, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACS] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACS" -[004h 0004 4] Length : 00000040 -[008h 0008 4] Hardware Signature : 00000000 -[00Ch 0012 4] 32 Firmware Waking Vector : 00000000 -[010h 0016 4] Global Lock : 00000000 -[014h 0020 4] Flags (decoded below) : 00000000 - S4BIOS Support Present : 0 - 64-bit Wake Supported (V2) : 0 -[018h 0024 8] 64 Firmware Waking Vector : 0000000000000000 -[020h 0032 1] Version : 00 -[021h 0033 3] Reserved : 000000 -[024h 0036 4] OspmFlags (decoded below) : 00000000 - 64-bit Wake Env Required (V2) : 0 - -Raw Table Data: Length 64 (0x40) - - 0000: 46 41 43 53 40 00 00 00 00 00 00 00 00 00 00 00 // FACS@........... - 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/HMAT.acpihmat.dsl b/tests/data/acpi/q35/HMAT.acpihmat.dsl deleted file mode 100644 index 4abaa94f78..0000000000 --- a/tests/data/acpi/q35/HMAT.acpihmat.dsl +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HMAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HMAT" [Heterogeneous Memory Attributes Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 98 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHMAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[02Ah 0042 2] Reserved : 0000 -[02Ch 0044 4] Length : 00000028 -[030h 0048 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[032h 0050 2] Reserved1 : 0000 -[034h 0052 4] Processor Proximity Domain : 00000000 -[038h 0056 4] Memory Proximity Domain : 00000000 -[03Ch 0060 4] Reserved2 : 00000000 -[040h 0064 8] Reserved3 : 0000000000000000 -[048h 0072 8] Reserved4 : 0000000000000000 - -[050h 0080 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[052h 0082 2] Reserved : 0000 -[054h 0084 4] Length : 00000028 -[058h 0088 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[05Ah 0090 2] Reserved1 : 0000 -[05Ch 0092 4] Processor Proximity Domain : 00000000 -[060h 0096 4] Memory Proximity Domain : 00000001 -[064h 0100 4] Reserved2 : 00000000 -[068h 0104 8] Reserved3 : 0000000000000000 -[070h 0112 8] Reserved4 : 0000000000000000 - -[078h 0120 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[07Ah 0122 2] Reserved : 0000 -[07Ch 0124 4] Length : 00000030 -[080h 0128 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[081h 0129 1] Data Type : 00 -[082h 0130 2] Reserved1 : 0000 -[084h 0132 4] Initiator Proximity Domains # : 00000001 -[088h 0136 4] Target Proximity Domains # : 00000002 -[08Ch 0140 4] Reserved2 : 00000000 -[090h 0144 8] Entry Base Unit : 00000000000003E8 -[098h 0152 4] Initiator Proximity Domain List : 00000000 -[09Ch 0156 4] Target Proximity Domain List : 00000000 -[0A0h 0160 4] Target Proximity Domain List : 00000001 -[0A4h 0164 2] Entry : 0001 -[0A6h 0166 2] Entry : FFFE - -[0A8h 0168 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[0AAh 0170 2] Reserved : 0000 -[0ACh 0172 4] Length : 00000030 -[0B0h 0176 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[0B1h 0177 1] Data Type : 03 -[0B2h 0178 2] Reserved1 : 0000 -[0B4h 0180 4] Initiator Proximity Domains # : 00000001 -[0B8h 0184 4] Target Proximity Domains # : 00000002 -[0BCh 0188 4] Reserved2 : 00000000 -[0C0h 0192 8] Entry Base Unit : 0000000000000001 -[0C8h 0200 4] Initiator Proximity Domain List : 00000000 -[0CCh 0204 4] Target Proximity Domain List : 00000000 -[0D0h 0208 4] Target Proximity Domain List : 00000001 -[0D4h 0212 2] Entry : FFFE -[0D6h 0214 2] Entry : 7FFF - -[0D8h 0216 2] Structure Type : 0002 [Memory Side Cache Information] -[0DAh 0218 2] Reserved : 0000 -[0DCh 0220 4] Length : 00000020 -[0E0h 0224 4] Memory Proximity Domain : 00000000 -[0E4h 0228 4] Reserved1 : 00000000 -[0E8h 0232 8] Memory Side Cache Size : 0000000000002800 -[0F0h 0240 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[0F4h 0244 2] Reserved2 : 0000 -[0F6h 0246 2] SMBIOS Handle # : 0000 - -[0F8h 0248 2] Structure Type : 0002 [Memory Side Cache Information] -[0FAh 0250 2] Reserved : 0000 -[0FCh 0252 4] Length : 00000020 -[100h 0256 4] Memory Proximity Domain : 00000001 -[104h 0260 4] Reserved1 : 00000000 -[108h 0264 8] Memory Side Cache Size : 0000000000002800 -[110h 0272 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[114h 0276 2] Reserved2 : 0000 -[116h 0278 2] SMBIOS Handle # : 0000 - -Raw Table Data: Length 280 (0x118) - - 0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20 // HMAT......BOCHS - 0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43 // BXPCHMAT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 // ............(... - 0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 // ....(........... - 0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00 // ............0... - 0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00 // ............0... - 00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00 // ............ ... - 00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00 // ............ ... - 0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 0110: 11 11 08 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HMAT.dsl b/tests/data/acpi/q35/HMAT.dsl deleted file mode 100644 index 43bc9adc98..0000000000 --- a/tests/data/acpi/q35/HMAT.dsl +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HMAT.acpihmat, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [HMAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HMAT" [Heterogeneous Memory Attributes Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 98 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHMAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[02Ah 0042 2] Reserved : 0000 -[02Ch 0044 4] Length : 00000028 -[030h 0048 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[032h 0050 2] Reserved1 : 0000 -[034h 0052 4] Processor Proximity Domain : 00000000 -[038h 0056 4] Memory Proximity Domain : 00000000 -[03Ch 0060 4] Reserved2 : 00000000 -[040h 0064 8] Reserved3 : 0000000000000000 -[048h 0072 8] Reserved4 : 0000000000000000 - -[050h 0080 2] Structure Type : 0000 [Memory Proximity Domain Attributes] -[052h 0082 2] Reserved : 0000 -[054h 0084 4] Length : 00000028 -[058h 0088 2] Flags (decoded below) : 0001 - Processor Proximity Domain Valid : 1 -[05Ah 0090 2] Reserved1 : 0000 -[05Ch 0092 4] Processor Proximity Domain : 00000000 -[060h 0096 4] Memory Proximity Domain : 00000001 -[064h 0100 4] Reserved2 : 00000000 -[068h 0104 8] Reserved3 : 0000000000000000 -[070h 0112 8] Reserved4 : 0000000000000000 - -[078h 0120 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[07Ah 0122 2] Reserved : 0000 -[07Ch 0124 4] Length : 00000030 -[080h 0128 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[081h 0129 1] Data Type : 00 -[082h 0130 2] Reserved1 : 0000 -[084h 0132 4] Initiator Proximity Domains # : 00000001 -[088h 0136 4] Target Proximity Domains # : 00000002 -[08Ch 0140 4] Reserved2 : 00000000 -[090h 0144 8] Entry Base Unit : 00000000000003E8 -[098h 0152 4] Initiator Proximity Domain List : 00000000 -[09Ch 0156 4] Target Proximity Domain List : 00000000 -[0A0h 0160 4] Target Proximity Domain List : 00000001 -[0A4h 0164 2] Entry : 0001 -[0A6h 0166 2] Entry : FFFE - -[0A8h 0168 2] Structure Type : 0001 [System Locality Latency and Bandwidth Information] -[0AAh 0170 2] Reserved : 0000 -[0ACh 0172 4] Length : 00000030 -[0B0h 0176 1] Flags (decoded below) : 00 - Memory Hierarchy : 0 -[0B1h 0177 1] Data Type : 03 -[0B2h 0178 2] Reserved1 : 0000 -[0B4h 0180 4] Initiator Proximity Domains # : 00000001 -[0B8h 0184 4] Target Proximity Domains # : 00000002 -[0BCh 0188 4] Reserved2 : 00000000 -[0C0h 0192 8] Entry Base Unit : 0000000000000001 -[0C8h 0200 4] Initiator Proximity Domain List : 00000000 -[0CCh 0204 4] Target Proximity Domain List : 00000000 -[0D0h 0208 4] Target Proximity Domain List : 00000001 -[0D4h 0212 2] Entry : FFFE -[0D6h 0214 2] Entry : 7FFF - -[0D8h 0216 2] Structure Type : 0002 [Memory Side Cache Information] -[0DAh 0218 2] Reserved : 0000 -[0DCh 0220 4] Length : 00000020 -[0E0h 0224 4] Memory Proximity Domain : 00000000 -[0E4h 0228 4] Reserved1 : 00000000 -[0E8h 0232 8] Memory Side Cache Size : 0000000000002800 -[0F0h 0240 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[0F4h 0244 2] Reserved2 : 0000 -[0F6h 0246 2] SMBIOS Handle # : 0000 - -[0F8h 0248 2] Structure Type : 0002 [Memory Side Cache Information] -[0FAh 0250 2] Reserved : 0000 -[0FCh 0252 4] Length : 00000020 -[100h 0256 4] Memory Proximity Domain : 00000001 -[104h 0260 4] Reserved1 : 00000000 -[108h 0264 8] Memory Side Cache Size : 0000000000002800 -[110h 0272 4] Cache Attributes (decoded below) : 00081111 - Total Cache Levels : 1 - Cache Level : 1 - Cache Associativity : 1 - Write Policy : 1 - Cache Line Size : 0008 -[114h 0276 2] Reserved2 : 0000 -[116h 0278 2] SMBIOS Handle # : 0000 - -Raw Table Data: Length 280 (0x118) - - 0000: 48 4D 41 54 18 01 00 00 02 98 42 4F 43 48 53 20 // HMAT......BOCHS - 0010: 42 58 50 43 48 4D 41 54 01 00 00 00 42 58 50 43 // BXPCHMAT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 28 00 00 00 // ............(... - 0030: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 28 00 00 00 01 00 00 00 00 00 00 00 // ....(........... - 0060: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 00 00 00 30 00 00 00 // ............0... - 0080: 00 00 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 0090: E8 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 00 00 00 01 00 FE FF 01 00 00 00 30 00 00 00 // ............0... - 00B0: 00 03 00 00 01 00 00 00 02 00 00 00 00 00 00 00 // ................ - 00C0: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 01 00 00 00 FE FF FF 7F 02 00 00 00 20 00 00 00 // ............ ... - 00E0: 00 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 00F0: 11 11 08 00 00 00 00 00 02 00 00 00 20 00 00 00 // ............ ... - 0100: 01 00 00 00 00 00 00 00 00 28 00 00 00 00 00 00 // .........(...... - 0110: 11 11 08 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.acpihmat b/tests/data/acpi/q35/HPET.acpihmat deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.acpihmat.dsl b/tests/data/acpi/q35/HPET.acpihmat.dsl deleted file mode 100644 index 9806b81069..0000000000 --- a/tests/data/acpi/q35/HPET.acpihmat.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.bridge b/tests/data/acpi/q35/HPET.bridge deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.bridge.dsl b/tests/data/acpi/q35/HPET.bridge.dsl deleted file mode 100644 index 817040df23..0000000000 --- a/tests/data/acpi/q35/HPET.bridge.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.cphp b/tests/data/acpi/q35/HPET.cphp deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.cphp.dsl b/tests/data/acpi/q35/HPET.cphp.dsl deleted file mode 100644 index 4134b96873..0000000000 --- a/tests/data/acpi/q35/HPET.cphp.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.dimmpxm b/tests/data/acpi/q35/HPET.dimmpxm deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.dimmpxm.dsl b/tests/data/acpi/q35/HPET.dimmpxm.dsl deleted file mode 100644 index 42a7cc5fd6..0000000000 --- a/tests/data/acpi/q35/HPET.dimmpxm.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.dsl b/tests/data/acpi/q35/HPET.dsl deleted file mode 100644 index 42c40fd653..0000000000 --- a/tests/data/acpi/q35/HPET.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.tis, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.ipmibt b/tests/data/acpi/q35/HPET.ipmibt deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.ipmibt.dsl b/tests/data/acpi/q35/HPET.ipmibt.dsl deleted file mode 100644 index 9637f4cf81..0000000000 --- a/tests/data/acpi/q35/HPET.ipmibt.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.ipmibt, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.memhp b/tests/data/acpi/q35/HPET.memhp deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.memhp.dsl b/tests/data/acpi/q35/HPET.memhp.dsl deleted file mode 100644 index 2efab15846..0000000000 --- a/tests/data/acpi/q35/HPET.memhp.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.mmio64 b/tests/data/acpi/q35/HPET.mmio64 deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.mmio64.dsl b/tests/data/acpi/q35/HPET.mmio64.dsl deleted file mode 100644 index dba0368678..0000000000 --- a/tests/data/acpi/q35/HPET.mmio64.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.mmio64, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.numamem b/tests/data/acpi/q35/HPET.numamem deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.numamem.dsl b/tests/data/acpi/q35/HPET.numamem.dsl deleted file mode 100644 index e9d18a59fd..0000000000 --- a/tests/data/acpi/q35/HPET.numamem.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/HPET.tis b/tests/data/acpi/q35/HPET.tis deleted file mode 100644 index df689b8f99c1c43cfd7d63bdede3bcdfd23b7de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56 xcmeYWa1F6wU|?WmcJg=j2v%^42ypfQiZKGkKx`1rxTviGNCClxe-N610RT2D3IPBB diff --git a/tests/data/acpi/q35/HPET.tis.dsl b/tests/data/acpi/q35/HPET.tis.dsl deleted file mode 100644 index 471cb5b940..0000000000 --- a/tests/data/acpi/q35/HPET.tis.dsl +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/HPET.tis, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [HPET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "HPET" [High Precision Event Timer table] -[004h 0004 4] Table Length : 00000038 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 03 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCHPET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Hardware Block ID : 8086A201 - -[028h 0040 12] Timer Block Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 00 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 00 [Undefined/Legacy] -[02Ch 0044 8] Address : 00000000FED00000 - -[034h 0052 1] Sequence Number : 00 -[035h 0053 2] Minimum Clock Ticks : 0000 -[037h 0055 1] Flags (decoded below) : 00 - 4K Page Protect : 0 - 64K Page Protect : 0 - -Raw Table Data: Length 56 (0x38) - - 0000: 48 50 45 54 38 00 00 00 01 03 42 4F 43 48 53 20 // HPET8.....BOCHS - 0010: 42 58 50 43 48 50 45 54 01 00 00 00 42 58 50 43 // BXPCHPET....BXPC - 0020: 01 00 00 00 01 A2 86 80 00 00 00 00 00 00 D0 FE // ................ - 0030: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/MCFG.acpihmat b/tests/data/acpi/q35/MCFG.acpihmat deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.acpihmat.dsl b/tests/data/acpi/q35/MCFG.acpihmat.dsl deleted file mode 100644 index 8d07f64e9d..0000000000 --- a/tests/data/acpi/q35/MCFG.acpihmat.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.bridge b/tests/data/acpi/q35/MCFG.bridge deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.bridge.dsl b/tests/data/acpi/q35/MCFG.bridge.dsl deleted file mode 100644 index 6ce54d7228..0000000000 --- a/tests/data/acpi/q35/MCFG.bridge.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.cphp b/tests/data/acpi/q35/MCFG.cphp deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.cphp.dsl b/tests/data/acpi/q35/MCFG.cphp.dsl deleted file mode 100644 index 7ffd7f30db..0000000000 --- a/tests/data/acpi/q35/MCFG.cphp.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.dimmpxm b/tests/data/acpi/q35/MCFG.dimmpxm deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.dimmpxm.dsl b/tests/data/acpi/q35/MCFG.dimmpxm.dsl deleted file mode 100644 index dd7373b692..0000000000 --- a/tests/data/acpi/q35/MCFG.dimmpxm.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.dsl b/tests/data/acpi/q35/MCFG.dsl deleted file mode 100644 index 5179d6d707..0000000000 --- a/tests/data/acpi/q35/MCFG.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.tis, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.ipmibt b/tests/data/acpi/q35/MCFG.ipmibt deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.ipmibt.dsl b/tests/data/acpi/q35/MCFG.ipmibt.dsl deleted file mode 100644 index 80c372162c..0000000000 --- a/tests/data/acpi/q35/MCFG.ipmibt.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.ipmibt, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.memhp b/tests/data/acpi/q35/MCFG.memhp deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.memhp.dsl b/tests/data/acpi/q35/MCFG.memhp.dsl deleted file mode 100644 index 1b1f666833..0000000000 --- a/tests/data/acpi/q35/MCFG.memhp.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.mmio64 b/tests/data/acpi/q35/MCFG.mmio64 deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.mmio64.dsl b/tests/data/acpi/q35/MCFG.mmio64.dsl deleted file mode 100644 index 79be440f72..0000000000 --- a/tests/data/acpi/q35/MCFG.mmio64.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.mmio64, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.numamem b/tests/data/acpi/q35/MCFG.numamem deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.numamem.dsl b/tests/data/acpi/q35/MCFG.numamem.dsl deleted file mode 100644 index 30b37074d3..0000000000 --- a/tests/data/acpi/q35/MCFG.numamem.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/MCFG.tis b/tests/data/acpi/q35/MCFG.tis deleted file mode 100644 index 79ceb27a038c6e29d098b98dda2e229495f96b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60 rcmeZuc5}C3U|?W;@8s|75v<@85#a0#6k`O6f!H7#32cC}|AS}%SE304 diff --git a/tests/data/acpi/q35/MCFG.tis.dsl b/tests/data/acpi/q35/MCFG.tis.dsl deleted file mode 100644 index 0a92d698e9..0000000000 --- a/tests/data/acpi/q35/MCFG.tis.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/MCFG.tis, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : EF -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 00000000B0000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 EF 42 4F 43 48 53 20 // MCFG<.....BOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0 // ................ - 0030: 00 00 00 00 00 00 00 FF 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/NFIT.dimmpxm.dsl b/tests/data/acpi/q35/NFIT.dimmpxm.dsl deleted file mode 100644 index e29b770dca..0000000000 --- a/tests/data/acpi/q35/NFIT.dimmpxm.dsl +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000F0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 24 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000002 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000108000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -[0E0h 0224 2] Subtable Type : 0007 [Platform Capabilities] -[0E2h 0226 2] Length : 0010 - -[0E4h 0228 1] Highest Capability : 01 -[0E5h 0229 3] Reserved : 000000 -[0E8h 0232 4] Capabilities (decoded below) : 00000003 - Cache Flush to NVDIMM : 1 - Memory Flush to NVDIMM : 1 - Memory Mirroring : 0 -[0ECh 0236 4] Reserved : 00000000 - -Raw Table Data: Length 240 (0xF0) - - 0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20 // NFIT.....$BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/NFIT.dsl b/tests/data/acpi/q35/NFIT.dsl deleted file mode 100644 index 8da7718431..0000000000 --- a/tests/data/acpi/q35/NFIT.dsl +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/NFIT.dimmpxm, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000F0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 24 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000002 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000108000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -[0E0h 0224 2] Subtable Type : 0007 [Platform Capabilities] -[0E2h 0226 2] Length : 0010 - -[0E4h 0228 1] Highest Capability : 01 -[0E5h 0229 3] Reserved : 000000 -[0E8h 0232 4] Capabilities (decoded below) : 00000003 - Cache Flush to NVDIMM : 1 - Memory Flush to NVDIMM : 1 - Memory Mirroring : 0 -[0ECh 0236 4] Reserved : 00000000 - -Raw Table Data: Length 240 (0xF0) - - 0000: 4E 46 49 54 F0 00 00 00 01 24 42 4F 43 48 53 20 // NFIT.....$BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 02 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 08 01 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 07 00 10 00 01 00 00 00 03 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/SLIT.cphp.dsl b/tests/data/acpi/q35/SLIT.cphp.dsl deleted file mode 100644 index cb7347fbd4..0000000000 --- a/tests/data/acpi/q35/SLIT.cphp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SLIT.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/q35/SLIT.dsl b/tests/data/acpi/q35/SLIT.dsl deleted file mode 100644 index 89c381bdd0..0000000000 --- a/tests/data/acpi/q35/SLIT.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SLIT.memhp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/q35/SLIT.memhp.dsl b/tests/data/acpi/q35/SLIT.memhp.dsl deleted file mode 100644 index 70b233c0e6..0000000000 --- a/tests/data/acpi/q35/SLIT.memhp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SLIT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/q35/SRAT.acpihmat.dsl b/tests/data/acpi/q35/SRAT.acpihmat.dsl deleted file mode 100644 index 8a1b47e6b0..0000000000 --- a/tests/data/acpi/q35/SRAT.acpihmat.dsl +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000118 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : C0 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 00 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 01 [Memory Affinity] -[051h 0081 1] Length : 28 - -[052h 0082 4] Proximity Domain : 00000000 -[056h 0086 2] Reserved1 : 0000 -[058h 0088 8] Base Address : 0000000000000000 -[060h 0096 8] Address Length : 00000000000A0000 -[068h 0104 4] Reserved2 : 00000000 -[06Ch 0108 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[070h 0112 8] Reserved3 : 0000000000000000 - -[078h 0120 1] Subtable Type : 01 [Memory Affinity] -[079h 0121 1] Length : 28 - -[07Ah 0122 4] Proximity Domain : 00000000 -[07Eh 0126 2] Reserved1 : 0000 -[080h 0128 8] Base Address : 0000000000100000 -[088h 0136 8] Address Length : 0000000003F00000 -[090h 0144 4] Reserved2 : 00000000 -[094h 0148 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[098h 0152 8] Reserved3 : 0000000000000000 - -[0A0h 0160 1] Subtable Type : 01 [Memory Affinity] -[0A1h 0161 1] Length : 28 - -[0A2h 0162 4] Proximity Domain : 00000001 -[0A6h 0166 2] Reserved1 : 0000 -[0A8h 0168 8] Base Address : 0000000004000000 -[0B0h 0176 8] Address Length : 0000000004000000 -[0B8h 0184 4] Reserved2 : 00000000 -[0BCh 0188 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0C0h 0192 8] Reserved3 : 0000000000000000 - -[0C8h 0200 1] Subtable Type : 01 [Memory Affinity] -[0C9h 0201 1] Length : 28 - -[0CAh 0202 4] Proximity Domain : 00000000 -[0CEh 0206 2] Reserved1 : 0000 -[0D0h 0208 8] Base Address : 0000000000000000 -[0D8h 0216 8] Address Length : 0000000000000000 -[0E0h 0224 4] Reserved2 : 00000000 -[0E4h 0228 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0E8h 0232 8] Reserved3 : 0000000000000000 - -[0F0h 0240 1] Subtable Type : 01 [Memory Affinity] -[0F1h 0241 1] Length : 28 - -[0F2h 0242 4] Proximity Domain : 00000001 -[0F6h 0246 2] Reserved1 : 0000 -[0F8h 0248 8] Base Address : 0000000100000000 -[100h 0256 8] Address Length : 00000000B8000000 -[108h 0264 4] Reserved2 : 00000000 -[10Ch 0268 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[110h 0272 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 280 (0x118) - - 0000: 53 52 41 54 18 01 00 00 01 C0 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0060: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0070: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0080: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 0090: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00B0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 0100: 00 00 00 B8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0110: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/SRAT.cphp.dsl b/tests/data/acpi/q35/SRAT.cphp.dsl deleted file mode 100644 index f0023db38d..0000000000 --- a/tests/data/acpi/q35/SRAT.cphp.dsl +++ /dev/null @@ -1,168 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000130 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 36 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 00 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[051h 0081 1] Length : 10 - -[052h 0082 1] Proximity Domain Low(8) : 00 -[053h 0083 1] Apic ID : 02 -[054h 0084 4] Flags (decoded below) : 00000001 - Enabled : 1 -[058h 0088 1] Local Sapic EID : 00 -[059h 0089 3] Proximity Domain High(24) : 000000 -[05Ch 0092 4] Clock Domain : 00000000 - -[060h 0096 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[061h 0097 1] Length : 10 - -[062h 0098 1] Proximity Domain Low(8) : 01 -[063h 0099 1] Apic ID : 04 -[064h 0100 4] Flags (decoded below) : 00000001 - Enabled : 1 -[068h 0104 1] Local Sapic EID : 00 -[069h 0105 3] Proximity Domain High(24) : 000000 -[06Ch 0108 4] Clock Domain : 00000000 - -[070h 0112 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[071h 0113 1] Length : 10 - -[072h 0114 1] Proximity Domain Low(8) : 01 -[073h 0115 1] Apic ID : 05 -[074h 0116 4] Flags (decoded below) : 00000001 - Enabled : 1 -[078h 0120 1] Local Sapic EID : 00 -[079h 0121 3] Proximity Domain High(24) : 000000 -[07Ch 0124 4] Clock Domain : 00000000 - -[080h 0128 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[081h 0129 1] Length : 10 - -[082h 0130 1] Proximity Domain Low(8) : 01 -[083h 0131 1] Apic ID : 06 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 -[088h 0136 1] Local Sapic EID : 00 -[089h 0137 3] Proximity Domain High(24) : 000000 -[08Ch 0140 4] Clock Domain : 00000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 00000000000A0000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000100000 -[0C8h 0200 8] Address Length : 0000000003F00000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -[0E0h 0224 1] Subtable Type : 01 [Memory Affinity] -[0E1h 0225 1] Length : 28 - -[0E2h 0226 4] Proximity Domain : 00000001 -[0E6h 0230 2] Reserved1 : 0000 -[0E8h 0232 8] Base Address : 0000000004000000 -[0F0h 0240 8] Address Length : 0000000004000000 -[0F8h 0248 4] Reserved2 : 00000000 -[0FCh 0252 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[100h 0256 8] Reserved3 : 0000000000000000 - -[108h 0264 1] Subtable Type : 01 [Memory Affinity] -[109h 0265 1] Length : 28 - -[10Ah 0266 4] Proximity Domain : 00000000 -[10Eh 0270 2] Reserved1 : 0000 -[110h 0272 8] Base Address : 0000000000000000 -[118h 0280 8] Address Length : 0000000000000000 -[120h 0288 4] Reserved2 : 00000000 -[124h 0292 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[128h 0296 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 304 (0x130) - - 0000: 53 52 41 54 30 01 00 00 01 36 42 4F 43 48 53 20 // SRAT0....6BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 00 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 10 00 02 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 10 01 04 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 10 01 05 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 10 01 06 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 00D0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00F0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/SRAT.dimmpxm.dsl b/tests/data/acpi/q35/SRAT.dimmpxm.dsl deleted file mode 100644 index 2cfe6994f5..0000000000 --- a/tests/data/acpi/q35/SRAT.dimmpxm.dsl +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000188 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 68 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[041h 0065 1] Length : 10 - -[042h 0066 1] Proximity Domain Low(8) : 01 -[043h 0067 1] Apic ID : 01 -[044h 0068 4] Flags (decoded below) : 00000001 - Enabled : 1 -[048h 0072 1] Local Sapic EID : 00 -[049h 0073 3] Proximity Domain High(24) : 000000 -[04Ch 0076 4] Clock Domain : 00000000 - -[050h 0080 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[051h 0081 1] Length : 10 - -[052h 0082 1] Proximity Domain Low(8) : 02 -[053h 0083 1] Apic ID : 02 -[054h 0084 4] Flags (decoded below) : 00000001 - Enabled : 1 -[058h 0088 1] Local Sapic EID : 00 -[059h 0089 3] Proximity Domain High(24) : 000000 -[05Ch 0092 4] Clock Domain : 00000000 - -[060h 0096 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[061h 0097 1] Length : 10 - -[062h 0098 1] Proximity Domain Low(8) : 03 -[063h 0099 1] Apic ID : 03 -[064h 0100 4] Flags (decoded below) : 00000001 - Enabled : 1 -[068h 0104 1] Local Sapic EID : 00 -[069h 0105 3] Proximity Domain High(24) : 000000 -[06Ch 0108 4] Clock Domain : 00000000 - -[070h 0112 1] Subtable Type : 01 [Memory Affinity] -[071h 0113 1] Length : 28 - -[072h 0114 4] Proximity Domain : 00000000 -[076h 0118 2] Reserved1 : 0000 -[078h 0120 8] Base Address : 0000000000000000 -[080h 0128 8] Address Length : 00000000000A0000 -[088h 0136 4] Reserved2 : 00000000 -[08Ch 0140 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[090h 0144 8] Reserved3 : 0000000000000000 - -[098h 0152 1] Subtable Type : 01 [Memory Affinity] -[099h 0153 1] Length : 28 - -[09Ah 0154 4] Proximity Domain : 00000000 -[09Eh 0158 2] Reserved1 : 0000 -[0A0h 0160 8] Base Address : 0000000000100000 -[0A8h 0168 8] Address Length : 0000000001F00000 -[0B0h 0176 4] Reserved2 : 00000000 -[0B4h 0180 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B8h 0184 8] Reserved3 : 0000000000000000 - -[0C0h 0192 1] Subtable Type : 01 [Memory Affinity] -[0C1h 0193 1] Length : 28 - -[0C2h 0194 4] Proximity Domain : 00000001 -[0C6h 0198 2] Reserved1 : 0000 -[0C8h 0200 8] Base Address : 0000000002000000 -[0D0h 0208 8] Address Length : 0000000002000000 -[0D8h 0216 4] Reserved2 : 00000000 -[0DCh 0220 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0E0h 0224 8] Reserved3 : 0000000000000000 - -[0E8h 0232 1] Subtable Type : 01 [Memory Affinity] -[0E9h 0233 1] Length : 28 - -[0EAh 0234 4] Proximity Domain : 00000002 -[0EEh 0238 2] Reserved1 : 0000 -[0F0h 0240 8] Base Address : 0000000004000000 -[0F8h 0248 8] Address Length : 0000000002000000 -[100h 0256 4] Reserved2 : 00000000 -[104h 0260 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[108h 0264 8] Reserved3 : 0000000000000000 - -[110h 0272 1] Subtable Type : 01 [Memory Affinity] -[111h 0273 1] Length : 28 - -[112h 0274 4] Proximity Domain : 00000003 -[116h 0278 2] Reserved1 : 0000 -[118h 0280 8] Base Address : 0000000006000000 -[120h 0288 8] Address Length : 0000000002000000 -[128h 0296 4] Reserved2 : 00000000 -[12Ch 0300 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[130h 0304 8] Reserved3 : 0000000000000000 - -[138h 0312 1] Subtable Type : 01 [Memory Affinity] -[139h 0313 1] Length : 28 - -[13Ah 0314 4] Proximity Domain : 00000002 -[13Eh 0318 2] Reserved1 : 0000 -[140h 0320 8] Base Address : 0000000108000000 -[148h 0328 8] Address Length : 0000000008000000 -[150h 0336 4] Reserved2 : 00000000 -[154h 0340 4] Flags (decoded below) : 00000005 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 1 -[158h 0344 8] Reserved3 : 0000000000000000 - -[160h 0352 1] Subtable Type : 01 [Memory Affinity] -[161h 0353 1] Length : 28 - -[162h 0354 4] Proximity Domain : 00000003 -[166h 0358 2] Reserved1 : 0000 -[168h 0360 8] Base Address : 0000000100000000 -[170h 0368 8] Address Length : 00000000F8000000 -[178h 0376 4] Reserved2 : 00000000 -[17Ch 0380 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[180h 0384 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 392 (0x188) - - 0000: 53 52 41 54 88 01 00 00 01 68 42 4F 43 48 53 20 // SRAT.....hBOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 10 01 01 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 10 02 02 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 10 03 03 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0080: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0090: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00A0: 00 00 10 00 00 00 00 00 00 00 F0 01 00 00 00 00 // ................ - 00B0: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 01 28 01 00 00 00 00 00 00 00 00 02 00 00 00 00 // .(.............. - 00D0: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00 // .........(...... - 00F0: 00 00 00 04 00 00 00 00 00 00 00 02 00 00 00 00 // ................ - 0100: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0110: 01 28 03 00 00 00 00 00 00 00 00 06 00 00 00 00 // .(.............. - 0120: 00 00 00 02 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0130: 00 00 00 00 00 00 00 00 01 28 02 00 00 00 00 00 // .........(...... - 0140: 00 00 00 08 01 00 00 00 00 00 00 08 00 00 00 00 // ................ - 0150: 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0160: 01 28 03 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 0170: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0180: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/SRAT.dsl b/tests/data/acpi/q35/SRAT.dsl deleted file mode 100644 index 5f4278994e..0000000000 --- a/tests/data/acpi/q35/SRAT.dsl +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : F5 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000001 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000001 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000007F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 0000000000000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/SRAT.memhp.dsl b/tests/data/acpi/q35/SRAT.memhp.dsl deleted file mode 100644 index a5f27214eb..0000000000 --- a/tests/data/acpi/q35/SRAT.memhp.dsl +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 00000108 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : A2 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000000 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000000 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000003F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000001 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000004000000 -[0A0h 0160 8] Address Length : 0000000004000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -[0E0h 0224 1] Subtable Type : 01 [Memory Affinity] -[0E1h 0225 1] Length : 28 - -[0E2h 0226 4] Proximity Domain : 00000001 -[0E6h 0230 2] Reserved1 : 0000 -[0E8h 0232 8] Base Address : 0000000100000000 -[0F0h 0240 8] Address Length : 00000000F8000000 -[0F8h 0248 4] Reserved2 : 00000000 -[0FCh 0252 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[100h 0256 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 264 (0x108) - - 0000: 53 52 41 54 08 01 00 00 01 A2 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 03 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 01 00 00 00 00 00 00 00 00 04 00 00 00 00 // .(.............. - 00A0: 00 00 00 04 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 01 28 01 00 00 00 00 00 00 00 00 00 01 00 00 00 // .(.............. - 00F0: 00 00 00 F8 00 00 00 00 00 00 00 00 03 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 // ........ diff --git a/tests/data/acpi/q35/SRAT.mmio64.dsl b/tests/data/acpi/q35/SRAT.mmio64.dsl deleted file mode 100644 index 0065c21de4..0000000000 --- a/tests/data/acpi/q35/SRAT.mmio64.dsl +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.mmio64, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 3B -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000000 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000000 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000007F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 0000000000000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000100000000 -[0C8h 0200 8] Address Length : 00000000B8000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 53 52 41 54 E0 00 00 00 01 3B 42 4F 43 48 53 20 // SRAT.....;BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 01 00 00 00 00 00 00 B8 00 00 00 00 // ................ - 00D0: 00 00 00 00 03 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/SRAT.numamem.dsl b/tests/data/acpi/q35/SRAT.numamem.dsl deleted file mode 100644 index e8de953ae2..0000000000 --- a/tests/data/acpi/q35/SRAT.numamem.dsl +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/SRAT.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : F5 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 00 [Processor Local APIC/SAPIC Affinity] -[031h 0049 1] Length : 10 - -[032h 0050 1] Proximity Domain Low(8) : 00 -[033h 0051 1] Apic ID : 00 -[034h 0052 4] Flags (decoded below) : 00000001 - Enabled : 1 -[038h 0056 1] Local Sapic EID : 00 -[039h 0057 3] Proximity Domain High(24) : 000000 -[03Ch 0060 4] Clock Domain : 00000000 - -[040h 0064 1] Subtable Type : 01 [Memory Affinity] -[041h 0065 1] Length : 28 - -[042h 0066 4] Proximity Domain : 00000001 -[046h 0070 2] Reserved1 : 0000 -[048h 0072 8] Base Address : 0000000000000000 -[050h 0080 8] Address Length : 00000000000A0000 -[058h 0088 4] Reserved2 : 00000000 -[05Ch 0092 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[060h 0096 8] Reserved3 : 0000000000000000 - -[068h 0104 1] Subtable Type : 01 [Memory Affinity] -[069h 0105 1] Length : 28 - -[06Ah 0106 4] Proximity Domain : 00000001 -[06Eh 0110 2] Reserved1 : 0000 -[070h 0112 8] Base Address : 0000000000100000 -[078h 0120 8] Address Length : 0000000007F00000 -[080h 0128 4] Reserved2 : 00000000 -[084h 0132 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[088h 0136 8] Reserved3 : 0000000000000000 - -[090h 0144 1] Subtable Type : 01 [Memory Affinity] -[091h 0145 1] Length : 28 - -[092h 0146 4] Proximity Domain : 00000000 -[096h 0150 2] Reserved1 : 0000 -[098h 0152 8] Base Address : 0000000000000000 -[0A0h 0160 8] Address Length : 0000000000000000 -[0A8h 0168 4] Reserved2 : 00000000 -[0ACh 0172 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0B0h 0176 8] Reserved3 : 0000000000000000 - -[0B8h 0184 1] Subtable Type : 01 [Memory Affinity] -[0B9h 0185 1] Length : 28 - -[0BAh 0186 4] Proximity Domain : 00000000 -[0BEh 0190 2] Reserved1 : 0000 -[0C0h 0192 8] Base Address : 0000000000000000 -[0C8h 0200 8] Address Length : 0000000000000000 -[0D0h 0208 4] Reserved2 : 00000000 -[0D4h 0212 4] Flags (decoded below) : 00000000 - Enabled : 0 - Hot Pluggable : 0 - Non-Volatile : 0 -[0D8h 0216 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 53 52 41 54 E0 00 00 00 01 F5 42 4F 43 48 53 20 // SRAT......BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 10 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 01 28 01 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 0050: 00 00 0A 00 00 00 00 00 00 00 00 00 01 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 01 28 01 00 00 00 00 00 // .........(...... - 0070: 00 00 10 00 00 00 00 00 00 00 F0 07 00 00 00 00 // ................ - 0080: 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 01 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // .(.............. - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 01 28 00 00 00 00 00 00 // .........(...... - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/q35/SSDT.dsl b/tests/data/acpi/q35/SSDT.dsl deleted file mode 100644 index 49df22f93d..0000000000 --- a/tests/data/acpi/q35/SSDT.dsl +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/q35/SSDT.dimmpxm, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "SSDT" - * Length 0x000002DE (734) - * Revision 0x01 - * Checksum 0x46 - * OEM ID "BOCHS " - * OEM Table ID "NVDIMM" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001) -{ - Scope (\_SB) - { - Device (NVDR) - { - Name (_HID, "ACPI0012" /* NVDIMM Root Device */) // _HID: Hardware ID - Method (NCAL, 5, Serialized) - { - Local6 = MEMA /* \MEMA */ - OperationRegion (NPIO, SystemIO, 0x0A18, 0x04) - OperationRegion (NRAM, SystemMemory, Local6, 0x1000) - Field (NPIO, DWordAcc, NoLock, Preserve) - { - NTFI, 32 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - HDLE, 32, - REVS, 32, - FUNC, 32, - FARG, 32672 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - RLEN, 32, - ODAT, 32736 - } - - If ((Arg4 == Zero)) - { - Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba") - } - ElseIf ((Arg4 == 0x00010000)) - { - Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62") - } - Else - { - Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66") - } - - If (((Local6 == Zero) | (Arg0 != Local0))) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x00 // . - }) - } - - Return (Buffer (One) - { - 0x01 // . - }) - } - - HDLE = Arg4 - REVS = Arg1 - FUNC = Arg2 - If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One))) - { - Local2 = Arg3 [Zero] - Local3 = DerefOf (Local2) - FARG = Local3 - } - - NTFI = Local6 - Local1 = (RLEN - 0x04) - If ((Local1 < 0x08)) - { - Local2 = Zero - Name (TBUF, Buffer (One) - { - 0x00 // . - }) - Local7 = Buffer (Zero){} - While ((Local2 < Local1)) - { - TBUF [Zero] = DerefOf (ODAT [Local2]) - Concatenate (Local7, TBUF, Local7) - Local2++ - } - - Return (Local7) - } - - Local1 = (Local1 << 0x03) - CreateField (ODAT, Zero, Local1, OBUF) - Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */ - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero)) - } - - Name (RSTA, Zero) - Method (RFIT, 1, Serialized) - { - Name (OFST, Zero) - OFST = Arg0 - Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01) - { - OFST - }, 0x00010000) - CreateDWordField (Local0, Zero, STAU) - RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */ - If ((Zero != STAU)) - { - Return (Buffer (Zero){}) - } - - Local1 = SizeOf (Local0) - Local1 -= 0x04 - If ((Local1 == Zero)) - { - Return (Buffer (Zero){}) - } - - CreateField (Local0, 0x20, (Local1 << 0x03), BUFF) - Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */ - } - - Method (_FIT, 0, Serialized) // _FIT: Firmware Interface Table - { - Local2 = Buffer (Zero){} - Local3 = Zero - While (One) - { - Local0 = RFIT (Local3) - Local1 = SizeOf (Local0) - If ((RSTA == 0x0100)) - { - Local2 = Buffer (Zero){} - Local3 = Zero - } - Else - { - If ((Local1 == Zero)) - { - Return (Local2) - } - - Local3 += Local1 - Concatenate (Local2, Local0, Local2) - } - } - } - - Device (NV00) - { - Name (_ADR, One) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, One)) - } - } - - Device (NV01) - { - Name (_ADR, 0x02) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02)) - } - } - - Device (NV02) - { - Name (_ADR, 0x03) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03)) - } - } - } - } - - Name (MEMA, 0x07FFF000) -} - diff --git a/tests/data/acpi/q35/TPM2.dsl b/tests/data/acpi/q35/TPM2.dsl deleted file mode 100644 index 8568152ccf..0000000000 --- a/tests/data/acpi/q35/TPM2.dsl +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/TPM2.tis, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [TPM2] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "TPM2" [Trusted Platform Module hardware interface table] -[004h 0004 4] Table Length : 0000004C -[008h 0008 1] Revision : 04 -[009h 0009 1] Checksum : 72 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCTPM2" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 2] Platform Class : 0000 -[026h 0038 2] Reserved : 0000 -[028h 0040 8] Control Address : 0000000000000000 -[030h 0048 4] Start Method : 06 [Memory Mapped I/O] - -[034h 0052 12] Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00 -[040h 0064 4] Minimum Log Length : 00010000 -[044h 0068 8] Log Address : 0000000007FF0000 - -Raw Table Data: Length 76 (0x4C) - - 0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20 // TPM2L....rBOCHS - 0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43 // BXPCTPM2....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 01 00 00 00 FF 07 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/TPM2.tis.dsl b/tests/data/acpi/q35/TPM2.tis.dsl deleted file mode 100644 index 420643ab2b..0000000000 --- a/tests/data/acpi/q35/TPM2.tis.dsl +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/TPM2.tis, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [TPM2] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "TPM2" [Trusted Platform Module hardware interface table] -[004h 0004 4] Table Length : 0000004C -[008h 0008 1] Revision : 04 -[009h 0009 1] Checksum : 72 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCTPM2" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 2] Platform Class : 0000 -[026h 0038 2] Reserved : 0000 -[028h 0040 8] Control Address : 0000000000000000 -[030h 0048 4] Start Method : 06 [Memory Mapped I/O] - -[034h 0052 12] Method Parameters : 00 00 00 00 00 00 00 00 00 00 00 00 -[040h 0064 4] Minimum Log Length : 00010000 -[044h 0068 8] Log Address : 0000000007FF0000 - -Raw Table Data: Length 76 (0x4C) - - 0000: 54 50 4D 32 4C 00 00 00 04 72 42 4F 43 48 53 20 // TPM2L....rBOCHS - 0010: 42 58 50 43 54 50 4D 32 01 00 00 00 42 58 50 43 // BXPCTPM2....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 01 00 00 00 FF 07 00 00 00 00 // ............ diff --git a/tests/data/acpi/q35/WAET.acpihmat b/tests/data/acpi/q35/WAET.acpihmat deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.acpihmat.dsl b/tests/data/acpi/q35/WAET.acpihmat.dsl deleted file mode 100644 index 12a4fced5c..0000000000 --- a/tests/data/acpi/q35/WAET.acpihmat.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.acpihmat, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.bridge b/tests/data/acpi/q35/WAET.bridge deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.bridge.dsl b/tests/data/acpi/q35/WAET.bridge.dsl deleted file mode 100644 index 48effe4c6e..0000000000 --- a/tests/data/acpi/q35/WAET.bridge.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.bridge, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.cphp b/tests/data/acpi/q35/WAET.cphp deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.cphp.dsl b/tests/data/acpi/q35/WAET.cphp.dsl deleted file mode 100644 index aadebd53e8..0000000000 --- a/tests/data/acpi/q35/WAET.cphp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.cphp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.dimmpxm b/tests/data/acpi/q35/WAET.dimmpxm deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.dimmpxm.dsl b/tests/data/acpi/q35/WAET.dimmpxm.dsl deleted file mode 100644 index 7ad316b118..0000000000 --- a/tests/data/acpi/q35/WAET.dimmpxm.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.dimmpxm, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.dsl b/tests/data/acpi/q35/WAET.dsl deleted file mode 100644 index b48db4efca..0000000000 --- a/tests/data/acpi/q35/WAET.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.tis, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.ipmibt b/tests/data/acpi/q35/WAET.ipmibt deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.ipmibt.dsl b/tests/data/acpi/q35/WAET.ipmibt.dsl deleted file mode 100644 index 40cb1d5649..0000000000 --- a/tests/data/acpi/q35/WAET.ipmibt.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.ipmibt, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.memhp b/tests/data/acpi/q35/WAET.memhp deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.memhp.dsl b/tests/data/acpi/q35/WAET.memhp.dsl deleted file mode 100644 index e27f54d4dd..0000000000 --- a/tests/data/acpi/q35/WAET.memhp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.mmio64 b/tests/data/acpi/q35/WAET.mmio64 deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.mmio64.dsl b/tests/data/acpi/q35/WAET.mmio64.dsl deleted file mode 100644 index 98f3aaf569..0000000000 --- a/tests/data/acpi/q35/WAET.mmio64.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.mmio64, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.numamem b/tests/data/acpi/q35/WAET.numamem deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.numamem.dsl b/tests/data/acpi/q35/WAET.numamem.dsl deleted file mode 100644 index 738c75ca6c..0000000000 --- a/tests/data/acpi/q35/WAET.numamem.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/q35/WAET.tis b/tests/data/acpi/q35/WAET.tis deleted file mode 100644 index c2240f58dff6b2f765386b5a2e506fda4800be3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40 mcmWG{bPds9U|?YEaPoKd2v%^42yhMuiZKGkKx`1r1jGQWX$JuS diff --git a/tests/data/acpi/q35/WAET.tis.dsl b/tests/data/acpi/q35/WAET.tis.dsl deleted file mode 100644 index 869ebe2b4a..0000000000 --- a/tests/data/acpi/q35/WAET.tis.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/q35/WAET.tis, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [WAET] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "WAET" [Windows ACPI Emulated Devices Table] -[004h 0004 4] Table Length : 00000028 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 88 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCWAET" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Flags (decoded below) : 00000002 - RTC needs no INT ack : 0 - PM timer, one read only : 1 - -Raw Table Data: Length 40 (0x28) - - 0000: 57 41 45 54 28 00 00 00 01 88 42 4F 43 48 53 20 // WAET(.....BOCHS - 0010: 42 58 50 43 57 41 45 54 01 00 00 00 42 58 50 43 // BXPCWAET....BXPC - 0020: 01 00 00 00 02 00 00 00 // ........ diff --git a/tests/data/acpi/virt/APIC.dsl b/tests/data/acpi/virt/APIC.dsl deleted file mode 100644 index d334cef533..0000000000 --- a/tests/data/acpi/virt/APIC.dsl +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/APIC.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 000000A8 -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : B3 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : 00000000 -[028h 0040 4] Flags (decoded below) : 00000000 - PC-AT Compatibility : 0 - -[02Ch 0044 1] Subtable Type : 0C [Generic Interrupt Distributor] -[02Dh 0045 1] Length : 18 -[02Eh 0046 2] Reserved : 0000 -[030h 0048 4] Local GIC Hardware ID : 00000000 -[034h 0052 8] Base Address : 0000000008000000 -[03Ch 0060 4] Interrupt Base : 00000000 -[040h 0064 1] Version : 02 -[041h 0065 3] Reserved : 000000 - -[044h 0068 1] Subtable Type : 0B [Generic Interrupt Controller] -[045h 0069 1] Length : 4C -[046h 0070 2] Reserved : 0000 -[048h 0072 4] CPU Interface Number : 00000000 -[04Ch 0076 4] Processor UID : 00000000 -[050h 0080 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[054h 0084 4] Parking Protocol Version : 00000000 -[058h 0088 4] Performance Interrupt : 00000017 -[05Ch 0092 8] Parked Address : 0000000000000000 -[064h 0100 8] Base Address : 0000000008010000 -[06Ch 0108 8] Virtual GIC Base Address : 0000000008040000 -[074h 0116 8] Hypervisor GIC Base Address : 0000000008030000 -[07Ch 0124 4] Virtual GIC Interrupt : 00000000 -[080h 0128 8] Redistributor Base Address : 0000000000000000 -[088h 0136 8] ARM MPIDR : 0000000000000000 -/**** ACPI subtable terminates early - may be older version (dump table) */ - -[090h 0144 1] Subtable Type : 0D [Generic MSI Frame] -[091h 0145 1] Length : 18 -[092h 0146 2] Reserved : 0000 -[094h 0148 4] MSI Frame ID : 00000000 -[098h 0152 8] Base Address : 0000000008020000 -[0A0h 0160 4] Flags (decoded below) : 00000001 - Select SPI : 1 -[0A4h 0164 2] SPI Count : 0040 -[0A6h 0166 2] SPI Base : 0050 - -Raw Table Data: Length 168 (0xA8) - - 0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20 // APIC......BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00 // ................ - 0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 // ................ - 0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00 // .....L.......... - 0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08 // ................ - 0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00 // ................ - 00A0: 01 00 00 00 40 00 50 00 // ....@.P. diff --git a/tests/data/acpi/virt/APIC.memhp.dsl b/tests/data/acpi/virt/APIC.memhp.dsl deleted file mode 100644 index 9b86f7b984..0000000000 --- a/tests/data/acpi/virt/APIC.memhp.dsl +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/APIC.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 000000A8 -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : B3 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : 00000000 -[028h 0040 4] Flags (decoded below) : 00000000 - PC-AT Compatibility : 0 - -[02Ch 0044 1] Subtable Type : 0C [Generic Interrupt Distributor] -[02Dh 0045 1] Length : 18 -[02Eh 0046 2] Reserved : 0000 -[030h 0048 4] Local GIC Hardware ID : 00000000 -[034h 0052 8] Base Address : 0000000008000000 -[03Ch 0060 4] Interrupt Base : 00000000 -[040h 0064 1] Version : 02 -[041h 0065 3] Reserved : 000000 - -[044h 0068 1] Subtable Type : 0B [Generic Interrupt Controller] -[045h 0069 1] Length : 4C -[046h 0070 2] Reserved : 0000 -[048h 0072 4] CPU Interface Number : 00000000 -[04Ch 0076 4] Processor UID : 00000000 -[050h 0080 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[054h 0084 4] Parking Protocol Version : 00000000 -[058h 0088 4] Performance Interrupt : 00000017 -[05Ch 0092 8] Parked Address : 0000000000000000 -[064h 0100 8] Base Address : 0000000008010000 -[06Ch 0108 8] Virtual GIC Base Address : 0000000008040000 -[074h 0116 8] Hypervisor GIC Base Address : 0000000008030000 -[07Ch 0124 4] Virtual GIC Interrupt : 00000000 -[080h 0128 8] Redistributor Base Address : 0000000000000000 -[088h 0136 8] ARM MPIDR : 0000000000000000 -/**** ACPI subtable terminates early - may be older version (dump table) */ - -[090h 0144 1] Subtable Type : 0D [Generic MSI Frame] -[091h 0145 1] Length : 18 -[092h 0146 2] Reserved : 0000 -[094h 0148 4] MSI Frame ID : 00000000 -[098h 0152 8] Base Address : 0000000008020000 -[0A0h 0160 4] Flags (decoded below) : 00000001 - Select SPI : 1 -[0A4h 0164 2] SPI Count : 0040 -[0A6h 0166 2] SPI Base : 0050 - -Raw Table Data: Length 168 (0xA8) - - 0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20 // APIC......BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00 // ................ - 0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 // ................ - 0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00 // .....L.......... - 0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08 // ................ - 0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00 // ................ - 00A0: 01 00 00 00 40 00 50 00 // ....@.P. diff --git a/tests/data/acpi/virt/APIC.numamem.dsl b/tests/data/acpi/virt/APIC.numamem.dsl deleted file mode 100644 index 2d43338766..0000000000 --- a/tests/data/acpi/virt/APIC.numamem.dsl +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/APIC.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [APIC] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "APIC" [Multiple APIC Description Table (MADT)] -[004h 0004 4] Table Length : 000000A8 -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : B3 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCAPIC" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Local Apic Address : 00000000 -[028h 0040 4] Flags (decoded below) : 00000000 - PC-AT Compatibility : 0 - -[02Ch 0044 1] Subtable Type : 0C [Generic Interrupt Distributor] -[02Dh 0045 1] Length : 18 -[02Eh 0046 2] Reserved : 0000 -[030h 0048 4] Local GIC Hardware ID : 00000000 -[034h 0052 8] Base Address : 0000000008000000 -[03Ch 0060 4] Interrupt Base : 00000000 -[040h 0064 1] Version : 02 -[041h 0065 3] Reserved : 000000 - -[044h 0068 1] Subtable Type : 0B [Generic Interrupt Controller] -[045h 0069 1] Length : 4C -[046h 0070 2] Reserved : 0000 -[048h 0072 4] CPU Interface Number : 00000000 -[04Ch 0076 4] Processor UID : 00000000 -[050h 0080 4] Flags (decoded below) : 00000001 - Processor Enabled : 1 - Performance Interrupt Trigger Mode : 0 - Virtual GIC Interrupt Trigger Mode : 0 -[054h 0084 4] Parking Protocol Version : 00000000 -[058h 0088 4] Performance Interrupt : 00000017 -[05Ch 0092 8] Parked Address : 0000000000000000 -[064h 0100 8] Base Address : 0000000008010000 -[06Ch 0108 8] Virtual GIC Base Address : 0000000008040000 -[074h 0116 8] Hypervisor GIC Base Address : 0000000008030000 -[07Ch 0124 4] Virtual GIC Interrupt : 00000000 -[080h 0128 8] Redistributor Base Address : 0000000000000000 -[088h 0136 8] ARM MPIDR : 0000000000000000 -/**** ACPI subtable terminates early - may be older version (dump table) */ - -[090h 0144 1] Subtable Type : 0D [Generic MSI Frame] -[091h 0145 1] Length : 18 -[092h 0146 2] Reserved : 0000 -[094h 0148 4] MSI Frame ID : 00000000 -[098h 0152 8] Base Address : 0000000008020000 -[0A0h 0160 4] Flags (decoded below) : 00000001 - Select SPI : 1 -[0A4h 0164 2] SPI Count : 0040 -[0A6h 0166 2] SPI Base : 0050 - -Raw Table Data: Length 168 (0xA8) - - 0000: 41 50 49 43 A8 00 00 00 03 B3 42 4F 43 48 53 20 // APIC......BOCHS - 0010: 42 58 50 43 41 50 49 43 01 00 00 00 42 58 50 43 // BXPCAPIC....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 0C 18 00 00 // ................ - 0030: 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 00 // ................ - 0040: 02 00 00 00 0B 4C 00 00 00 00 00 00 00 00 00 00 // .....L.......... - 0050: 01 00 00 00 00 00 00 00 17 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 01 08 00 00 00 00 00 00 04 08 // ................ - 0070: 00 00 00 00 00 00 03 08 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 0D 18 00 00 00 00 00 00 00 00 02 08 00 00 00 00 // ................ - 00A0: 01 00 00 00 40 00 50 00 // ....@.P. diff --git a/tests/data/acpi/virt/DSDT.dsl b/tests/data/acpi/virt/DSDT.dsl deleted file mode 100644 index 58368ff44c..0000000000 --- a/tests/data/acpi/virt/DSDT.dsl +++ /dev/null @@ -1,1906 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/virt/DSDT.numamem, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001450 (5200) - * Revision 0x02 - * Checksum 0xFA - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\_SB) - { - Device (C000) - { - Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - - Device (COM0) - { - Name (_HID, "ARMH0011") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09000000, // Address Base - 0x00001000, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000021, - } - }) - } - - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09020000, // Address Base - 0x00000018, // Address Length - ) - }) - } - - Device (VR00) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000030, - } - }) - } - - Device (VR01) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000031, - } - }) - } - - Device (VR02) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000032, - } - }) - } - - Device (VR03) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000033, - } - }) - } - - Device (VR04) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000034, - } - }) - } - - Device (VR05) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000035, - } - }) - } - - Device (VR06) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000036, - } - }) - } - - Device (VR07) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000037, - } - }) - } - - Device (VR08) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x08) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000038, - } - }) - } - - Device (VR09) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x09) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000039, - } - }) - } - - Device (VR10) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003A, - } - }) - } - - Device (VR11) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003B, - } - }) - } - - Device (VR12) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003C, - } - }) - } - - Device (VR13) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003D, - } - }) - } - - Device (VR14) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003E, - } - }) - } - - Device (VR15) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003F, - } - }) - } - - Device (VR16) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000040, - } - }) - } - - Device (VR17) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000041, - } - }) - } - - Device (VR18) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000042, - } - }) - } - - Device (VR19) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000043, - } - }) - } - - Device (VR20) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000044, - } - }) - } - - Device (VR21) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000045, - } - }) - } - - Device (VR22) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000046, - } - }) - } - - Device (VR23) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000047, - } - }) - } - - Device (VR24) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x18) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000048, - } - }) - } - - Device (VR25) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x19) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000049, - } - }) - } - - Device (VR26) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004A, - } - }) - } - - Device (VR27) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004B, - } - }) - } - - Device (VR28) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004C, - } - }) - } - - Device (VR29) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004D, - } - }) - } - - Device (VR30) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004E, - } - }) - } - - Device (VR31) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004F, - } - }) - } - - Device (PCI0) - { - Name (_HID, "PNP0A08" /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, "PNP0A03" /* PCI Bus */) // _CID: Compatible ID - Name (_SEG, Zero) // _SEG: PCI Segment - Name (_BBN, Zero) // _BBN: BIOS Bus Number - Name (_UID, Zero) // _UID: Unique ID - Name (_STR, Unicode ("PCIe 0 Device")) // _STR: Description String - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_PRT, Package (0x80) // _PRT: PCI Routing Table - { - Package (0x04) - { - 0xFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSI2, - Zero - } - }) - Device (GSI0) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI1) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI2) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI3) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Method (_CBA, 0, NotSerialized) // _CBA: Configuration Base Address - { - Return (0x0000004010000000) - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (ResourceTemplate () - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x10000000, // Range Minimum - 0x3EFEFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x2EFF0000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0x0000FFFF, // Range Maximum - 0x3EFF0000, // Translation Offset - 0x00010000, // Length - ,, , TypeStatic, DenseTranslation) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000008000000000, // Range Minimum - 0x000000FFFFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000008000000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - - Name (SUPP, Zero) - Name (CTRL, Zero) - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ - CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - CTRL &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != CTRL)) - { - CDW1 |= 0x10 - } - - CDW3 = CTRL /* \_SB_.PCI0.CTRL */ - Return (Arg3) - } - Else - { - CDW1 |= 0x04 - Return (Arg3) - } - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */)) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x01 // . - }) - } - } - - Return (Buffer (One) - { - 0x00 // . - }) - } - - Device (RES0) - { - Name (_HID, "PNP0C02" /* PNP Motherboard Resources */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000004010000000, // Range Minimum - 0x000000401FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000010000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - } - - Device (\_SB.GED) - { - Name (_HID, "ACPI0013" /* Generic Event Device */) // _HID: Hardware ID - Name (_UID, "GED") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) - { - 0x00000029, - } - }) - OperationRegion (EREG, SystemMemory, 0x09080000, 0x04) - Field (EREG, DWordAcc, NoLock, WriteAsZeros) - { - ESEL, 32 - } - - Method (_EVT, 1, Serialized) // _EVT: Event - { - Local0 = ESEL /* \_SB_.GED_.ESEL */ - If (((Local0 & 0x02) == 0x02)) - { - Notify (PWRB, 0x80) // Status Change - } - } - } - - Device (PWRB) - { - Name (_HID, "PNP0C0C" /* Power Button Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - } -} - diff --git a/tests/data/acpi/virt/DSDT.memhp.dsl b/tests/data/acpi/virt/DSDT.memhp.dsl deleted file mode 100644 index 84f3c51867..0000000000 --- a/tests/data/acpi/virt/DSDT.memhp.dsl +++ /dev/null @@ -1,2215 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/virt/DSDT.memhp, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x000019A6 (6566) - * Revision 0x02 - * Checksum 0x02 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - External (_SB_.NVDR, UnknownObj) - - Scope (\_SB) - { - Device (C000) - { - Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - - Device (COM0) - { - Name (_HID, "ARMH0011") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09000000, // Address Base - 0x00001000, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000021, - } - }) - } - - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09020000, // Address Base - 0x00000018, // Address Length - ) - }) - } - - Device (VR00) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000030, - } - }) - } - - Device (VR01) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000031, - } - }) - } - - Device (VR02) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000032, - } - }) - } - - Device (VR03) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000033, - } - }) - } - - Device (VR04) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000034, - } - }) - } - - Device (VR05) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000035, - } - }) - } - - Device (VR06) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000036, - } - }) - } - - Device (VR07) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000037, - } - }) - } - - Device (VR08) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x08) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000038, - } - }) - } - - Device (VR09) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x09) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000039, - } - }) - } - - Device (VR10) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003A, - } - }) - } - - Device (VR11) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003B, - } - }) - } - - Device (VR12) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003C, - } - }) - } - - Device (VR13) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003D, - } - }) - } - - Device (VR14) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003E, - } - }) - } - - Device (VR15) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003F, - } - }) - } - - Device (VR16) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000040, - } - }) - } - - Device (VR17) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000041, - } - }) - } - - Device (VR18) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000042, - } - }) - } - - Device (VR19) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000043, - } - }) - } - - Device (VR20) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000044, - } - }) - } - - Device (VR21) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000045, - } - }) - } - - Device (VR22) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000046, - } - }) - } - - Device (VR23) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000047, - } - }) - } - - Device (VR24) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x18) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000048, - } - }) - } - - Device (VR25) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x19) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000049, - } - }) - } - - Device (VR26) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004A, - } - }) - } - - Device (VR27) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004B, - } - }) - } - - Device (VR28) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004C, - } - }) - } - - Device (VR29) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004D, - } - }) - } - - Device (VR30) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004E, - } - }) - } - - Device (VR31) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004F, - } - }) - } - - Device (PCI0) - { - Name (_HID, "PNP0A08" /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, "PNP0A03" /* PCI Bus */) // _CID: Compatible ID - Name (_SEG, Zero) // _SEG: PCI Segment - Name (_BBN, Zero) // _BBN: BIOS Bus Number - Name (_UID, "PCI0") // _UID: Unique ID - Name (_STR, Unicode ("PCIe 0 Device")) // _STR: Description String - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_PRT, Package (0x80) // _PRT: PCI Routing Table - { - Package (0x04) - { - 0xFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSI2, - Zero - } - }) - Device (GSI0) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI1) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI2) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI3) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Method (_CBA, 0, NotSerialized) // _CBA: Configuration Base Address - { - Return (0x0000004010000000) - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (ResourceTemplate () - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x10000000, // Range Minimum - 0x3EFEFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x2EFF0000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0x0000FFFF, // Range Maximum - 0x3EFF0000, // Translation Offset - 0x00010000, // Length - ,, , TypeStatic, DenseTranslation) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000008000000000, // Range Minimum - 0x000000FFFFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000008000000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - - Name (SUPP, Zero) - Name (CTRL, Zero) - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ - CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - CTRL &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != CTRL)) - { - CDW1 |= 0x10 - } - - CDW3 = CTRL /* \_SB_.PCI0.CTRL */ - Return (Arg3) - } - Else - { - CDW1 |= 0x04 - Return (Arg3) - } - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */)) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x01 // . - }) - } - } - - Return (Buffer (One) - { - 0x00 // . - }) - } - - Device (RES0) - { - Name (_HID, "PNP0C02" /* PNP Motherboard Resources */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000004010000000, // Range Minimum - 0x000000401FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000010000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - } - - Device (\_SB.GED) - { - Name (_HID, "ACPI0013" /* Generic Event Device */) // _HID: Hardware ID - Name (_UID, "GED") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) - { - 0x00000029, - } - }) - OperationRegion (EREG, SystemMemory, 0x09080000, 0x04) - Field (EREG, DWordAcc, NoLock, WriteAsZeros) - { - ESEL, 32 - } - - Method (_EVT, 1, Serialized) // _EVT: Event - { - Local0 = ESEL /* \_SB_.GED_.ESEL */ - If (((Local0 & One) == One)) - { - \_SB.MHPC.MSCN () - } - - If (((Local0 & 0x02) == 0x02)) - { - Notify (PWRB, 0x80) // Status Change - } - - If (((Local0 & 0x04) == 0x04)) - { - Notify (\_SB.NVDR, 0x80) // Status Change - } - } - } - - Device (\_SB.MHPD) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "Memory hotplug resources") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09070000, // Address Base - 0x00000018, // Address Length - ) - }) - OperationRegion (HPMR, SystemMemory, 0x09070000, 0x18) - } - - Device (\_SB.MHPC) - { - Name (_HID, "PNP0A06" /* Generic Container Device */) // _HID: Hardware ID - Name (_UID, "DIMM devices") // _UID: Unique ID - Name (MDNR, 0x03) - Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MRBL, 32, - MRBH, 32, - MRLL, 32, - MRLH, 32, - MPX, 32 - } - - Field (\_SB.MHPD.HPMR, ByteAcc, NoLock, WriteAsZeros) - { - Offset (0x14), - MES, 1, - MINS, 1, - MRMV, 1, - MEJ, 1 - } - - Field (\_SB.MHPD.HPMR, DWordAcc, NoLock, Preserve) - { - MSEL, 32, - MOEV, 32, - MOSC, 32 - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Return (0x0B) - } - - Mutex (MLCK, 0x00) - Method (MSCN, 0, NotSerialized) - { - If ((MDNR == Zero)) - { - Return (Zero) - } - - Local0 = Zero - Acquire (MLCK, 0xFFFF) - While ((Local0 < MDNR)) - { - MSEL = Local0 - If ((MINS == One)) - { - MTFY (Local0, One) - MINS = One - } - ElseIf ((MRMV == One)) - { - MTFY (Local0, 0x03) - MRMV = One - } - - Local0 += One - } - - Release (MLCK) - Return (One) - } - - Method (MRST, 1, NotSerialized) - { - Local0 = Zero - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - If ((MES == One)) - { - Local0 = 0x0F - } - - Release (MLCK) - Return (Local0) - } - - Method (MCRS, 1, Serialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Name (MR64, ResourceTemplate () - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000000000000000, // Range Minimum - 0xFFFFFFFFFFFFFFFE, // Range Maximum - 0x0000000000000000, // Translation Offset - 0xFFFFFFFFFFFFFFFF, // Length - ,, _Y00, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MIN, MINL) // _MIN: Minimum Base Address - CreateDWordField (MR64, 0x12, MINH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._LEN, LENL) // _LEN: Length - CreateDWordField (MR64, 0x2A, LENH) - CreateDWordField (MR64, \_SB.MHPC.MCRS._Y00._MAX, MAXL) // _MAX: Maximum Base Address - CreateDWordField (MR64, 0x1A, MAXH) - MINH = MRBH /* \_SB_.MHPC.MRBH */ - MINL = MRBL /* \_SB_.MHPC.MRBL */ - LENH = MRLH /* \_SB_.MHPC.MRLH */ - LENL = MRLL /* \_SB_.MHPC.MRLL */ - MAXL = (MINL + LENL) /* \_SB_.MHPC.MCRS.LENL */ - MAXH = (MINH + LENH) /* \_SB_.MHPC.MCRS.LENH */ - If ((MAXL < MINL)) - { - MAXH += One - } - - If ((MAXL < One)) - { - MAXH -= One - } - - MAXL -= One - If ((MAXH == Zero)) - { - Name (MR32, ResourceTemplate () - { - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0xFFFFFFFE, // Range Maximum - 0x00000000, // Translation Offset - 0xFFFFFFFF, // Length - ,, _Y01, AddressRangeMemory, TypeStatic) - }) - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MIN, MIN) // _MIN: Minimum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._MAX, MAX) // _MAX: Maximum Base Address - CreateDWordField (MR32, \_SB.MHPC.MCRS._Y01._LEN, LEN) // _LEN: Length - MIN = MINL /* \_SB_.MHPC.MCRS.MINL */ - MAX = MAXL /* \_SB_.MHPC.MCRS.MAXL */ - LEN = LENL /* \_SB_.MHPC.MCRS.LENL */ - Release (MLCK) - Return (MR32) /* \_SB_.MHPC.MCRS.MR32 */ - } - - Release (MLCK) - Return (MR64) /* \_SB_.MHPC.MCRS.MR64 */ - } - - Method (MPXM, 1, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - Local0 = MPX /* \_SB_.MHPC.MPX_ */ - Release (MLCK) - Return (Local0) - } - - Method (MOST, 4, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MOEV = Arg1 - MOSC = Arg2 - Release (MLCK) - } - - Method (MEJ0, 2, NotSerialized) - { - Acquire (MLCK, 0xFFFF) - MSEL = ToInteger (Arg0) - MEJ = One - Release (MLCK) - } - - Device (MP00) - { - Name (_UID, "0x00") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP01) - { - Name (_UID, "0x01") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Device (MP02) - { - Name (_UID, "0x02") // _UID: Unique ID - Name (_HID, EisaId ("PNP0C80") /* Memory Device */) // _HID: Hardware ID - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (MCRS (_UID)) - } - - Method (_STA, 0, NotSerialized) // _STA: Status - { - Return (MRST (_UID)) - } - - Method (_PXM, 0, NotSerialized) // _PXM: Device Proximity - { - Return (MPXM (_UID)) - } - - Method (_OST, 3, NotSerialized) // _OST: OSPM Status Indication - { - MOST (_UID, Arg0, Arg1, Arg2) - } - - Method (_EJ0, 1, NotSerialized) // _EJx: Eject Device, x=0-9 - { - MEJ0 (_UID, Arg0) - } - } - - Method (MTFY, 2, NotSerialized) - { - If ((Arg0 == Zero)) - { - Notify (MP00, Arg1) - } - - If ((Arg0 == One)) - { - Notify (MP01, Arg1) - } - - If ((Arg0 == 0x02)) - { - Notify (MP02, Arg1) - } - } - } - - Device (PWRB) - { - Name (_HID, "PNP0C0C" /* Power Button Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - } -} - diff --git a/tests/data/acpi/virt/DSDT.numamem.dsl b/tests/data/acpi/virt/DSDT.numamem.dsl deleted file mode 100644 index 6603d31a01..0000000000 --- a/tests/data/acpi/virt/DSDT.numamem.dsl +++ /dev/null @@ -1,1906 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/virt/DSDT.numamem, Tue Aug 4 11:14:15 2020 - * - * Original Table Header: - * Signature "DSDT" - * Length 0x00001455 (5205) - * Revision 0x02 - * Checksum 0xE1 - * OEM ID "BOCHS " - * OEM Table ID "BXPCDSDT" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "DSDT", 2, "BOCHS ", "BXPCDSDT", 0x00000001) -{ - Scope (\_SB) - { - Device (C000) - { - Name (_HID, "ACPI0007" /* Processor Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - - Device (COM0) - { - Name (_HID, "ARMH0011") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09000000, // Address Base - 0x00001000, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000021, - } - }) - } - - Device (FWCF) - { - Name (_HID, "QEMU0002") // _HID: Hardware ID - Name (_STA, 0x0B) // _STA: Status - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x09020000, // Address Base - 0x00000018, // Address Length - ) - }) - } - - Device (VR00) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000030, - } - }) - } - - Device (VR01) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000031, - } - }) - } - - Device (VR02) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000032, - } - }) - } - - Device (VR03) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000033, - } - }) - } - - Device (VR04) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x04) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000034, - } - }) - } - - Device (VR05) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x05) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000035, - } - }) - } - - Device (VR06) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x06) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000036, - } - }) - } - - Device (VR07) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x07) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A000E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000037, - } - }) - } - - Device (VR08) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x08) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000038, - } - }) - } - - Device (VR09) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x09) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000039, - } - }) - } - - Device (VR10) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003A, - } - }) - } - - Device (VR11) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003B, - } - }) - } - - Device (VR12) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003C, - } - }) - } - - Device (VR13) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003D, - } - }) - } - - Device (VR14) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003E, - } - }) - } - - Device (VR15) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x0F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A001E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000003F, - } - }) - } - - Device (VR16) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x10) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000040, - } - }) - } - - Device (VR17) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x11) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000041, - } - }) - } - - Device (VR18) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x12) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000042, - } - }) - } - - Device (VR19) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x13) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000043, - } - }) - } - - Device (VR20) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x14) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000044, - } - }) - } - - Device (VR21) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x15) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000045, - } - }) - } - - Device (VR22) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x16) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000046, - } - }) - } - - Device (VR23) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x17) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A002E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000047, - } - }) - } - - Device (VR24) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x18) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003000, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000048, - } - }) - } - - Device (VR25) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x19) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003200, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000049, - } - }) - } - - Device (VR26) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1A) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003400, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004A, - } - }) - } - - Device (VR27) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1B) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003600, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004B, - } - }) - } - - Device (VR28) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1C) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003800, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004C, - } - }) - } - - Device (VR29) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1D) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003A00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004D, - } - }) - } - - Device (VR30) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1E) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003C00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004E, - } - }) - } - - Device (VR31) - { - Name (_HID, "LNRO0005") // _HID: Hardware ID - Name (_UID, 0x1F) // _UID: Unique ID - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Memory32Fixed (ReadWrite, - 0x0A003E00, // Address Base - 0x00000200, // Address Length - ) - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x0000004F, - } - }) - } - - Device (PCI0) - { - Name (_HID, "PNP0A08" /* PCI Express Bus */) // _HID: Hardware ID - Name (_CID, "PNP0A03" /* PCI Bus */) // _CID: Compatible ID - Name (_SEG, Zero) // _SEG: PCI Segment - Name (_BBN, Zero) // _BBN: BIOS Bus Number - Name (_UID, "PCI0") // _UID: Unique ID - Name (_STR, Unicode ("PCIe 0 Device")) // _STR: Description String - Name (_CCA, One) // _CCA: Cache Coherency Attribute - Name (_PRT, Package (0x80) // _PRT: PCI Routing Table - { - Package (0x04) - { - 0xFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0xFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0xFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0001FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0002FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0003FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0004FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0005FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0006FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0007FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0008FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0009FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x000FFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0010FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0011FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0012FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0013FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0014FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0015FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0016FFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0017FFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0018FFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x0019FFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001AFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001BFFFF, - 0x03, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - Zero, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - One, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x02, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001CFFFF, - 0x03, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - Zero, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - One, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x02, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001DFFFF, - 0x03, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - Zero, - GSI2, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - One, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x02, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001EFFFF, - 0x03, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - Zero, - GSI3, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - One, - GSI0, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x02, - GSI1, - Zero - }, - - Package (0x04) - { - 0x001FFFFF, - 0x03, - GSI2, - Zero - } - }) - Device (GSI0) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000023, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI1) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, One) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000024, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI2) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x02) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000025, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Device (GSI3) - { - Name (_HID, "PNP0C0F" /* PCI Interrupt Link Device */) // _HID: Hardware ID - Name (_UID, 0x03) // _UID: Unique ID - Name (_PRS, ResourceTemplate () // _PRS: Possible Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) - { - 0x00000026, - } - }) - Method (_SRS, 1, NotSerialized) // _SRS: Set Resource Settings - { - } - } - - Method (_CBA, 0, NotSerialized) // _CBA: Configuration Base Address - { - Return (0x0000004010000000) - } - - Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings - { - Return (ResourceTemplate () - { - WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode, - 0x0000, // Granularity - 0x0000, // Range Minimum - 0x00FF, // Range Maximum - 0x0000, // Translation Offset - 0x0100, // Length - ,, ) - DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x00000000, // Granularity - 0x10000000, // Range Minimum - 0x3EFEFFFF, // Range Maximum - 0x00000000, // Translation Offset - 0x2EFF0000, // Length - ,, , AddressRangeMemory, TypeStatic) - DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange, - 0x00000000, // Granularity - 0x00000000, // Range Minimum - 0x0000FFFF, // Range Maximum - 0x3EFF0000, // Translation Offset - 0x00010000, // Length - ,, , TypeStatic, DenseTranslation) - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000008000000000, // Range Minimum - 0x000000FFFFFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000008000000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - - Name (SUPP, Zero) - Name (CTRL, Zero) - Method (_OSC, 4, NotSerialized) // _OSC: Operating System Capabilities - { - CreateDWordField (Arg3, Zero, CDW1) - If ((Arg0 == ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */)) - { - CreateDWordField (Arg3, 0x04, CDW2) - CreateDWordField (Arg3, 0x08, CDW3) - SUPP = CDW2 /* \_SB_.PCI0._OSC.CDW2 */ - CTRL = CDW3 /* \_SB_.PCI0._OSC.CDW3 */ - CTRL &= 0x1F - If ((Arg1 != One)) - { - CDW1 |= 0x08 - } - - If ((CDW3 != CTRL)) - { - CDW1 |= 0x10 - } - - CDW3 = CTRL /* \_SB_.PCI0.CTRL */ - Return (Arg3) - } - Else - { - CDW1 |= 0x04 - Return (Arg3) - } - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - If ((Arg0 == ToUUID ("e5c937d0-3553-4d7a-9117-ea4d19c3434d") /* Device Labeling Interface */)) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x01 // . - }) - } - } - - Return (Buffer (One) - { - 0x00 // . - }) - } - - Device (RES0) - { - Name (_HID, "PNP0C02" /* PNP Motherboard Resources */) // _HID: Hardware ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite, - 0x0000000000000000, // Granularity - 0x0000004010000000, // Range Minimum - 0x000000401FFFFFFF, // Range Maximum - 0x0000000000000000, // Translation Offset - 0x0000000010000000, // Length - ,, , AddressRangeMemory, TypeStatic) - }) - } - } - - Device (\_SB.GED) - { - Name (_HID, "ACPI0013" /* Generic Event Device */) // _HID: Hardware ID - Name (_UID, "GED") // _UID: Unique ID - Name (_CRS, ResourceTemplate () // _CRS: Current Resource Settings - { - Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, ) - { - 0x00000029, - } - }) - OperationRegion (EREG, SystemMemory, 0x09080000, 0x04) - Field (EREG, DWordAcc, NoLock, WriteAsZeros) - { - ESEL, 32 - } - - Method (_EVT, 1, Serialized) // _EVT: Event - { - Local0 = ESEL /* \_SB_.GED_.ESEL */ - If (((Local0 & 0x02) == 0x02)) - { - Notify (PWRB, 0x80) // Status Change - } - } - } - - Device (PWRB) - { - Name (_HID, "PNP0C0C" /* Power Button Device */) // _HID: Hardware ID - Name (_UID, Zero) // _UID: Unique ID - } - } -} - diff --git a/tests/data/acpi/virt/FACP.dsl b/tests/data/acpi/virt/FACP.dsl deleted file mode 100644 index 2c73796f89..0000000000 --- a/tests/data/acpi/virt/FACP.dsl +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/FACP.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 0000010C -[008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : BB -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 00 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0000 -[030h 0048 4] SMI Command Port : 00000000 -[034h 0052 1] ACPI Enable Value : 00 -[035h 0053 1] ACPI Disable Value : 00 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000000 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000000 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000000 -[050h 0080 4] GPE0 Block Address : 00000000 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 00 -[059h 0089 1] PM1 Control Block Length : 00 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 00 -[05Ch 0092 1] GPE0 Block Length : 00 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0000 -[062h 0098 2] C3 Latency : 0000 -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 00 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 00100000 - WBINVD instruction is operational (V1) : 0 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 0 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 0 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 0 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 0 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 1 - Low Power S0 Idle (V5) : 0 - -[074h 0116 12] Reset Register : [Generic Address Structure] -[074h 0116 1] Space ID : 00 [SystemMemory] -[075h 0117 1] Bit Width : 00 -[076h 0118 1] Bit Offset : 00 -[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] -[078h 0120 8] Address : 0000000000000000 - -[080h 0128 1] Value to cause reset : 00 -[081h 0129 2] ARM Flags (decoded below) : 0003 - PSCI Compliant : 1 - Must use HVC for PSCI : 1 - -[083h 0131 1] FADT Minor Revision : 01 -[084h 0132 8] FACS Address : 0000000000000000 -[08Ch 0140 8] DSDT Address : 0000000000000000 -[094h 0148 12] PM1A Event Block : [Generic Address Structure] -[094h 0148 1] Space ID : 00 [SystemMemory] -[095h 0149 1] Bit Width : 00 -[096h 0150 1] Bit Offset : 00 -[097h 0151 1] Encoded Access Width : 00 [Undefined/Legacy] -[098h 0152 8] Address : 0000000000000000 - -[0A0h 0160 12] PM1B Event Block : [Generic Address Structure] -[0A0h 0160 1] Space ID : 00 [SystemMemory] -[0A1h 0161 1] Bit Width : 00 -[0A2h 0162 1] Bit Offset : 00 -[0A3h 0163 1] Encoded Access Width : 00 [Undefined/Legacy] -[0A4h 0164 8] Address : 0000000000000000 - -[0ACh 0172 12] PM1A Control Block : [Generic Address Structure] -[0ACh 0172 1] Space ID : 00 [SystemMemory] -[0ADh 0173 1] Bit Width : 00 -[0AEh 0174 1] Bit Offset : 00 -[0AFh 0175 1] Encoded Access Width : 00 [Undefined/Legacy] -[0B0h 0176 8] Address : 0000000000000000 - -[0B8h 0184 12] PM1B Control Block : [Generic Address Structure] -[0B8h 0184 1] Space ID : 00 [SystemMemory] -[0B9h 0185 1] Bit Width : 00 -[0BAh 0186 1] Bit Offset : 00 -[0BBh 0187 1] Encoded Access Width : 00 [Undefined/Legacy] -[0BCh 0188 8] Address : 0000000000000000 - -[0C4h 0196 12] PM2 Control Block : [Generic Address Structure] -[0C4h 0196 1] Space ID : 00 [SystemMemory] -[0C5h 0197 1] Bit Width : 00 -[0C6h 0198 1] Bit Offset : 00 -[0C7h 0199 1] Encoded Access Width : 00 [Undefined/Legacy] -[0C8h 0200 8] Address : 0000000000000000 - -[0D0h 0208 12] PM Timer Block : [Generic Address Structure] -[0D0h 0208 1] Space ID : 00 [SystemMemory] -[0D1h 0209 1] Bit Width : 00 -[0D2h 0210 1] Bit Offset : 00 -[0D3h 0211 1] Encoded Access Width : 00 [Undefined/Legacy] -[0D4h 0212 8] Address : 0000000000000000 - -[0DCh 0220 12] GPE0 Block : [Generic Address Structure] -[0DCh 0220 1] Space ID : 00 [SystemMemory] -[0DDh 0221 1] Bit Width : 00 -[0DEh 0222 1] Bit Offset : 00 -[0DFh 0223 1] Encoded Access Width : 00 [Undefined/Legacy] -[0E0h 0224 8] Address : 0000000000000000 - -[0E8h 0232 12] GPE1 Block : [Generic Address Structure] -[0E8h 0232 1] Space ID : 00 [SystemMemory] -[0E9h 0233 1] Bit Width : 00 -[0EAh 0234 1] Bit Offset : 00 -[0EBh 0235 1] Encoded Access Width : 00 [Undefined/Legacy] -[0ECh 0236 8] Address : 0000000000000000 - - -[0F4h 0244 12] Sleep Control Register : [Generic Address Structure] -[0F4h 0244 1] Space ID : 00 [SystemMemory] -[0F5h 0245 1] Bit Width : 00 -[0F6h 0246 1] Bit Offset : 00 -[0F7h 0247 1] Encoded Access Width : 00 [Undefined/Legacy] -[0F8h 0248 8] Address : 0000000000000000 - -[100h 0256 12] Sleep Status Register : [Generic Address Structure] -[100h 0256 1] Space ID : 00 [SystemMemory] -[101h 0257 1] Bit Width : 00 -[102h 0258 1] Bit Offset : 00 -[103h 0259 1] Encoded Access Width : 00 [Undefined/Legacy] -[104h 0260 8] Address : 0000000000000000 - -/**** ACPI table terminates in the middle of a data structure! (dump table) */ - -Raw Table Data: Length 268 (0x10C) - - 0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20 // FACP......BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 00 00 00 00 // ............ diff --git a/tests/data/acpi/virt/FACP.memhp.dsl b/tests/data/acpi/virt/FACP.memhp.dsl deleted file mode 100644 index 0083b95ef7..0000000000 --- a/tests/data/acpi/virt/FACP.memhp.dsl +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/FACP.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 0000010C -[008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : BB -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 00 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0000 -[030h 0048 4] SMI Command Port : 00000000 -[034h 0052 1] ACPI Enable Value : 00 -[035h 0053 1] ACPI Disable Value : 00 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000000 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000000 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000000 -[050h 0080 4] GPE0 Block Address : 00000000 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 00 -[059h 0089 1] PM1 Control Block Length : 00 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 00 -[05Ch 0092 1] GPE0 Block Length : 00 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0000 -[062h 0098 2] C3 Latency : 0000 -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 00 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 00100000 - WBINVD instruction is operational (V1) : 0 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 0 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 0 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 0 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 0 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 1 - Low Power S0 Idle (V5) : 0 - -[074h 0116 12] Reset Register : [Generic Address Structure] -[074h 0116 1] Space ID : 00 [SystemMemory] -[075h 0117 1] Bit Width : 00 -[076h 0118 1] Bit Offset : 00 -[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] -[078h 0120 8] Address : 0000000000000000 - -[080h 0128 1] Value to cause reset : 00 -[081h 0129 2] ARM Flags (decoded below) : 0003 - PSCI Compliant : 1 - Must use HVC for PSCI : 1 - -[083h 0131 1] FADT Minor Revision : 01 -[084h 0132 8] FACS Address : 0000000000000000 -[08Ch 0140 8] DSDT Address : 0000000000000000 -[094h 0148 12] PM1A Event Block : [Generic Address Structure] -[094h 0148 1] Space ID : 00 [SystemMemory] -[095h 0149 1] Bit Width : 00 -[096h 0150 1] Bit Offset : 00 -[097h 0151 1] Encoded Access Width : 00 [Undefined/Legacy] -[098h 0152 8] Address : 0000000000000000 - -[0A0h 0160 12] PM1B Event Block : [Generic Address Structure] -[0A0h 0160 1] Space ID : 00 [SystemMemory] -[0A1h 0161 1] Bit Width : 00 -[0A2h 0162 1] Bit Offset : 00 -[0A3h 0163 1] Encoded Access Width : 00 [Undefined/Legacy] -[0A4h 0164 8] Address : 0000000000000000 - -[0ACh 0172 12] PM1A Control Block : [Generic Address Structure] -[0ACh 0172 1] Space ID : 00 [SystemMemory] -[0ADh 0173 1] Bit Width : 00 -[0AEh 0174 1] Bit Offset : 00 -[0AFh 0175 1] Encoded Access Width : 00 [Undefined/Legacy] -[0B0h 0176 8] Address : 0000000000000000 - -[0B8h 0184 12] PM1B Control Block : [Generic Address Structure] -[0B8h 0184 1] Space ID : 00 [SystemMemory] -[0B9h 0185 1] Bit Width : 00 -[0BAh 0186 1] Bit Offset : 00 -[0BBh 0187 1] Encoded Access Width : 00 [Undefined/Legacy] -[0BCh 0188 8] Address : 0000000000000000 - -[0C4h 0196 12] PM2 Control Block : [Generic Address Structure] -[0C4h 0196 1] Space ID : 00 [SystemMemory] -[0C5h 0197 1] Bit Width : 00 -[0C6h 0198 1] Bit Offset : 00 -[0C7h 0199 1] Encoded Access Width : 00 [Undefined/Legacy] -[0C8h 0200 8] Address : 0000000000000000 - -[0D0h 0208 12] PM Timer Block : [Generic Address Structure] -[0D0h 0208 1] Space ID : 00 [SystemMemory] -[0D1h 0209 1] Bit Width : 00 -[0D2h 0210 1] Bit Offset : 00 -[0D3h 0211 1] Encoded Access Width : 00 [Undefined/Legacy] -[0D4h 0212 8] Address : 0000000000000000 - -[0DCh 0220 12] GPE0 Block : [Generic Address Structure] -[0DCh 0220 1] Space ID : 00 [SystemMemory] -[0DDh 0221 1] Bit Width : 00 -[0DEh 0222 1] Bit Offset : 00 -[0DFh 0223 1] Encoded Access Width : 00 [Undefined/Legacy] -[0E0h 0224 8] Address : 0000000000000000 - -[0E8h 0232 12] GPE1 Block : [Generic Address Structure] -[0E8h 0232 1] Space ID : 00 [SystemMemory] -[0E9h 0233 1] Bit Width : 00 -[0EAh 0234 1] Bit Offset : 00 -[0EBh 0235 1] Encoded Access Width : 00 [Undefined/Legacy] -[0ECh 0236 8] Address : 0000000000000000 - - -[0F4h 0244 12] Sleep Control Register : [Generic Address Structure] -[0F4h 0244 1] Space ID : 00 [SystemMemory] -[0F5h 0245 1] Bit Width : 00 -[0F6h 0246 1] Bit Offset : 00 -[0F7h 0247 1] Encoded Access Width : 00 [Undefined/Legacy] -[0F8h 0248 8] Address : 0000000000000000 - -[100h 0256 12] Sleep Status Register : [Generic Address Structure] -[100h 0256 1] Space ID : 00 [SystemMemory] -[101h 0257 1] Bit Width : 00 -[102h 0258 1] Bit Offset : 00 -[103h 0259 1] Encoded Access Width : 00 [Undefined/Legacy] -[104h 0260 8] Address : 0000000000000000 - -/**** ACPI table terminates in the middle of a data structure! (dump table) */ - -Raw Table Data: Length 268 (0x10C) - - 0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20 // FACP......BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 00 00 00 00 // ............ diff --git a/tests/data/acpi/virt/FACP.numamem.dsl b/tests/data/acpi/virt/FACP.numamem.dsl deleted file mode 100644 index aee15bd4c2..0000000000 --- a/tests/data/acpi/virt/FACP.numamem.dsl +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/FACP.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [FACP] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "FACP" [Fixed ACPI Description Table (FADT)] -[004h 0004 4] Table Length : 0000010C -[008h 0008 1] Revision : 05 -[009h 0009 1] Checksum : BB -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCFACP" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] FACS Address : 00000000 -[028h 0040 4] DSDT Address : 00000000 -[02Ch 0044 1] Model : 00 -[02Dh 0045 1] PM Profile : 00 [Unspecified] -[02Eh 0046 2] SCI Interrupt : 0000 -[030h 0048 4] SMI Command Port : 00000000 -[034h 0052 1] ACPI Enable Value : 00 -[035h 0053 1] ACPI Disable Value : 00 -[036h 0054 1] S4BIOS Command : 00 -[037h 0055 1] P-State Control : 00 -[038h 0056 4] PM1A Event Block Address : 00000000 -[03Ch 0060 4] PM1B Event Block Address : 00000000 -[040h 0064 4] PM1A Control Block Address : 00000000 -[044h 0068 4] PM1B Control Block Address : 00000000 -[048h 0072 4] PM2 Control Block Address : 00000000 -[04Ch 0076 4] PM Timer Block Address : 00000000 -[050h 0080 4] GPE0 Block Address : 00000000 -[054h 0084 4] GPE1 Block Address : 00000000 -[058h 0088 1] PM1 Event Block Length : 00 -[059h 0089 1] PM1 Control Block Length : 00 -[05Ah 0090 1] PM2 Control Block Length : 00 -[05Bh 0091 1] PM Timer Block Length : 00 -[05Ch 0092 1] GPE0 Block Length : 00 -[05Dh 0093 1] GPE1 Block Length : 00 -[05Eh 0094 1] GPE1 Base Offset : 00 -[05Fh 0095 1] _CST Support : 00 -[060h 0096 2] C2 Latency : 0000 -[062h 0098 2] C3 Latency : 0000 -[064h 0100 2] CPU Cache Size : 0000 -[066h 0102 2] Cache Flush Stride : 0000 -[068h 0104 1] Duty Cycle Offset : 00 -[069h 0105 1] Duty Cycle Width : 00 -[06Ah 0106 1] RTC Day Alarm Index : 00 -[06Bh 0107 1] RTC Month Alarm Index : 00 -[06Ch 0108 1] RTC Century Index : 00 -[06Dh 0109 2] Boot Flags (decoded below) : 0000 - Legacy Devices Supported (V2) : 0 - 8042 Present on ports 60/64 (V2) : 0 - VGA Not Present (V4) : 0 - MSI Not Supported (V4) : 0 - PCIe ASPM Not Supported (V4) : 0 - CMOS RTC Not Present (V5) : 0 -[06Fh 0111 1] Reserved : 00 -[070h 0112 4] Flags (decoded below) : 00100000 - WBINVD instruction is operational (V1) : 0 - WBINVD flushes all caches (V1) : 0 - All CPUs support C1 (V1) : 0 - C2 works on MP system (V1) : 0 - Control Method Power Button (V1) : 0 - Control Method Sleep Button (V1) : 0 - RTC wake not in fixed reg space (V1) : 0 - RTC can wake system from S4 (V1) : 0 - 32-bit PM Timer (V1) : 0 - Docking Supported (V1) : 0 - Reset Register Supported (V2) : 0 - Sealed Case (V3) : 0 - Headless - No Video (V3) : 0 - Use native instr after SLP_TYPx (V3) : 0 - PCIEXP_WAK Bits Supported (V4) : 0 - Use Platform Timer (V4) : 0 - RTC_STS valid on S4 wake (V4) : 0 - Remote Power-on capable (V4) : 0 - Use APIC Cluster Model (V4) : 0 - Use APIC Physical Destination Mode (V4) : 0 - Hardware Reduced (V5) : 1 - Low Power S0 Idle (V5) : 0 - -[074h 0116 12] Reset Register : [Generic Address Structure] -[074h 0116 1] Space ID : 00 [SystemMemory] -[075h 0117 1] Bit Width : 00 -[076h 0118 1] Bit Offset : 00 -[077h 0119 1] Encoded Access Width : 00 [Undefined/Legacy] -[078h 0120 8] Address : 0000000000000000 - -[080h 0128 1] Value to cause reset : 00 -[081h 0129 2] ARM Flags (decoded below) : 0003 - PSCI Compliant : 1 - Must use HVC for PSCI : 1 - -[083h 0131 1] FADT Minor Revision : 01 -[084h 0132 8] FACS Address : 0000000000000000 -[08Ch 0140 8] DSDT Address : 0000000000000000 -[094h 0148 12] PM1A Event Block : [Generic Address Structure] -[094h 0148 1] Space ID : 00 [SystemMemory] -[095h 0149 1] Bit Width : 00 -[096h 0150 1] Bit Offset : 00 -[097h 0151 1] Encoded Access Width : 00 [Undefined/Legacy] -[098h 0152 8] Address : 0000000000000000 - -[0A0h 0160 12] PM1B Event Block : [Generic Address Structure] -[0A0h 0160 1] Space ID : 00 [SystemMemory] -[0A1h 0161 1] Bit Width : 00 -[0A2h 0162 1] Bit Offset : 00 -[0A3h 0163 1] Encoded Access Width : 00 [Undefined/Legacy] -[0A4h 0164 8] Address : 0000000000000000 - -[0ACh 0172 12] PM1A Control Block : [Generic Address Structure] -[0ACh 0172 1] Space ID : 00 [SystemMemory] -[0ADh 0173 1] Bit Width : 00 -[0AEh 0174 1] Bit Offset : 00 -[0AFh 0175 1] Encoded Access Width : 00 [Undefined/Legacy] -[0B0h 0176 8] Address : 0000000000000000 - -[0B8h 0184 12] PM1B Control Block : [Generic Address Structure] -[0B8h 0184 1] Space ID : 00 [SystemMemory] -[0B9h 0185 1] Bit Width : 00 -[0BAh 0186 1] Bit Offset : 00 -[0BBh 0187 1] Encoded Access Width : 00 [Undefined/Legacy] -[0BCh 0188 8] Address : 0000000000000000 - -[0C4h 0196 12] PM2 Control Block : [Generic Address Structure] -[0C4h 0196 1] Space ID : 00 [SystemMemory] -[0C5h 0197 1] Bit Width : 00 -[0C6h 0198 1] Bit Offset : 00 -[0C7h 0199 1] Encoded Access Width : 00 [Undefined/Legacy] -[0C8h 0200 8] Address : 0000000000000000 - -[0D0h 0208 12] PM Timer Block : [Generic Address Structure] -[0D0h 0208 1] Space ID : 00 [SystemMemory] -[0D1h 0209 1] Bit Width : 00 -[0D2h 0210 1] Bit Offset : 00 -[0D3h 0211 1] Encoded Access Width : 00 [Undefined/Legacy] -[0D4h 0212 8] Address : 0000000000000000 - -[0DCh 0220 12] GPE0 Block : [Generic Address Structure] -[0DCh 0220 1] Space ID : 00 [SystemMemory] -[0DDh 0221 1] Bit Width : 00 -[0DEh 0222 1] Bit Offset : 00 -[0DFh 0223 1] Encoded Access Width : 00 [Undefined/Legacy] -[0E0h 0224 8] Address : 0000000000000000 - -[0E8h 0232 12] GPE1 Block : [Generic Address Structure] -[0E8h 0232 1] Space ID : 00 [SystemMemory] -[0E9h 0233 1] Bit Width : 00 -[0EAh 0234 1] Bit Offset : 00 -[0EBh 0235 1] Encoded Access Width : 00 [Undefined/Legacy] -[0ECh 0236 8] Address : 0000000000000000 - - -[0F4h 0244 12] Sleep Control Register : [Generic Address Structure] -[0F4h 0244 1] Space ID : 00 [SystemMemory] -[0F5h 0245 1] Bit Width : 00 -[0F6h 0246 1] Bit Offset : 00 -[0F7h 0247 1] Encoded Access Width : 00 [Undefined/Legacy] -[0F8h 0248 8] Address : 0000000000000000 - -[100h 0256 12] Sleep Status Register : [Generic Address Structure] -[100h 0256 1] Space ID : 00 [SystemMemory] -[101h 0257 1] Bit Width : 00 -[102h 0258 1] Bit Offset : 00 -[103h 0259 1] Encoded Access Width : 00 [Undefined/Legacy] -[104h 0260 8] Address : 0000000000000000 - -/**** ACPI table terminates in the middle of a data structure! (dump table) */ - -Raw Table Data: Length 268 (0x10C) - - 0000: 46 41 43 50 0C 01 00 00 05 BB 42 4F 43 48 53 20 // FACP......BOCHS - 0010: 42 58 50 43 46 41 43 50 01 00 00 00 42 58 50 43 // BXPCFACP....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0070: 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 03 00 01 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0090: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00A0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0100: 00 00 00 00 00 00 00 00 00 00 00 00 // ............ diff --git a/tests/data/acpi/virt/GTDT.dsl b/tests/data/acpi/virt/GTDT.dsl deleted file mode 100644 index 1ab06dd3c2..0000000000 --- a/tests/data/acpi/virt/GTDT.dsl +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/GTDT.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [GTDT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "GTDT" [Generic Timer Description Table] -[004h 0004 4] Table Length : 00000060 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : D9 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCGTDT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Counter Block Address : 0000000000000000 -[02Ch 0044 4] Reserved : 00000000 - -[030h 0048 4] Secure EL1 Interrupt : 0000001D -[034h 0052 4] EL1 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[038h 0056 4] Non-Secure EL1 Interrupt : 0000001E -[03Ch 0060 4] NEL1 Flags (decoded below) : 00000004 - Trigger Mode : 0 - Polarity : 0 - Always On : 1 - -[040h 0064 4] Virtual Timer Interrupt : 0000001B -[044h 0068 4] VT Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[048h 0072 4] Non-Secure EL2 Interrupt : 0000001A -[04Ch 0076 4] NEL2 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 -[050h 0080 8] Counter Read Block Address : 0000000000000000 - -[058h 0088 4] Platform Timer Count : 00000000 -[05Ch 0092 4] Platform Timer Offset : 00000000 - -Raw Table Data: Length 96 (0x60) - - 0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20 // GTDT`.....BOCHS - 0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43 // BXPCGTDT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00 // ................ - 0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/GTDT.memhp.dsl b/tests/data/acpi/virt/GTDT.memhp.dsl deleted file mode 100644 index d78bb092c5..0000000000 --- a/tests/data/acpi/virt/GTDT.memhp.dsl +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/GTDT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [GTDT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "GTDT" [Generic Timer Description Table] -[004h 0004 4] Table Length : 00000060 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : D9 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCGTDT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Counter Block Address : 0000000000000000 -[02Ch 0044 4] Reserved : 00000000 - -[030h 0048 4] Secure EL1 Interrupt : 0000001D -[034h 0052 4] EL1 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[038h 0056 4] Non-Secure EL1 Interrupt : 0000001E -[03Ch 0060 4] NEL1 Flags (decoded below) : 00000004 - Trigger Mode : 0 - Polarity : 0 - Always On : 1 - -[040h 0064 4] Virtual Timer Interrupt : 0000001B -[044h 0068 4] VT Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[048h 0072 4] Non-Secure EL2 Interrupt : 0000001A -[04Ch 0076 4] NEL2 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 -[050h 0080 8] Counter Read Block Address : 0000000000000000 - -[058h 0088 4] Platform Timer Count : 00000000 -[05Ch 0092 4] Platform Timer Offset : 00000000 - -Raw Table Data: Length 96 (0x60) - - 0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20 // GTDT`.....BOCHS - 0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43 // BXPCGTDT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00 // ................ - 0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/GTDT.numamem.dsl b/tests/data/acpi/virt/GTDT.numamem.dsl deleted file mode 100644 index 5c3c2a83db..0000000000 --- a/tests/data/acpi/virt/GTDT.numamem.dsl +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/GTDT.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [GTDT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "GTDT" [Generic Timer Description Table] -[004h 0004 4] Table Length : 00000060 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : D9 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCGTDT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Counter Block Address : 0000000000000000 -[02Ch 0044 4] Reserved : 00000000 - -[030h 0048 4] Secure EL1 Interrupt : 0000001D -[034h 0052 4] EL1 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[038h 0056 4] Non-Secure EL1 Interrupt : 0000001E -[03Ch 0060 4] NEL1 Flags (decoded below) : 00000004 - Trigger Mode : 0 - Polarity : 0 - Always On : 1 - -[040h 0064 4] Virtual Timer Interrupt : 0000001B -[044h 0068 4] VT Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 - -[048h 0072 4] Non-Secure EL2 Interrupt : 0000001A -[04Ch 0076 4] NEL2 Flags (decoded below) : 00000000 - Trigger Mode : 0 - Polarity : 0 - Always On : 0 -[050h 0080 8] Counter Read Block Address : 0000000000000000 - -[058h 0088 4] Platform Timer Count : 00000000 -[05Ch 0092 4] Platform Timer Offset : 00000000 - -Raw Table Data: Length 96 (0x60) - - 0000: 47 54 44 54 60 00 00 00 02 D9 42 4F 43 48 53 20 // GTDT`.....BOCHS - 0010: 42 58 50 43 47 54 44 54 01 00 00 00 42 58 50 43 // BXPCGTDT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 1D 00 00 00 00 00 00 00 1E 00 00 00 04 00 00 00 // ................ - 0040: 1B 00 00 00 00 00 00 00 1A 00 00 00 00 00 00 00 // ................ - 0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/MCFG.dsl b/tests/data/acpi/virt/MCFG.dsl deleted file mode 100644 index f09c86f487..0000000000 --- a/tests/data/acpi/virt/MCFG.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/MCFG.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 4F -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 0000004010000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20 // MCFG<....OBOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 // ................ - 0030: 40 00 00 00 00 00 00 FF 00 00 00 00 // @........... diff --git a/tests/data/acpi/virt/MCFG.memhp.dsl b/tests/data/acpi/virt/MCFG.memhp.dsl deleted file mode 100644 index b03a6384e8..0000000000 --- a/tests/data/acpi/virt/MCFG.memhp.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/MCFG.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 4F -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 0000004010000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20 // MCFG<....OBOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 // ................ - 0030: 40 00 00 00 00 00 00 FF 00 00 00 00 // @........... diff --git a/tests/data/acpi/virt/MCFG.numamem.dsl b/tests/data/acpi/virt/MCFG.numamem.dsl deleted file mode 100644 index 303df803f5..0000000000 --- a/tests/data/acpi/virt/MCFG.numamem.dsl +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/MCFG.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [MCFG] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "MCFG" [Memory Mapped Configuration table] -[004h 0004 4] Table Length : 0000003C -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 4F -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCMCFG" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Reserved : 0000000000000000 - -[02Ch 0044 8] Base Address : 0000004010000000 -[034h 0052 2] Segment Group Number : 0000 -[036h 0054 1] Start Bus Number : 00 -[037h 0055 1] End Bus Number : FF -[038h 0056 4] Reserved : 00000000 - -Raw Table Data: Length 60 (0x3C) - - 0000: 4D 43 46 47 3C 00 00 00 01 4F 42 4F 43 48 53 20 // MCFG<....OBOCHS - 0010: 42 58 50 43 4D 43 46 47 01 00 00 00 42 58 50 43 // BXPCMCFG....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 10 // ................ - 0030: 40 00 00 00 00 00 00 FF 00 00 00 00 // @........... diff --git a/tests/data/acpi/virt/NFIT.dsl b/tests/data/acpi/virt/NFIT.dsl deleted file mode 100644 index 947ba0f6a4..0000000000 --- a/tests/data/acpi/virt/NFIT.dsl +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/NFIT.memhp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : D1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000001 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000088000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20 // NFIT......BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/NFIT.memhp.dsl b/tests/data/acpi/virt/NFIT.memhp.dsl deleted file mode 100644 index 84511bff96..0000000000 --- a/tests/data/acpi/virt/NFIT.memhp.dsl +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/NFIT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [NFIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "NFIT" [NVDIMM Firmware Interface Table] -[004h 0004 4] Table Length : 000000E0 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : D1 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCNFIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Reserved : 00000000 - -[028h 0040 2] Subtable Type : 0000 [System Physical Address Range] -[02Ah 0042 2] Length : 0038 - -[02Ch 0044 2] Range Index : 0004 -[02Eh 0046 2] Flags (decoded below) : 0003 - Add/Online Operation Only : 1 - Proximity Domain Valid : 1 -[030h 0048 4] Reserved : 00000000 -[034h 0052 4] Proximity Domain : 00000001 -[038h 0056 16] Region Type GUID : 66F0D379-B4F3-4074-AC43-0D3318B78CDB -[048h 0072 8] Address Range Base : 0000000088000000 -[050h 0080 8] Address Range Length : 0000000008000000 -[058h 0088 8] Memory Map Attribute : 0000000000008008 - -[060h 0096 2] Subtable Type : 0001 [Memory Range Map] -[062h 0098 2] Length : 0030 - -[064h 0100 4] Device Handle : 00000002 -[068h 0104 2] Physical Id : 0000 -[06Ah 0106 2] Region Id : 0000 -[06Ch 0108 2] Range Index : 0004 -[06Eh 0110 2] Control Region Index : 0005 -[070h 0112 8] Region Size : 0000000008000000 -[078h 0120 8] Region Offset : 0000000000000000 -[080h 0128 8] Address Region Base : 0000000000000000 -[088h 0136 2] Interleave Index : 0000 -[08Ah 0138 2] Interleave Ways : 0001 -[08Ch 0140 2] Flags : 0000 - Save to device failed : 0 - Restore from device failed : 0 - Platform flush failed : 0 - Device not armed : 0 - Health events observed : 0 - Health events enabled : 0 - Mapping failed : 0 -[08Eh 0142 2] Reserved : 0000 - -[090h 0144 2] Subtable Type : 0004 [NVDIMM Control Region] -[092h 0146 2] Length : 0050 - -[094h 0148 2] Region Index : 0005 -[096h 0150 2] Vendor Id : 8086 -[098h 0152 2] Device Id : 0001 -[09Ah 0154 2] Revision Id : 0001 -[09Ch 0156 2] Subsystem Vendor Id : 0000 -[09Eh 0158 2] Subsystem Device Id : 0000 -[0A0h 0160 2] Subsystem Revision Id : 0000 -[0A2h 0162 1] Valid Fields : 00 -[0A3h 0163 1] Manufacturing Location : 00 -[0A4h 0164 2] Manufacturing Date : 0000 -[0A6h 0166 2] Reserved : 0000 -[0A8h 0168 4] Serial Number : 00123457 -[0ACh 0172 2] Code : 0301 -[0AEh 0174 2] Window Count : 0000 -[0B0h 0176 8] Window Size : 0000000000000000 -[0B8h 0184 8] Command Offset : 0000000000000000 -[0C0h 0192 8] Command Size : 0000000000000000 -[0C8h 0200 8] Status Offset : 0000000000000000 -[0D0h 0208 8] Status Size : 0000000000000000 -[0D8h 0216 2] Flags : 0000 - Windows buffered : 0 -[0DAh 0218 6] Reserved1 : 000000000000 - -Raw Table Data: Length 224 (0xE0) - - 0000: 4E 46 49 54 E0 00 00 00 01 D1 42 4F 43 48 53 20 // NFIT......BOCHS - 0010: 42 58 50 43 4E 46 49 54 01 00 00 00 42 58 50 43 // BXPCNFIT....BXPC - 0020: 01 00 00 00 00 00 00 00 00 00 38 00 04 00 03 00 // ..........8..... - 0030: 00 00 00 00 01 00 00 00 79 D3 F0 66 F3 B4 74 40 // ........y..f..t@ - 0040: AC 43 0D 33 18 B7 8C DB 00 00 00 88 00 00 00 00 // .C.3............ - 0050: 00 00 00 08 00 00 00 00 08 80 00 00 00 00 00 00 // ................ - 0060: 01 00 30 00 02 00 00 00 00 00 00 00 04 00 05 00 // ..0............. - 0070: 00 00 00 08 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0080: 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0090: 04 00 50 00 05 00 86 80 01 00 01 00 00 00 00 00 // ..P............. - 00A0: 00 00 00 00 00 00 00 00 57 34 12 00 01 03 00 00 // ........W4...... - 00B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00C0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ - 00D0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/SLIT.dsl b/tests/data/acpi/virt/SLIT.dsl deleted file mode 100644 index 34276fca96..0000000000 --- a/tests/data/acpi/virt/SLIT.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SLIT.memhp, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/virt/SLIT.memhp.dsl b/tests/data/acpi/virt/SLIT.memhp.dsl deleted file mode 100644 index a17f948af2..0000000000 --- a/tests/data/acpi/virt/SLIT.memhp.dsl +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SLIT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SLIT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SLIT" [System Locality Information Table] -[004h 0004 4] Table Length : 00000030 -[008h 0008 1] Revision : 01 -[009h 0009 1] Checksum : 2C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSLIT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 8] Localities : 0000000000000002 -[02Ch 0044 2] Locality 0 : 0A 15 -[02Eh 0046 2] Locality 1 : 15 0A - -Raw Table Data: Length 48 (0x30) - - 0000: 53 4C 49 54 30 00 00 00 01 2C 42 4F 43 48 53 20 // SLIT0....,BOCHS - 0010: 42 58 50 43 53 4C 49 54 01 00 00 00 42 58 50 43 // BXPCSLIT....BXPC - 0020: 01 00 00 00 02 00 00 00 00 00 00 00 0A 15 15 0A // ................ diff --git a/tests/data/acpi/virt/SPCR.dsl b/tests/data/acpi/virt/SPCR.dsl deleted file mode 100644 index 3c271412cf..0000000000 --- a/tests/data/acpi/virt/SPCR.dsl +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SPCR.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SPCR] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SPCR" [Serial Port Console Redirection table] -[004h 0004 4] Table Length : 00000050 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 13 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSPCR" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 1] Interface Type : 03 -[025h 0037 3] Reserved : 000000 - -[028h 0040 12] Serial Port Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 08 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 01 [Byte Access:8] -[02Ch 0044 8] Address : 0000000009000000 - -[034h 0052 1] Interrupt Type : 08 -[035h 0053 1] PCAT-compatible IRQ : 00 -[036h 0054 4] Interrupt : 00000021 -[03Ah 0058 1] Baud Rate : 03 -[03Bh 0059 1] Parity : 00 -[03Ch 0060 1] Stop Bits : 01 -[03Dh 0061 1] Flow Control : 02 -[03Eh 0062 1] Terminal Type : 00 -[04Ch 0076 1] Reserved : 00 -[040h 0064 2] PCI Device ID : FFFF -[042h 0066 2] PCI Vendor ID : FFFF -[044h 0068 1] PCI Bus : 00 -[045h 0069 1] PCI Device : 00 -[046h 0070 1] PCI Function : 00 -[047h 0071 4] PCI Flags : 00000000 -[04Bh 0075 1] PCI Segment : 00 -[04Ch 0076 4] Reserved : 00000000 - -Raw Table Data: Length 80 (0x50) - - 0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20 // SPCRP.....BOCHS - 0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43 // BXPCSPCR....BXPC - 0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09 // ................ - 0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00 // ......!......... - 0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/SPCR.memhp.dsl b/tests/data/acpi/virt/SPCR.memhp.dsl deleted file mode 100644 index 81e00457cc..0000000000 --- a/tests/data/acpi/virt/SPCR.memhp.dsl +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SPCR.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SPCR] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SPCR" [Serial Port Console Redirection table] -[004h 0004 4] Table Length : 00000050 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 13 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSPCR" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 1] Interface Type : 03 -[025h 0037 3] Reserved : 000000 - -[028h 0040 12] Serial Port Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 08 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 01 [Byte Access:8] -[02Ch 0044 8] Address : 0000000009000000 - -[034h 0052 1] Interrupt Type : 08 -[035h 0053 1] PCAT-compatible IRQ : 00 -[036h 0054 4] Interrupt : 00000021 -[03Ah 0058 1] Baud Rate : 03 -[03Bh 0059 1] Parity : 00 -[03Ch 0060 1] Stop Bits : 01 -[03Dh 0061 1] Flow Control : 02 -[03Eh 0062 1] Terminal Type : 00 -[04Ch 0076 1] Reserved : 00 -[040h 0064 2] PCI Device ID : FFFF -[042h 0066 2] PCI Vendor ID : FFFF -[044h 0068 1] PCI Bus : 00 -[045h 0069 1] PCI Device : 00 -[046h 0070 1] PCI Function : 00 -[047h 0071 4] PCI Flags : 00000000 -[04Bh 0075 1] PCI Segment : 00 -[04Ch 0076 4] Reserved : 00000000 - -Raw Table Data: Length 80 (0x50) - - 0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20 // SPCRP.....BOCHS - 0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43 // BXPCSPCR....BXPC - 0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09 // ................ - 0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00 // ......!......... - 0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/SPCR.numamem.dsl b/tests/data/acpi/virt/SPCR.numamem.dsl deleted file mode 100644 index faf6729797..0000000000 --- a/tests/data/acpi/virt/SPCR.numamem.dsl +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SPCR.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SPCR] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SPCR" [Serial Port Console Redirection table] -[004h 0004 4] Table Length : 00000050 -[008h 0008 1] Revision : 02 -[009h 0009 1] Checksum : 13 -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSPCR" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 1] Interface Type : 03 -[025h 0037 3] Reserved : 000000 - -[028h 0040 12] Serial Port Register : [Generic Address Structure] -[028h 0040 1] Space ID : 00 [SystemMemory] -[029h 0041 1] Bit Width : 08 -[02Ah 0042 1] Bit Offset : 00 -[02Bh 0043 1] Encoded Access Width : 01 [Byte Access:8] -[02Ch 0044 8] Address : 0000000009000000 - -[034h 0052 1] Interrupt Type : 08 -[035h 0053 1] PCAT-compatible IRQ : 00 -[036h 0054 4] Interrupt : 00000021 -[03Ah 0058 1] Baud Rate : 03 -[03Bh 0059 1] Parity : 00 -[03Ch 0060 1] Stop Bits : 01 -[03Dh 0061 1] Flow Control : 02 -[03Eh 0062 1] Terminal Type : 00 -[04Ch 0076 1] Reserved : 00 -[040h 0064 2] PCI Device ID : FFFF -[042h 0066 2] PCI Vendor ID : FFFF -[044h 0068 1] PCI Bus : 00 -[045h 0069 1] PCI Device : 00 -[046h 0070 1] PCI Function : 00 -[047h 0071 4] PCI Flags : 00000000 -[04Bh 0075 1] PCI Segment : 00 -[04Ch 0076 4] Reserved : 00000000 - -Raw Table Data: Length 80 (0x50) - - 0000: 53 50 43 52 50 00 00 00 02 13 42 4F 43 48 53 20 // SPCRP.....BOCHS - 0010: 42 58 50 43 53 50 43 52 01 00 00 00 42 58 50 43 // BXPCSPCR....BXPC - 0020: 01 00 00 00 03 00 00 00 00 08 00 01 00 00 00 09 // ................ - 0030: 00 00 00 00 08 00 21 00 00 00 03 00 01 02 00 00 // ......!......... - 0040: FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 // ................ diff --git a/tests/data/acpi/virt/SRAT.dsl b/tests/data/acpi/virt/SRAT.dsl deleted file mode 100644 index f267aabc67..0000000000 --- a/tests/data/acpi/virt/SRAT.dsl +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SRAT.numamem, Mon Sep 28 17:24:38 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 0000006A -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : AB -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 03 [GICC Affinity] -[031h 0049 1] Length : 12 - -[032h 0050 4] Proximity Domain : 00000000 -[036h 0054 4] Acpi Processor UID : 00000000 -[03Ah 0058 4] Flags (decoded below) : 00000001 - Enabled : 1 -[03Eh 0062 4] Clock Domain : 00000000 - -[042h 0066 1] Subtable Type : 01 [Memory Affinity] -[043h 0067 1] Length : 28 - -[044h 0068 4] Proximity Domain : 00000000 -[048h 0072 2] Reserved1 : 0000 -[04Ah 0074 8] Base Address : 0000000040000000 -[052h 0082 8] Address Length : 0000000008000000 -[05Ah 0090 4] Reserved2 : 00000000 -[05Eh 0094 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[062h 0098 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 106 (0x6A) - - 0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20 // SRATj.....BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00 // ...(.........@.. - 0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 // .......... diff --git a/tests/data/acpi/virt/SRAT.memhp.dsl b/tests/data/acpi/virt/SRAT.memhp.dsl deleted file mode 100644 index 3f311e6be0..0000000000 --- a/tests/data/acpi/virt/SRAT.memhp.dsl +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SRAT.memhp, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 000000E2 -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : 5C -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 03 [GICC Affinity] -[031h 0049 1] Length : 12 - -[032h 0050 4] Proximity Domain : 00000000 -[036h 0054 4] Acpi Processor UID : 00000000 -[03Ah 0058 4] Flags (decoded below) : 00000001 - Enabled : 1 -[03Eh 0062 4] Clock Domain : 00000000 - -[042h 0066 1] Subtable Type : 01 [Memory Affinity] -[043h 0067 1] Length : 28 - -[044h 0068 4] Proximity Domain : 00000000 -[048h 0072 2] Reserved1 : 0000 -[04Ah 0074 8] Base Address : 0000000040000000 -[052h 0082 8] Address Length : 0000000008000000 -[05Ah 0090 4] Reserved2 : 00000000 -[05Eh 0094 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[062h 0098 8] Reserved3 : 0000000000000000 - -[06Ah 0106 1] Subtable Type : 01 [Memory Affinity] -[06Bh 0107 1] Length : 28 - -[06Ch 0108 4] Proximity Domain : 00000001 -[070h 0112 2] Reserved1 : 0000 -[072h 0114 8] Base Address : 0000000048000000 -[07Ah 0122 8] Address Length : 0000000008000000 -[082h 0130 4] Reserved2 : 00000000 -[086h 0134 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[08Ah 0138 8] Reserved3 : 0000000000000000 - -[092h 0146 1] Subtable Type : 01 [Memory Affinity] -[093h 0147 1] Length : 28 - -[094h 0148 4] Proximity Domain : 00000001 -[098h 0152 2] Reserved1 : 0000 -[09Ah 0154 8] Base Address : 0000000088000000 -[0A2h 0162 8] Address Length : 0000000008000000 -[0AAh 0170 4] Reserved2 : 00000000 -[0AEh 0174 4] Flags (decoded below) : 00000005 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 1 -[0B2h 0178 8] Reserved3 : 0000000000000000 - -[0BAh 0186 1] Subtable Type : 01 [Memory Affinity] -[0BBh 0187 1] Length : 28 - -[0BCh 0188 4] Proximity Domain : 00000001 -[0C0h 0192 2] Reserved1 : 0000 -[0C2h 0194 8] Base Address : 0000000080000000 -[0CAh 0202 8] Address Length : 00000000F0000000 -[0D2h 0210 4] Reserved2 : 00000000 -[0D6h 0214 4] Flags (decoded below) : 00000003 - Enabled : 1 - Hot Pluggable : 1 - Non-Volatile : 0 -[0DAh 0218 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 226 (0xE2) - - 0000: 53 52 41 54 E2 00 00 00 03 5C 42 4F 43 48 53 20 // SRAT.....\BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00 // ...(.........@.. - 0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00 // ...........(.... - 0070: 00 00 00 00 00 48 00 00 00 00 00 00 00 08 00 00 // .....H.......... - 0080: 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 // ................ - 0090: 00 00 01 28 01 00 00 00 00 00 00 00 00 88 00 00 // ...(............ - 00A0: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 05 00 // ................ - 00B0: 00 00 00 00 00 00 00 00 00 00 01 28 01 00 00 00 // ...........(.... - 00C0: 00 00 00 00 00 80 00 00 00 00 00 00 00 F0 00 00 // ................ - 00D0: 00 00 00 00 00 00 03 00 00 00 00 00 00 00 00 00 // ................ - 00E0: 00 00 // .. diff --git a/tests/data/acpi/virt/SRAT.numamem.dsl b/tests/data/acpi/virt/SRAT.numamem.dsl deleted file mode 100644 index b6e59b1af0..0000000000 --- a/tests/data/acpi/virt/SRAT.numamem.dsl +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembly of tests/data/acpi/virt/SRAT.numamem, Tue Aug 4 11:14:15 2020 - * - * ACPI Data Table [SRAT] - * - * Format: [HexOffset DecimalOffset ByteLength] FieldName : FieldValue - */ - -[000h 0000 4] Signature : "SRAT" [System Resource Affinity Table] -[004h 0004 4] Table Length : 0000006A -[008h 0008 1] Revision : 03 -[009h 0009 1] Checksum : AB -[00Ah 0010 6] Oem ID : "BOCHS " -[010h 0016 8] Oem Table ID : "BXPCSRAT" -[018h 0024 4] Oem Revision : 00000001 -[01Ch 0028 4] Asl Compiler ID : "BXPC" -[020h 0032 4] Asl Compiler Revision : 00000001 - -[024h 0036 4] Table Revision : 00000001 -[028h 0040 8] Reserved : 0000000000000000 - -[030h 0048 1] Subtable Type : 03 [GICC Affinity] -[031h 0049 1] Length : 12 - -[032h 0050 4] Proximity Domain : 00000000 -[036h 0054 4] Acpi Processor UID : 00000000 -[03Ah 0058 4] Flags (decoded below) : 00000001 - Enabled : 1 -[03Eh 0062 4] Clock Domain : 00000000 - -[042h 0066 1] Subtable Type : 01 [Memory Affinity] -[043h 0067 1] Length : 28 - -[044h 0068 4] Proximity Domain : 00000000 -[048h 0072 2] Reserved1 : 0000 -[04Ah 0074 8] Base Address : 0000000040000000 -[052h 0082 8] Address Length : 0000000008000000 -[05Ah 0090 4] Reserved2 : 00000000 -[05Eh 0094 4] Flags (decoded below) : 00000001 - Enabled : 1 - Hot Pluggable : 0 - Non-Volatile : 0 -[062h 0098 8] Reserved3 : 0000000000000000 - -Raw Table Data: Length 106 (0x6A) - - 0000: 53 52 41 54 6A 00 00 00 03 AB 42 4F 43 48 53 20 // SRATj.....BOCHS - 0010: 42 58 50 43 53 52 41 54 01 00 00 00 42 58 50 43 // BXPCSRAT....BXPC - 0020: 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 // ................ - 0030: 03 12 00 00 00 00 00 00 00 00 01 00 00 00 00 00 // ................ - 0040: 00 00 01 28 00 00 00 00 00 00 00 00 00 40 00 00 // ...(.........@.. - 0050: 00 00 00 00 00 08 00 00 00 00 00 00 00 00 01 00 // ................ - 0060: 00 00 00 00 00 00 00 00 00 00 // .......... diff --git a/tests/data/acpi/virt/SSDT.dsl b/tests/data/acpi/virt/SSDT.dsl deleted file mode 100644 index cb220787b4..0000000000 --- a/tests/data/acpi/virt/SSDT.dsl +++ /dev/null @@ -1,205 +0,0 @@ -/* - * Intel ACPI Component Architecture - * AML/ASL+ Disassembler version 20190509 (64-bit version) - * Copyright (c) 2000 - 2019 Intel Corporation - * - * Disassembling to symbolic ASL+ operators - * - * Disassembly of tests/data/acpi/virt/SSDT.memhp, Mon Sep 28 17:24:38 2020 - * - * Original Table Header: - * Signature "SSDT" - * Length 0x000002E0 (736) - * Revision 0x01 - * Checksum 0x3F - * OEM ID "BOCHS " - * OEM Table ID "NVDIMM" - * OEM Revision 0x00000001 (1) - * Compiler ID "BXPC" - * Compiler Version 0x00000001 (1) - */ -DefinitionBlock ("", "SSDT", 1, "BOCHS ", "NVDIMM", 0x00000001) -{ - Scope (\_SB) - { - Device (NVDR) - { - Name (_HID, "ACPI0012" /* NVDIMM Root Device */) // _HID: Hardware ID - Method (NCAL, 5, Serialized) - { - Local6 = MEMA /* \MEMA */ - OperationRegion (NPIO, SystemMemory, 0x09090000, 0x04) - OperationRegion (NRAM, SystemMemory, Local6, 0x1000) - Field (NPIO, DWordAcc, NoLock, Preserve) - { - NTFI, 32 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - HDLE, 32, - REVS, 32, - FUNC, 32, - FARG, 32672 - } - - Field (NRAM, DWordAcc, NoLock, Preserve) - { - RLEN, 32, - ODAT, 32736 - } - - If ((Arg4 == Zero)) - { - Local0 = ToUUID ("2f10e7a4-9e91-11e4-89d3-123b93f75cba") - } - ElseIf ((Arg4 == 0x00010000)) - { - Local0 = ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62") - } - Else - { - Local0 = ToUUID ("4309ac30-0d11-11e4-9191-0800200c9a66") - } - - If (((Local6 == Zero) | (Arg0 != Local0))) - { - If ((Arg2 == Zero)) - { - Return (Buffer (One) - { - 0x00 // . - }) - } - - Return (Buffer (One) - { - 0x01 // . - }) - } - - HDLE = Arg4 - REVS = Arg1 - FUNC = Arg2 - If (((ObjectType (Arg3) == 0x04) & (SizeOf (Arg3) == One))) - { - Local2 = Arg3 [Zero] - Local3 = DerefOf (Local2) - FARG = Local3 - } - - NTFI = Local6 - Local1 = (RLEN - 0x04) - If ((Local1 < 0x08)) - { - Local2 = Zero - Name (TBUF, Buffer (One) - { - 0x00 // . - }) - Local7 = Buffer (Zero){} - While ((Local2 < Local1)) - { - TBUF [Zero] = DerefOf (ODAT [Local2]) - Concatenate (Local7, TBUF, Local7) - Local2++ - } - - Return (Local7) - } - - Local1 = (Local1 << 0x03) - CreateField (ODAT, Zero, Local1, OBUF) - Return (OBUF) /* \_SB_.NVDR.NCAL.OBUF */ - } - - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, Zero)) - } - - Name (RSTA, Zero) - Method (RFIT, 1, Serialized) - { - Name (OFST, Zero) - OFST = Arg0 - Local0 = NCAL (ToUUID ("648b9cf2-cda1-4312-8ad9-49c4af32bd62"), One, One, Package (0x01) - { - OFST - }, 0x00010000) - CreateDWordField (Local0, Zero, STAU) - RSTA = STAU /* \_SB_.NVDR.RFIT.STAU */ - If ((Zero != STAU)) - { - Return (Buffer (Zero){}) - } - - Local1 = SizeOf (Local0) - Local1 -= 0x04 - If ((Local1 == Zero)) - { - Return (Buffer (Zero){}) - } - - CreateField (Local0, 0x20, (Local1 << 0x03), BUFF) - Return (BUFF) /* \_SB_.NVDR.RFIT.BUFF */ - } - - Method (_FIT, 0, Serialized) // _FIT: Firmware Interface Table - { - Local2 = Buffer (Zero){} - Local3 = Zero - While (One) - { - Local0 = RFIT (Local3) - Local1 = SizeOf (Local0) - If ((RSTA == 0x0100)) - { - Local2 = Buffer (Zero){} - Local3 = Zero - } - Else - { - If ((Local1 == Zero)) - { - Return (Local2) - } - - Local3 += Local1 - Concatenate (Local2, Local0, Local2) - } - } - } - - Device (NV00) - { - Name (_ADR, One) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, One)) - } - } - - Device (NV01) - { - Name (_ADR, 0x02) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x02)) - } - } - - Device (NV02) - { - Name (_ADR, 0x03) // _ADR: Address - Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method - { - Return (NCAL (Arg0, Arg1, Arg2, Arg3, 0x03)) - } - } - } - } - - Name (MEMA, 0x43D10000) -} - diff --git a/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw b/tests/data/uefi-boot-images/bios-tables-test.x86_64.iso.raw deleted file mode 100644 index bd43ba50a3b25bdf4108cf920a26acc93cc45555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 425984 zcmeI*4R}=bo#^p1Kp>zvX%!2$>On)BC?OL-Bq}zO7dS&FBo9eMiwa{hfhuIE$g+xC@;QTQCn;4R#CB?bg+Wk23)V^{(k42 z$-7n2K5h5;&Z9YR|JTp?znv437zQ5%5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~ z0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY** z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z009ILKmY**5I_I{1Q0*~0R#|0009IL@RXJNd_^837+6zxrTOlkvhuZ6mG6Gp%t#(| zcHB+o?8L3dFg*Idk)3VKaxTw0V3k|9|p=PyhrF zKmY**5I_I{1Q0*~0R#~EqX~HI@3G5w)A=BP00IagfB*srAbmJb35AbMcp4Z%r$ zV@ii{!ef|5$*4Nye>wfsrTP?KAW!k~o89C&zG$)hzOB>FeQ^Dacb(T4JLQUdPW#sx z#uGW$rjIT@{KT10%uByhySb^|l>b^IF*9Ud7m36|*ENUDhNku{i%he+IUH&an@z3l z;pmv_jm?p^w(Vx9wPE(GwrIG$U3RydTf*DTSj3D)<;tc|Q>(dX(IRuU`IN8hed z>hB2}`}={W86}r|^yMW*1Q0*~0R#~E@B)>eKlwB|PCn{z%<2lmX!y$5cLhg{MaC(z zyx4e=VU)PPW-#~ck$sJ9y8r9`=#Q>BGI8GTZ-V3z0?|_S9 z;cYPqmZ@`QJ36K*mlrjJVj(%Hb-eT9k?rVkC5F+rC>m~#)H`L(lv%fVyEi8`BlW2>4I@3X*NkPQ?$&ra z9@gB}_urhgPJ(nE^7LO}CI4@Ym3&4DvRn(2Oyq8~x3}bOmTl^3`8BtRzS!AT*YokY zQmQx4m1KHm&y>RLzEodqdkNEb^FoHb| zxeJrOk?bmyhf+0CqVC$D~ zQWrUKF0AYtip?18FNx=+n4SQ?XK6%ZvTHn zLvFZ7+;IOmkQO}2a;2N)S;JXM4w)?N+N@4JA@LJ^WAb}`RDNG_@(XExO`6|=k^Fw( zhWqxwUrT<2`^?yk%C5t)&!%U}#+zuAlUDaVc8kzVzag3HM;c0ONw;%j0z;1nyx)J= z@*K6K&1i`9+%aJ#p0+6cXd_W8kKcRmCt|bw-UnBC_8iJiPbun~c`(@ht>KLBw}VTB zZ&>F$)S7s=UC(=OPvoZLeDKn5*@cNN?0CRFVZ_es z__Zl{XlwE&zJ8h$S92)d=VP9MZ#g?t2L8_3nKp2}F&iEzoeE%7hDc=UAP6 z*~+8Q20kMR2D|H|V2@-EoTb^wbk_N(DVbQ_@?VT@5msl)C*_~Hwba^jTW*KMo@IFs zYD&8QL0U)pp5TQ}f01mwUDuuJMAu}rUXr4ge4tx~8!dqL0{vtnRTMovaGP!Y$^ns+ z3O#0aJk~MT-ysuq{8X#+rMEktC`nJ1BP+ST^H5GaR}JP_-48fcJzKM_`g5)1J@#RG zp;dp4kv?y1nC^3}PB9QubxLPj-PhPiR`Su#m#0~s|Ka(U3oGUw_8-h7# zb>Zi~ry#vlN}GJaK3tGfA|@*g{pu}$Aw5qzPJD(e2DVR0KEFFhBJ6ci7WW67;Uf7$ zFnL?R_ZNt!^h!W!KYElCI}R-|1M6b)h>5 zjk>!UE7*OPo!f)b0c3OuBnJbYN37$6f&6E!uBU_E@;7uO)Q~zVJz!Vfh|Sf;p(kZL z8rmWL?(xwp<~)4}e%(M>#^9qewgZ(XG{f?2_yf~E5J96NsfRz=aEEG#OD z4of4Dkj{XS43imYt2dbE@oIsXM30PPOjLk{wHTX39>9 z?g*cA&vkuVo@~gKsXvx$%H`!!w%woB0@V%<4Gk11kJHZ_HmiHO)wx$>+_0$mm?dW98Q&Op7-98DRwEOd}iv=-%Clf z%Z=;JGsgGk;gW1$VC|Nrkbb^o&40-1SuMlyo95O6S;ZCPYm;w&DlaXa^+c9T9X)gA z+2}li9DqY{6_DZw8jrGv(FyM;_6XZ4Cu7>Zp~jyH1Nd_p4X`A z%o>%~1iI0~mvr$Bb0oXBwHcgr)xN1W!kwlDzA6WkRc&mxciHd*T@rXg0i{sS%cEfW zrpd1SP_NWaxRS1(a7vQt(!k4P=SJC?5MXqPCRxKJpIcx!>kyAMPacZyab}Di-?6ub zM;8G1*p1NIk+9F%j{=aA-%jpA6vAY9+ji`wU*3&x~3?X z=I|Za2J@e`k_TmZ-=|ZNE|ujGA%5}jiuwW_`oEz8lP~_rlx?}psVUi}jvdv<7v~_5 z>`zavD0;pkalo7SFLG7qvt`41j7oXFEZ}3Z2pdi`;C=9Mdxf34QxcSfw1kHw3F|_~ zDU-^?VtTuNF5&cvAaPJ5j3oLapB$&EoCF7cU|$@c>MeHtomBT^DzAKo>40f1<326# zg_)!)llwCcL2)>txeUCnYYOK;iZ5$2t$cORbBoQXw_j5-;umXDi-)T-Qrckxf9Ij8 zsXHV+^~`otn(j2-K=R-GI}U5vf|oil(N9=A9&Q*FW&jWUu)9Ev^UWC&eV9b98Rh54F)g0CAUK&w6E8JNOR7R zOJU+GwGfwQXq0%NhHy({mqfiaT4nNAHdE9t#i-_2nS7x#`RKq4_7j5J<)nqkp}*rM zkNCVHy8{RGvfBr=g&mS4Gx<(zVezxIV6ti(ZmxD8Nd5jbx2b-B>B60j1`3V|UuHr2 zyCeEwpIM5=7D#q+Q(k&}X|`0qXZF`*vwNQmQ>hvWm5rX9@=`&&oUwCC^hJrjmHCvsxRL^{kj-u#SyKO!mc*X=Z6KMFrwv){?Jm)?5h;nh zm&#jz?S^YKC0Qv2bFU2c=okBy+*f6_Apw^6*R7Kboi~A+;Xg~E?8lZzQg`ZZ&l*`i z?MvNe?|)AA_ojC0e(_%KZGBep+uqycm6)B+{Dar@uL~yk*~!U!#m*yUsz(YZ@032} zzC%36DSWOLzEF$#``_55F!c@QvGvzV7uYaxr(BT8Io7`N+-%vG<|sSz_z@eFoN`89 zTxxL_IvI%1-Z4JQHH!|3ocdeIqNq;?aDA02ZK|hcsIl|1l}2o~ReZ2L%NpuSzb?a% zQ;U8LdLVX=JWIsp1$#<|Ixh3b!&9)huYJ0PJSuM@5BB$0cJ=v_Psx)*a=$!-96#ny z=45u|)o$`JyYjb6&ZFO;o-Ye!xpk}OO3~~^>+yl1p~mj1lC!yfB-&Nuq8*VXwM08z zqxEQw`Xt(fSm%$6b*~fam!FVWeH!a#iDhM?^*^rp+4smw&Yo+^^_S(kl=eKUbHxlf zHtd(a0}@^G9@12nXe#BJO7iR%tUc*d?Jg4V{4(`~#831Edaf>zC9%B87M|kt*0ZG_u5z;K)T|!YtS*qCb{Kil zeV@GTEIJ^=gS>kjs?O7QPCIYV4ku|yPkcoh+3{xrp2vgpUy9t${U%_%gc5h(j=WVl1}nX zOWp+cl;`FRRhJ0$_L(|zk8RbT&(ISU$;?Vt1;V|ITlb;PPv%pM?r@~S<0$q3tDQ}ncCaifHlEWUe|Y@Fh+ zmNP@QmT2pi8hp}8*3uf3rM~ZG;*|7%I!9Uq-{=|~lT0M(6;A2PH1mLzD78+`ryi9r z?zk}Y$xJ!F>XdV?23@T|7fL8akbAejfAoxEcF%cgo?*yv>MgFxw(ggG{d7b>V}IM~ zSn8NCxx3rtU5dTCPiBMEU)e_|G*y|!WE2P_pY_YTt+z7+fle@*ua2?$W<{sR8jaL5 z`z|fmW0Ftm?+!~Hrn{kZD9}*vIK}^phO#?vi-hXVS}27p@7d_7^c)T*UrO!Qw|_#q zUoL7MLTble@8n@=?58x3LJ1)Kv@&_D(w>D=Me@2!@(Ls$j?J+vG%!@BGuZuF^`O@} zBr|O4CQV-3P4du4Q@7`TZQJrJUGZBCUBmtn{*!xrfhQqPCwmf7EGOa1dJ zl3I6Gg|>?xiR*j=vAeA#)vx_Z`hXZZ%Zo{pe^p{TRdkX+)k!|A$>&MSN(G(de2)&dPu``Zu1$jtDIgs=T1A;>~9HJ>MVO0%=!m8W%t=1N$S#1WvuDW z>ab%zlrvPlQLwh1DW~Fg)Y@Em6ILR_k$#s`>msc|z8{oh*s<-YVciwloqee%-%|QM zxo`2$Slx3LI9Xq&S-&GCO|94b@1LnRLR#TKgLa$ltkWcz%mnf(uIRO*q2QLb&9e4v zYYTV=t*#+&;=f5)xu5bDUUuwn-`r~N$eF*qv~ z{F8Hanv|k4IiTNvJY6p&|5{cJTjmCn_0kBoq=}C4+TxYWLLR2jy#4jvO^6 z%ceDUmrXl<(Amp+TN0Ap>2h+qeR6tHUpf{n9`ts$Y5jWUJR%{q6P+XP#pK3Lx4OTW zBM-+tbMz+Yg{ALOeUXQ2N4g z#n_kH@RFUij9o)AcKy3^^>qF zQr|qJY07t(f1djCe>lk-W0JpZO!9v_lKh;}$v-Q}Nb=`7$#2x;U)SU>8%e&wP5#?* zO5ohmYq{jeE&Y;_-KlA=oVSOVo~(^d7XK*gV!02ye=oTVY}H)c;kAF@e@I6D znwpBWwdVQ-p=-0x#j7D183&Rat78h1FgsZn~DhxJV7Y#+X7uJOvo65u2 z#W%@`vPf%HJXV-FTvTtA#v2>M(T^&xQu(9F)zPNbnB-NM*$K49!qL`Hv*fm}sUf!6 zyv$s(+{jzm9NN@we%kzEo^PA4$h^^%&2oFQ*k^B+`||V66)Q}ikvAMz!#F4N%^PnN zpG+#gZ4%rLop0n#Ua8>=HBC2!&C5i0!=~!`h7Bv5wuKw~vC?=`bHfHXQ5o9S)Dmy; zx7Rl{)x@MWn}XriO|i}SA25Ns)~5PMLwHOQ<^^WE^U5s$+M;Fo=7naFBs^S^ z_vX;h!@=JVh(s8HA6tpbMZvkI#gNhkTI-|XmT+q<-?*$b-rQ_T8xw)cjoF6$J!|Jw ztf?h@xx2q9-qdip+{{Uv?AW~CQ+zToNkRZysq(8Mz*$^tD3jBZ5}>b9&QfD!sg0QQ*%5T z9zMM;+BC^oxBJybB4$lXsJVGKcug!Me`38{|BYBM5^69jqR~jy2((@wYL-#1Ius4H zNG?&MuC+bh))tAz!VN~LgmV+rerv3ezt_Gt9BSBZl!vcxst>z~I3=l$Mq=T5jV8mK zDZOlMxIGe&N(GH8BF*uZuvr#~M&oU<%;8FD;*z9U8E$9_8TMDResidGlO&-zt&GH5 z8w|fqWR{0po9y$NY+FSBHoQh{3AMEeoKY*i!i>aYcD(jj$S%FVSw`rF?b3_fsd{2 zDfR$-wF~O!fpwVn=LXGYWGdjESaC@w&)ovY=>EX_18b9lMwx;`9j4z-zf zB)9eprPJC4lBr^N@^F$`IFh702RqaJNf*5=(zaca(6y8nJ##pw=sKC{C_4$9jEa+- zmhkRe62uNGsrh>Ar%gZco+-n7w>rTE|IK1k~8+&EF?;2fJ z<+=3spfRR@$VF*RPWQFfZL(r<0~eZ$|_lr6Yl-AvgNWu z`LK;Fli$dqK`NU$`GJ~5CelbsA7c42f1*vG{k=@whnNhBJ9=neaaWyAv&k%p^NkCf zpwgmz+lqYh0HD3t?b7bupU{Ioc*%wrBuYcDZk@pf~CxgeT9 z%a}jmigpn7)yEf^(?%T>$it1h6p^)Kvs0JLWyL9VGDb>c4=_4n__nPa_o)j8%>pyC z+Hn`8_M_V-d4&H6@88;Zt3F>%dJEs>nrNNm0?T+H^ytRUVpT@h*=qy4Y7JdC{R2mM4N(Q~kJ$Qs>gJcw19!mVL?XlwrF=ha2pknwM`j z$^&S)!3k2@6mdql_F9=8RxD^U*S0sb75OrIi*?TlTGMi!1YTUEmz@12&c#36Z(@>e zdtqG0tpeRGh(#jJ?S=M>BD-5?zVehS=gKQe>sD=8RaUlid7=Ek`Pi%aHg0TT#~<3! z3;pp}WL3CT+SJ(4#;xbdKX20SIhB-p?f>Pq^H8DpT%*b;>1bS(c{*#nb_f(e8dHapqzP@nv9gAN5*C)+aZu>%N z^Uh<3pZVAW=NTRQF59`oH!l2|tG3lX_Tq-pua@rr{)wA+-e5ljj`~vn8RuY&yWQb# zzu|8Gm%H8PZhzr!Uv;;~-R)HS8;FK+uX}vDdwjOLy};dG;%-0ZZa?pC8{KWh-QMJG z|Hj?k?ry*BZtrrpKXkWy-0f5D_UG>Qu)BTT-M-^)PnUlbs-I80Tj_Q7XN9}{oV&fs z-G<%m_3rk>GAI1We3gF%W!x?Q=N3EvuPH6^jZWv!s!5M+$cq}}ZOfRClzgL{xN}$U zuDf^LzpHQ8{#^%mJ-6%7uGFrhyH4yfdb4|Tdgu0m8E^2M8d500IagfB*srAb - * Paolo Bonzini - * Andreas Färber - * - * This work is licensed under the terms of the GNU GPL, version 2 or later. - * See the COPYING file in the top-level directory. - */ - -#include "qemu/osdep.h" - -#include -#include -#include - -#include "libqtest.h" -#include "qemu/cutils.h" -#include "qapi/error.h" -#include "qapi/qmp/json-parser.h" -#include "qapi/qmp/json-streamer.h" -#include "qapi/qmp/qdict.h" -#include "qapi/qmp/qjson.h" -#include "qapi/qmp/qlist.h" -#include "qapi/qmp/qstring.h" - -#define MAX_IRQ 256 -#define SOCKET_TIMEOUT 50 - -QTestState *global_qtest; - -struct QTestState -{ - int fd; - int qmp_fd; - bool irq_level[MAX_IRQ]; - GString *rx; - pid_t qemu_pid; /* our child QEMU process */ - bool big_endian; -}; - -static GHookList abrt_hooks; -static struct sigaction sigact_old; - -#define g_assert_no_errno(ret) do { \ - g_assert_cmpint(ret, !=, -1); \ -} while (0) - -static int qtest_query_target_endianness(QTestState *s); - -static int init_socket(const char *socket_path) -{ - struct sockaddr_un addr; - int sock; - int ret; - - sock = socket(PF_UNIX, SOCK_STREAM, 0); - g_assert_no_errno(sock); - - addr.sun_family = AF_UNIX; - snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", socket_path); - qemu_set_cloexec(sock); - - do { - ret = bind(sock, (struct sockaddr *)&addr, sizeof(addr)); - } while (ret == -1 && errno == EINTR); - g_assert_no_errno(ret); - ret = listen(sock, 1); - g_assert_no_errno(ret); - - return sock; -} - -static int socket_accept(int sock) -{ - struct sockaddr_un addr; - socklen_t addrlen; - int ret; - struct timeval timeout = { .tv_sec = SOCKET_TIMEOUT, - .tv_usec = 0 }; - - setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (void *)&timeout, - sizeof(timeout)); - - do { - addrlen = sizeof(addr); - ret = accept(sock, (struct sockaddr *)&addr, &addrlen); - } while (ret == -1 && errno == EINTR); - if (ret == -1) { - fprintf(stderr, "%s failed: %s\n", __func__, strerror(errno)); - } - close(sock); - - return ret; -} - -static void kill_qemu(QTestState *s) -{ - int wstatus = 0; - - if (s->qemu_pid != -1) { - kill(s->qemu_pid, SIGTERM); - waitpid(s->qemu_pid, &wstatus, 0); - - if (WIFSIGNALED(wstatus)) { - assert(!WCOREDUMP(wstatus)); - } - } -} - -static void kill_qemu_hook_func(void *s) -{ - kill_qemu(s); -} - -static void sigabrt_handler(int signo) -{ - g_hook_list_invoke(&abrt_hooks, FALSE); -} - -static void setup_sigabrt_handler(void) -{ - struct sigaction sigact; - - /* Catch SIGABRT to clean up on g_assert() failure */ - sigact = (struct sigaction){ - .sa_handler = sigabrt_handler, - .sa_flags = SA_RESETHAND, - }; - sigemptyset(&sigact.sa_mask); - sigaction(SIGABRT, &sigact, &sigact_old); -} - -static void cleanup_sigabrt_handler(void) -{ - sigaction(SIGABRT, &sigact_old, NULL); -} - -void qtest_add_abrt_handler(GHookFunc fn, const void *data) -{ - GHook *hook; - - /* Only install SIGABRT handler once */ - if (!abrt_hooks.is_setup) { - g_hook_list_init(&abrt_hooks, sizeof(GHook)); - } - setup_sigabrt_handler(); - - hook = g_hook_alloc(&abrt_hooks); - hook->func = fn; - hook->data = (void *)data; - - g_hook_prepend(&abrt_hooks, hook); -} - -static const char *qtest_qemu_binary(void) -{ - const char *qemu_bin; - - qemu_bin = getenv("QTEST_QEMU_BINARY"); - if (!qemu_bin) { - fprintf(stderr, "Environment variable QTEST_QEMU_BINARY required\n"); - exit(1); - } - - return qemu_bin; -} - -QTestState *qtest_init_without_qmp_handshake(bool use_oob, - const char *extra_args) -{ - QTestState *s; - int sock, qmpsock, i; - gchar *socket_path; - gchar *qmp_socket_path; - gchar *command; - const char *qemu_binary = qtest_qemu_binary(); - - s = g_new(QTestState, 1); - - socket_path = g_strdup_printf("/tmp/qtest-%d.sock", getpid()); - qmp_socket_path = g_strdup_printf("/tmp/qtest-%d.qmp", getpid()); - - /* It's possible that if an earlier test run crashed it might - * have left a stale unix socket lying around. Delete any - * stale old socket to avoid spurious test failures with - * tests/libqtest.c:70:init_socket: assertion failed (ret != -1): (-1 != -1) - */ - unlink(socket_path); - unlink(qmp_socket_path); - - sock = init_socket(socket_path); - qmpsock = init_socket(qmp_socket_path); - - qtest_add_abrt_handler(kill_qemu_hook_func, s); - - s->qemu_pid = fork(); - if (s->qemu_pid == 0) { - setenv("QEMU_AUDIO_DRV", "none", true); - command = g_strdup_printf("exec %s " - "-qtest unix:%s,nowait " - "-qtest-log %s " - "-chardev socket,path=%s,nowait,id=char0 " - "-mon chardev=char0,mode=control%s " - "-machine accel=qtest " - "-display none " - "%s", qemu_binary, socket_path, - getenv("QTEST_LOG") ? "/dev/fd/2" : "/dev/null", - qmp_socket_path, use_oob ? ",x-oob=on" : "", - extra_args ?: ""); - execlp("/bin/sh", "sh", "-c", command, NULL); - exit(1); - } - - s->fd = socket_accept(sock); - if (s->fd >= 0) { - s->qmp_fd = socket_accept(qmpsock); - } - unlink(socket_path); - unlink(qmp_socket_path); - g_free(socket_path); - g_free(qmp_socket_path); - - g_assert(s->fd >= 0 && s->qmp_fd >= 0); - - s->rx = g_string_new(""); - for (i = 0; i < MAX_IRQ; i++) { - s->irq_level[i] = false; - } - - if (getenv("QTEST_STOP")) { - kill(s->qemu_pid, SIGSTOP); - } - - /* ask endianness of the target */ - - s->big_endian = qtest_query_target_endianness(s); - - return s; -} - -QTestState *qtest_init(const char *extra_args) -{ - QTestState *s = qtest_init_without_qmp_handshake(false, extra_args); - - /* Read the QMP greeting and then do the handshake */ - qtest_qmp_discard_response(s, ""); - qtest_qmp_discard_response(s, "{ 'execute': 'qmp_capabilities' }"); - - return s; -} - -QTestState *qtest_vstartf(const char *fmt, va_list ap) -{ - char *args = g_strdup_vprintf(fmt, ap); - QTestState *s; - - s = qtest_start(args); - g_free(args); - global_qtest = NULL; - return s; -} - -QTestState *qtest_startf(const char *fmt, ...) -{ - va_list ap; - QTestState *s; - - va_start(ap, fmt); - s = qtest_vstartf(fmt, ap); - va_end(ap); - return s; -} - -void qtest_quit(QTestState *s) -{ - g_hook_destroy_link(&abrt_hooks, g_hook_find_data(&abrt_hooks, TRUE, s)); - - /* Uninstall SIGABRT handler on last instance */ - cleanup_sigabrt_handler(); - - kill_qemu(s); - close(s->fd); - close(s->qmp_fd); - g_string_free(s->rx, true); - g_free(s); -} - -static void socket_send(int fd, const char *buf, size_t size) -{ - size_t offset; - - offset = 0; - while (offset < size) { - ssize_t len; - - len = write(fd, buf + offset, size - offset); - if (len == -1 && errno == EINTR) { - continue; - } - - g_assert_no_errno(len); - g_assert_cmpint(len, >, 0); - - offset += len; - } -} - -static void socket_sendf(int fd, const char *fmt, va_list ap) -{ - gchar *str = g_strdup_vprintf(fmt, ap); - size_t size = strlen(str); - - socket_send(fd, str, size); - g_free(str); -} - -static void GCC_FMT_ATTR(2, 3) qtest_sendf(QTestState *s, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - socket_sendf(s->fd, fmt, ap); - va_end(ap); -} - -static GString *qtest_recv_line(QTestState *s) -{ - GString *line; - size_t offset; - char *eol; - - while ((eol = strchr(s->rx->str, '\n')) == NULL) { - ssize_t len; - char buffer[1024]; - - len = read(s->fd, buffer, sizeof(buffer)); - if (len == -1 && errno == EINTR) { - continue; - } - - if (len == -1 || len == 0) { - fprintf(stderr, "Broken pipe\n"); - exit(1); - } - - g_string_append_len(s->rx, buffer, len); - } - - offset = eol - s->rx->str; - line = g_string_new_len(s->rx->str, offset); - g_string_erase(s->rx, 0, offset + 1); - - return line; -} - -static gchar **qtest_rsp(QTestState *s, int expected_args) -{ - GString *line; - gchar **words; - int i; - -redo: - line = qtest_recv_line(s); - words = g_strsplit(line->str, " ", 0); - g_string_free(line, TRUE); - - if (strcmp(words[0], "IRQ") == 0) { - long irq; - int ret; - - g_assert(words[1] != NULL); - g_assert(words[2] != NULL); - - ret = qemu_strtol(words[2], NULL, 0, &irq); - g_assert(!ret); - g_assert_cmpint(irq, >=, 0); - g_assert_cmpint(irq, <, MAX_IRQ); - - if (strcmp(words[1], "raise") == 0) { - s->irq_level[irq] = true; - } else { - s->irq_level[irq] = false; - } - - g_strfreev(words); - goto redo; - } - - g_assert(words[0] != NULL); - g_assert_cmpstr(words[0], ==, "OK"); - - if (expected_args) { - for (i = 0; i < expected_args; i++) { - g_assert(words[i] != NULL); - } - } else { - g_strfreev(words); - } - - return words; -} - -static int qtest_query_target_endianness(QTestState *s) -{ - gchar **args; - int big_endian; - - qtest_sendf(s, "endianness\n"); - args = qtest_rsp(s, 1); - g_assert(strcmp(args[1], "big") == 0 || strcmp(args[1], "little") == 0); - big_endian = strcmp(args[1], "big") == 0; - g_strfreev(args); - - return big_endian; -} - -typedef struct { - JSONMessageParser parser; - QDict *response; -} QMPResponseParser; - -static void qmp_response(JSONMessageParser *parser, GQueue *tokens) -{ - QMPResponseParser *qmp = container_of(parser, QMPResponseParser, parser); - QObject *obj; - - obj = json_parser_parse(tokens, NULL); - if (!obj) { - fprintf(stderr, "QMP JSON response parsing failed\n"); - exit(1); - } - - g_assert(!qmp->response); - qmp->response = qobject_to(QDict, obj); - g_assert(qmp->response); -} - -QDict *qmp_fd_receive(int fd) -{ - QMPResponseParser qmp; - bool log = getenv("QTEST_LOG") != NULL; - - qmp.response = NULL; - json_message_parser_init(&qmp.parser, qmp_response); - while (!qmp.response) { - ssize_t len; - char c; - - len = read(fd, &c, 1); - if (len == -1 && errno == EINTR) { - continue; - } - - if (len == -1 || len == 0) { - fprintf(stderr, "Broken pipe\n"); - exit(1); - } - - if (log) { - len = write(2, &c, 1); - } - json_message_parser_feed(&qmp.parser, &c, 1); - } - json_message_parser_destroy(&qmp.parser); - - return qmp.response; -} - -QDict *qtest_qmp_receive(QTestState *s) -{ - return qmp_fd_receive(s->qmp_fd); -} - -/** - * Allow users to send a message without waiting for the reply, - * in the case that they choose to discard all replies up until - * a particular EVENT is received. - */ -void qmp_fd_sendv(int fd, const char *fmt, va_list ap) -{ - va_list ap_copy; - QObject *qobj; - - /* qobject_from_jsonv() silently eats leading 0xff as invalid - * JSON, but we want to test sending them over the wire to force - * resyncs */ - if (*fmt == '\377') { - socket_send(fd, fmt, 1); - fmt++; - } - - /* Going through qobject ensures we escape strings properly. - * This seemingly unnecessary copy is required in case va_list - * is an array type. - */ - va_copy(ap_copy, ap); - qobj = qobject_from_jsonv(fmt, &ap_copy, &error_abort); - va_end(ap_copy); - - /* No need to send anything for an empty QObject. */ - if (qobj) { - int log = getenv("QTEST_LOG") != NULL; - QString *qstr = qobject_to_json(qobj); - const char *str; - - /* - * BUG: QMP doesn't react to input until it sees a newline, an - * object, or an array. Work-around: give it a newline. - */ - qstring_append_chr(qstr, '\n'); - str = qstring_get_str(qstr); - - if (log) { - fprintf(stderr, "%s", str); - } - /* Send QMP request */ - socket_send(fd, str, qstring_get_length(qstr)); - - qobject_unref(qstr); - qobject_unref(qobj); - } -} - -void qtest_async_qmpv(QTestState *s, const char *fmt, va_list ap) -{ - qmp_fd_sendv(s->qmp_fd, fmt, ap); -} - -QDict *qmp_fdv(int fd, const char *fmt, va_list ap) -{ - qmp_fd_sendv(fd, fmt, ap); - - return qmp_fd_receive(fd); -} - -QDict *qtest_qmpv(QTestState *s, const char *fmt, va_list ap) -{ - qtest_async_qmpv(s, fmt, ap); - - /* Receive reply */ - return qtest_qmp_receive(s); -} - -QDict *qmp_fd(int fd, const char *fmt, ...) -{ - va_list ap; - QDict *response; - - va_start(ap, fmt); - response = qmp_fdv(fd, fmt, ap); - va_end(ap); - return response; -} - -void qmp_fd_send(int fd, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - qmp_fd_sendv(fd, fmt, ap); - va_end(ap); -} - -QDict *qtest_qmp(QTestState *s, const char *fmt, ...) -{ - va_list ap; - QDict *response; - - va_start(ap, fmt); - response = qtest_qmpv(s, fmt, ap); - va_end(ap); - return response; -} - -void qtest_async_qmp(QTestState *s, const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - qtest_async_qmpv(s, fmt, ap); - va_end(ap); -} - -void qtest_qmpv_discard_response(QTestState *s, const char *fmt, va_list ap) -{ - QDict *response = qtest_qmpv(s, fmt, ap); - qobject_unref(response); -} - -void qtest_qmp_discard_response(QTestState *s, const char *fmt, ...) -{ - va_list ap; - QDict *response; - - va_start(ap, fmt); - response = qtest_qmpv(s, fmt, ap); - va_end(ap); - qobject_unref(response); -} - -QDict *qtest_qmp_eventwait_ref(QTestState *s, const char *event) -{ - QDict *response; - - for (;;) { - response = qtest_qmp_receive(s); - if ((qdict_haskey(response, "event")) && - (strcmp(qdict_get_str(response, "event"), event) == 0)) { - return response; - } - qobject_unref(response); - } -} - -void qtest_qmp_eventwait(QTestState *s, const char *event) -{ - QDict *response; - - response = qtest_qmp_eventwait_ref(s, event); - qobject_unref(response); -} - -char *qtest_hmpv(QTestState *s, const char *fmt, va_list ap) -{ - char *cmd; - QDict *resp; - char *ret; - - cmd = g_strdup_vprintf(fmt, ap); - resp = qtest_qmp(s, "{'execute': 'human-monitor-command'," - " 'arguments': {'command-line': %s}}", - cmd); - ret = g_strdup(qdict_get_try_str(resp, "return")); - while (ret == NULL && qdict_get_try_str(resp, "event")) { - /* Ignore asynchronous QMP events */ - qobject_unref(resp); - resp = qtest_qmp_receive(s); - ret = g_strdup(qdict_get_try_str(resp, "return")); - } - g_assert(ret); - qobject_unref(resp); - g_free(cmd); - return ret; -} - -char *qtest_hmp(QTestState *s, const char *fmt, ...) -{ - va_list ap; - char *ret; - - va_start(ap, fmt); - ret = qtest_hmpv(s, fmt, ap); - va_end(ap); - return ret; -} - -const char *qtest_get_arch(void) -{ - const char *qemu = qtest_qemu_binary(); - const char *end = strrchr(qemu, '/'); - - return end + strlen("/qemu-system-"); -} - -bool qtest_get_irq(QTestState *s, int num) -{ - /* dummy operation in order to make sure irq is up to date */ - qtest_inb(s, 0); - - return s->irq_level[num]; -} - -static int64_t qtest_clock_rsp(QTestState *s) -{ - gchar **words; - int64_t clock; - words = qtest_rsp(s, 2); - clock = g_ascii_strtoll(words[1], NULL, 0); - g_strfreev(words); - return clock; -} - -int64_t qtest_clock_step_next(QTestState *s) -{ - qtest_sendf(s, "clock_step\n"); - return qtest_clock_rsp(s); -} - -int64_t qtest_clock_step(QTestState *s, int64_t step) -{ - qtest_sendf(s, "clock_step %"PRIi64"\n", step); - return qtest_clock_rsp(s); -} - -int64_t qtest_clock_set(QTestState *s, int64_t val) -{ - qtest_sendf(s, "clock_set %"PRIi64"\n", val); - return qtest_clock_rsp(s); -} - -void qtest_irq_intercept_out(QTestState *s, const char *qom_path) -{ - qtest_sendf(s, "irq_intercept_out %s\n", qom_path); - qtest_rsp(s, 0); -} - -void qtest_irq_intercept_in(QTestState *s, const char *qom_path) -{ - qtest_sendf(s, "irq_intercept_in %s\n", qom_path); - qtest_rsp(s, 0); -} - -static void qtest_out(QTestState *s, const char *cmd, uint16_t addr, uint32_t value) -{ - qtest_sendf(s, "%s 0x%x 0x%x\n", cmd, addr, value); - qtest_rsp(s, 0); -} - -void qtest_outb(QTestState *s, uint16_t addr, uint8_t value) -{ - qtest_out(s, "outb", addr, value); -} - -void qtest_outw(QTestState *s, uint16_t addr, uint16_t value) -{ - qtest_out(s, "outw", addr, value); -} - -void qtest_outl(QTestState *s, uint16_t addr, uint32_t value) -{ - qtest_out(s, "outl", addr, value); -} - -static uint32_t qtest_in(QTestState *s, const char *cmd, uint16_t addr) -{ - gchar **args; - int ret; - unsigned long value; - - qtest_sendf(s, "%s 0x%x\n", cmd, addr); - args = qtest_rsp(s, 2); - ret = qemu_strtoul(args[1], NULL, 0, &value); - g_assert(!ret && value <= UINT32_MAX); - g_strfreev(args); - - return value; -} - -uint8_t qtest_inb(QTestState *s, uint16_t addr) -{ - return qtest_in(s, "inb", addr); -} - -uint16_t qtest_inw(QTestState *s, uint16_t addr) -{ - return qtest_in(s, "inw", addr); -} - -uint32_t qtest_inl(QTestState *s, uint16_t addr) -{ - return qtest_in(s, "inl", addr); -} - -static void qtest_write(QTestState *s, const char *cmd, uint64_t addr, - uint64_t value) -{ - qtest_sendf(s, "%s 0x%" PRIx64 " 0x%" PRIx64 "\n", cmd, addr, value); - qtest_rsp(s, 0); -} - -void qtest_writeb(QTestState *s, uint64_t addr, uint8_t value) -{ - qtest_write(s, "writeb", addr, value); -} - -void qtest_writew(QTestState *s, uint64_t addr, uint16_t value) -{ - qtest_write(s, "writew", addr, value); -} - -void qtest_writel(QTestState *s, uint64_t addr, uint32_t value) -{ - qtest_write(s, "writel", addr, value); -} - -void qtest_writeq(QTestState *s, uint64_t addr, uint64_t value) -{ - qtest_write(s, "writeq", addr, value); -} - -static uint64_t qtest_read(QTestState *s, const char *cmd, uint64_t addr) -{ - gchar **args; - int ret; - uint64_t value; - - qtest_sendf(s, "%s 0x%" PRIx64 "\n", cmd, addr); - args = qtest_rsp(s, 2); - ret = qemu_strtou64(args[1], NULL, 0, &value); - g_assert(!ret); - g_strfreev(args); - - return value; -} - -uint8_t qtest_readb(QTestState *s, uint64_t addr) -{ - return qtest_read(s, "readb", addr); -} - -uint16_t qtest_readw(QTestState *s, uint64_t addr) -{ - return qtest_read(s, "readw", addr); -} - -uint32_t qtest_readl(QTestState *s, uint64_t addr) -{ - return qtest_read(s, "readl", addr); -} - -uint64_t qtest_readq(QTestState *s, uint64_t addr) -{ - return qtest_read(s, "readq", addr); -} - -static int hex2nib(char ch) -{ - if (ch >= '0' && ch <= '9') { - return ch - '0'; - } else if (ch >= 'a' && ch <= 'f') { - return 10 + (ch - 'a'); - } else if (ch >= 'A' && ch <= 'F') { - return 10 + (ch - 'a'); - } else { - return -1; - } -} - -void qtest_memread(QTestState *s, uint64_t addr, void *data, size_t size) -{ - uint8_t *ptr = data; - gchar **args; - size_t i; - - if (!size) { - return; - } - - qtest_sendf(s, "read 0x%" PRIx64 " 0x%zx\n", addr, size); - args = qtest_rsp(s, 2); - - for (i = 0; i < size; i++) { - ptr[i] = hex2nib(args[1][2 + (i * 2)]) << 4; - ptr[i] |= hex2nib(args[1][2 + (i * 2) + 1]); - } - - g_strfreev(args); -} - -uint64_t qtest_rtas_call(QTestState *s, const char *name, - uint32_t nargs, uint64_t args, - uint32_t nret, uint64_t ret) -{ - qtest_sendf(s, "rtas %s %u 0x%"PRIx64" %u 0x%"PRIx64"\n", - name, nargs, args, nret, ret); - qtest_rsp(s, 0); - return 0; -} - -void qtest_add_func(const char *str, void (*fn)(void)) -{ - gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str); - g_test_add_func(path, fn); - g_free(path); -} - -void qtest_add_data_func_full(const char *str, void *data, - void (*fn)(const void *), - GDestroyNotify data_free_func) -{ - gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str); - g_test_add_data_func_full(path, data, fn, data_free_func); - g_free(path); -} - -void qtest_add_data_func(const char *str, const void *data, - void (*fn)(const void *)) -{ - gchar *path = g_strdup_printf("/%s/%s", qtest_get_arch(), str); - g_test_add_data_func(path, data, fn); - g_free(path); -} - -void qtest_bufwrite(QTestState *s, uint64_t addr, const void *data, size_t size) -{ - gchar *bdata; - - bdata = g_base64_encode(data, size); - qtest_sendf(s, "b64write 0x%" PRIx64 " 0x%zx ", addr, size); - socket_send(s->fd, bdata, strlen(bdata)); - socket_send(s->fd, "\n", 1); - qtest_rsp(s, 0); - g_free(bdata); -} - -void qtest_bufread(QTestState *s, uint64_t addr, void *data, size_t size) -{ - gchar **args; - size_t len; - - qtest_sendf(s, "b64read 0x%" PRIx64 " 0x%zx\n", addr, size); - args = qtest_rsp(s, 2); - - g_base64_decode_inplace(args[1], &len); - if (size != len) { - fprintf(stderr, "bufread: asked for %zu bytes but decoded %zu\n", - size, len); - len = MIN(len, size); - } - - memcpy(data, args[1], len); - g_strfreev(args); -} - -void qtest_memwrite(QTestState *s, uint64_t addr, const void *data, size_t size) -{ - const uint8_t *ptr = data; - size_t i; - char *enc; - - if (!size) { - return; - } - - enc = g_malloc(2 * size + 1); - - for (i = 0; i < size; i++) { - sprintf(&enc[i * 2], "%02x", ptr[i]); - } - - qtest_sendf(s, "write 0x%" PRIx64 " 0x%zx 0x%s\n", addr, size, enc); - qtest_rsp(s, 0); - g_free(enc); -} - -void qtest_memset(QTestState *s, uint64_t addr, uint8_t pattern, size_t size) -{ - qtest_sendf(s, "memset 0x%" PRIx64 " 0x%zx 0x%02x\n", addr, size, pattern); - qtest_rsp(s, 0); -} - -QDict *qmp(const char *fmt, ...) -{ - va_list ap; - QDict *response; - - va_start(ap, fmt); - response = qtest_qmpv(global_qtest, fmt, ap); - va_end(ap); - return response; -} - -void qmp_async(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - qtest_async_qmpv(global_qtest, fmt, ap); - va_end(ap); -} - -void qmp_discard_response(const char *fmt, ...) -{ - va_list ap; - - va_start(ap, fmt); - qtest_qmpv_discard_response(global_qtest, fmt, ap); - va_end(ap); -} -char *hmp(const char *fmt, ...) -{ - va_list ap; - char *ret; - - va_start(ap, fmt); - ret = qtest_hmpv(global_qtest, fmt, ap); - va_end(ap); - return ret; -} - -bool qtest_big_endian(QTestState *s) -{ - return s->big_endian; -} - -void qtest_cb_for_every_machine(void (*cb)(const char *machine)) -{ - QDict *response, *minfo; - QList *list; - const QListEntry *p; - QObject *qobj; - QString *qstr; - const char *mname; - - qtest_start("-machine none"); - response = qmp("{ 'execute': 'query-machines' }"); - g_assert(response); - list = qdict_get_qlist(response, "return"); - g_assert(list); - - for (p = qlist_first(list); p; p = qlist_next(p)) { - minfo = qobject_to(QDict, qlist_entry_obj(p)); - g_assert(minfo); - qobj = qdict_get(minfo, "name"); - g_assert(qobj); - qstr = qobject_to(QString, qobj); - g_assert(qstr); - mname = qstring_get_str(qstr); - cb(mname); - } - - qtest_end(); - qobject_unref(response); -} - -/* - * Generic hot-plugging test via the device_add QMP command. - */ -void qtest_qmp_device_add(const char *driver, const char *id, const char *fmt, - ...) -{ - QDict *response; - char *cmd, *opts = NULL; - va_list va; - - if (fmt) { - va_start(va, fmt); - opts = g_strdup_vprintf(fmt, va); - va_end(va); - } - - cmd = g_strdup_printf("{'execute': 'device_add'," - " 'arguments': { 'driver': '%s', 'id': '%s'%s%s }}", - driver, id, opts ? ", " : "", opts ? opts : ""); - g_free(opts); - - response = qmp(cmd); - g_free(cmd); - g_assert(response); - g_assert(!qdict_haskey(response, "event")); /* We don't expect any events */ - g_assert(!qdict_haskey(response, "error")); - qobject_unref(response); -} - -/* - * Generic hot-unplugging test via the device_del QMP command. - * Device deletion will get one response and one event. For example: - * - * {'execute': 'device_del','arguments': { 'id': 'scsi-hd'}} - * - * will get this one: - * - * {"timestamp": {"seconds": 1505289667, "microseconds": 569862}, - * "event": "DEVICE_DELETED", "data": {"device": "scsi-hd", - * "path": "/machine/peripheral/scsi-hd"}} - * - * and this one: - * - * {"return": {}} - * - * But the order of arrival may vary - so we've got to detect both. - */ -void qtest_qmp_device_del(const char *id) -{ - QDict *response1, *response2, *event = NULL; - char *cmd; - - cmd = g_strdup_printf("{'execute': 'device_del'," - " 'arguments': { 'id': '%s' }}", id); - response1 = qmp(cmd); - g_free(cmd); - g_assert(response1); - g_assert(!qdict_haskey(response1, "error")); - - response2 = qmp(""); - g_assert(response2); - g_assert(!qdict_haskey(response2, "error")); - - if (qdict_haskey(response1, "event")) { - event = response1; - } else if (qdict_haskey(response2, "event")) { - event = response2; - } - g_assert(event); - g_assert_cmpstr(qdict_get_str(event, "event"), ==, "DEVICE_DELETED"); - - qobject_unref(response1); - qobject_unref(response2); -} diff --git a/tests/qemu-iotests/core.12067 b/tests/qemu-iotests/core.12067 deleted file mode 100644 index 0ddb68f76aacbf14f48ba13b2ce9d4d52fab0ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22716416 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 zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXz3%vCC zO!vfFQ{CmKM}zgIY4(+O^LobTOU!&}kCwN&GSf|$W^>%$cXxK93p@MyEoJS|#Fb}Z z+%!v*_Jv9NVre(;k^X~|xw}tKb*Y_mhXoXe`}4G zOJ4S0Y<6`YoLFwBpBfGFU6)^9?E8sN{n-+8{MBK5vCJp#vy%t=^)lTYcy`!+^}W}w zCMNOsm9@m2dU7<#-Z{_NM~3ZtWqe@ou%E9viO&uUe&hlhQ= z=9ANd)JpET2gd8k$sTF5XVx?Ra%HJae&*{l-f4aPoqgkai9J)|lJ~~3rFQf_xaM^TiPu@pX!d5^M9xGcT5UqJvq}`o954Dz4>&tUvJ7dPd&@F($Bs0lfN%} z>>8WroO$QV`^=le_WGr9t-qWswTegf%UWWtT%77sCr@3^ew)|p_y3~A=I%G=|Lyw= z{W$qqPi*=%|LvbHwy9U=-d`TJyZ^A*zE|aeLq0*^Msj?B}OWZ8qvgH(^i-GHIal8E zv!lWO52v~lM-KP%d-k8Xdg}3ozJF`|mrGvuUu<@DADmcjr=J=P@?Do-U+nwYGxcXn z%<)%;?Zq;mxX(@=9LJXV1J4fIuYPdmYGM+9Us+4c<)=r3?49$RePr0a_vC1BVDGS> zuQ`d&6Qi7C_WI##hf1x-c5mxy|Lcc`eZA(B(}UDX?zsoX>&eL;X|re6GyZaAsZD<7 z>oeYIef^z%<9dlbQ{s~M#<8V#?YY%KGs$_SjFbC(Y40!XmY+{`N6Y!YQ~LLoH&51+ zGrhHG{#@3ZE35r_Q^tAfS?((R+)F?Cr?SVtk8_*ful8r1FXw&c&0%}}|Hifcax%4M z`u(z&@40eus!N?bbv^rSUa#N(ixQi=&w1Y1GWnSA&7K34}fCippjZ}RDQ?of^2+?MZ6dVl97 ze&ha=Tc1h&BbU~0)cc=IHO)g8zR0=OJ{tc<>iuu5r$!khH{HbM&Hd*N=Z@dJ|C&?3 zFYAfT_*#k2`aN^oyZ-l5`m-Oe-Keo?Q{O{?009C72oNAZfB*pk1PI)@0$X?N*!Vl$ z=D!K(6Cgl<009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAVA=D0xx|& z(>?LlRCoF5(O|u4ntkQn9GCI=5;I@gqvdU`%yiSG*&Mg`-JRX&!p?qvOIdp~aphSU zH_g(dePPnRSlYVBy``V}50-Ymymz0T>QX!B%6ooxG}!;)RCnUY;eP(?rL`NU9$)DD zx7L5T@#YiRE_ssnH#^P2y4wHx z;bC8|`Q-E*cIjOO5pN z&j0UkuRinU&HAa6J?lPce|c`XO`SY%QOA=Kixqf9IwC z#{HLmty|mFtM@-SR_`CPwU5TXk$V3d>-mr}NN&1`&71qr9nKxUdH*%1o;B-<&G=f0 z&-y)c+q-)A2S5JD?@N6T0RjXF5FkK+009C72oNA}=L&4SfBVMY>FVDPv;+tcAV7cs z0RjXF5FkK+z`wr0_5Wy^Z|(5!{r~zm=?e%DAV7cs0RjXF5FkK+z&{r#|53-yf9~A> zi-Rxw27!P63lTwp009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkL{@9fwyh+IV&2k^OzxTh8_h(sZX#bGR?g-WUv zR$3S=-l_pXuyBKSjhxsBYLSG1@lX*gY|Nq}Q3Gl0w2**ku&_{r#dRKvpkVS2EYA7A z-M7R;g)|b5-@x3y`R4m(=KW@yTLJ_K5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5V(4Qq7fiKfB*pk1PBly zK!5-N0=q(B@y=nn`d8E||qwf#e7apICelDdvQ2Rgad}tOg8~fU&|H#`}+poX=*mV8n ze_8+TS^S36gEnVKUHaMO$>@7J9H^>c>fua2AZHJ-e0Pd?qv*Kj%f+_?GUql=gNbKYL(l9Tgi@0{n% z{p04-IzD{wxQq8S{dr=Pb1ZKiz5GmF>%skd+Wz^^`^MdR<-+Mv)=KTicTMM0lRfg8 zJu{#2Z^u@f)Fpbw7$!Qn%|#gPtD7{q^7)HbDmu2YIDx?L$yEk?zq`{ zZ8BO~EajJzgEnhqzsx0PwJuUI9wLQbn`TM!V=5^Eb z>EHUkDevyQ=FjgxwL8}T@te)<{{ClMmU7RzUvsX_FQ?y;{{H9l*`*Fro5$p)zgNE} zxx<6Ur=Pk1zNSBC=98Q8<(i-Qn+{&rCZ4t4{Cab{&&_9I8UX?X2oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+0D-^Qp#uQ`0000W|JO!HaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQq zIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n? z4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj! z0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^` zz<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!K zaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB) z95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c z2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*= zfddB)95`^`z<~n?4jede;J|?c2M!!KaNxj!0|yQqIB?*=fddB)95`^`z<~n?4jede z;J|?c2M!#-zP-R(S=RXiU#5bjC3(S1U^ZUJ^rNV!G!w;3s6}O@Z1GZ>T0(di10_K; zK!?mLYJ-}JrsgOLH8ewpr8y>uUA$C8sCk*h(v$9G<8A)`wf3`leFx!qj;A?i`mWFC zalOCw+`sSpuC?}dLx2DQ0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5Fqf^5%|DWW1EA{ zT%~!;LH(LJW9DfSS81+3yq(`sSw^ob$2QkEtp1J1@uU#Bjx1LhsvxqpI<5I!j5Ym-r!^-$)wi|YY!l0AJ@$*W z=fRli1Dj7ry8(9|-1(iG#x`ee*RPci*yZ$Q@2KBucJF2*H`b%kI42gKYk%xRo3#4g z75&y2KBHr&SKIrKs>Xhsuib3S+oXB^K{GnCE?;{+9{HT}|Jy6kHtL7Oe69L;9{yUt z*7~!}y*q<`n`60d3wH{^UghKVdIvVYu=R6!?G^Nm>2Wha^NP-#PfuVTT`k`&$1L&wU52+GuP)>)Cug`_74S)0CrH{d@P%nc9#0 zUJ9RBXQrI%m>(V7*?Yuk&5uOe@_J+KfsK59=-K_6InJQ_4(=?aYnb*^j?*<(>GSxb zPwevOZO6@iL%Y9HIN_|W^A+pQ$Ks!_-OP3Wm8Lfh0RjXF5O~`J@;gTT@wN^A76;mN zY2W5u3)-KjO9uC8E*TQ#z&@?-5^r&+H#C1OHu#1Ygf|t)?=u4qZht4s?~XIqjPG;t zy>HO0dwRZUr?*hC^PQVCvuwUyqp?|(nK9qea(?1_=>t*nYje*1xBi&_|JZlSb6-4l z+VvYZ8ujnI1LC`Vevkj(I$!gC{bHl{ghnHOXv*S2;QvtI9ld)u{@_7?009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF 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

~-WihjH>f*vAMzd+Qv&fPIbJ0OWGL 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

v)=@EQB&%8~j~Y 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

^g8_1XZGR8mqL) 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%0AJli;P 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%0DJfY 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 ?cG$(29HMfoYN<7TvgK0$+!Yh6+ zY$H5!?j7Q^EbhE-#3&JeN+(+0T94n(j*g)y+3|u~p#LFvQ;IuR?^fE5HO)!5vxRMq zXW;L9Hmj>qU(EApW<=$pzR~C@&ReJ-T6CGmus4c&c}XVikwUtB|ABv4isHuLA9Z>|u})EBvYvpAE_ZMS=W5l#&SF0&0c)S&##Cv5T%`rxJ2y zq8`POUcHQ$mq)+WVK zUgRWS;5vQ>tQ5+V^IoCTbRyDOHcx1`^AO<|dGIML>6a<`aVzLyP|->K=)cRSVo={E zUn(Q5t+KHede^O--*bh^CiVM7am_^Xl4}^Vz_|g`2$JH+KMno!ASsUQQMg4GC#C&o ze5HH2^XlKU+0>=1|C#*%m2NZg2?L%aqr}7V%m>TiNyi|%kPt){BZ7$I1N>Z#_OK%v<`@DD0fqoW zfFZyTUvFa#I^3;~7!Lx3T`5MT%} z1Q-Gg0fqoWfFZyTUvFa#I^3;~7! zLx3T`5MT%}1Q-Gg0fqoWfFZyTUv zFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyT zUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg z0fqoWfFZyTUvFa#I^3;~7!Lx3T` z5MT%}1Q-Gg0fqoWfFZyTUvFa#I^ z3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoWfFZyTUvFa#I^3;~7!Lx3T`5MT%}1Q-Gg0fqoW zfFZyTUvFa#I^3;~7!Lx3T`5MT%} z1Q-Gg0fqoWfFZyTUQWmitCuaoNe zz)RrCi9Go^|8%%6WSTPvC-iU~UGR>_x*%0YZLkdgwTgBd=4De|PK!ze5HK_Ds{g(cSw z<=nWhbDWgMe1-r+;J+V%(OZ0+&8K~xbo>(0m}6h##q;xS>fv-lR1U@|N+UTU8UuQq z!B~ZO;wk*);2yk=+?IAk4_;oGG5Q+a}m@wW+`c#h7|5Q3Rh+_(0Hc1$M zSDqVs3!j%HqO5%RiWDZF%J3j4=aYXw9?8c$xsB_ErSb53X zZRbZ0S4+?WXTc7KYd}f4le5fg%NfUU?#M3`B;9{H;>B^EODp($_nfLbmpxb@Di+^}FTH*8OE|i6{pzBTJ`v!&~Lf zBVh~p`+kBAj+69jkVaOe=L)`VD(7uh!WPww>XTwEcgoXSx8r`|O@f{&T^ zzn_WvD|ZTZsJt9(jtMDqE-bEa^0uHy^&#CeOFHU6_9W*I`Lmf+5;)`?EN18yIw$k; zwJXZq2UGaxB4$iZ&m0@~GR_ zw@l`MnLD44+Lzc|d`P(&=6+(E#ug`GF^r($vT8`gQkp9ddy@jp1SkLw7p? z-?%R8B=T(r$@8c7GQZTr>7mNIK2nfx_ctQG&AgYJwt%yXO?uAEkvw0um z>lPtT1+{t<$AyDvz$AU@IK?0pf{%l!4^@JwJn*;{P~F}he3?nV=UT$bhtHSt-uNlT zzm^`(6{bQy{`ME~+!e||&p#~pfB8x_o}2o3xsu16$FALHn`JH(7f#NCevmg9=&)Q9esSxEj*roW^yVhl`hCLr+ zg;RRIi{g(!o_s1B`KL)gx4hP@?DjQ9Jby6VklBiKN;B5z`8aO(+N|!-qxi}t`pgw*Z_>Y%X2|5w->6M}5hvNF z@Cx+Dmn!v{Tb>i_l0KzRTu_`z>7+9qeU0LNswn1t$H!~4RxZ=?={uo6@oqzVd@15d z_O!;3Nphqww1CS+JcS$m)@5A}KT4PM$;P33h5UHTLpGlwpXkneI`Si1bc`K%!`Pl5 zorh|{QyM>5fF~KLpM&K%*qaC$%7^0nzGLK%RXz*|j2jbvA2e7kY4@a!2qLrTwyDyd#nFt{^<$EiLO#-1iI zqW4jbBjO$EM`IG%dt$nfpCm`=A;$d7`T^^*q&TugJfPyFIFjq+P#>xX*`zUF(or42 zyb8~`d7zB$R8BbJ$tTB$Q6By{2Y+V)u!Aj1BVE$bRpw`sPd2C=QXW)qzD-G(3J1Mx z#1R`s?F;wCn{Hea%Fknjbdo204`IwFKYj}O-_z(faCDqYc|QK0(D$iMBu9C3UkUaf z-&cV3-`cDw>YSpZeEGZ)A9+Vnrs}jqL1mSmFP6$odY_HdXX?F#=YJ*ru0Ai1NXhS- zeyM4oGuT?_9E5S=vjcPZu+Kq^6&QQz{NB9idH(#q5Q-kak;cr*-*FxygTT8IUKB8! zc(2g@a?JC(3vEDHK#Yr^A2>R{Cy8lfe-6?|op!ih{Z!AlnIunnEj=on^T_Uq%+Bd_ zeqWCX;Gfk^ikEyobNLU-->`LU*7yT`oWExX?L_6Ey!djJBR{z7={r#7GM7M8+1v>zN(nlMf>sngyI?o4sjAuSaQ_%rLl#)Ea6GV-)c;9u z;0U37iSR8b8^!T54;N=fJyM*h>RI8uit>hI9YtyUwG`BK2#E0H+X(T=2xoz~GY(gO zkRNCY=uS`tXg%m1&}X2dpr1ikK|OzlEGPn$0kVMZ1FZ&a1nmM{1&#j2;hGFe1DQeh zf|i3;gI)v8Xu~)HdIxk8)CTf$;ynXUKByA(1ZWFrFX$)GR~H?wUqGRk9IjZtQ-^gC#f z%i)R!rGj!ni$M>A&_tXH)Y!Y+IgA*t+(|>7>&mIE{5TD!FL*tO=09N;9pArI2vfWF z0^zC%rtRhY{FZ`PHuC+aH+%<_JVn2c=+io!;s?SfHyAYcki#_;{x+1!8~y_D@VdGv z94=9tcl4NgV`#a0_@O6^(XfFZyTUkIWzaYE8X1DPV`~?`z0uvY*g#Y%(|8xZg-CQmpkDI46&kyB->_wJN z@&WTojJml2V?)M|3kk9Z3R2l|37X9GnW>Q>+>Gd%>ge>uNLl6uS}Ptl)D}l{#C7J( z7Cea9A!Rb_w5Fgkvo&8H+wsU^hh%%)-?zu5r6p>j6XIv4Yt%_`ks%X;$8uDSwD`2N zq?DN&#D#K+DQW35qi4iNTFtq};y|lGU!b)I>dZx4+zd@@%FOiCl;p^uQmr+}T2dTT zrZ3XjOHX>G7Jl__XQiDeA~_gN;i_j*g2*uGur9)fyhG zh@cXiRjh2jNvk)E4YC-^inJCRmmZ%wBeD#ikSGcW9XDQQHkqw_IcLPr%+RP)5)PUB_^e%rzPDL9~lxH9E?Vq9zQiXIw396 znhI+(G-x$o5f@oxuosy1kvfysW;5!z*u?nQ>6#REIuJ>V49Hh$OYCNDI+&DX)F~z- z4S1zyCdI}_MuY^83vW+Sr>0Czf(Q>@T7ki2;Mq(bA#sD1I7l9z0cr--@QzMuF<4FG zhI1CHxvX4cDAO4%cB8r27I~YziD#t5WhBQ(7MqI=D5eIjtximeO-s8oEj=E6ga8Dt zA)IDb{EQ4uV)V>7NC$Hnz%3FF;BpB-YN}>tiY6@~mG2$Y=h`9X4+V6%;yhzMmz;(^ zmz2Q8gsE5vjthw>Du@gYj<6Ub!-6OA$sr*THnWf%GB!dl z2FFF@>LbHQJ#=hnyP&RX+}H@SwTsxqh$3TTaLA-!WOaZkfl@@Egj}$@ppB^ z>SfXLs+g>@1bNmbd2aGz~t2RjFST?2ScZom9x;2FBn5-zb&xPVvw`>#ynYKZjsm+ zyr?Bttf0WhYSD?E zUq~~T%IZ|qsrp5ot6vn_Np!B9n{Vh;4|Avb7g@wZLdY>pu81@_TWS^?gBP7=mzAx! zL@qeLNX}_(a%ik_@U2Cqa+7%`@sQ>-(3Xm$AkXEQI&<QJC1b_{1WkSQd#Bt0%B? zJBeDx%B&VyGVeu`?d6$FGB zQ}43QOrERGuw@5n^9{xJz>sk`+tX|(IX*K!8K>ctloZX>l+@Uc8CiZY-i6_$X`e6= zN{tlepe4n|vWO@?gFsAj0*DU^nJ{+37(T=&UniBDAxy3U_}Ntg%@n65C1^0)NsA0J z*mamG=8KS}L~3a2tudN4^Q~G7rX1~9N-0J8?MboGm{0(scui6orj%2oGm_II?bZ?l z>X;kCVXYaBB7mTtItLq#CTsEvFO-+hN$A~f(3A4!fxTN%y)W}j~&}pVEOrRr!vW&%g^L$%S2$vi^ zGa)jTOH0L+xyzbMdaY}E9L!O-1E|8ZxAWwh=D6tmab4!zHiN!%=Hl@Y8I)$g$^f(A zpozj^m^NJo*3R8%6Ydu`?TfL~F7ki@CeG$^Y^JiZNi zSf63K&iAN)wNmDyv!-`}SUZ0%r@k{iF{SHzxzpiChmNHji?ZU-!0|ygqumf-(dy>% z{V_QufnQ(IVIG^Arb$gpj0D)|r^!h%e^@QSl7Pz07^$`Y1~UBhf#O^}HzO?}Gd?vY z(rzfTM`(4lBI3k_ps;YJMPYPYTq@Slk^BIu&9&LBkQ4@LeQt>@AbX~++@PJCSTS)- zehJQTSd>njkgJ^-96m8LFI+n=Ogk=Q!o-QWogOWYq5J^CUnSr# z8_1T=;^>+3A3YJ7xnvYPMIApgav{Gm#efoobB@hov={>kWC@ z5|bV0C7h1p(=}qc?YS&Gr{9uQLh++044R2D=6$kp@d;=^P-A|I%qeSk7y3 z#Ueg6DOMQuGozCeQn9Y)7nhOZ5}O|iLTLGq{-2%_nP)T^xVWS=b#nBbkrBax!5rdg zbRSOeBaOZ7?J41{ z3dmFOmo!uX0sQGh)sc}pdWL3t7LHFe0!o`SQ|NMY=VNsbd~uuv3Q)Hn2qMPl*zM<7 z;o86q{@Os&%rw+HSrZeTCL3mg_zMH#!5b+YovMHsE|#x6*7#|O1SFRojX6q6YEt^0 zLOBAnarvZRd~A5k%v@?7R4FYI7n3Yndt^u;<|Y~G>I`u(`74Je*FNz5%ih)H0-tmN G@&5p, - * - * This work is licensed under the terms of the GNU GPL, version 2 or later. - * See the COPYING file in the top-level directory. - */ - -/* - * How to add or update the tests: - * Contributor: - * 1. add empty files for new tables, if any, under tests/data/acpi - * 2. list any changed files in tests/qtest/bios-tables-test-allowed-diff.h - * 3. commit the above *before* making changes that affect the tables - * - * Contributor or ACPI Maintainer (steps 4-7 need to be redone to resolve conflicts - * in binary commit created in step 6): - * - * After 1-3 above tests will pass but ignore differences with the expected files. - * You will also notice that tests/qtest/bios-tables-test-allowed-diff.h lists - * a bunch of files. This is your hint that you need to do the below: - * 4. Run - * make check V=1 - * this will produce a bunch of warnings about differences - * beween actual and expected ACPI tables. If you have IASL installed, - * they will also be disassembled so you can look at the disassembled - * output. If not - disassemble them yourself in any way you like. - * Look at the differences - make sure they make sense and match what the - * changes you are merging are supposed to do. - * Save the changes, preferably in form of ASL diff for the commit log in - * step 6. - * - * 5. From build directory, run: - * $(SRC_PATH)/tests/data/acpi/rebuild-expected-aml.sh - * 6. Now commit any changes to the expected binary, include diff from step 4 - * in commit log. - * 7. Before sending patches to the list (Contributor) - * or before doing a pull request (Maintainer), make sure - * tests/qtest/bios-tables-test-allowed-diff.h is empty - this will ensure - * following changes to ACPI tables will be noticed. - * - * The resulting patchset/pull request then looks like this: - * - patch 1: list changed files in tests/qtest/bios-tables-test-allowed-diff.h. - * - patches 2 - n: real changes, may contain multiple patches. - * - patch n + 1: update golden master binaries and empty - * tests/qtest/bios-tables-test-allowed-diff.h - */ - -#include "qemu/osdep.h" -#include -#include "qemu-common.h" -#include "hw/firmware/smbios.h" -#include "qemu/bitmap.h" -#include "acpi-utils.h" -#include "boot-sector.h" -#include "tpm-emu.h" -#include "hw/acpi/tpm.h" - - -#define MACHINE_PC "pc" -#define MACHINE_Q35 "q35" - -#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML" - -typedef struct { - bool tcg_only; - const char *machine; - const char *variant; - const char *uefi_fl1; - const char *uefi_fl2; - const char *cd; - const uint64_t ram_start; - const uint64_t scan_len; - uint64_t rsdp_addr; - uint8_t rsdp_table[36 /* ACPI 2.0+ RSDP size */]; - GArray *tables; - uint32_t smbios_ep_addr; - struct smbios_21_entry_point smbios_ep_table; - uint16_t smbios_cpu_max_speed; - uint16_t smbios_cpu_curr_speed; - uint8_t *required_struct_types; - int required_struct_types_len; - QTestState *qts; -} test_data; - -static char disk[] = "tests/acpi-test-disk-XXXXXX"; -static const char *data_dir = "tests/data/acpi"; -#ifdef CONFIG_IASL -static const char *iasl = CONFIG_IASL; -#else -static const char *iasl; -#endif - -static bool compare_signature(const AcpiSdtTable *sdt, const char *signature) -{ - return !memcmp(sdt->aml, signature, 4); -} - -static void cleanup_table_descriptor(AcpiSdtTable *table) -{ - g_free(table->aml); - if (table->aml_file && - !table->tmp_files_retain && - g_strstr_len(table->aml_file, -1, "aml-")) { - unlink(table->aml_file); - } - g_free(table->aml_file); - g_free(table->asl); - if (table->asl_file && - !table->tmp_files_retain) { - unlink(table->asl_file); - } - g_free(table->asl_file); -} - -static void free_test_data(test_data *data) -{ - int i; - - for (i = 0; i < data->tables->len; ++i) { - cleanup_table_descriptor(&g_array_index(data->tables, AcpiSdtTable, i)); - } - - g_array_free(data->tables, true); -} - -static void test_acpi_rsdp_table(test_data *data) -{ - uint8_t *rsdp_table = data->rsdp_table; - - acpi_fetch_rsdp_table(data->qts, data->rsdp_addr, rsdp_table); - - switch (rsdp_table[15 /* Revision offset */]) { - case 0: /* ACPI 1.0 RSDP */ - /* With rev 1, checksum is only for the first 20 bytes */ - g_assert(!acpi_calc_checksum(rsdp_table, 20)); - break; - case 2: /* ACPI 2.0+ RSDP */ - /* With revision 2, we have 2 checksums */ - g_assert(!acpi_calc_checksum(rsdp_table, 20)); - g_assert(!acpi_calc_checksum(rsdp_table, 36)); - break; - default: - g_assert_not_reached(); - } -} - -static void test_acpi_rxsdt_table(test_data *data) -{ - const char *sig = "RSDT"; - AcpiSdtTable rsdt = {}; - int entry_size = 4; - int addr_off = 16 /* RsdtAddress */; - uint8_t *ent; - - if (data->rsdp_table[15 /* Revision offset */] != 0) { - addr_off = 24 /* XsdtAddress */; - entry_size = 8; - sig = "XSDT"; - } - /* read [RX]SDT table */ - acpi_fetch_table(data->qts, &rsdt.aml, &rsdt.aml_len, - &data->rsdp_table[addr_off], entry_size, sig, true); - - /* Load all tables and add to test list directly RSDT referenced tables */ - ACPI_FOREACH_RSDT_ENTRY(rsdt.aml, rsdt.aml_len, ent, entry_size) { - AcpiSdtTable ssdt_table = {}; - - acpi_fetch_table(data->qts, &ssdt_table.aml, &ssdt_table.aml_len, ent, - entry_size, NULL, true); - /* Add table to ASL test tables list */ - g_array_append_val(data->tables, ssdt_table); - } - cleanup_table_descriptor(&rsdt); -} - -static void test_acpi_fadt_table(test_data *data) -{ - /* FADT table is 1st */ - AcpiSdtTable table = g_array_index(data->tables, typeof(table), 0); - uint8_t *fadt_aml = table.aml; - uint32_t fadt_len = table.aml_len; - uint32_t val; - int dsdt_offset = 40 /* DSDT */; - int dsdt_entry_size = 4; - - g_assert(compare_signature(&table, "FACP")); - - /* Since DSDT/FACS isn't in RSDT, add them to ASL test list manually */ - memcpy(&val, fadt_aml + 112 /* Flags */, 4); - val = le32_to_cpu(val); - if (!(val & 1UL << 20 /* HW_REDUCED_ACPI */)) { - acpi_fetch_table(data->qts, &table.aml, &table.aml_len, - fadt_aml + 36 /* FIRMWARE_CTRL */, 4, "FACS", false); - g_array_append_val(data->tables, table); - } - - memcpy(&val, fadt_aml + dsdt_offset, 4); - val = le32_to_cpu(val); - if (!val) { - dsdt_offset = 140 /* X_DSDT */; - dsdt_entry_size = 8; - } - acpi_fetch_table(data->qts, &table.aml, &table.aml_len, - fadt_aml + dsdt_offset, dsdt_entry_size, "DSDT", true); - g_array_append_val(data->tables, table); - - memset(fadt_aml + 36, 0, 4); /* sanitize FIRMWARE_CTRL ptr */ - memset(fadt_aml + 40, 0, 4); /* sanitize DSDT ptr */ - if (fadt_aml[8 /* FADT Major Version */] >= 3) { - memset(fadt_aml + 132, 0, 8); /* sanitize X_FIRMWARE_CTRL ptr */ - memset(fadt_aml + 140, 0, 8); /* sanitize X_DSDT ptr */ - } - - /* update checksum */ - fadt_aml[9 /* Checksum */] = 0; - fadt_aml[9 /* Checksum */] -= acpi_calc_checksum(fadt_aml, fadt_len); -} - -static void dump_aml_files(test_data *data, bool rebuild) -{ - AcpiSdtTable *sdt; - GError *error = NULL; - gchar *aml_file = NULL; - gint fd; - ssize_t ret; - int i; - - for (i = 0; i < data->tables->len; ++i) { - const char *ext = data->variant ? data->variant : ""; - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - g_assert(sdt->aml); - - if (rebuild) { - aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine, - sdt->aml, ext); - fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT, - S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH); - if (fd < 0) { - perror(aml_file); - } - g_assert(fd >= 0); - } else { - fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error); - g_assert_no_error(error); - } - - ret = qemu_write_full(fd, sdt->aml, sdt->aml_len); - g_assert(ret == sdt->aml_len); - - close(fd); - - g_free(aml_file); - } -} - -static bool load_asl(GArray *sdts, AcpiSdtTable *sdt) -{ - AcpiSdtTable *temp; - GError *error = NULL; - GString *command_line = g_string_new(iasl); - gint fd; - gchar *out, *out_err; - gboolean ret; - int i; - - fd = g_file_open_tmp("asl-XXXXXX.dsl", &sdt->asl_file, &error); - g_assert_no_error(error); - close(fd); - - /* build command line */ - g_string_append_printf(command_line, " -p %s ", sdt->asl_file); - if (compare_signature(sdt, "DSDT") || - compare_signature(sdt, "SSDT")) { - for (i = 0; i < sdts->len; ++i) { - temp = &g_array_index(sdts, AcpiSdtTable, i); - if (compare_signature(temp, "DSDT") || - compare_signature(temp, "SSDT")) { - g_string_append_printf(command_line, "-e %s ", temp->aml_file); - } - } - } - g_string_append_printf(command_line, "-d %s", sdt->aml_file); - - /* pass 'out' and 'out_err' in order to be redirected */ - ret = g_spawn_command_line_sync(command_line->str, &out, &out_err, NULL, &error); - g_assert_no_error(error); - if (ret) { - ret = g_file_get_contents(sdt->asl_file, &sdt->asl, - &sdt->asl_len, &error); - g_assert(ret); - g_assert_no_error(error); - ret = (sdt->asl_len > 0); - } - - g_free(out); - g_free(out_err); - g_string_free(command_line, true); - - return !ret; -} - -#define COMMENT_END "*/" -#define DEF_BLOCK "DefinitionBlock (" -#define BLOCK_NAME_END "," - -static GString *normalize_asl(gchar *asl_code) -{ - GString *asl = g_string_new(asl_code); - gchar *comment, *block_name; - - /* strip comments (different generation days) */ - comment = g_strstr_len(asl->str, asl->len, COMMENT_END); - if (comment) { - comment += strlen(COMMENT_END); - while (*comment == '\n') { - comment++; - } - asl = g_string_erase(asl, 0, comment - asl->str); - } - - /* strip def block name (it has file path in it) */ - if (g_str_has_prefix(asl->str, DEF_BLOCK)) { - block_name = g_strstr_len(asl->str, asl->len, BLOCK_NAME_END); - g_assert(block_name); - asl = g_string_erase(asl, 0, - block_name + sizeof(BLOCK_NAME_END) - asl->str); - } - - return asl; -} - -static GArray *load_expected_aml(test_data *data) -{ - int i; - AcpiSdtTable *sdt; - GError *error = NULL; - gboolean ret; - gsize aml_len; - - GArray *exp_tables = g_array_new(false, true, sizeof(AcpiSdtTable)); - if (getenv("V")) { - fputc('\n', stderr); - } - for (i = 0; i < data->tables->len; ++i) { - AcpiSdtTable exp_sdt; - gchar *aml_file = NULL; - const char *ext = data->variant ? data->variant : ""; - - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - - memset(&exp_sdt, 0, sizeof(exp_sdt)); - -try_again: - aml_file = g_strdup_printf("%s/%s/%.4s%s", data_dir, data->machine, - sdt->aml, ext); - if (getenv("V")) { - fprintf(stderr, "Looking for expected file '%s'\n", aml_file); - } - if (g_file_test(aml_file, G_FILE_TEST_EXISTS)) { - exp_sdt.aml_file = aml_file; - } else if (*ext != '\0') { - /* try fallback to generic (extension less) expected file */ - ext = ""; - g_free(aml_file); - goto try_again; - } - g_assert(exp_sdt.aml_file); - if (getenv("V")) { - fprintf(stderr, "Using expected file '%s'\n", aml_file); - } - ret = g_file_get_contents(aml_file, (gchar **)&exp_sdt.aml, - &aml_len, &error); - exp_sdt.aml_len = aml_len; - g_assert(ret); - g_assert_no_error(error); - g_assert(exp_sdt.aml); - if (!exp_sdt.aml_len) { - fprintf(stderr, "Warning! zero length expected file '%s'\n", - aml_file); - } - - g_array_append_val(exp_tables, exp_sdt); - } - - return exp_tables; -} - -static bool test_acpi_find_diff_allowed(AcpiSdtTable *sdt) -{ - const gchar *allowed_diff_file[] = { -#include "bios-tables-test-allowed-diff.h" - NULL - }; - const gchar **f; - - for (f = allowed_diff_file; *f; ++f) { - if (!g_strcmp0(sdt->aml_file, *f)) { - return true; - } - } - return false; -} - -/* test the list of tables in @data->tables against reference tables */ -static void test_acpi_asl(test_data *data) -{ - int i; - AcpiSdtTable *sdt, *exp_sdt; - test_data exp_data; - gboolean exp_err, err, all_tables_match = true; - - memset(&exp_data, 0, sizeof(exp_data)); - exp_data.tables = load_expected_aml(data); - dump_aml_files(data, false); - for (i = 0; i < data->tables->len; ++i) { - GString *asl, *exp_asl; - - sdt = &g_array_index(data->tables, AcpiSdtTable, i); - exp_sdt = &g_array_index(exp_data.tables, AcpiSdtTable, i); - - if (sdt->aml_len == exp_sdt->aml_len && - !memcmp(sdt->aml, exp_sdt->aml, sdt->aml_len)) { - /* Identical table binaries: no need to disassemble. */ - continue; - } - - fprintf(stderr, - "acpi-test: Warning! %.4s binary file mismatch. " - "Actual [aml:%s], Expected [aml:%s].\n" - "See source file tests/qtest/bios-tables-test.c " - "for instructions on how to update expected files.\n", - exp_sdt->aml, sdt->aml_file, exp_sdt->aml_file); - - all_tables_match = all_tables_match && - test_acpi_find_diff_allowed(exp_sdt); - - /* - * don't try to decompile if IASL isn't present, in this case user - * will just 'get binary file mismatch' warnings and test failure - */ - if (!iasl) { - continue; - } - - err = load_asl(data->tables, sdt); - asl = normalize_asl(sdt->asl); - - exp_err = load_asl(exp_data.tables, exp_sdt); - exp_asl = normalize_asl(exp_sdt->asl); - - /* TODO: check for warnings */ - g_assert(!err || exp_err); - - if (g_strcmp0(asl->str, exp_asl->str)) { - sdt->tmp_files_retain = true; - if (exp_err) { - fprintf(stderr, - "Warning! iasl couldn't parse the expected aml\n"); - } else { - exp_sdt->tmp_files_retain = true; - fprintf(stderr, - "acpi-test: Warning! %.4s mismatch. " - "Actual [asl:%s, aml:%s], Expected [asl:%s, aml:%s].\n", - exp_sdt->aml, sdt->asl_file, sdt->aml_file, - exp_sdt->asl_file, exp_sdt->aml_file); - fflush(stderr); - if (getenv("V")) { - const char *diff_env = getenv("DIFF"); - const char *diff_cmd = diff_env ? diff_env : "diff -U 16"; - char *diff = g_strdup_printf("%s %s %s", diff_cmd, - exp_sdt->asl_file, sdt->asl_file); - int out = dup(STDOUT_FILENO); - int ret G_GNUC_UNUSED; - - dup2(STDERR_FILENO, STDOUT_FILENO); - ret = system(diff) ; - dup2(out, STDOUT_FILENO); - close(out); - g_free(diff); - } - } - } - g_string_free(asl, true); - g_string_free(exp_asl, true); - } - if (!iasl && !all_tables_match) { - fprintf(stderr, "to see ASL diff between mismatched files install IASL," - " rebuild QEMU from scratch and re-run tests with V=1" - " environment variable set"); - } - g_assert(all_tables_match); - - free_test_data(&exp_data); -} - -static bool smbios_ep_table_ok(test_data *data) -{ - struct smbios_21_entry_point *ep_table = &data->smbios_ep_table; - uint32_t addr = data->smbios_ep_addr; - - qtest_memread(data->qts, addr, ep_table, sizeof(*ep_table)); - if (memcmp(ep_table->anchor_string, "_SM_", 4)) { - return false; - } - if (memcmp(ep_table->intermediate_anchor_string, "_DMI_", 5)) { - return false; - } - if (ep_table->structure_table_length == 0) { - return false; - } - if (ep_table->number_of_structures == 0) { - return false; - } - if (acpi_calc_checksum((uint8_t *)ep_table, sizeof *ep_table) || - acpi_calc_checksum((uint8_t *)ep_table + 0x10, - sizeof *ep_table - 0x10)) { - return false; - } - return true; -} - -static void test_smbios_entry_point(test_data *data) -{ - uint32_t off; - - /* find smbios entry point structure */ - for (off = 0xf0000; off < 0x100000; off += 0x10) { - uint8_t sig[] = "_SM_"; - int i; - - for (i = 0; i < sizeof sig - 1; ++i) { - sig[i] = qtest_readb(data->qts, off + i); - } - - if (!memcmp(sig, "_SM_", sizeof sig)) { - /* signature match, but is this a valid entry point? */ - data->smbios_ep_addr = off; - if (smbios_ep_table_ok(data)) { - break; - } - } - } - - g_assert_cmphex(off, <, 0x100000); -} - -static inline bool smbios_single_instance(uint8_t type) -{ - switch (type) { - case 0: - case 1: - case 2: - case 3: - case 16: - case 32: - case 127: - return true; - default: - return false; - } -} - -static bool smbios_cpu_test(test_data *data, uint32_t addr) -{ - uint16_t expect_speed[2]; - uint16_t real; - int offset[2]; - int i; - - /* Check CPU speed for backward compatibility */ - offset[0] = offsetof(struct smbios_type_4, max_speed); - offset[1] = offsetof(struct smbios_type_4, current_speed); - expect_speed[0] = data->smbios_cpu_max_speed ? : 2000; - expect_speed[1] = data->smbios_cpu_curr_speed ? : 2000; - - for (i = 0; i < 2; i++) { - real = qtest_readw(data->qts, addr + offset[i]); - if (real != expect_speed[i]) { - fprintf(stderr, "Unexpected SMBIOS CPU speed: real %u expect %u\n", - real, expect_speed[i]); - return false; - } - } - - return true; -} - -static void test_smbios_structs(test_data *data) -{ - DECLARE_BITMAP(struct_bitmap, SMBIOS_MAX_TYPE+1) = { 0 }; - struct smbios_21_entry_point *ep_table = &data->smbios_ep_table; - uint32_t addr = le32_to_cpu(ep_table->structure_table_address); - int i, len, max_len = 0; - uint8_t type, prv, crt; - - /* walk the smbios tables */ - for (i = 0; i < le16_to_cpu(ep_table->number_of_structures); i++) { - - /* grab type and formatted area length from struct header */ - type = qtest_readb(data->qts, addr); - g_assert_cmpuint(type, <=, SMBIOS_MAX_TYPE); - len = qtest_readb(data->qts, addr + 1); - - /* single-instance structs must not have been encountered before */ - if (smbios_single_instance(type)) { - g_assert(!test_bit(type, struct_bitmap)); - } - set_bit(type, struct_bitmap); - - if (type == 4) { - g_assert(smbios_cpu_test(data, addr)); - } - - /* seek to end of unformatted string area of this struct ("\0\0") */ - prv = crt = 1; - while (prv || crt) { - prv = crt; - crt = qtest_readb(data->qts, addr + len); - len++; - } - - /* keep track of max. struct size */ - if (max_len < len) { - max_len = len; - g_assert_cmpuint(max_len, <=, ep_table->max_structure_size); - } - - /* start of next structure */ - addr += len; - } - - /* total table length and max struct size must match entry point values */ - g_assert_cmpuint(le16_to_cpu(ep_table->structure_table_length), ==, - addr - le32_to_cpu(ep_table->structure_table_address)); - g_assert_cmpuint(le16_to_cpu(ep_table->max_structure_size), ==, max_len); - - /* required struct types must all be present */ - for (i = 0; i < data->required_struct_types_len; i++) { - g_assert(test_bit(data->required_struct_types[i], struct_bitmap)); - } -} - -static void test_acpi_one(const char *params, test_data *data) -{ - char *args; - bool use_uefi = data->uefi_fl1 && data->uefi_fl2; - - if (use_uefi) { - /* - * TODO: convert '-drive if=pflash' to new syntax (see e33763be7cd3) - * when arm/virt boad starts to support it. - */ - args = g_strdup_printf("-machine %s %s -accel tcg -nodefaults -nographic " - "-drive if=pflash,format=raw,file=%s,readonly " - "-drive if=pflash,format=raw,file=%s,snapshot=on -cdrom %s %s", - data->machine, data->tcg_only ? "" : "-accel kvm", - data->uefi_fl1, data->uefi_fl2, data->cd, params ? params : ""); - - } else { - /* Disable kernel irqchip to be able to override apic irq0. */ - args = g_strdup_printf("-machine %s,kernel-irqchip=off %s -accel tcg " - "-net none -display none %s " - "-drive id=hd0,if=none,file=%s,format=raw " - "-device ide-hd,drive=hd0 ", - data->machine, data->tcg_only ? "" : "-accel kvm", - params ? params : "", disk); - } - - data->qts = qtest_init(args); - - if (use_uefi) { - g_assert(data->scan_len); - data->rsdp_addr = acpi_find_rsdp_address_uefi(data->qts, - data->ram_start, data->scan_len); - } else { - boot_sector_test(data->qts); - data->rsdp_addr = acpi_find_rsdp_address(data->qts); - g_assert_cmphex(data->rsdp_addr, <, 0x100000); - } - - data->tables = g_array_new(false, true, sizeof(AcpiSdtTable)); - test_acpi_rsdp_table(data); - test_acpi_rxsdt_table(data); - test_acpi_fadt_table(data); - - if (getenv(ACPI_REBUILD_EXPECTED_AML)) { - dump_aml_files(data, true); - } else { - test_acpi_asl(data); - } - - /* - * TODO: make SMBIOS tests work with UEFI firmware, - * Bug on uefi-test-tools to provide entry point: - * https://bugs.launchpad.net/qemu/+bug/1821884 - */ - if (!use_uefi) { - test_smbios_entry_point(data); - test_smbios_structs(data); - } - - qtest_quit(data->qts); - g_free(args); -} - -static uint8_t base_required_struct_types[] = { - 0, 1, 3, 4, 16, 17, 19, 32, 127 -}; - -static void test_acpi_piix4_tcg(void) -{ - test_data data; - - /* Supplying -machine accel argument overrides the default (qtest). - * This is to make guest actually run. - */ - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one(NULL, &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_bridge(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".bridge"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-device pci-bridge,chassis_nr=1", &data); - free_test_data(&data); -} - -<<<<<<< HEAD -static void test_acpi_piix4_bridge_hotplug(void) -======= -static void test_acpi_piix4_root_hotplug(void) ->>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; -<<<<<<< HEAD - data.variant = ".hpbridge"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-global PIIX4_PM.acpi-pci-hotplug-with-bridge-support=off " - "-device pci-bridge,chassis_nr=1", &data); -======= - data.variant = ".roothp"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-global PIIX4_PM.acpi-root-pci-hotplug=off", &data); ->>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus - free_test_data(&data); -} - -static void test_acpi_q35_tcg(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one(NULL, &data); - free_test_data(&data); - - data.smbios_cpu_max_speed = 3000; - data.smbios_cpu_curr_speed = 2600; - test_acpi_one("-smbios type=4,max-speed=3000,current-speed=2600", &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_bridge(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".bridge"; - data.required_struct_types = base_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(base_required_struct_types); - test_acpi_one("-device pci-bridge,chassis_nr=1", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_mmio64(void) -{ - test_data data = { - .machine = MACHINE_Q35, - .variant = ".mmio64", - .required_struct_types = base_required_struct_types, - .required_struct_types_len = ARRAY_SIZE(base_required_struct_types) - }; - - test_acpi_one("-m 128M,slots=1,maxmem=2G " - "-object memory-backend-ram,id=ram0,size=128M " - "-numa node,memdev=ram0 " - "-device pci-testdev,membar=2G", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_cphp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".cphp"; - test_acpi_one("-smp 2,cores=3,sockets=2,maxcpus=6" - " -object memory-backend-ram,id=ram0,size=64M" - " -object memory-backend-ram,id=ram1,size=64M" - " -numa node,memdev=ram0 -numa node,memdev=ram1" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_cphp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".cphp"; - test_acpi_one(" -smp 2,cores=3,sockets=2,maxcpus=6" - " -object memory-backend-ram,id=ram0,size=64M" - " -object memory-backend-ram,id=ram1,size=64M" - " -numa node,memdev=ram0 -numa node,memdev=ram1" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static uint8_t ipmi_required_struct_types[] = { - 0, 1, 3, 4, 16, 17, 19, 32, 38, 127 -}; - -static void test_acpi_q35_tcg_ipmi(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".ipmibt"; - data.required_struct_types = ipmi_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); - test_acpi_one("-device ipmi-bmc-sim,id=bmc0" - " -device isa-ipmi-bt,bmc=bmc0", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_ipmi(void) -{ - test_data data; - - /* Supplying -machine accel argument overrides the default (qtest). - * This is to make guest actually run. - */ - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".ipmikcs"; - data.required_struct_types = ipmi_required_struct_types; - data.required_struct_types_len = ARRAY_SIZE(ipmi_required_struct_types); - test_acpi_one("-device ipmi-bmc-sim,id=bmc0" - " -device isa-ipmi-kcs,irq=0,bmc=bmc0", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_memhp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".memhp"; - test_acpi_one(" -m 128,slots=3,maxmem=1G" - " -object memory-backend-ram,id=ram0,size=64M" - " -object memory-backend-ram,id=ram1,size=64M" - " -numa node,memdev=ram0 -numa node,memdev=ram1" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_memhp(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".memhp"; - test_acpi_one(" -m 128,slots=3,maxmem=1G" - " -object memory-backend-ram,id=ram0,size=64M" - " -object memory-backend-ram,id=ram1,size=64M" - " -numa node,memdev=ram0 -numa node,memdev=ram1" - " -numa dist,src=0,dst=1,val=21", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_numamem(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_Q35; - data.variant = ".numamem"; - test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M" - " -numa node -numa node,memdev=ram0", &data); - free_test_data(&data); -} - -static void test_acpi_piix4_tcg_numamem(void) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = MACHINE_PC; - data.variant = ".numamem"; - test_acpi_one(" -object memory-backend-ram,id=ram0,size=128M" - " -numa node -numa node,memdev=ram0", &data); - free_test_data(&data); -} - -uint64_t tpm_tis_base_addr; - -static void test_acpi_tcg_tpm(const char *machine, const char *tpm_if, - uint64_t base) -{ -#ifdef CONFIG_TPM - gchar *tmp_dir_name = g_strdup_printf("qemu-test_acpi_%s_tcg_%s.XXXXXX", - machine, tpm_if); - char *tmp_path = g_dir_make_tmp(tmp_dir_name, NULL); - TestState test; - test_data data; - GThread *thread; - char *args, *variant = g_strdup_printf(".%s", tpm_if); - - tpm_tis_base_addr = base; - - module_call_init(MODULE_INIT_QOM); - - test.addr = g_new0(SocketAddress, 1); - test.addr->type = SOCKET_ADDRESS_TYPE_UNIX; - test.addr->u.q_unix.path = g_build_filename(tmp_path, "sock", NULL); - g_mutex_init(&test.data_mutex); - g_cond_init(&test.data_cond); - test.data_cond_signal = false; - - thread = g_thread_new(NULL, tpm_emu_ctrl_thread, &test); - tpm_emu_test_wait_cond(&test); - - memset(&data, 0, sizeof(data)); - data.machine = machine; - data.variant = variant; - - args = g_strdup_printf( - " -chardev socket,id=chr,path=%s" - " -tpmdev emulator,id=dev,chardev=chr" - " -device tpm-%s,tpmdev=dev", - test.addr->u.q_unix.path, tpm_if); - - test_acpi_one(args, &data); - - g_thread_join(thread); - g_unlink(test.addr->u.q_unix.path); - qapi_free_SocketAddress(test.addr); - g_rmdir(tmp_path); - g_free(variant); - g_free(tmp_path); - g_free(tmp_dir_name); - g_free(args); - free_test_data(&data); -#else - g_test_skip("TPM disabled"); -#endif -} - -static void test_acpi_q35_tcg_tpm_tis(void) -{ - test_acpi_tcg_tpm("q35", "tis", 0xFED40000); -} - -static void test_acpi_tcg_dimm_pxm(const char *machine) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = machine; - data.variant = ".dimmpxm"; - test_acpi_one(" -machine nvdimm=on,nvdimm-persistence=cpu" - " -smp 4,sockets=4" - " -m 128M,slots=3,maxmem=1G" - " -object memory-backend-ram,id=ram0,size=32M" - " -object memory-backend-ram,id=ram1,size=32M" - " -object memory-backend-ram,id=ram2,size=32M" - " -object memory-backend-ram,id=ram3,size=32M" - " -numa node,memdev=ram0,nodeid=0" - " -numa node,memdev=ram1,nodeid=1" - " -numa node,memdev=ram2,nodeid=2" - " -numa node,memdev=ram3,nodeid=3" - " -numa cpu,node-id=0,socket-id=0" - " -numa cpu,node-id=1,socket-id=1" - " -numa cpu,node-id=2,socket-id=2" - " -numa cpu,node-id=3,socket-id=3" - " -object memory-backend-ram,id=ram4,size=128M" - " -object memory-backend-ram,id=nvm0,size=128M" - " -device pc-dimm,id=dimm0,memdev=ram4,node=1" - " -device nvdimm,id=dimm1,memdev=nvm0,node=2", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_dimm_pxm(void) -{ - test_acpi_tcg_dimm_pxm(MACHINE_Q35); -} - -static void test_acpi_piix4_tcg_dimm_pxm(void) -{ - test_acpi_tcg_dimm_pxm(MACHINE_PC); -} - -static void test_acpi_virt_tcg_memhp(void) -{ - test_data data = { - .machine = "virt", - .tcg_only = true, - .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", - .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", - .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", - .ram_start = 0x40000000ULL, - .scan_len = 256ULL * 1024 * 1024, - }; - - data.variant = ".memhp"; - test_acpi_one(" -machine nvdimm=on" - " -cpu cortex-a57" - " -m 256M,slots=3,maxmem=1G" - " -object memory-backend-ram,id=ram0,size=128M" - " -object memory-backend-ram,id=ram1,size=128M" - " -numa node,memdev=ram0 -numa node,memdev=ram1" - " -numa dist,src=0,dst=1,val=21" - " -object memory-backend-ram,id=ram2,size=128M" - " -object memory-backend-ram,id=nvm0,size=128M" - " -device pc-dimm,id=dimm0,memdev=ram2,node=0" - " -device nvdimm,id=dimm1,memdev=nvm0,node=1", - &data); - - free_test_data(&data); - -} - -static void test_acpi_virt_tcg_numamem(void) -{ - test_data data = { - .machine = "virt", - .tcg_only = true, - .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", - .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", - .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", - .ram_start = 0x40000000ULL, - .scan_len = 128ULL * 1024 * 1024, - }; - - data.variant = ".numamem"; - test_acpi_one(" -cpu cortex-a57" - " -object memory-backend-ram,id=ram0,size=128M" - " -numa node,memdev=ram0", - &data); - - free_test_data(&data); - -} - -static void test_acpi_tcg_acpi_hmat(const char *machine) -{ - test_data data; - - memset(&data, 0, sizeof(data)); - data.machine = machine; - data.variant = ".acpihmat"; - test_acpi_one(" -machine hmat=on" - " -smp 2,sockets=2" - " -m 128M,slots=2,maxmem=1G" - " -object memory-backend-ram,size=64M,id=m0" - " -object memory-backend-ram,size=64M,id=m1" - " -numa node,nodeid=0,memdev=m0" - " -numa node,nodeid=1,memdev=m1,initiator=0" - " -numa cpu,node-id=0,socket-id=0" - " -numa cpu,node-id=0,socket-id=1" - " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," - "data-type=access-latency,latency=1" - " -numa hmat-lb,initiator=0,target=0,hierarchy=memory," - "data-type=access-bandwidth,bandwidth=65534M" - " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," - "data-type=access-latency,latency=65534" - " -numa hmat-lb,initiator=0,target=1,hierarchy=memory," - "data-type=access-bandwidth,bandwidth=32767M" - " -numa hmat-cache,node-id=0,size=10K,level=1," - "associativity=direct,policy=write-back,line=8" - " -numa hmat-cache,node-id=1,size=10K,level=1," - "associativity=direct,policy=write-back,line=8", - &data); - free_test_data(&data); -} - -static void test_acpi_q35_tcg_acpi_hmat(void) -{ - test_acpi_tcg_acpi_hmat(MACHINE_Q35); -} - -static void test_acpi_piix4_tcg_acpi_hmat(void) -{ - test_acpi_tcg_acpi_hmat(MACHINE_PC); -} - -static void test_acpi_virt_tcg(void) -{ - test_data data = { - .machine = "virt", - .tcg_only = true, - .uefi_fl1 = "pc-bios/edk2-aarch64-code.fd", - .uefi_fl2 = "pc-bios/edk2-arm-vars.fd", - .cd = "tests/data/uefi-boot-images/bios-tables-test.aarch64.iso.qcow2", - .ram_start = 0x40000000ULL, - .scan_len = 128ULL * 1024 * 1024, - }; - - test_acpi_one("-cpu cortex-a57", &data); - free_test_data(&data); - - data.smbios_cpu_max_speed = 2900; - data.smbios_cpu_curr_speed = 2700; - test_acpi_one("-cpu cortex-a57 " - "-smbios type=4,max-speed=2900,current-speed=2700", &data); - free_test_data(&data); -} - -int main(int argc, char *argv[]) -{ - const char *arch = qtest_get_arch(); - int ret; - - g_test_init(&argc, &argv, NULL); - - if (strcmp(arch, "i386") == 0 || strcmp(arch, "x86_64") == 0) { - ret = boot_sector_init(disk); - if (ret) { - return ret; - } - - qtest_add_func("acpi/q35/tpm-tis", test_acpi_q35_tcg_tpm_tis); - qtest_add_func("acpi/piix4", test_acpi_piix4_tcg); - qtest_add_func("acpi/piix4/bridge", test_acpi_piix4_tcg_bridge); -<<<<<<< HEAD - qtest_add_func("acpi/piix4/brhotplug", test_acpi_piix4_bridge_hotplug); -======= - qtest_add_func("acpi/piix4/hotplug", test_acpi_piix4_root_hotplug); ->>>>>>> tests/acpi: add a new unit test to test hotplug off/on feature on the root pci bus - qtest_add_func("acpi/q35", test_acpi_q35_tcg); - qtest_add_func("acpi/q35/bridge", test_acpi_q35_tcg_bridge); - qtest_add_func("acpi/q35/mmio64", test_acpi_q35_tcg_mmio64); - qtest_add_func("acpi/piix4/ipmi", test_acpi_piix4_tcg_ipmi); - qtest_add_func("acpi/q35/ipmi", test_acpi_q35_tcg_ipmi); - qtest_add_func("acpi/piix4/cpuhp", test_acpi_piix4_tcg_cphp); - qtest_add_func("acpi/q35/cpuhp", test_acpi_q35_tcg_cphp); - qtest_add_func("acpi/piix4/memhp", test_acpi_piix4_tcg_memhp); - qtest_add_func("acpi/q35/memhp", test_acpi_q35_tcg_memhp); - qtest_add_func("acpi/piix4/numamem", test_acpi_piix4_tcg_numamem); - qtest_add_func("acpi/q35/numamem", test_acpi_q35_tcg_numamem); - qtest_add_func("acpi/piix4/dimmpxm", test_acpi_piix4_tcg_dimm_pxm); - qtest_add_func("acpi/q35/dimmpxm", test_acpi_q35_tcg_dimm_pxm); - qtest_add_func("acpi/piix4/acpihmat", test_acpi_piix4_tcg_acpi_hmat); - qtest_add_func("acpi/q35/acpihmat", test_acpi_q35_tcg_acpi_hmat); - } else if (strcmp(arch, "aarch64") == 0) { - qtest_add_func("acpi/virt", test_acpi_virt_tcg); - qtest_add_func("acpi/virt/numamem", test_acpi_virt_tcg_numamem); - qtest_add_func("acpi/virt/memhp", test_acpi_virt_tcg_memhp); - } - ret = g_test_run(); - boot_sector_cleanup(disk); - return ret; -} diff --git a/tests/qtest/bios-tables-test.c.rej b/tests/qtest/bios-tables-test.c.rej deleted file mode 100644 index aacd6ae220..0000000000 --- a/tests/qtest/bios-tables-test.c.rej +++ /dev/null @@ -1,22 +0,0 @@ ---- tests/qtest/bios-tables-test.c -+++ tests/qtest/bios-tables-test.c -@@ -927,12 +927,17 @@ static void test_acpi_virt_tcg_memhp(void) - }; - 20 - data.variant =3D ".memhp"; -- test_acpi_one(" -cpu cortex-a57" -+ test_acpi_one(" -machine nvdimm=3Don" -+ " -cpu cortex-a57" - " -m 256M,slots=3D3,maxmem=3D1G" - " -object memory-backend-ram,id=3Dram0,size=3D128M" - " -object memory-backend-ram,id=3Dram1,size=3D128M" - " -numa node,memdev=3Dram0 -numa node,memdev=3Dram1" -- " -numa dist,src=3D0,dst=3D1,val=3D21", -+ " -numa dist,src=3D0,dst=3D1,val=3D21" -+ " -object memory-backend-ram,id=3Dram2,size=3D128M" -+ " -object memory-backend-ram,id=3Dnvm0,size=3D128M" -+ " -device pc-dimm,id=3Ddimm0,memdev=3Dram2,node=3D0" -+ " -device nvdimm,id=3Ddimm1,memdev=3Dnvm0,node=3D1", - &data); - 20 - free_test_data(&data); diff --git a/tests/vhost-user-bridge b/tests/vhost-user-bridge deleted file mode 100755 index 36d1ece0dc8a198846c3a8bf277c1f7d093736f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 83120 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 TKY(+Fsc-Nk$gv~6OY8f;GePBQ diff --git a/tests/vhost-user-bridge.c.orig b/tests/vhost-user-bridge.c.orig deleted file mode 100644 index f907ce741f..0000000000 --- a/tests/vhost-user-bridge.c.orig +++ /dev/null @@ -1,1432 +0,0 @@ -/* - * Vhost User Bridge - * - * Copyright (c) 2015 Red Hat, Inc. - * - * Authors: - * Victor Kaplansky - * - * This work is licensed under the terms of the GNU GPL, version 2 or - * later. See the COPYING file in the top-level directory. - */ - -/* - * TODO: - * - main should get parameters from the command line. - * - implement all request handlers. Still not implemented: - * vubr_get_queue_num_exec() - * vubr_send_rarp_exec() - * - test for broken requests and virtqueue. - * - implement features defined by Virtio 1.0 spec. - * - support mergeable buffers and indirect descriptors. - * - implement clean shutdown. - * - implement non-blocking writes to UDP backend. - * - implement polling strategy. - * - implement clean starting/stopping of vq processing - * - implement clean starting/stopping of used and buffers - * dirty page logging. - */ - -#define _FILE_OFFSET_BITS 64 - -#include "qemu/osdep.h" -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "qemu/atomic.h" -#include "standard-headers/linux/virtio_net.h" -#include "standard-headers/linux/virtio_ring.h" - -#define VHOST_USER_BRIDGE_DEBUG 1 - -#define DPRINT(...) \ - do { \ - if (VHOST_USER_BRIDGE_DEBUG) { \ - printf(__VA_ARGS__); \ - } \ - } while (0) - -typedef void (*CallbackFunc)(int sock, void *ctx); - -typedef struct Event { - void *ctx; - CallbackFunc callback; -} Event; - -typedef struct Dispatcher { - int max_sock; - fd_set fdset; - Event events[FD_SETSIZE]; -} Dispatcher; - -static void -vubr_die(const char *s) -{ - perror(s); - exit(1); -} - -static int -dispatcher_init(Dispatcher *dispr) -{ - FD_ZERO(&dispr->fdset); - dispr->max_sock = -1; - return 0; -} - -static int -dispatcher_add(Dispatcher *dispr, int sock, void *ctx, CallbackFunc cb) -{ - if (sock >= FD_SETSIZE) { - fprintf(stderr, - "Error: Failed to add new event. sock %d should be less than %d\n", - sock, FD_SETSIZE); - return -1; - } - - dispr->events[sock].ctx = ctx; - dispr->events[sock].callback = cb; - - FD_SET(sock, &dispr->fdset); - if (sock > dispr->max_sock) { - dispr->max_sock = sock; - } - DPRINT("Added sock %d for watching. max_sock: %d\n", - sock, dispr->max_sock); - return 0; -} - -/* dispatcher_remove() is not currently in use but may be useful - * in the future. */ -static int -dispatcher_remove(Dispatcher *dispr, int sock) -{ - if (sock >= FD_SETSIZE) { - fprintf(stderr, - "Error: Failed to remove event. sock %d should be less than %d\n", - sock, FD_SETSIZE); - return -1; - } - - FD_CLR(sock, &dispr->fdset); - DPRINT("Sock %d removed from dispatcher watch.\n", sock); - return 0; -} - -/* timeout in us */ -static int -dispatcher_wait(Dispatcher *dispr, uint32_t timeout) -{ - struct timeval tv; - tv.tv_sec = timeout / 1000000; - tv.tv_usec = timeout % 1000000; - - fd_set fdset = dispr->fdset; - - /* wait until some of sockets become readable. */ - int rc = select(dispr->max_sock + 1, &fdset, 0, 0, &tv); - - if (rc == -1) { - vubr_die("select"); - } - - /* Timeout */ - if (rc == 0) { - return 0; - } - - /* Now call callback for every ready socket. */ - - int sock; - for (sock = 0; sock < dispr->max_sock + 1; sock++) { - /* The callback on a socket can remove other sockets from the - * dispatcher, thus we have to check that the socket is - * still not removed from dispatcher's list - */ - if (FD_ISSET(sock, &fdset) && FD_ISSET(sock, &dispr->fdset)) { - Event *e = &dispr->events[sock]; - e->callback(sock, e->ctx); - } - } - - return 0; -} - -typedef struct VubrVirtq { - int call_fd; - int kick_fd; - uint32_t size; - uint16_t last_avail_index; - uint16_t last_used_index; - struct vring_desc *desc; - struct vring_avail *avail; - struct vring_used *used; - uint64_t log_guest_addr; - int enable; -} VubrVirtq; - -/* Based on qemu/hw/virtio/vhost-user.c */ - -#define VHOST_MEMORY_MAX_NREGIONS 8 -#define VHOST_USER_F_PROTOCOL_FEATURES 30 -/* v1.0 compliant. */ -#define VIRTIO_F_VERSION_1 32 - -#define VHOST_LOG_PAGE 4096 - -enum VhostUserProtocolFeature { - VHOST_USER_PROTOCOL_F_MQ = 0, - VHOST_USER_PROTOCOL_F_LOG_SHMFD = 1, - VHOST_USER_PROTOCOL_F_RARP = 2, - - VHOST_USER_PROTOCOL_F_MAX -}; - -#define VHOST_USER_PROTOCOL_FEATURE_MASK ((1 << VHOST_USER_PROTOCOL_F_MAX) - 1) - -typedef enum VhostUserRequest { - VHOST_USER_NONE = 0, - VHOST_USER_GET_FEATURES = 1, - VHOST_USER_SET_FEATURES = 2, - VHOST_USER_SET_OWNER = 3, - VHOST_USER_RESET_OWNER = 4, - VHOST_USER_SET_MEM_TABLE = 5, - VHOST_USER_SET_LOG_BASE = 6, - VHOST_USER_SET_LOG_FD = 7, - VHOST_USER_SET_VRING_NUM = 8, - VHOST_USER_SET_VRING_ADDR = 9, - VHOST_USER_SET_VRING_BASE = 10, - VHOST_USER_GET_VRING_BASE = 11, - VHOST_USER_SET_VRING_KICK = 12, - VHOST_USER_SET_VRING_CALL = 13, - VHOST_USER_SET_VRING_ERR = 14, - VHOST_USER_GET_PROTOCOL_FEATURES = 15, - VHOST_USER_SET_PROTOCOL_FEATURES = 16, - VHOST_USER_GET_QUEUE_NUM = 17, - VHOST_USER_SET_VRING_ENABLE = 18, - VHOST_USER_SEND_RARP = 19, - VHOST_USER_MAX -} VhostUserRequest; - -typedef struct VhostUserMemoryRegion { - uint64_t guest_phys_addr; - uint64_t memory_size; - uint64_t userspace_addr; - uint64_t mmap_offset; -} VhostUserMemoryRegion; - -typedef struct VhostUserMemory { - uint32_t nregions; - uint32_t padding; - VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS]; -} VhostUserMemory; - -typedef struct VhostUserLog { - uint64_t mmap_size; - uint64_t mmap_offset; -} VhostUserLog; - -typedef struct VhostUserMsg { - VhostUserRequest request; - -#define VHOST_USER_VERSION_MASK (0x3) -#define VHOST_USER_REPLY_MASK (0x1<<2) - uint32_t flags; - uint32_t size; /* the following payload size */ - union { -#define VHOST_USER_VRING_IDX_MASK (0xff) -#define VHOST_USER_VRING_NOFD_MASK (0x1<<8) - uint64_t u64; - struct vhost_vring_state state; - struct vhost_vring_addr addr; - VhostUserMemory memory; - VhostUserLog log; - } payload; - int fds[VHOST_MEMORY_MAX_NREGIONS]; - int fd_num; -} QEMU_PACKED VhostUserMsg; - -#define VHOST_USER_HDR_SIZE offsetof(VhostUserMsg, payload.u64) - -/* The version of the protocol we support */ -#define VHOST_USER_VERSION (0x1) - -#define MAX_NR_VIRTQUEUE (8) - -typedef struct VubrDevRegion { - /* Guest Physical address. */ - uint64_t gpa; - /* Memory region size. */ - uint64_t size; - /* QEMU virtual address (userspace). */ - uint64_t qva; - /* Starting offset in our mmaped space. */ - uint64_t mmap_offset; - /* Start address of mmaped space. */ - uint64_t mmap_addr; -} VubrDevRegion; - -typedef struct VubrDev { - int sock; - Dispatcher dispatcher; - uint32_t nregions; - VubrDevRegion regions[VHOST_MEMORY_MAX_NREGIONS]; - VubrVirtq vq[MAX_NR_VIRTQUEUE]; - int log_call_fd; - uint64_t log_size; - uint8_t *log_table; - int backend_udp_sock; - struct sockaddr_in backend_udp_dest; - int ready; - uint64_t features; - int hdrlen; -} VubrDev; - -static const char *vubr_request_str[] = { - [VHOST_USER_NONE] = "VHOST_USER_NONE", - [VHOST_USER_GET_FEATURES] = "VHOST_USER_GET_FEATURES", - [VHOST_USER_SET_FEATURES] = "VHOST_USER_SET_FEATURES", - [VHOST_USER_SET_OWNER] = "VHOST_USER_SET_OWNER", - [VHOST_USER_RESET_OWNER] = "VHOST_USER_RESET_OWNER", - [VHOST_USER_SET_MEM_TABLE] = "VHOST_USER_SET_MEM_TABLE", - [VHOST_USER_SET_LOG_BASE] = "VHOST_USER_SET_LOG_BASE", - [VHOST_USER_SET_LOG_FD] = "VHOST_USER_SET_LOG_FD", - [VHOST_USER_SET_VRING_NUM] = "VHOST_USER_SET_VRING_NUM", - [VHOST_USER_SET_VRING_ADDR] = "VHOST_USER_SET_VRING_ADDR", - [VHOST_USER_SET_VRING_BASE] = "VHOST_USER_SET_VRING_BASE", - [VHOST_USER_GET_VRING_BASE] = "VHOST_USER_GET_VRING_BASE", - [VHOST_USER_SET_VRING_KICK] = "VHOST_USER_SET_VRING_KICK", - [VHOST_USER_SET_VRING_CALL] = "VHOST_USER_SET_VRING_CALL", - [VHOST_USER_SET_VRING_ERR] = "VHOST_USER_SET_VRING_ERR", - [VHOST_USER_GET_PROTOCOL_FEATURES] = "VHOST_USER_GET_PROTOCOL_FEATURES", - [VHOST_USER_SET_PROTOCOL_FEATURES] = "VHOST_USER_SET_PROTOCOL_FEATURES", - [VHOST_USER_GET_QUEUE_NUM] = "VHOST_USER_GET_QUEUE_NUM", - [VHOST_USER_SET_VRING_ENABLE] = "VHOST_USER_SET_VRING_ENABLE", - [VHOST_USER_SEND_RARP] = "VHOST_USER_SEND_RARP", - [VHOST_USER_MAX] = "VHOST_USER_MAX", -}; - -static void -print_buffer(uint8_t *buf, size_t len) -{ - int i; - printf("Raw buffer:\n"); - for (i = 0; i < len; i++) { - if (i % 16 == 0) { - printf("\n"); - } - if (i % 4 == 0) { - printf(" "); - } - printf("%02x ", buf[i]); - } - printf("\n............................................................\n"); -} - -/* Translate guest physical address to our virtual address. */ -static uint64_t -gpa_to_va(VubrDev *dev, uint64_t guest_addr) -{ - int i; - - /* Find matching memory region. */ - for (i = 0; i < dev->nregions; i++) { - VubrDevRegion *r = &dev->regions[i]; - - if ((guest_addr >= r->gpa) && (guest_addr < (r->gpa + r->size))) { - return guest_addr - r->gpa + r->mmap_addr + r->mmap_offset; - } - } - - assert(!"address not found in regions"); - return 0; -} - -/* Translate qemu virtual address to our virtual address. */ -static uint64_t -qva_to_va(VubrDev *dev, uint64_t qemu_addr) -{ - int i; - - /* Find matching memory region. */ - for (i = 0; i < dev->nregions; i++) { - VubrDevRegion *r = &dev->regions[i]; - - if ((qemu_addr >= r->qva) && (qemu_addr < (r->qva + r->size))) { - return qemu_addr - r->qva + r->mmap_addr + r->mmap_offset; - } - } - - assert(!"address not found in regions"); - return 0; -} - -static void -vubr_message_read(int conn_fd, VhostUserMsg *vmsg) -{ - char control[CMSG_SPACE(VHOST_MEMORY_MAX_NREGIONS * sizeof(int))] = { }; - struct iovec iov = { - .iov_base = (char *)vmsg, - .iov_len = VHOST_USER_HDR_SIZE, - }; - struct msghdr msg = { - .msg_iov = &iov, - .msg_iovlen = 1, - .msg_control = control, - .msg_controllen = sizeof(control), - }; - size_t fd_size; - struct cmsghdr *cmsg; - int rc; - - rc = recvmsg(conn_fd, &msg, 0); - - if (rc == 0) { - vubr_die("recvmsg"); - fprintf(stderr, "Peer disconnected.\n"); - exit(1); - } - if (rc < 0) { - vubr_die("recvmsg"); - } - - vmsg->fd_num = 0; - for (cmsg = CMSG_FIRSTHDR(&msg); - cmsg != NULL; - cmsg = CMSG_NXTHDR(&msg, cmsg)) - { - if (cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) { - fd_size = cmsg->cmsg_len - CMSG_LEN(0); - vmsg->fd_num = fd_size / sizeof(int); - memcpy(vmsg->fds, CMSG_DATA(cmsg), fd_size); - break; - } - } - - if (vmsg->size > sizeof(vmsg->payload)) { - fprintf(stderr, - "Error: too big message request: %d, size: vmsg->size: %u, " - "while sizeof(vmsg->payload) = %zu\n", - vmsg->request, vmsg->size, sizeof(vmsg->payload)); - exit(1); - } - - if (vmsg->size) { - rc = read(conn_fd, &vmsg->payload, vmsg->size); - if (rc == 0) { - vubr_die("recvmsg"); - fprintf(stderr, "Peer disconnected.\n"); - exit(1); - } - if (rc < 0) { - vubr_die("recvmsg"); - } - - assert(rc == vmsg->size); - } -} - -static void -vubr_message_write(int conn_fd, VhostUserMsg *vmsg) -{ - int rc; - - do { - rc = write(conn_fd, vmsg, VHOST_USER_HDR_SIZE + vmsg->size); - } while (rc < 0 && errno == EINTR); - - if (rc < 0) { - vubr_die("write"); - } -} - -static void -vubr_backend_udp_sendbuf(VubrDev *dev, uint8_t *buf, size_t len) -{ - int slen = sizeof(struct sockaddr_in); - - if (sendto(dev->backend_udp_sock, buf, len, 0, - (struct sockaddr *) &dev->backend_udp_dest, slen) == -1) { - vubr_die("sendto()"); - } -} - -static int -vubr_backend_udp_recvbuf(VubrDev *dev, uint8_t *buf, size_t buflen) -{ - int slen = sizeof(struct sockaddr_in); - int rc; - - rc = recvfrom(dev->backend_udp_sock, buf, buflen, 0, - (struct sockaddr *) &dev->backend_udp_dest, - (socklen_t *)&slen); - if (rc == -1) { - vubr_die("recvfrom()"); - } - - return rc; -} - -static void -vubr_consume_raw_packet(VubrDev *dev, uint8_t *buf, uint32_t len) -{ - int hdrlen = dev->hdrlen; - DPRINT(" hdrlen = %d\n", dev->hdrlen); - - if (VHOST_USER_BRIDGE_DEBUG) { - print_buffer(buf, len); - } - vubr_backend_udp_sendbuf(dev, buf + hdrlen, len - hdrlen); -} - -/* Kick the log_call_fd if required. */ -static void -vubr_log_kick(VubrDev *dev) -{ - if (dev->log_call_fd != -1) { - DPRINT("Kicking the QEMU's log...\n"); - eventfd_write(dev->log_call_fd, 1); - } -} - -/* Kick the guest if necessary. */ -static void -vubr_virtqueue_kick(VubrVirtq *vq) -{ - if (!(vq->avail->flags & VRING_AVAIL_F_NO_INTERRUPT)) { - DPRINT("Kicking the guest...\n"); - eventfd_write(vq->call_fd, 1); - } -} - -static void -vubr_log_page(uint8_t *log_table, uint64_t page) -{ - DPRINT("Logged dirty guest page: %"PRId64"\n", page); - atomic_or(&log_table[page / 8], 1 << (page % 8)); -} - -static void -vubr_log_write(VubrDev *dev, uint64_t address, uint64_t length) -{ - uint64_t page; - - if (!(dev->features & (1ULL << VHOST_F_LOG_ALL)) || - !dev->log_table || !length) { - return; - } - - assert(dev->log_size > ((address + length - 1) / VHOST_LOG_PAGE / 8)); - - page = address / VHOST_LOG_PAGE; - while (page * VHOST_LOG_PAGE < address + length) { - vubr_log_page(dev->log_table, page); - page += VHOST_LOG_PAGE; - } - vubr_log_kick(dev); -} - -static void -vubr_post_buffer(VubrDev *dev, VubrVirtq *vq, uint8_t *buf, int32_t len) -{ - struct vring_desc *desc = vq->desc; - struct vring_avail *avail = vq->avail; - struct vring_used *used = vq->used; - uint64_t log_guest_addr = vq->log_guest_addr; - int32_t remaining_len = len; - - unsigned int size = vq->size; - - uint16_t avail_index = atomic_mb_read(&avail->idx); - - /* We check the available descriptors before posting the - * buffer, so here we assume that enough available - * descriptors. */ - assert(vq->last_avail_index != avail_index); - uint16_t a_index = vq->last_avail_index % size; - uint16_t u_index = vq->last_used_index % size; - uint16_t d_index = avail->ring[a_index]; - - int i = d_index; - uint32_t written_len = 0; - - do { - DPRINT("Post packet to guest on vq:\n"); - DPRINT(" size = %d\n", vq->size); - DPRINT(" last_avail_index = %d\n", vq->last_avail_index); - DPRINT(" last_used_index = %d\n", vq->last_used_index); - DPRINT(" a_index = %d\n", a_index); - DPRINT(" u_index = %d\n", u_index); - DPRINT(" d_index = %d\n", d_index); - DPRINT(" desc[%d].addr = 0x%016"PRIx64"\n", i, desc[i].addr); - DPRINT(" desc[%d].len = %d\n", i, desc[i].len); - DPRINT(" desc[%d].flags = %d\n", i, desc[i].flags); - DPRINT(" avail->idx = %d\n", avail_index); - DPRINT(" used->idx = %d\n", used->idx); - - if (!(desc[i].flags & VRING_DESC_F_WRITE)) { - /* FIXME: we should find writable descriptor. */ - fprintf(stderr, "Error: descriptor is not writable. Exiting.\n"); - exit(1); - } - - void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr); - uint32_t chunk_len = desc[i].len; - uint32_t chunk_write_len = MIN(remaining_len, chunk_len); - - memcpy(chunk_start, buf + written_len, chunk_write_len); - vubr_log_write(dev, desc[i].addr, chunk_write_len); - remaining_len -= chunk_write_len; - written_len += chunk_write_len; - - if ((remaining_len == 0) || !(desc[i].flags & VRING_DESC_F_NEXT)) { - break; - } - - i = desc[i].next; - } while (1); - - if (remaining_len > 0) { - fprintf(stderr, - "Too long packet for RX, remaining_len = %d, Dropping...\n", - remaining_len); - return; - } - - /* Add descriptor to the used ring. */ - used->ring[u_index].id = d_index; - used->ring[u_index].len = len; - vubr_log_write(dev, - log_guest_addr + offsetof(struct vring_used, ring[u_index]), - sizeof(used->ring[u_index])); - - vq->last_avail_index++; - vq->last_used_index++; - - atomic_mb_set(&used->idx, vq->last_used_index); - vubr_log_write(dev, - log_guest_addr + offsetof(struct vring_used, idx), - sizeof(used->idx)); - - /* Kick the guest if necessary. */ - vubr_virtqueue_kick(vq); -} - -static int -vubr_process_desc(VubrDev *dev, VubrVirtq *vq) -{ - struct vring_desc *desc = vq->desc; - struct vring_avail *avail = vq->avail; - struct vring_used *used = vq->used; - uint64_t log_guest_addr = vq->log_guest_addr; - - unsigned int size = vq->size; - - uint16_t a_index = vq->last_avail_index % size; - uint16_t u_index = vq->last_used_index % size; - uint16_t d_index = avail->ring[a_index]; - - uint32_t i, len = 0; - size_t buf_size = 4096; - uint8_t buf[4096]; - - DPRINT("Chunks: "); - i = d_index; - do { - void *chunk_start = (void *)(uintptr_t)gpa_to_va(dev, desc[i].addr); - uint32_t chunk_len = desc[i].len; - - assert(!(desc[i].flags & VRING_DESC_F_WRITE)); - - if (len + chunk_len < buf_size) { - memcpy(buf + len, chunk_start, chunk_len); - DPRINT("%d ", chunk_len); - } else { - fprintf(stderr, "Error: too long packet. Dropping...\n"); - break; - } - - len += chunk_len; - - if (!(desc[i].flags & VRING_DESC_F_NEXT)) { - break; - } - - i = desc[i].next; - } while (1); - DPRINT("\n"); - - if (!len) { - return -1; - } - - /* Add descriptor to the used ring. */ - used->ring[u_index].id = d_index; - used->ring[u_index].len = len; - vubr_log_write(dev, - log_guest_addr + offsetof(struct vring_used, ring[u_index]), - sizeof(used->ring[u_index])); - - vubr_consume_raw_packet(dev, buf, len); - - return 0; -} - -static void -vubr_process_avail(VubrDev *dev, VubrVirtq *vq) -{ - struct vring_avail *avail = vq->avail; - struct vring_used *used = vq->used; - uint64_t log_guest_addr = vq->log_guest_addr; - - while (vq->last_avail_index != atomic_mb_read(&avail->idx)) { - vubr_process_desc(dev, vq); - vq->last_avail_index++; - vq->last_used_index++; - } - - atomic_mb_set(&used->idx, vq->last_used_index); - vubr_log_write(dev, - log_guest_addr + offsetof(struct vring_used, idx), - sizeof(used->idx)); -} - -static void -vubr_backend_recv_cb(int sock, void *ctx) -{ - VubrDev *dev = (VubrDev *) ctx; - VubrVirtq *rx_vq = &dev->vq[0]; - uint8_t buf[4096]; - struct virtio_net_hdr_v1 *hdr = (struct virtio_net_hdr_v1 *)buf; - int hdrlen = dev->hdrlen; - int buflen = sizeof(buf); - int len; - - if (!dev->ready) { - return; - } - - DPRINT("\n\n *** IN UDP RECEIVE CALLBACK ***\n\n"); - DPRINT(" hdrlen = %d\n", hdrlen); - - uint16_t avail_index = atomic_mb_read(&rx_vq->avail->idx); - - /* If there is no available descriptors, just do nothing. - * The buffer will be handled by next arrived UDP packet, - * or next kick on receive virtq. */ - if (rx_vq->last_avail_index == avail_index) { - DPRINT("Got UDP packet, but no available descriptors on RX virtq.\n"); - return; - } - - memset(buf, 0, hdrlen); - /* TODO: support mergeable buffers. */ - if (hdrlen == 12) - hdr->num_buffers = 1; - len = vubr_backend_udp_recvbuf(dev, buf + hdrlen, buflen - hdrlen); - - vubr_post_buffer(dev, rx_vq, buf, len + hdrlen); -} - -static void -vubr_kick_cb(int sock, void *ctx) -{ - VubrDev *dev = (VubrDev *) ctx; - eventfd_t kick_data; - ssize_t rc; - - rc = eventfd_read(sock, &kick_data); - if (rc == -1) { - vubr_die("eventfd_read()"); - } else { - DPRINT("Got kick_data: %016"PRIx64"\n", kick_data); - vubr_process_avail(dev, &dev->vq[1]); - } -} - -static int -vubr_none_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - DPRINT("Function %s() not implemented yet.\n", __func__); - return 0; -} - -static int -vubr_get_features_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - vmsg->payload.u64 = - ((1ULL << VIRTIO_NET_F_MRG_RXBUF) | - (1ULL << VHOST_F_LOG_ALL) | - (1ULL << VIRTIO_NET_F_GUEST_ANNOUNCE) | - (1ULL << VHOST_USER_F_PROTOCOL_FEATURES)); - - vmsg->size = sizeof(vmsg->payload.u64); - - DPRINT("Sending back to guest u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - - /* Reply */ - return 1; -} - -static int -vubr_set_features_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - - dev->features = vmsg->payload.u64; - if ((dev->features & (1ULL << VIRTIO_F_VERSION_1)) || - (dev->features & (1ULL << VIRTIO_NET_F_MRG_RXBUF))) { - dev->hdrlen = 12; - } else { - dev->hdrlen = 10; - } - - return 0; -} - -static int -vubr_set_owner_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - return 0; -} - -static void -vubr_close_log(VubrDev *dev) -{ - if (dev->log_table) { - if (munmap(dev->log_table, dev->log_size) != 0) { - vubr_die("munmap()"); - } - - dev->log_table = 0; - } - if (dev->log_call_fd != -1) { - close(dev->log_call_fd); - dev->log_call_fd = -1; - } -} - -static int -vubr_reset_device_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - vubr_close_log(dev); - dev->ready = 0; - dev->features = 0; - return 0; -} - -static int -vubr_set_mem_table_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - int i; - VhostUserMemory *memory = &vmsg->payload.memory; - dev->nregions = memory->nregions; - - DPRINT("Nregions: %d\n", memory->nregions); - for (i = 0; i < dev->nregions; i++) { - void *mmap_addr; - VhostUserMemoryRegion *msg_region = &memory->regions[i]; - VubrDevRegion *dev_region = &dev->regions[i]; - - DPRINT("Region %d\n", i); - DPRINT(" guest_phys_addr: 0x%016"PRIx64"\n", - msg_region->guest_phys_addr); - DPRINT(" memory_size: 0x%016"PRIx64"\n", - msg_region->memory_size); - DPRINT(" userspace_addr 0x%016"PRIx64"\n", - msg_region->userspace_addr); - DPRINT(" mmap_offset 0x%016"PRIx64"\n", - msg_region->mmap_offset); - - dev_region->gpa = msg_region->guest_phys_addr; - dev_region->size = msg_region->memory_size; - dev_region->qva = msg_region->userspace_addr; - dev_region->mmap_offset = msg_region->mmap_offset; - - /* We don't use offset argument of mmap() since the - * mapped address has to be page aligned, and we use huge - * pages. */ - mmap_addr = mmap(0, dev_region->size + dev_region->mmap_offset, - PROT_READ | PROT_WRITE, MAP_SHARED, - vmsg->fds[i], 0); - - if (mmap_addr == MAP_FAILED) { - vubr_die("mmap"); - } - dev_region->mmap_addr = (uint64_t)(uintptr_t)mmap_addr; - DPRINT(" mmap_addr: 0x%016"PRIx64"\n", dev_region->mmap_addr); - - close(vmsg->fds[i]); - } - - return 0; -} - -static int -vubr_set_log_base_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - int fd; - uint64_t log_mmap_size, log_mmap_offset; - void *rc; - - assert(vmsg->fd_num == 1); - fd = vmsg->fds[0]; - - assert(vmsg->size == sizeof(vmsg->payload.log)); - log_mmap_offset = vmsg->payload.log.mmap_offset; - log_mmap_size = vmsg->payload.log.mmap_size; - DPRINT("Log mmap_offset: %"PRId64"\n", log_mmap_offset); - DPRINT("Log mmap_size: %"PRId64"\n", log_mmap_size); - - rc = mmap(0, log_mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, - log_mmap_offset); - if (rc == MAP_FAILED) { - vubr_die("mmap"); - } - dev->log_table = rc; - dev->log_size = log_mmap_size; - - vmsg->size = sizeof(vmsg->payload.u64); - /* Reply */ - return 1; -} - -static int -vubr_set_log_fd_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - assert(vmsg->fd_num == 1); - dev->log_call_fd = vmsg->fds[0]; - DPRINT("Got log_call_fd: %d\n", vmsg->fds[0]); - return 0; -} - -static int -vubr_set_vring_num_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - unsigned int index = vmsg->payload.state.index; - unsigned int num = vmsg->payload.state.num; - - DPRINT("State.index: %d\n", index); - DPRINT("State.num: %d\n", num); - dev->vq[index].size = num; - return 0; -} - -static int -vubr_set_vring_addr_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - struct vhost_vring_addr *vra = &vmsg->payload.addr; - unsigned int index = vra->index; - VubrVirtq *vq = &dev->vq[index]; - - DPRINT("vhost_vring_addr:\n"); - DPRINT(" index: %d\n", vra->index); - DPRINT(" flags: %d\n", vra->flags); - DPRINT(" desc_user_addr: 0x%016llx\n", vra->desc_user_addr); - DPRINT(" used_user_addr: 0x%016llx\n", vra->used_user_addr); - DPRINT(" avail_user_addr: 0x%016llx\n", vra->avail_user_addr); - DPRINT(" log_guest_addr: 0x%016llx\n", vra->log_guest_addr); - - vq->desc = (struct vring_desc *)(uintptr_t)qva_to_va(dev, vra->desc_user_addr); - vq->used = (struct vring_used *)(uintptr_t)qva_to_va(dev, vra->used_user_addr); - vq->avail = (struct vring_avail *)(uintptr_t)qva_to_va(dev, vra->avail_user_addr); - vq->log_guest_addr = vra->log_guest_addr; - - DPRINT("Setting virtq addresses:\n"); - DPRINT(" vring_desc at %p\n", vq->desc); - DPRINT(" vring_used at %p\n", vq->used); - DPRINT(" vring_avail at %p\n", vq->avail); - - vq->last_used_index = vq->used->idx; - return 0; -} - -static int -vubr_set_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - unsigned int index = vmsg->payload.state.index; - unsigned int num = vmsg->payload.state.num; - - DPRINT("State.index: %d\n", index); - DPRINT("State.num: %d\n", num); - dev->vq[index].last_avail_index = num; - - return 0; -} - -static int -vubr_get_vring_base_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - unsigned int index = vmsg->payload.state.index; - - DPRINT("State.index: %d\n", index); - vmsg->payload.state.num = dev->vq[index].last_avail_index; - vmsg->size = sizeof(vmsg->payload.state); - /* FIXME: this is a work-around for a bug in QEMU enabling - * too early vrings. When protocol features are enabled, - * we have to respect * VHOST_USER_SET_VRING_ENABLE request. */ - dev->ready = 0; - - if (dev->vq[index].call_fd != -1) { - close(dev->vq[index].call_fd); - dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd); - dev->vq[index].call_fd = -1; - } - if (dev->vq[index].kick_fd != -1) { - close(dev->vq[index].kick_fd); - dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd); - dev->vq[index].kick_fd = -1; - } - - /* Reply */ - return 1; -} - -static int -vubr_set_vring_kick_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - uint64_t u64_arg = vmsg->payload.u64; - int index = u64_arg & VHOST_USER_VRING_IDX_MASK; - - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - - assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0); - assert(vmsg->fd_num == 1); - - if (dev->vq[index].kick_fd != -1) { - close(dev->vq[index].kick_fd); - dispatcher_remove(&dev->dispatcher, dev->vq[index].kick_fd); - } - dev->vq[index].kick_fd = vmsg->fds[0]; - DPRINT("Got kick_fd: %d for vq: %d\n", vmsg->fds[0], index); - - if (index % 2 == 1) { - /* TX queue. */ - dispatcher_add(&dev->dispatcher, dev->vq[index].kick_fd, - dev, vubr_kick_cb); - - DPRINT("Waiting for kicks on fd: %d for vq: %d\n", - dev->vq[index].kick_fd, index); - } - /* We temporarily use this hack to determine that both TX and RX - * queues are set up and ready for processing. - * FIXME: we need to rely in VHOST_USER_SET_VRING_ENABLE and - * actual kicks. */ - if (dev->vq[0].kick_fd != -1 && - dev->vq[1].kick_fd != -1) { - dev->ready = 1; - DPRINT("vhost-user-bridge is ready for processing queues.\n"); - } - return 0; - -} - -static int -vubr_set_vring_call_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - uint64_t u64_arg = vmsg->payload.u64; - int index = u64_arg & VHOST_USER_VRING_IDX_MASK; - - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - assert((u64_arg & VHOST_USER_VRING_NOFD_MASK) == 0); - assert(vmsg->fd_num == 1); - - if (dev->vq[index].call_fd != -1) { - close(dev->vq[index].call_fd); - dispatcher_remove(&dev->dispatcher, dev->vq[index].call_fd); - } - dev->vq[index].call_fd = vmsg->fds[0]; - DPRINT("Got call_fd: %d for vq: %d\n", vmsg->fds[0], index); - - return 0; -} - -static int -vubr_set_vring_err_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - return 0; -} - -static int -vubr_get_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - vmsg->payload.u64 = 1ULL << VHOST_USER_PROTOCOL_F_LOG_SHMFD; - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - vmsg->size = sizeof(vmsg->payload.u64); - - /* Reply */ - return 1; -} - -static int -vubr_set_protocol_features_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - /* FIXME: unimplented */ - DPRINT("u64: 0x%016"PRIx64"\n", vmsg->payload.u64); - return 0; -} - -static int -vubr_get_queue_num_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - DPRINT("Function %s() not implemented yet.\n", __func__); - return 0; -} - -static int -vubr_set_vring_enable_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - unsigned int index = vmsg->payload.state.index; - unsigned int enable = vmsg->payload.state.num; - - DPRINT("State.index: %d\n", index); - DPRINT("State.enable: %d\n", enable); - dev->vq[index].enable = enable; - return 0; -} - -static int -vubr_send_rarp_exec(VubrDev *dev, VhostUserMsg *vmsg) -{ - DPRINT("Function %s() not implemented yet.\n", __func__); - return 0; -} - -static int -vubr_execute_request(VubrDev *dev, VhostUserMsg *vmsg) -{ - /* Print out generic part of the request. */ - DPRINT( - "================== Vhost user message from QEMU ==================\n"); - DPRINT("Request: %s (%d)\n", vubr_request_str[vmsg->request], - vmsg->request); - DPRINT("Flags: 0x%x\n", vmsg->flags); - DPRINT("Size: %d\n", vmsg->size); - - if (vmsg->fd_num) { - int i; - DPRINT("Fds:"); - for (i = 0; i < vmsg->fd_num; i++) { - DPRINT(" %d", vmsg->fds[i]); - } - DPRINT("\n"); - } - - switch (vmsg->request) { - case VHOST_USER_NONE: - return vubr_none_exec(dev, vmsg); - case VHOST_USER_GET_FEATURES: - return vubr_get_features_exec(dev, vmsg); - case VHOST_USER_SET_FEATURES: - return vubr_set_features_exec(dev, vmsg); - case VHOST_USER_SET_OWNER: - return vubr_set_owner_exec(dev, vmsg); - case VHOST_USER_RESET_OWNER: - return vubr_reset_device_exec(dev, vmsg); - case VHOST_USER_SET_MEM_TABLE: - return vubr_set_mem_table_exec(dev, vmsg); - case VHOST_USER_SET_LOG_BASE: - return vubr_set_log_base_exec(dev, vmsg); - case VHOST_USER_SET_LOG_FD: - return vubr_set_log_fd_exec(dev, vmsg); - case VHOST_USER_SET_VRING_NUM: - return vubr_set_vring_num_exec(dev, vmsg); - case VHOST_USER_SET_VRING_ADDR: - return vubr_set_vring_addr_exec(dev, vmsg); - case VHOST_USER_SET_VRING_BASE: - return vubr_set_vring_base_exec(dev, vmsg); - case VHOST_USER_GET_VRING_BASE: - return vubr_get_vring_base_exec(dev, vmsg); - case VHOST_USER_SET_VRING_KICK: - return vubr_set_vring_kick_exec(dev, vmsg); - case VHOST_USER_SET_VRING_CALL: - return vubr_set_vring_call_exec(dev, vmsg); - case VHOST_USER_SET_VRING_ERR: - return vubr_set_vring_err_exec(dev, vmsg); - case VHOST_USER_GET_PROTOCOL_FEATURES: - return vubr_get_protocol_features_exec(dev, vmsg); - case VHOST_USER_SET_PROTOCOL_FEATURES: - return vubr_set_protocol_features_exec(dev, vmsg); - case VHOST_USER_GET_QUEUE_NUM: - return vubr_get_queue_num_exec(dev, vmsg); - case VHOST_USER_SET_VRING_ENABLE: - return vubr_set_vring_enable_exec(dev, vmsg); - case VHOST_USER_SEND_RARP: - return vubr_send_rarp_exec(dev, vmsg); - - case VHOST_USER_MAX: - assert(vmsg->request != VHOST_USER_MAX); - } - return 0; -} - -static void -vubr_receive_cb(int sock, void *ctx) -{ - VubrDev *dev = (VubrDev *) ctx; - VhostUserMsg vmsg; - int reply_requested; - - vubr_message_read(sock, &vmsg); - reply_requested = vubr_execute_request(dev, &vmsg); - if (reply_requested) { - /* Set the version in the flags when sending the reply */ - vmsg.flags &= ~VHOST_USER_VERSION_MASK; - vmsg.flags |= VHOST_USER_VERSION; - vmsg.flags |= VHOST_USER_REPLY_MASK; - vubr_message_write(sock, &vmsg); - } -} - -static void -vubr_accept_cb(int sock, void *ctx) -{ - VubrDev *dev = (VubrDev *)ctx; - int conn_fd; - struct sockaddr_un un; - socklen_t len = sizeof(un); - - conn_fd = accept(sock, (struct sockaddr *) &un, &len); - if (conn_fd == -1) { - vubr_die("accept()"); - } - DPRINT("Got connection from remote peer on sock %d\n", conn_fd); - dispatcher_add(&dev->dispatcher, conn_fd, ctx, vubr_receive_cb); -} - -static VubrDev * -vubr_new(const char *path, bool client) -{ - VubrDev *dev = (VubrDev *) calloc(1, sizeof(VubrDev)); - dev->nregions = 0; - int i; - struct sockaddr_un un; - CallbackFunc cb; - size_t len; - - for (i = 0; i < MAX_NR_VIRTQUEUE; i++) { - dev->vq[i] = (VubrVirtq) { - .call_fd = -1, .kick_fd = -1, - .size = 0, - .last_avail_index = 0, .last_used_index = 0, - .desc = 0, .avail = 0, .used = 0, - .enable = 0, - }; - } - - /* Init log */ - dev->log_call_fd = -1; - dev->log_size = 0; - dev->log_table = 0; - dev->ready = 0; - dev->features = 0; - - /* Get a UNIX socket. */ - dev->sock = socket(AF_UNIX, SOCK_STREAM, 0); - if (dev->sock == -1) { - vubr_die("socket"); - } - - un.sun_family = AF_UNIX; - strcpy(un.sun_path, path); - len = sizeof(un.sun_family) + strlen(path); - - if (!client) { - unlink(path); - - if (bind(dev->sock, (struct sockaddr *) &un, len) == -1) { - vubr_die("bind"); - } - - if (listen(dev->sock, 1) == -1) { - vubr_die("listen"); - } - cb = vubr_accept_cb; - } else { - if (connect(dev->sock, (struct sockaddr *)&un, len) == -1) { - vubr_die("connect"); - } - cb = vubr_receive_cb; - } - - dispatcher_init(&dev->dispatcher); - dispatcher_add(&dev->dispatcher, dev->sock, (void *)dev, cb); - - DPRINT("Waiting for connections on UNIX socket %s ...\n", path); - return dev; -} - -static void -vubr_set_host(struct sockaddr_in *saddr, const char *host) -{ - if (isdigit(host[0])) { - if (!inet_aton(host, &saddr->sin_addr)) { - fprintf(stderr, "inet_aton() failed.\n"); - exit(1); - } - } else { - struct hostent *he = gethostbyname(host); - - if (!he) { - fprintf(stderr, "gethostbyname() failed.\n"); - exit(1); - } - saddr->sin_addr = *(struct in_addr *)he->h_addr; - } -} - -static void -vubr_backend_udp_setup(VubrDev *dev, - const char *local_host, - const char *local_port, - const char *remote_host, - const char *remote_port) -{ - int sock; - const char *r; - - int lport, rport; - - lport = strtol(local_port, (char **)&r, 0); - if (r == local_port) { - fprintf(stderr, "lport parsing failed.\n"); - exit(1); - } - - rport = strtol(remote_port, (char **)&r, 0); - if (r == remote_port) { - fprintf(stderr, "rport parsing failed.\n"); - exit(1); - } - - struct sockaddr_in si_local = { - .sin_family = AF_INET, - .sin_port = htons(lport), - }; - - vubr_set_host(&si_local, local_host); - - /* setup destination for sends */ - dev->backend_udp_dest = (struct sockaddr_in) { - .sin_family = AF_INET, - .sin_port = htons(rport), - }; - vubr_set_host(&dev->backend_udp_dest, remote_host); - - sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); - if (sock == -1) { - vubr_die("socket"); - } - - if (bind(sock, (struct sockaddr *)&si_local, sizeof(si_local)) == -1) { - vubr_die("bind"); - } - - dev->backend_udp_sock = sock; - dispatcher_add(&dev->dispatcher, sock, dev, vubr_backend_recv_cb); - DPRINT("Waiting for data from udp backend on %s:%d...\n", - local_host, lport); -} - -static void -vubr_run(VubrDev *dev) -{ - while (1) { - /* timeout 200ms */ - dispatcher_wait(&dev->dispatcher, 200000); - /* Here one can try polling strategy. */ - } -} - -static int -vubr_parse_host_port(const char **host, const char **port, const char *buf) -{ - char *p = strchr(buf, ':'); - - if (!p) { - return -1; - } - *p = '\0'; - *host = strdup(buf); - *port = strdup(p + 1); - return 0; -} - -#define DEFAULT_UD_SOCKET "/tmp/vubr.sock" -#define DEFAULT_LHOST "127.0.0.1" -#define DEFAULT_LPORT "4444" -#define DEFAULT_RHOST "127.0.0.1" -#define DEFAULT_RPORT "5555" - -static const char *ud_socket_path = DEFAULT_UD_SOCKET; -static const char *lhost = DEFAULT_LHOST; -static const char *lport = DEFAULT_LPORT; -static const char *rhost = DEFAULT_RHOST; -static const char *rport = DEFAULT_RPORT; - -int -main(int argc, char *argv[]) -{ - VubrDev *dev; - int opt; - bool client = false; - - while ((opt = getopt(argc, argv, "l:r:u:c")) != -1) { - - switch (opt) { - case 'l': - if (vubr_parse_host_port(&lhost, &lport, optarg) < 0) { - goto out; - } - break; - case 'r': - if (vubr_parse_host_port(&rhost, &rport, optarg) < 0) { - goto out; - } - break; - case 'u': - ud_socket_path = strdup(optarg); - break; - case 'c': - client = true; - break; - default: - goto out; - } - } - - DPRINT("ud socket: %s (%s)\n", ud_socket_path, - client ? "client" : "server"); - DPRINT("local: %s:%s\n", lhost, lport); - DPRINT("remote: %s:%s\n", rhost, rport); - - dev = vubr_new(ud_socket_path, client); - if (!dev) { - return 1; - } - - vubr_backend_udp_setup(dev, lhost, lport, rhost, rport); - vubr_run(dev); - return 0; - -out: - fprintf(stderr, "Usage: %s ", argv[0]); - fprintf(stderr, "[-u ud_socket_path] [-l lhost:lport] [-r rhost:rport]\n"); - fprintf(stderr, "\t-u path to unix doman socket. default: %s\n", - DEFAULT_UD_SOCKET); - fprintf(stderr, "\t-l local host and port. default: %s:%s\n", - DEFAULT_LHOST, DEFAULT_LPORT); - fprintf(stderr, "\t-r remote host and port. default: %s:%s\n", - DEFAULT_RHOST, DEFAULT_RPORT); - - return 1; -} diff --git a/tests/vhost-user-test.c.orig b/tests/vhost-user-test.c.orig deleted file mode 100644 index b491e6fcb6..0000000000 --- a/tests/vhost-user-test.c.orig +++ /dev/null @@ -1,364 +0,0 @@ -/* - * QTest testcase for the vhost-user - * - * Copyright (c) 2014 Virtual Open Systems Sarl. - * - * This work is licensed under the terms of the GNU GPL, version 2 or later. - * See the COPYING file in the top-level directory. - * - */ - -#include - -#include "libqtest.h" -#include "qemu/option.h" -#include "sysemu/char.h" -#include "sysemu/sysemu.h" - -#include -#include -#include -#include - -/* GLIB version compatibility flags */ -#if !GLIB_CHECK_VERSION(2, 26, 0) -#define G_TIME_SPAN_SECOND (G_GINT64_CONSTANT(1000000)) -#endif - -#if GLIB_CHECK_VERSION(2, 28, 0) -#define HAVE_MONOTONIC_TIME -#endif - -#define QEMU_CMD_ACCEL " -machine accel=tcg" -#define QEMU_CMD_MEM " -m 512 -object memory-backend-file,id=mem,size=512M,"\ - "mem-path=%s,share=on -numa node,memdev=mem" -#define QEMU_CMD_CHR " -chardev socket,id=chr0,path=%s" -#define QEMU_CMD_NETDEV " -netdev vhost-user,id=net0,chardev=chr0,vhostforce" -#define QEMU_CMD_NET " -device virtio-net-pci,netdev=net0 " -#define QEMU_CMD_ROM " -option-rom ../pc-bios/pxe-virtio.rom" - -#define QEMU_CMD QEMU_CMD_ACCEL QEMU_CMD_MEM QEMU_CMD_CHR \ - QEMU_CMD_NETDEV QEMU_CMD_NET QEMU_CMD_ROM - -#define HUGETLBFS_MAGIC 0x958458f6 - -/*********** FROM hw/virtio/vhost-user.c *************************************/ - -#define VHOST_MEMORY_MAX_NREGIONS 8 - -#define VHOST_USER_F_PROTOCOL_FEATURES 30 - -typedef enum VhostUserRequest { - VHOST_USER_NONE = 0, - VHOST_USER_GET_FEATURES = 1, - VHOST_USER_SET_FEATURES = 2, - VHOST_USER_SET_OWNER = 3, - VHOST_USER_RESET_DEVICE = 4, - VHOST_USER_SET_MEM_TABLE = 5, - VHOST_USER_SET_LOG_BASE = 6, - VHOST_USER_SET_LOG_FD = 7, - VHOST_USER_SET_VRING_NUM = 8, - VHOST_USER_SET_VRING_ADDR = 9, - VHOST_USER_SET_VRING_BASE = 10, - VHOST_USER_GET_VRING_BASE = 11, - VHOST_USER_SET_VRING_KICK = 12, - VHOST_USER_SET_VRING_CALL = 13, - VHOST_USER_SET_VRING_ERR = 14, - VHOST_USER_GET_PROTOCOL_FEATURES = 15, - VHOST_USER_SET_PROTOCOL_FEATURES = 16, - VHOST_USER_MAX -} VhostUserRequest; - -typedef struct VhostUserMemoryRegion { - uint64_t guest_phys_addr; - uint64_t memory_size; - uint64_t userspace_addr; - uint64_t mmap_offset; -} VhostUserMemoryRegion; - -typedef struct VhostUserMemory { - uint32_t nregions; - uint32_t padding; - VhostUserMemoryRegion regions[VHOST_MEMORY_MAX_NREGIONS]; -} VhostUserMemory; - -typedef struct VhostUserMsg { - VhostUserRequest request; - -#define VHOST_USER_VERSION_MASK (0x3) -#define VHOST_USER_REPLY_MASK (0x1<<2) - uint32_t flags; - uint32_t size; /* the following payload size */ - union { - uint64_t u64; - struct vhost_vring_state state; - struct vhost_vring_addr addr; - VhostUserMemory memory; - }; -} QEMU_PACKED VhostUserMsg; - -static VhostUserMsg m __attribute__ ((unused)); -#define VHOST_USER_HDR_SIZE (sizeof(m.request) \ - + sizeof(m.flags) \ - + sizeof(m.size)) - -#define VHOST_USER_PAYLOAD_SIZE (sizeof(m) - VHOST_USER_HDR_SIZE) - -/* The version of the protocol we support */ -#define VHOST_USER_VERSION (0x1) -/*****************************************************************************/ - -int fds_num = 0, fds[VHOST_MEMORY_MAX_NREGIONS]; -static VhostUserMemory memory; -static CompatGMutex data_mutex; -static CompatGCond data_cond; - -#if !GLIB_CHECK_VERSION(2, 32, 0) -static gboolean g_cond_wait_until(CompatGCond cond, CompatGMutex mutex, - gint64 end_time) -{ - gboolean ret = FALSE; - end_time -= g_get_monotonic_time(); - GTimeVal time = { end_time / G_TIME_SPAN_SECOND, - end_time % G_TIME_SPAN_SECOND }; - ret = g_cond_timed_wait(cond, mutex, &time); - return ret; -} -#endif - -static void wait_for_fds(void) -{ - gint64 end_time; - - g_mutex_lock(&data_mutex); - end_time = g_get_monotonic_time() + 5 * G_TIME_SPAN_SECOND; - while (!fds_num) { - if (!g_cond_wait_until(&data_cond, &data_mutex, end_time)) { - /* timeout has passed */ - g_assert(fds_num); - break; - } - } - - /* check for sanity */ - g_assert_cmpint(fds_num, >, 0); - g_assert_cmpint(fds_num, ==, memory.nregions); - - g_mutex_unlock(&data_mutex); -} - -static void read_guest_mem(void) -{ - uint32_t *guest_mem; - int i, j; - size_t size; - - wait_for_fds(); - - /* iterate all regions */ - for (i = 0; i < fds_num; i++) { - - /* We'll check only the region statring at 0x0*/ - if (memory.regions[i].guest_phys_addr != 0x0) { - continue; - } - - g_assert_cmpint(memory.regions[i].memory_size, >, 1024); - - size = memory.regions[i].memory_size + memory.regions[i].mmap_offset; - - guest_mem = mmap(0, size, PROT_READ | PROT_WRITE, - MAP_SHARED, fds[i], 0); - - g_assert(guest_mem != MAP_FAILED); - guest_mem += (memory.regions[i].mmap_offset / sizeof(*guest_mem)); - - for (j = 0; j < 256; j++) { - uint32_t a = readl(memory.regions[i].guest_phys_addr + j*4); - uint32_t b = guest_mem[j]; - - g_assert_cmpint(a, ==, b); - } - - munmap(guest_mem, memory.regions[i].memory_size); - } - - g_mutex_unlock(&data_mutex); -} - -static void *thread_function(void *data) -{ - GMainLoop *loop; - loop = g_main_loop_new(NULL, FALSE); - g_main_loop_run(loop); - return NULL; -} - -static int chr_can_read(void *opaque) -{ - return VHOST_USER_HDR_SIZE; -} - -static void chr_read(void *opaque, const uint8_t *buf, int size) -{ - CharDriverState *chr = opaque; - VhostUserMsg msg; - uint8_t *p = (uint8_t *) &msg; - int fd; - - if (size != VHOST_USER_HDR_SIZE) { - g_test_message("Wrong message size received %d\n", size); - return; - } - - g_mutex_lock(&data_mutex); - memcpy(p, buf, VHOST_USER_HDR_SIZE); - - if (msg.size) { - p += VHOST_USER_HDR_SIZE; - qemu_chr_fe_read_all(chr, p, msg.size); - } - - switch (msg.request) { - case VHOST_USER_GET_FEATURES: - /* send back features to qemu */ - msg.flags |= VHOST_USER_REPLY_MASK; - msg.size = sizeof(m.u64); - msg.u64 = 0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES; - p = (uint8_t *) &msg; - qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); - break; - - case VHOST_USER_SET_FEATURES: - g_assert_cmpint(msg.u64 & (0x1ULL << VHOST_USER_F_PROTOCOL_FEATURES), - !=, 0ULL); - break; - - case VHOST_USER_GET_PROTOCOL_FEATURES: - /* send back features to qemu */ - msg.flags |= VHOST_USER_REPLY_MASK; - msg.size = sizeof(m.u64); - msg.u64 = 0; - p = (uint8_t *) &msg; - qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); - break; - - case VHOST_USER_GET_VRING_BASE: - /* send back vring base to qemu */ - msg.flags |= VHOST_USER_REPLY_MASK; - msg.size = sizeof(m.state); - msg.state.num = 0; - p = (uint8_t *) &msg; - qemu_chr_fe_write_all(chr, p, VHOST_USER_HDR_SIZE + msg.size); - break; - - case VHOST_USER_SET_MEM_TABLE: - /* received the mem table */ - memcpy(&memory, &msg.memory, sizeof(msg.memory)); - fds_num = qemu_chr_fe_get_msgfds(chr, fds, sizeof(fds) / sizeof(int)); - - /* signal the test that it can continue */ - g_cond_signal(&data_cond); - break; - - case VHOST_USER_SET_VRING_KICK: - case VHOST_USER_SET_VRING_CALL: - /* consume the fd */ - qemu_chr_fe_get_msgfds(chr, &fd, 1); - /* - * This is a non-blocking eventfd. - * The receive function forces it to be blocking, - * so revert it back to non-blocking. - */ - qemu_set_nonblock(fd); - break; - default: - break; - } - g_mutex_unlock(&data_mutex); -} - -static const char *init_hugepagefs(void) -{ - const char *path; - struct statfs fs; - int ret; - - path = getenv("QTEST_HUGETLBFS_PATH"); - if (!path) { - path = "/hugetlbfs"; - } - - if (access(path, R_OK | W_OK | X_OK)) { - g_test_message("access on path (%s): %s\n", path, strerror(errno)); - return NULL; - } - - do { - ret = statfs(path, &fs); - } while (ret != 0 && errno == EINTR); - - if (ret != 0) { - g_test_message("statfs on path (%s): %s\n", path, strerror(errno)); - return NULL; - } - - if (fs.f_type != HUGETLBFS_MAGIC) { - g_test_message("Warning: path not on HugeTLBFS: %s\n", path); - return NULL; - } - - return path; -} - -int main(int argc, char **argv) -{ - QTestState *s = NULL; - CharDriverState *chr = NULL; - const char *hugefs = 0; - char *socket_path = 0; - char *qemu_cmd = 0; - char *chr_path = 0; - int ret; - - g_test_init(&argc, &argv, NULL); - - module_call_init(MODULE_INIT_QOM); - - hugefs = init_hugepagefs(); - if (!hugefs) { - return 0; - } - - socket_path = g_strdup_printf("/tmp/vhost-%d.sock", getpid()); - - /* create char dev and add read handlers */ - qemu_add_opts(&qemu_chardev_opts); - chr_path = g_strdup_printf("unix:%s,server,nowait", socket_path); - chr = qemu_chr_new("chr0", chr_path, NULL); - g_free(chr_path); - qemu_chr_add_handlers(chr, chr_can_read, chr_read, NULL, chr); - - /* run the main loop thread so the chardev may operate */ - g_mutex_init(&data_mutex); - g_cond_init(&data_cond); - g_thread_new(NULL, thread_function, NULL); - - qemu_cmd = g_strdup_printf(QEMU_CMD, hugefs, socket_path); - s = qtest_start(qemu_cmd); - g_free(qemu_cmd); - - qtest_add_func("/vhost-user/read-guest-mem", read_guest_mem); - - ret = g_test_run(); - - if (s) { - qtest_quit(s); - } - - /* cleanup */ - unlink(socket_path); - g_free(socket_path); - - return ret; -}