From patchwork Tue Apr 21 12:59:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185606 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp288771ilf; Tue, 21 Apr 2020 06:04:59 -0700 (PDT) X-Google-Smtp-Source: APiQypKRaph6riXzQAL+dg5px0OgZwaFx+gqpmDMVExy17DA+OBTwTMC8DBdUr5V++Cbcuc11TiQ X-Received: by 2002:ac8:7395:: with SMTP id t21mr1282361qtp.155.1587474299434; Tue, 21 Apr 2020 06:04:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474299; cv=none; d=google.com; s=arc-20160816; b=a61QJnzmVvxbPc7lw1ntmSDD3XJ8FI7gGvFGyOuf+UN+nqEV18n74Iktm+pgN7Ldne UsBxzfmBU/sZEoEBMMJ5YpYp5XrUetEohTzBA+vNeeSDrorNSJwla3POcUkAl+V9VgPy ulKqqJcazN+qjc+Xx/YrzaLzt62Aa5AgsJR9BuUwxFyL2ucq4YJzEK/nRZhalgqLbn2c k705L2LURehXjKCyTv9uYNkdo+4Iom862tRAmDGwTx0jqAZNQ+OWlXPUcOs9njgKP5uJ 1Nh8Vscf06fep2jEOTqwRGxC4OIsyiJszh1/OYYTjeUI8pA9eKPVc/U0laOo3JJ2ftI9 TFwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=x/ZPl1AEhknvcUYppslTMoERofU2HD6S60TwK+UYOmM=; b=yQZpRwx0bljodkH2jlgPwLvAj7BOR2BzR5ucrgpBe9tzq0bMTdbQAquiPPuprA4ThC Caw4KhuO/tDWZF+l1E4VLbYfaMFimBMmtAdHVf5wz1A67kfstUncFoILmg17pWOvma4G U5HN+XdKrsEi827/CIDD7fkX7ZdEa4sZSwv2g1zeVc9GllixUwBwXlZ/VnFEU0l1qIL0 VEmEuH7TcHE24LFfVC2e5lAhUz7vT3R6ARxRHcW37yDo3qaS8cvtIMdwIaMUoJqXw+bW n81T32y62KdFuyaIsVPtyp1wewZ9uwLOZrHDti26IC9oBQ8l7lHAD0Xp79FgNGI3Szep 6rkQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id s19si1398372qvv.46.2020.04.21.06.04.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:04:59 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:57990 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsaA-0003Y3-Un for patch@linaro.org; Tue, 21 Apr 2020 09:04:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44670) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXb-00085I-PI for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXa-0002Fc-QX for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:19 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:3745 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXW-0001py-Vr; Tue, 21 Apr 2020 09:02:16 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 282EDB33DE35D86207BE; Tue, 21 Apr 2020 21:02:04 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:01:55 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 1/7] hw/acpi/nvdimm: Fix for NVDIMM incorrect DSM output buffer length Date: Tue, 21 Apr 2020 13:59:28 +0100 Message-ID: <20200421125934.14952-2-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.191; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:02:04 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.191 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" As per ACPI spec 6.3, Table 19-419 Object Conversion Rules, if the Buffer Field <= to the size of an Integer (in bits), it will be treated as an integer. Moreover, the integer size depends on DSDT tables revision number. If revision number is < 2, integer size is 32 bits, otherwise it is 64 bits. Current NVDIMM common DSM aml code (NCAL) uses CreateField() for creating DSM output buffer. This creates an issue in arm/virt platform where DSDT revision number is 2 and results in DSM buffer with a wrong size(8 bytes) gets returned when actual length is < 8 bytes. This causes guest kernel to report, "nfit ACPI0012:00: found a zero length table '0' parsing nfit" In order to fix this, aml code is now modified such that it builds the DSM output buffer in a byte by byte fashion when length is smaller than Integer size. Suggested-by: Igor Mammedov Signed-off-by: Shameer Kolothum Reviewed-by: Igor Mammedov --- hw/acpi/nvdimm.c | 40 +++++++++++++++++++-- tests/qtest/bios-tables-test-allowed-diff.h | 2 ++ 2 files changed, 39 insertions(+), 3 deletions(-) -- 2.17.1 diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index eb6a37b14e..df0790719a 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -938,6 +938,7 @@ static void nvdimm_build_common_dsm(Aml *dev) Aml *method, *ifctx, *function, *handle, *uuid, *dsm_mem, *elsectx2; Aml *elsectx, *unsupport, *unpatched, *expected_uuid, *uuid_invalid; Aml *pckg, *pckg_index, *pckg_buf, *field, *dsm_out_buf, *dsm_out_buf_size; + Aml *whilectx, *offset; uint8_t byte_list[1]; method = aml_method(NVDIMM_COMMON_DSM, 5, AML_SERIALIZED); @@ -1091,13 +1092,46 @@ static void nvdimm_build_common_dsm(Aml *dev) /* RLEN is not included in the payload returned to guest. */ aml_append(method, aml_subtract(aml_name(NVDIMM_DSM_OUT_BUF_SIZE), aml_int(4), dsm_out_buf_size)); + + /* + * As per ACPI spec 6.3, Table 19-419 Object Conversion Rules, if + * the Buffer Field <= to the size of an Integer (in bits), it will + * be treated as an integer. Moreover, the integer size depends on + * DSDT tables revision number. If revision number is < 2, integer + * size is 32 bits, otherwise it is 64 bits. + * Because of this CreateField() canot be used if RLEN < Integer Size. + * + * Also please note that APCI ASL operator SizeOf() doesn't support + * Integer and there isn't any other way to figure out the Integer + * size. Hence we assume 8 byte as Integer size and if RLEN < 8 bytes, + * build dsm_out_buf byte by byte. + */ + ifctx = aml_if(aml_lless(dsm_out_buf_size, aml_int(8))); + offset = aml_local(2); + aml_append(ifctx, aml_store(aml_int(0), offset)); + aml_append(ifctx, aml_name_decl("TBUF", aml_buffer(1, NULL))); + aml_append(ifctx, aml_store(aml_buffer(0, NULL), dsm_out_buf)); + + whilectx = aml_while(aml_lless(offset, dsm_out_buf_size)); + /* Copy 1 byte at offset from ODAT to temporary buffer(TBUF). */ + aml_append(whilectx, aml_store(aml_derefof(aml_index( + aml_name(NVDIMM_DSM_OUT_BUF), offset)), + aml_index(aml_name("TBUF"), aml_int(0)))); + aml_append(whilectx, aml_concatenate(dsm_out_buf, aml_name("TBUF"), + dsm_out_buf)); + aml_append(whilectx, aml_increment(offset)); + aml_append(ifctx, whilectx); + + aml_append(ifctx, aml_return(dsm_out_buf)); + aml_append(method, ifctx); + + /* If RLEN >= Integer size, just use CreateField() operator */ aml_append(method, aml_store(aml_shiftleft(dsm_out_buf_size, aml_int(3)), dsm_out_buf_size)); aml_append(method, aml_create_field(aml_name(NVDIMM_DSM_OUT_BUF), aml_int(0), dsm_out_buf_size, "OBUF")); - aml_append(method, aml_concatenate(aml_buffer(0, NULL), aml_name("OBUF"), - dsm_out_buf)); - aml_append(method, aml_return(dsm_out_buf)); + aml_append(method, aml_return(aml_name("OBUF"))); + aml_append(dev, method); } diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index dfb8523c8b..eb8bae1407 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1 +1,3 @@ /* List of comma-separated changed AML files to ignore */ +"tests/data/acpi/pc/SSDT.dimmpxm", +"tests/data/acpi/q35/SSDT.dimmpxm", From patchwork Tue Apr 21 12:59:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185608 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp291659ilf; Tue, 21 Apr 2020 06:07:18 -0700 (PDT) X-Google-Smtp-Source: APiQypJCae06hOZaUihK53s/ClG5N37oWCxnqLlJXu1RXmS2Jg1gwgl/LeEcXgHNfmfwTejkqcUS X-Received: by 2002:ac8:4699:: with SMTP id g25mr21604951qto.295.1587474438448; Tue, 21 Apr 2020 06:07:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474438; cv=none; d=google.com; s=arc-20160816; b=h74FilLe3L+StzfbuIkewftYH6Y1nioJtSZJliNny+GlB3YMMuEkHGDiIR5HXNrJev zlgzCr0ey8i3CJ1o8S/hcmOru+u6D0J99z//4jBCxD5u5FGnI+lI30BF2vfMmd1c6MIK lh11O7CsMQKhGvEWs52g5vzHtlivibWFmq8t1QrrIlzDc23Wxq0amcbtER3WfWgzbM5V Ll4br9sMctE2SSYFuJDc1Bo9monZgowg7SGTEKGvOgMRhI1DI/bFQptDh3JBoJJnssBg rzi5qK581aFxdwKn23EGsUUKt95M1vXxSFjHnlTRkoenUl9Y0zT6Zqp6i4R75RYKFRLw /NAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=X6OBcGctVfedL+P82KfDHnxquFL0aJzPe+gLpNciCy4=; b=f/iR2wehBl0iQWydZBq060cNJyJvCmJTHO+Q9Gu0vf5L4oK6jKWzu1qGENsjApRvdQ iMi6tAwv3Ttpli7rX3M1Q7jw628pmqSY2XxGKonghzjVHLW36tf+e/8ZDd6L88iufeZs +TZyOX554hIYGXj3/qtVf1rBNcwhJV14Z8B1IeDY8Vq4v6Zo91aPO2fYwtJKdhpRMmAV Df1B3AOopaC2I5FZVmxMlFL41Y7wTlk6yc6eSCgd1O13Fpe65F34qJJbnBS9TJrtBXzB Ss5u23hnk2Nwy1R5JDmfSg5btuxCQM2IZ5nw+So/hjspw1ReC8ZlSIxpRMb9oAIX+rAf Upvg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 84si1546315qko.191.2020.04.21.06.07.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:07:18 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:58044 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQscP-0006u9-V6 for patch@linaro.org; Tue, 21 Apr 2020 09:07:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44854) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXr-0008MU-Hp for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:36 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXq-0002dS-Pr for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:35 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:45088 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXY-0001xA-UY; Tue, 21 Apr 2020 09:02:18 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 437F8B61CE3FBEECA534; Tue, 21 Apr 2020 21:02:09 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:01:58 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 2/7] nvdimm: Use configurable ACPI IO base and size Date: Tue, 21 Apr 2020 13:59:29 +0100 Message-ID: <20200421125934.14952-3-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.32; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:02:09 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.32 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Kwangwoo Lee This patch makes IO base and size configurable to create NPIO AML for ACPI NFIT. Since a different architecture like AArch64 does not use port-mapped IO, a configurable IO base is required to create correct mapping of ACPI IO address and size. Signed-off-by: Kwangwoo Lee Signed-off-by: Eric Auger Signed-off-by: Shameer Kolothum Reviewed-by: Igor Mammedov --- hw/acpi/nvdimm.c | 32 ++++++++++++++++++++++---------- hw/i386/acpi-build.c | 6 ++++++ hw/i386/acpi-build.h | 3 +++ hw/i386/pc_piix.c | 2 ++ hw/i386/pc_q35.c | 2 ++ include/hw/mem/nvdimm.h | 3 +++ 6 files changed, 38 insertions(+), 10 deletions(-) -- 2.17.1 diff --git a/hw/acpi/nvdimm.c b/hw/acpi/nvdimm.c index df0790719a..fa7bf8b507 100644 --- a/hw/acpi/nvdimm.c +++ b/hw/acpi/nvdimm.c @@ -900,11 +900,13 @@ void nvdimm_acpi_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev) } void nvdimm_init_acpi_state(NVDIMMState *state, MemoryRegion *io, + struct AcpiGenericAddress dsm_io, FWCfgState *fw_cfg, Object *owner) { + state->dsm_io = dsm_io; memory_region_init_io(&state->io_mr, owner, &nvdimm_dsm_ops, state, - "nvdimm-acpi-io", NVDIMM_ACPI_IO_LEN); - memory_region_add_subregion(io, NVDIMM_ACPI_IO_BASE, &state->io_mr); + "nvdimm-acpi-io", dsm_io.bit_width >> 3); + memory_region_add_subregion(io, dsm_io.address, &state->io_mr); state->dsm_mem = g_array_new(false, true /* clear */, 1); acpi_data_push(state->dsm_mem, sizeof(NvdimmDsmIn)); @@ -933,13 +935,15 @@ void nvdimm_init_acpi_state(NVDIMMState *state, MemoryRegion *io, #define NVDIMM_QEMU_RSVD_UUID "648B9CF2-CDA1-4312-8AD9-49C4AF32BD62" -static void nvdimm_build_common_dsm(Aml *dev) +static void nvdimm_build_common_dsm(Aml *dev, + NVDIMMState *nvdimm_state) { Aml *method, *ifctx, *function, *handle, *uuid, *dsm_mem, *elsectx2; Aml *elsectx, *unsupport, *unpatched, *expected_uuid, *uuid_invalid; Aml *pckg, *pckg_index, *pckg_buf, *field, *dsm_out_buf, *dsm_out_buf_size; Aml *whilectx, *offset; uint8_t byte_list[1]; + AmlRegionSpace rs; method = aml_method(NVDIMM_COMMON_DSM, 5, AML_SERIALIZED); uuid = aml_arg(0); @@ -950,9 +954,16 @@ static void nvdimm_build_common_dsm(Aml *dev) aml_append(method, aml_store(aml_name(NVDIMM_ACPI_MEM_ADDR), dsm_mem)); + if (nvdimm_state->dsm_io.space_id == AML_AS_SYSTEM_IO) { + rs = AML_SYSTEM_IO; + } else { + rs = AML_SYSTEM_MEMORY; + } + /* map DSM memory and IO into ACPI namespace. */ - aml_append(method, aml_operation_region(NVDIMM_DSM_IOPORT, AML_SYSTEM_IO, - aml_int(NVDIMM_ACPI_IO_BASE), NVDIMM_ACPI_IO_LEN)); + aml_append(method, aml_operation_region(NVDIMM_DSM_IOPORT, rs, + aml_int(nvdimm_state->dsm_io.address), + nvdimm_state->dsm_io.bit_width >> 3)); aml_append(method, aml_operation_region(NVDIMM_DSM_MEMORY, AML_SYSTEM_MEMORY, dsm_mem, sizeof(NvdimmDsmIn))); @@ -967,7 +978,7 @@ static void nvdimm_build_common_dsm(Aml *dev) field = aml_field(NVDIMM_DSM_IOPORT, AML_DWORD_ACC, AML_NOLOCK, AML_PRESERVE); aml_append(field, aml_named_field(NVDIMM_DSM_NOTIFY, - NVDIMM_ACPI_IO_LEN * BITS_PER_BYTE)); + nvdimm_state->dsm_io.bit_width)); aml_append(method, field); /* @@ -1268,7 +1279,8 @@ static void nvdimm_build_nvdimm_devices(Aml *root_dev, uint32_t ram_slots) } static void nvdimm_build_ssdt(GArray *table_offsets, GArray *table_data, - BIOSLinker *linker, GArray *dsm_dma_area, + BIOSLinker *linker, + NVDIMMState *nvdimm_state, uint32_t ram_slots) { Aml *ssdt, *sb_scope, *dev; @@ -1296,7 +1308,7 @@ static void nvdimm_build_ssdt(GArray *table_offsets, GArray *table_data, */ aml_append(dev, aml_name_decl("_HID", aml_string("ACPI0012"))); - nvdimm_build_common_dsm(dev); + nvdimm_build_common_dsm(dev, nvdimm_state); /* 0 is reserved for root device. */ nvdimm_build_device_dsm(dev, 0); @@ -1315,7 +1327,7 @@ static void nvdimm_build_ssdt(GArray *table_offsets, GArray *table_data, NVDIMM_ACPI_MEM_ADDR); bios_linker_loader_alloc(linker, - NVDIMM_DSM_MEM_FILE, dsm_dma_area, + NVDIMM_DSM_MEM_FILE, nvdimm_state->dsm_mem, sizeof(NvdimmDsmIn), false /* high memory */); bios_linker_loader_add_pointer(linker, ACPI_BUILD_TABLE_FILE, mem_addr_offset, sizeof(uint32_t), @@ -1337,7 +1349,7 @@ void nvdimm_build_acpi(GArray *table_offsets, GArray *table_data, return; } - nvdimm_build_ssdt(table_offsets, table_data, linker, state->dsm_mem, + nvdimm_build_ssdt(table_offsets, table_data, linker, state, ram_slots); device_list = nvdimm_get_device_list(); diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 23c77eeb95..1646077035 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -128,6 +128,12 @@ typedef struct FwCfgTPMConfig { static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg); +const struct AcpiGenericAddress x86_nvdimm_acpi_dsmio = { + .space_id = AML_AS_SYSTEM_IO, + .address = NVDIMM_ACPI_IO_BASE, + .bit_width = NVDIMM_ACPI_IO_LEN << 3 +}; + static void init_common_fadt_data(MachineState *ms, Object *o, AcpiFadtData *data) { diff --git a/hw/i386/acpi-build.h b/hw/i386/acpi-build.h index 007332e51c..74df5fc612 100644 --- a/hw/i386/acpi-build.h +++ b/hw/i386/acpi-build.h @@ -1,6 +1,9 @@ #ifndef HW_I386_ACPI_BUILD_H #define HW_I386_ACPI_BUILD_H +#include "hw/acpi/acpi-defs.h" + +extern const struct AcpiGenericAddress x86_nvdimm_acpi_dsmio; void acpi_setup(void); diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c index 22dee0e76c..b75087d71b 100644 --- a/hw/i386/pc_piix.c +++ b/hw/i386/pc_piix.c @@ -61,6 +61,7 @@ #include "migration/misc.h" #include "sysemu/numa.h" #include "hw/mem/nvdimm.h" +#include "hw/i386/acpi-build.h" #define MAX_IDE_BUS 2 @@ -297,6 +298,7 @@ static void pc_init1(MachineState *machine, if (machine->nvdimms_state->is_enabled) { nvdimm_init_acpi_state(machine->nvdimms_state, system_io, + x86_nvdimm_acpi_dsmio, x86ms->fw_cfg, OBJECT(pcms)); } } diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c index d37c425e22..d2806c1b29 100644 --- a/hw/i386/pc_q35.c +++ b/hw/i386/pc_q35.c @@ -54,6 +54,7 @@ #include "qemu/error-report.h" #include "sysemu/numa.h" #include "hw/mem/nvdimm.h" +#include "hw/i386/acpi-build.h" /* ICH9 AHCI has 6 ports */ #define MAX_SATA_PORTS 6 @@ -315,6 +316,7 @@ static void pc_q35_init(MachineState *machine) if (machine->nvdimms_state->is_enabled) { nvdimm_init_acpi_state(machine->nvdimms_state, system_io, + x86_nvdimm_acpi_dsmio, x86ms->fw_cfg, OBJECT(pcms)); } } diff --git a/include/hw/mem/nvdimm.h b/include/hw/mem/nvdimm.h index 4807ca615b..a3c08955e8 100644 --- a/include/hw/mem/nvdimm.h +++ b/include/hw/mem/nvdimm.h @@ -26,6 +26,7 @@ #include "hw/mem/pc-dimm.h" #include "hw/acpi/bios-linker-loader.h" #include "qemu/uuid.h" +#include "hw/acpi/aml-build.h" #define NVDIMM_DEBUG 0 #define nvdimm_debug(fmt, ...) \ @@ -147,10 +148,12 @@ struct NVDIMMState { */ int32_t persistence; char *persistence_string; + struct AcpiGenericAddress dsm_io; }; typedef struct NVDIMMState NVDIMMState; void nvdimm_init_acpi_state(NVDIMMState *state, MemoryRegion *io, + struct AcpiGenericAddress dsm_io, FWCfgState *fw_cfg, Object *owner); void nvdimm_build_acpi(GArray *table_offsets, GArray *table_data, BIOSLinker *linker, NVDIMMState *state, From patchwork Tue Apr 21 12:59:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185609 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp291696ilf; Tue, 21 Apr 2020 06:07:21 -0700 (PDT) X-Google-Smtp-Source: APiQypLru4ZPqyd83euvhXzli/FKjrD+pgTRlr7k6qZam9FPFjA+vMr5QuKa9vWztgUy7W3oDLPG X-Received: by 2002:ac8:6c23:: with SMTP id k3mr21559135qtu.107.1587474440925; Tue, 21 Apr 2020 06:07:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474440; cv=none; d=google.com; s=arc-20160816; b=JHWYA+6FgeBfifpI6yyx07Oqj4ScnJ0GUKF4zllQ65h1OaT14ExHofs+SVHXi5bG/y dYGVzHZViVSFih4tysjvhZYUStHaiGKozt4RXIevtGJUaZlcCfLD+EReagtwBx+1pLmA RhgHp4Aogk1zJ2NegaYzPN5e3VmfkZ2CsVKvnGFO1uXmWpB4EGZe1rkl/dIFx/N3EPSQ yZ87X69Wv4HvY9cDAHULm7J46qH+Z0hLjena3ZDgujbupG5jC9JkFccW1xlN9g4fdAxL mcNUwZ5hjiManLB7TWpSX/OsELif7i/zZTk64BJ0hHjQplcW1WvK0ID8QluLoX37jPV0 Pong== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=zWw+HBooFOwKRK+tg6O9i+zFkM/+rcboLIwYduoYAtU=; b=x/8GguV4l2c3DR40Mv27lRGO6/pR1Q2QaN/mD6vxabEx2Akux77U+o2HDOSfgOqPUH qGUbW/W0i+Zqz42YWqlYbXmOkJ4T5ATeBryANSIy+13debzhbYGYovaaXkqfPuZRzvID df6EjwT34/nTxj/c7RXJqCzES/PgmZZ1c+MKsatHYL6THnONyl//SZpsPCIkpKHzBVw8 Xhzkxp5bXqMn16Y8S5CGYm88nibuvgKbe5lW3W0lGa839XAz6MmQtcfKLzB7h2v0635h Z56PbMgiH04JIXbUzwyQGwwaPqzP1mpCc6p/2duF+Tu51mAjtUwJ8piwk4SYdo7E0YPr R/zA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id y5si1301846qtv.122.2020.04.21.06.07.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:07:20 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:58046 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQscS-0006zZ-Du for patch@linaro.org; Tue, 21 Apr 2020 09:07:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44676) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXc-00086D-7m for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXb-0002GT-9t for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:19 -0400 Received: from szxga06-in.huawei.com ([45.249.212.32]:45086 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXZ-0001xB-3H; Tue, 21 Apr 2020 09:02:17 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.58]) by Forcepoint Email with ESMTP id 3D6DE9B5E5B65EE706C6; Tue, 21 Apr 2020 21:02:09 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:02:02 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 3/7] hw/arm/virt: Add nvdimm hot-plug infrastructure Date: Tue, 21 Apr 2020 13:59:30 +0100 Message-ID: <20200421125934.14952-4-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.32; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:02:09 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.32 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Kwangwoo Lee This adds support to init nvdimm acpi state and build nvdimm acpi tables. Please note nvdimm_support is not yet enabled. Signed-off-by: Kwangwoo Lee Signed-off-by: Eric Auger Signed-off-by: Shameer Kolothum Reviewed-by: Igor Mammedov --- hw/arm/Kconfig | 1 + hw/arm/virt-acpi-build.c | 6 ++++++ hw/arm/virt.c | 19 +++++++++++++++++++ hw/mem/Kconfig | 2 +- include/hw/arm/virt.h | 1 + 5 files changed, 28 insertions(+), 1 deletion(-) -- 2.17.1 diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 188419dc1e..5364172537 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -25,6 +25,7 @@ config ARM_VIRT select DIMM select ACPI_MEMORY_HOTPLUG select ACPI_HW_REDUCED + select ACPI_NVDIMM config CHEETAH bool diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index 81d41a3990..f22b1e6097 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -44,6 +44,7 @@ #include "hw/pci/pcie_host.h" #include "hw/pci/pci.h" #include "hw/arm/virt.h" +#include "hw/mem/nvdimm.h" #include "sysemu/numa.h" #include "sysemu/reset.h" #include "kvm_arm.h" @@ -826,6 +827,11 @@ void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) } } + if (ms->nvdimms_state->is_enabled) { + nvdimm_build_acpi(table_offsets, tables_blob, tables->linker, + ms->nvdimms_state, ms->ram_slots); + } + if (its_class_name() && !vmc->no_its) { acpi_add_table(table_offsets, tables_blob); build_iort(tables_blob, tables->linker, vms); diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 7dc96abf72..8a2beaf650 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -149,6 +149,7 @@ static const MemMapEntry base_memmap[] = { [VIRT_SMMU] = { 0x09050000, 0x00020000 }, [VIRT_PCDIMM_ACPI] = { 0x09070000, MEMORY_HOTPLUG_IO_LEN }, [VIRT_ACPI_GED] = { 0x09080000, ACPI_GED_EVT_SEL_LEN }, + [VIRT_NVDIMM_ACPI] = { 0x09090000, NVDIMM_ACPI_IO_LEN}, [VIRT_MMIO] = { 0x0a000000, 0x00000200 }, /* ...repeating for a total of NUM_VIRTIO_TRANSPORTS, each of that size */ [VIRT_PLATFORM_BUS] = { 0x0c000000, 0x02000000 }, @@ -1866,6 +1867,18 @@ static void machvirt_init(MachineState *machine) create_platform_bus(vms); + if (machine->nvdimms_state->is_enabled) { + const struct AcpiGenericAddress arm_virt_nvdimm_acpi_dsmio = { + .space_id = AML_AS_SYSTEM_MEMORY, + .address = vms->memmap[VIRT_NVDIMM_ACPI].base, + .bit_width = NVDIMM_ACPI_IO_LEN << 3 + }; + + nvdimm_init_acpi_state(machine->nvdimms_state, sysmem, + arm_virt_nvdimm_acpi_dsmio, + vms->fw_cfg, OBJECT(vms)); + } + vms->bootinfo.ram_size = machine->ram_size; vms->bootinfo.nb_cpus = smp_cpus; vms->bootinfo.board_id = -1; @@ -2077,6 +2090,8 @@ static void virt_memory_plug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(hotplug_dev); + MachineState *ms = MACHINE(hotplug_dev); + bool is_nvdimm = object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM); Error *local_err = NULL; pc_dimm_plug(PC_DIMM(dev), MACHINE(vms), &local_err); @@ -2084,6 +2099,10 @@ static void virt_memory_plug(HotplugHandler *hotplug_dev, goto out; } + if (is_nvdimm) { + nvdimm_plug(ms->nvdimms_state); + } + hotplug_handler_plug(HOTPLUG_HANDLER(vms->acpi_dev), dev, &error_abort); diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig index 2ad052a536..c27844900d 100644 --- a/hw/mem/Kconfig +++ b/hw/mem/Kconfig @@ -8,4 +8,4 @@ config MEM_DEVICE config NVDIMM bool default y - depends on (PC || PSERIES) + depends on (PC || PSERIES || ARM_VIRT) diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index 60b2f521eb..6d67ace76e 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -79,6 +79,7 @@ enum { VIRT_SECURE_MEM, VIRT_PCDIMM_ACPI, VIRT_ACPI_GED, + VIRT_NVDIMM_ACPI, VIRT_LOWMEMMAP_LAST, }; From patchwork Tue Apr 21 12:59:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185610 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp293045ilf; Tue, 21 Apr 2020 06:08:35 -0700 (PDT) X-Google-Smtp-Source: APiQypJ//XVGscn+VwU14CMwgkaTr5OJJpiZPEpF8+eEOK0PWOgQas+Xmth4L9jGJOXyHaruCzhv X-Received: by 2002:a05:620a:1222:: with SMTP id v2mr21174084qkj.463.1587474515159; Tue, 21 Apr 2020 06:08:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474515; cv=none; d=google.com; s=arc-20160816; b=p1vpztRQxT8vtwr8rmPFltOIrzwqB3sAdegUzoPs5B5yHt644UtnYbZa4jMS6Y86XM HdHq1potoBieqkLnveBWPtHMZRCpBFrNGGXp5n/5o+2aXPeiwSEeNXXFJ8z92tfN6gt5 0lfu5vQhaUg+RYODxrzCCCTNwArWV4mYfrzbyOLqy0ifB6d+T4NWDZpiI7EtagiTJlJ2 ur3I0mPvmmLZkCfc1gMSMFGZGAo9q6byq+5aKbfTZahTY3zRRKk+1qH9H1fEl/G9ZqkQ v0izHn2oJ31dPDK4sFuJHc4m+6QR59BZfDJyKgklAX47+Bwp2Dj1XAOi3cSI7ZYXQb/n 8WkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=R6VtZI5YaIAbYmLsrBW/N19hMCLimUF/3/12Ol1ptKg=; b=dj7St1ZGvQMKwnfyDRLJVdJs1vlVz1j85TMDlSxQoUFggW9ZgxswAzyXEN+s8kz8hB Wiplq5Bh9BvFmSsEJS5NgfMYn5bmZSfpHgaezXp7SHjzLOqOx1X2kWQwGVunfzz9DlY5 tc0M9kx1kWMg+T2QwZSZt2+7lffD59v3+hcSx7bwCNmEulpWrWhCvuhHnOWoW5mQm8zH irU3N1rXsUcD8BXUUjwHgQ77pvMzP9JzP76PG8cV0aNCLwRscFKMgbIs1WSdoCmu0fIK zojsmTuM1dWw8YtrRWm86ugbRPp6evLTDJBZsOqLMZI2Qke+DGqoZ1TY/u+GqSLhwHJG s3QA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d35si1315340qvc.89.2020.04.21.06.08.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:08:35 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:58077 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsde-0001mH-Mt for patch@linaro.org; Tue, 21 Apr 2020 09:08:34 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44798) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXn-0008FT-SS for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXl-0002YY-Sb for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:31 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:3675 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXb-00025M-V8; Tue, 21 Apr 2020 09:02:20 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 626ED2F3EE0BC60B7043; Tue, 21 Apr 2020 21:02:14 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:02:05 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 4/7] hw/arm/virt: Add nvdimm hotplug support Date: Tue, 21 Apr 2020 13:59:31 +0100 Message-ID: <20200421125934.14952-5-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.190; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:01:59 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.190 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This adds support for nvdimm hotplug events through GED and enables nvdimm for the arm/virt. Now Guests with ACPI can have both cold and hot plug of nvdimms. Hot removal functionality is not yet supported. Signed-off-by: Shameer Kolothum Reviewed-by: Igor Mammedov Reviewed-by: Eric Auger --- docs/specs/acpi_hw_reduced_hotplug.rst | 3 ++- hw/acpi/generic_event_device.c | 15 ++++++++++++++- hw/arm/virt.c | 16 +++++++++++----- include/hw/acpi/generic_event_device.h | 1 + 4 files changed, 28 insertions(+), 7 deletions(-) -- 2.17.1 diff --git a/docs/specs/acpi_hw_reduced_hotplug.rst b/docs/specs/acpi_hw_reduced_hotplug.rst index 911a98255b..0bd3f9399f 100644 --- a/docs/specs/acpi_hw_reduced_hotplug.rst +++ b/docs/specs/acpi_hw_reduced_hotplug.rst @@ -63,7 +63,8 @@ GED IO interface (4 byte access) bits: 0: Memory hotplug event 1: System power down event - 2-31: Reserved + 2: NVDIMM hotplug event + 3-31: Reserved **write_access:** diff --git a/hw/acpi/generic_event_device.c b/hw/acpi/generic_event_device.c index 021ed2bf23..5d17f78a1e 100644 --- a/hw/acpi/generic_event_device.c +++ b/hw/acpi/generic_event_device.c @@ -16,6 +16,7 @@ #include "hw/acpi/generic_event_device.h" #include "hw/irq.h" #include "hw/mem/pc-dimm.h" +#include "hw/mem/nvdimm.h" #include "hw/qdev-properties.h" #include "migration/vmstate.h" #include "qemu/error-report.h" @@ -23,6 +24,7 @@ static const uint32_t ged_supported_events[] = { ACPI_GED_MEM_HOTPLUG_EVT, ACPI_GED_PWR_DOWN_EVT, + ACPI_GED_NVDIMM_HOTPLUG_EVT, }; /* @@ -110,6 +112,11 @@ void build_ged_aml(Aml *table, const char *name, HotplugHandler *hotplug_dev, aml_notify(aml_name(ACPI_POWER_BUTTON_DEVICE), aml_int(0x80))); break; + case ACPI_GED_NVDIMM_HOTPLUG_EVT: + aml_append(if_ctx, + aml_notify(aml_name("\\_SB.NVDR"), + aml_int(0x80))); + break; default: /* * Please make sure all the events in ged_supported_events[] @@ -175,7 +182,11 @@ static void acpi_ged_device_plug_cb(HotplugHandler *hotplug_dev, AcpiGedState *s = ACPI_GED(hotplug_dev); if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) { - acpi_memory_plug_cb(hotplug_dev, &s->memhp_state, dev, errp); + if (object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM)) { + nvdimm_acpi_plug_cb(hotplug_dev, dev); + } else { + acpi_memory_plug_cb(hotplug_dev, &s->memhp_state, dev, errp); + } } else { error_setg(errp, "virt: device plug request for unsupported device" " type: %s", object_get_typename(OBJECT(dev))); @@ -192,6 +203,8 @@ static void acpi_ged_send_event(AcpiDeviceIf *adev, AcpiEventStatusBits ev) sel = ACPI_GED_MEM_HOTPLUG_EVT; } else if (ev & ACPI_POWER_DOWN_STATUS) { sel = ACPI_GED_PWR_DOWN_EVT; + } else if (ev & ACPI_NVDIMM_HOTPLUG_STATUS) { + sel = ACPI_GED_NVDIMM_HOTPLUG_EVT; } else { /* Unknown event. Return without generating interrupt. */ warn_report("GED: Unsupported event %d. No irq injected", ev); diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 8a2beaf650..da4994c55a 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -549,6 +549,10 @@ static inline DeviceState *create_acpi_ged(VirtMachineState *vms) event |= ACPI_GED_MEM_HOTPLUG_EVT; } + if (ms->nvdimms_state->is_enabled) { + event |= ACPI_GED_NVDIMM_HOTPLUG_EVT; + } + dev = qdev_create(NULL, TYPE_ACPI_GED); qdev_prop_set_uint32(dev, "ged-event", event); @@ -2070,19 +2074,20 @@ static void virt_memory_pre_plug(HotplugHandler *hotplug_dev, DeviceState *dev, Error **errp) { VirtMachineState *vms = VIRT_MACHINE(hotplug_dev); + const MachineState *ms = MACHINE(hotplug_dev); const bool is_nvdimm = object_dynamic_cast(OBJECT(dev), TYPE_NVDIMM); - if (is_nvdimm) { - error_setg(errp, "nvdimm is not yet supported"); - return; - } - if (!vms->acpi_dev) { error_setg(errp, "memory hotplug is not enabled: missing acpi-ged device"); return; } + if (is_nvdimm && !ms->nvdimms_state->is_enabled) { + error_setg(errp, "nvdimm is not enabled: add 'nvdimm=on' to '-M'"); + return; + } + pc_dimm_pre_plug(PC_DIMM(dev), MACHINE(hotplug_dev), NULL, errp); } @@ -2227,6 +2232,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data) hc->plug = virt_machine_device_plug_cb; hc->unplug_request = virt_machine_device_unplug_request_cb; mc->numa_mem_supported = true; + mc->nvdimm_supported = true; mc->auto_enable_numa_with_memhp = true; mc->default_ram_id = "mach-virt.ram"; diff --git a/include/hw/acpi/generic_event_device.h b/include/hw/acpi/generic_event_device.h index d157eac088..9eb86ca4fd 100644 --- a/include/hw/acpi/generic_event_device.h +++ b/include/hw/acpi/generic_event_device.h @@ -82,6 +82,7 @@ */ #define ACPI_GED_MEM_HOTPLUG_EVT 0x1 #define ACPI_GED_PWR_DOWN_EVT 0x2 +#define ACPI_GED_NVDIMM_HOTPLUG_EVT 0x4 typedef struct GEDState { MemoryRegion io; From patchwork Tue Apr 21 12:59:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185607 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp289422ilf; Tue, 21 Apr 2020 06:05:28 -0700 (PDT) X-Google-Smtp-Source: APiQypKo3djYBkWzhhU0kycAFIaBtijv6EWikEFQ5MCCB9zo83gr28orpoVG0gjkZYlbHog51Hon X-Received: by 2002:a0c:da01:: with SMTP id x1mr19546749qvj.103.1587474328299; Tue, 21 Apr 2020 06:05:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474328; cv=none; d=google.com; s=arc-20160816; b=VurJTN2Zg/oTHGXu9MJBWFRD3GB+o79pNKjFSx4pa7V/goJjkaejbWov2II7haEq6r 0OdqeIPBaN3GyHSN6uuWmrrY3tLkDgR7qrBVUTmRXzfUqbMtpSLXsYVihX7vChXbnpAu yMMsYt+0/Vfd0uOb27reCYgvw6um4MCnbFf0CQRcotT+x60HHhvTng5m84AIHZygEKi8 6u41alHwt2pAdFpZLJ9iUedhqlBKrZdPWR+sOVm9IUSdKmHmxqvqbIpB4JzQ5h6S+RMs XYp+/V5m6q4w8S5KKDH8SzopCFJAOFsLfxc0j8U5hB0JukQPEbfj1Rpp0WN+sUzBWlXL IOkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=pFiqul+UkrQQ3DByAbZpAxkwiDQLtuNRRR2ifAdFrtg=; b=Ryvb1JKdyEvqZ+9G2xHyg67y/+4KgzcZV8QzwDat2MP0xjdD++sdGZbBLJqEGbpTnY ToIgIuKl1oZLVXNgz57AYdVB8ne3MLFNPOddyNjF6Oso2OTdiAx0FzcH9y4fLeCC9FYE 7I8cJUpVSWAEvOCewuNcEajLgia7s6cl9kXaF/I37TeD3/cX1KQwhV13OMxlSYtYMudK v/nQqjAbHHd8pzrqgxUqAd4IQRIiPMwbWdvThJfPjedgr7O1qCrwfrPg7rX1449qhQNo 62+6iL4cSCzQEZSmRlGl4kTlPdMTHHAYQ01NqmV5a4eupH8VOzBzlmg+uKEhvtLLnGkD Rd+w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id q1si1415901qtp.382.2020.04.21.06.05.28 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:05:28 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:57988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsac-0003QM-Nq for patch@linaro.org; Tue, 21 Apr 2020 09:05:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44794) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXn-0008FR-RV for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXl-0002Yi-UG for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:31 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:3676 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXe-0002HT-M7; Tue, 21 Apr 2020 09:02:23 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 7AF0B68FC3DBDB0C3C18; Tue, 21 Apr 2020 21:02:19 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:02:09 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 5/7] tests: Update ACPI tables list for upcoming arm/virt test changes Date: Tue, 21 Apr 2020 13:59:32 +0100 Message-ID: <20200421125934.14952-6-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.190; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:01:59 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.190 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" This is in preparation to update test_acpi_virt_tcg_memhp() with pc-dimm and nvdimm. Update the bios-tables-test-allowed-diff.h with the affected ACPI tables so that "make check" doesn't fail. Also add empty files for new tables required for new test. Signed-off-by: Shameer Kolothum --- tests/data/acpi/virt/NFIT.memhp | 0 tests/data/acpi/virt/SSDT.memhp | 0 tests/qtest/bios-tables-test-allowed-diff.h | 3 +++ 3 files changed, 3 insertions(+) create mode 100644 tests/data/acpi/virt/NFIT.memhp create mode 100644 tests/data/acpi/virt/SSDT.memhp -- 2.17.1 diff --git a/tests/data/acpi/virt/NFIT.memhp b/tests/data/acpi/virt/NFIT.memhp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/data/acpi/virt/SSDT.memhp b/tests/data/acpi/virt/SSDT.memhp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/qtest/bios-tables-test-allowed-diff.h b/tests/qtest/bios-tables-test-allowed-diff.h index eb8bae1407..862c49e675 100644 --- a/tests/qtest/bios-tables-test-allowed-diff.h +++ b/tests/qtest/bios-tables-test-allowed-diff.h @@ -1,3 +1,6 @@ /* List of comma-separated changed AML files to ignore */ "tests/data/acpi/pc/SSDT.dimmpxm", "tests/data/acpi/q35/SSDT.dimmpxm", +"tests/data/acpi/virt/DSDT.memhp", +"tests/data/acpi/virt/SSDT.memhp", +"tests/data/acpi/virt/NFIT.memhp", From patchwork Tue Apr 21 12:59:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185612 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp295760ilf; Tue, 21 Apr 2020 06:10:54 -0700 (PDT) X-Google-Smtp-Source: APiQypLwtgBlTdj8NOy4s6nfgP1pRQCQZCc41et0VUYVO3+Vce0XPvzgWAzlh/BV62r3IPJH1NqX X-Received: by 2002:a0c:90c4:: with SMTP id p62mr20154043qvp.70.1587474654089; Tue, 21 Apr 2020 06:10:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474654; cv=none; d=google.com; s=arc-20160816; b=mP/UmZH8bDXgp+HzuwFqjKwDKNykmvWfdC69mmFAX4FnYASYV8H9eFYrMKIPfxtjw+ m7d4muwHUioWxo/Xw6BiD7mLU7ZqBGb6Bd2S4/DDqzlOe0nb1K00i63oLYr9WVan6iZ9 mgzo3Zq/z5pFqcEWXQtKnym76N2dgRwjttkaysg+5/EacyN1GGHZ23gzozQfR0m4rgBk I0dzvrB3XLY5IQikiLLulh1qG7EZmeT4g5XY7x0g+VscKoLm7UKfF1IxJ1tw64xruHEy 852wnN9ObppXgW4z8AU/C5nD9y+QQqPmjhxmZ6ZEelC4VB8O39f3HJVSsW6c99QayrxK bidQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=64eVOvdowa4s41BFJxJSnN7CGkBFuv/ENiobqpdNKp8=; b=BGtW6SNGfeVchs1errF5PvwDWsKPLdDAqfy4MWlxrpfZZY8HzKYJzsKyZ3Ppq02oeZ zcCnTlOvdxqR2yp++ktnajS+V6aZl49JpxPYCB1/jfvtb9h7yzCzo+ZvgOcYrJf36mm/ +CCfdylwwl+JBZ652LKso+uPQkGoZUhAma/5gQm9ftz83oHcHrc5LC++D3prN7z0vU9W QmQCCjUOV5oNvcz1Al0VJnAJaqVwtGk01pIeSHAN6mCCE9euAJ9kQS1LwbbM9Dr67ovp dWgv1cbYxVfoHtvGigGTfYEJCAANmrPzd8RhdHfUWmoCmKbojM3A7RxwDGaT7lPU7KWO xMMw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id x26si1510847qkh.336.2020.04.21.06.10.54 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:10:54 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:58094 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsft-0004Fp-LQ for patch@linaro.org; Tue, 21 Apr 2020 09:10:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44848) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXq-0008KN-No for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXp-0002cV-Bn for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:34 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:3746 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXm-0002Ts-Vk; Tue, 21 Apr 2020 09:02:31 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 6B51891478F0633F30F5; Tue, 21 Apr 2020 21:02:24 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:02:13 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 6/7] bios-tables-test: test pc-dimm and nvdimm coldplug for arm/virt Date: Tue, 21 Apr 2020 13:59:33 +0100 Message-ID: <20200421125934.14952-7-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.191; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:02:04 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.191 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Since we now have both pc-dimm and nvdimm support, update test_acpi_virt_tcg_memhp() to include those. Signed-off-by: Shameer Kolothum --- tests/qtest/bios-tables-test.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) -- 2.17.1 diff --git a/tests/qtest/bios-tables-test.c b/tests/qtest/bios-tables-test.c index 0a597bbacf..c9843829b3 100644 --- a/tests/qtest/bios-tables-test.c +++ b/tests/qtest/bios-tables-test.c @@ -927,12 +927,17 @@ static void test_acpi_virt_tcg_memhp(void) }; data.variant = ".memhp"; - test_acpi_one(" -cpu cortex-a57" + 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", + " -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); From patchwork Tue Apr 21 12:59:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shameerali Kolothum Thodi X-Patchwork-Id: 185611 Delivered-To: patch@linaro.org Received: by 2002:a92:3d9a:0:0:0:0:0 with SMTP id k26csp294485ilf; Tue, 21 Apr 2020 06:09:48 -0700 (PDT) X-Google-Smtp-Source: APiQypKBHUcguOmHP62K7c6VkDEQsLJWrFRJAivB/5RlH2GSiRcFgvnPVEio7SqESYtXS9buFKMw X-Received: by 2002:ac8:6d1d:: with SMTP id o29mr21084529qtt.327.1587474588170; Tue, 21 Apr 2020 06:09:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587474588; cv=none; d=google.com; s=arc-20160816; b=A/NKHcxyiFnZQeADJxELiKUUaRU7n7bgGX/teH29FhM/sDX3kL6YEECLjPiecHa5Th KQPP0Mf4JIPmea2hxQkvurTUHG+ouJWzFn09k1YfFA1d9BtgVt9fDDIuHFd4YPuH42pz jB1yEr0H7ey+UlM4RHBt5SJQf+k2v/GzBYOZA7cMA+Oby5WCecQRXGHsCsTSEacPmn1K QYwRQG2njxFNQLL/RoLDWcnO8NMe11dRflYlw+hTk3AwQS96SjjsYItf0J3YgCXrzT59 7J1XC/0Ap+Mtl2H7nrm6t8k2g6efnaAqXOHskwYZbfGGJJK/RvKQWxSdFue+GVZg7j3n Wr4g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version:references :in-reply-to:message-id:date:subject:to:from; bh=7o9WDiqX1dbX7UGgU2+TtJdpdZKq9RQxF6zC0tzRatE=; b=xGrGiGXoJEUgDSY8sq3QpERn1A/ConM4HVQd85kZlj2Y1L7gnwfNugztaAySXhWM2/ wymp49xXpDjyvO/aE+plHNxbtqb8gGHLs8R594/ekgIam7yLyBPWtbXVeQwKgOjMt/x9 blcs1u/8O4e2cinVOiZID00f51b2LlFmHldi4tXnkPVLI8Mp7WgJcLIYE55//NymMWlN WJ3OvoUKFhFJ5kxSGl8jZO55x5oNjNpPBYkdm0xnE3vs3BqejFeKLdgNEvQFQ6fMy+4R m8NdKs3vi+LqnIaJjrm2Az5Bt/nwGhHhBqInVYeBu5K910GkHc0rWxKNFd0cmJutJSY+ rYRQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id t8si666653qvp.169.2020.04.21.06.09.48 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 21 Apr 2020 06:09:48 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1]:58084 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQseo-00034W-MO for patch@linaro.org; Tue, 21 Apr 2020 09:09:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44824) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQsXp-0008Hm-BM for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQsXo-0002bE-Ap for qemu-devel@nongnu.org; Tue, 21 Apr 2020 09:02:33 -0400 Received: from szxga05-in.huawei.com ([45.249.212.191]:3747 helo=huawei.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jQsXk-0002Rh-PR; Tue, 21 Apr 2020 09:02:29 -0400 Received: from DGGEMS412-HUB.china.huawei.com (unknown [172.30.72.60]) by Forcepoint Email with ESMTP id 7140EC00DC3629278D59; Tue, 21 Apr 2020 21:02:24 +0800 (CST) Received: from S00345302A-PC.china.huawei.com (10.47.91.160) by DGGEMS412-HUB.china.huawei.com (10.3.19.212) with Microsoft SMTP Server id 14.3.487.0; Tue, 21 Apr 2020 21:02:17 +0800 From: Shameer Kolothum To: , , , Subject: [PATCH v4 7/7] tests/acpi: add expected tables for bios-tables-test Date: Tue, 21 Apr 2020 13:59:34 +0100 Message-ID: <20200421125934.14952-8-shameerali.kolothum.thodi@huawei.com> X-Mailer: git-send-email 2.12.0.windows.1 In-Reply-To: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> References: <20200421125934.14952-1-shameerali.kolothum.thodi@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.47.91.160] X-CFilter-Loop: Reflected Received-SPF: pass client-ip=45.249.212.191; envelope-from=shameerali.kolothum.thodi@huawei.com; helo=huawei.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/04/21 09:02:04 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Received-From: 45.249.212.191 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@linaro.org, xiaoguangrong.eric@gmail.com, mst@redhat.com, linuxarm@huawei.com, xuwei5@hisilicon.com, shannon.zhaosl@gmail.com, prime.zeng@hisilicon.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Because of the following changes, the expeacted tables for bios-tables-test needs to be updated. 1. Changed NVDIM DSM output buffer AML code. 2. Updated arm/virt test_acpi_virt_tcg_memhp() to add pc-dimm/nvdimm Signed-off-by: Shameer Kolothum --- tests/data/acpi/pc/SSDT.dimmpxm | Bin 685 -> 734 bytes tests/data/acpi/q35/SSDT.dimmpxm | Bin 685 -> 734 bytes tests/data/acpi/virt/DSDT.memhp | Bin 6644 -> 6668 bytes tests/data/acpi/virt/NFIT.memhp | Bin 0 -> 224 bytes tests/data/acpi/virt/SSDT.memhp | Bin 0 -> 736 bytes tests/qtest/bios-tables-test-allowed-diff.h | 5 ----- 6 files changed, 5 deletions(-) -- 2.17.1 diff --git a/tests/data/acpi/pc/SSDT.dimmpxm b/tests/data/acpi/pc/SSDT.dimmpxm index 8ba0e67cb72daa81a65da4906d37a5e0f4af1fd4..ac55387d57e48adb99eb738a102308688a262fb8 100644 GIT binary patch delta 125 zcmZ3>dXJSWIM^lR9uortW7tG4X>Nb5nD}6)_~<4#t%(LAOunKU-FO)N7nn^=sUGbBa} TgA_0%`UAz6fQZcnjJAvbW$GgJ delta 76 zcmcb|x|WqIIM^j*EfWI+W57f%X>LFDnD}6)_~<5A^@#=|Og=&z-FO(~3Mv!1m>CkI dh5cO|Ll_eMokHD;1(_H?bo!F?%?lZA83Fei6ZHT9 diff --git a/tests/data/acpi/q35/SSDT.dimmpxm b/tests/data/acpi/q35/SSDT.dimmpxm index 2d5b721bcf9c398feb6d005761f898015042e8a4..98e6f0e3f3bb02dd419e36bdd1db9b94c728c406 100644 GIT binary patch delta 125 zcmZ3>dXJSWIM^lR9uortquWF-X>Nb5nD}6)_~<4#t%(LAOunKU-FO)N7nn^=sUGbBa} TgA_0%`UAz6fQZcnjJAvbUiu>C delta 76 zcmcb|x|WqIIM^j*EfWI+qr*flX>LFDnD}6)_~<5A^@#=|Og=&z-FO(~3Mv!1m>CkI dh5cO|Ll_eMokHD;1(_H?bo!F?%?lZA83FS;6XgH^ diff --git a/tests/data/acpi/virt/DSDT.memhp b/tests/data/acpi/virt/DSDT.memhp index c527ac4739af3df3c3e042bf91c412033a2b73c3..730e95a46d2cce0af011ffc051d7342beb8f1328 100644 GIT binary patch delta 66 zcmexj++)J!66_MfBgMeL^l>7WG*kP$jq2jB1F=Cg1XwVzFffCeAhF8JAJRT=DREfi z%xf&Mz2`Pir~{&ofdfQyG(dQa3da8 literal 0 HcmV?d00001 diff --git a/tests/data/acpi/virt/SSDT.memhp b/tests/data/acpi/virt/SSDT.memhp index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..db61d6733284c90153e0e2c1d6c2ac25c22b1d84 100644 GIT binary patch literal 736 zcmZWnJ&4m_7=F{1Ynryuv=ve6ky!_O6-025G-+(0NlTIzAqUNmw7s^&hj$JlLfadz zo*?wXEh3U083lL2&DF`tL2x*5cM%-K?@e*=T;7-Od*1JPpXcE-P1*XE0AOy_+fvgM z^q#D08a)F*{Xs{_tQJ#O0FU+9ezSw@vROEagI9HnmiQA&>UP6JQO~5}~Z64Mnvw zY+ErcAR}x9XE39S5im?~i@}LFCFj@yO3@`)kSxrd1o2Hog_0x3J#f(n8@M!%1lT2q z6Jm8#juK%h-|N%mEE@9&_-9pypc>!7*C8JuYZjQl__`2oA({8ccl~|O@$5xK?^Ua8 nUz82zqC>`BY*Tb6M!7_p|2F_GvB7H_Joz7