From patchwork Tue Mar 5 16:50:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 159695 Delivered-To: patch@linaro.org Received: by 2002:a02:5cc1:0:0:0:0:0 with SMTP id w62csp5205392jad; Tue, 5 Mar 2019 09:11:28 -0800 (PST) X-Google-Smtp-Source: APXvYqymV4PD6kwt9V+gDbWWYmJLTAbC9rMQuASPcp59Oq8cJd30NMGOS9UrWWEVR/5ZOQiPNh01 X-Received: by 2002:a81:3e16:: with SMTP id l22mr1869846ywa.52.1551805888533; Tue, 05 Mar 2019 09:11:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1551805888; cv=none; d=google.com; s=arc-20160816; b=Wq1fJcE1VC1mkWGmLcMnZZlMg2ZGHkLlFKViXuU7PZ8Td68G5x8QJTx7xkMHlb6zAv 5UIvlWwELfaENjhI+FDh2o5lEIIwnIumh47zYCIb2KWPxWSz0bnyKKsx7X0QYAnuITkC afy2b8ODM+xY7VEtViiX6tCVlseleMSlp987wEaRfVxRs2mmHTnGVrduS2szoEhhhRwB ETpCDeuDzROR1K4y3Uj+VeI6TOryZ6fKdqeSUPFaczifxSDksggk79a5/u2aRdJgE26G sVi6E0UApDfJJcEvPSR5Qobyd3B92zhqA31rcC/WjrfO1CvA1j9wCbU5gXTaHHCtoO26 MRqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=NN+6qqsjp4m/0T8dHkNjHqkh9rKKEl1CqKYB6Fqs8bA=; b=Fk79hRSlgHQlp4CAsfZaol6dH6t5QAVUd2w/7sucvQDGKVn8vsGMMtykNaI/BrPB8Y 19i42ZyR+RyegnnDA3eX2on5hqCBLNTt+13AEM5L0KyQwFqX/eSI2vYjdny/2XZ7sTxh J6YwixBrvFTFKksgCw4y2LEYH0hFihCdRJEcptOPfMH3OvHuwyNphatVxGmWGAdO1+y4 2mKNF2KI1uxlC7Jwfo2OBncAGBy8zCFpJke7XFq0HwquPWuunyBIk8GQoRGppsvYTpCM Yc8TTZGentQKC9KqtAWd0r60fFsv+TkeFFhGuwgrIE1MZLdAlLqGuuDOI9M7LHDOttwF rziA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=NzBnkRMq; 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"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id m7si5268846ybp.450.2019.03.05.09.11.28 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 05 Mar 2019 09:11:28 -0800 (PST) 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; dkim=fail header.i=@linaro.org header.s=google header.b=NzBnkRMq; 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"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:46084 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1DbD-00013I-VM for patch@linaro.org; Tue, 05 Mar 2019 12:11:28 -0500 Received: from eggs.gnu.org ([209.51.188.92]:54759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h1DHi-0001i3-Px for qemu-devel@nongnu.org; Tue, 05 Mar 2019 11:51:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h1DHi-00016F-1w for qemu-devel@nongnu.org; Tue, 05 Mar 2019 11:51:18 -0500 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:33898) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h1DHh-00015G-Q5 for qemu-devel@nongnu.org; Tue, 05 Mar 2019 11:51:17 -0500 Received: by mail-wr1-x42c.google.com with SMTP id f14so10259923wrg.1 for ; Tue, 05 Mar 2019 08:51:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=NN+6qqsjp4m/0T8dHkNjHqkh9rKKEl1CqKYB6Fqs8bA=; b=NzBnkRMqPOLweqUP8R6EIDNWLzXoEwvx44n5Ap2+1kTMVrySP7jSuh0HkpyPFJw65b CPSHVzvRLzvlLgmCLaK0Baws3RaMXKgT33Qzmp8ao8eCFoCK+SEArRe5QGfFKFYtB42R joexxTu0L76hkpuAXYhpWGrVLn+WmeplmckL1yng1UY6VDO3aQJHKeBQ1BFGH/9GF920 SOa7mFKx0mOO8NwHMKFPZzey2Do48AZ2tkzuthwYHak9X78noCq3Vr9w7qM9TJe1QtYw aU9yYVWW+myB0Oyq/DSTVyzqK3BX+WeSOhTX9pVB1kTZ0NQrigWvGvhMNhRZxfww8yjw eK6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NN+6qqsjp4m/0T8dHkNjHqkh9rKKEl1CqKYB6Fqs8bA=; b=ceXs8GPfZwdJlntkG8uAlu3/0Yz3G6CFZVNEROOQjNQ2D7KDdmvuD75eFK2DZDNnB5 Z0Y1i9lUlyGr4RWFFSdfMZInyN7EXX7jMZdGj24ggMdkbzYcZyV1Elz9Tm1sKZEcxOSN VUEHtCI4PXV1QOW3C9e36kyqWgUA0NqJ0ZcFH8fEhf96yyTQjXE5yvBZ2/JMWLB3ZOKZ FL05DFd7HILw0dJCRqAUjFjhOqKH5QtVJL5WS3KnVhe3Rqot+lszzQGUSQC38SUn3Fdc 6vWJNIOwrygZXoxJw+aWLR9D7UMrzrybCUwPZMMsojk7SSgzhhnRLMnSNZPTl3icnbGF hpUw== X-Gm-Message-State: APjAAAW79BmBE9k2nfvw2Sh5VOLTZ93BirbWpR1uacADPPq7nnDZRk1N 3eXOhoj37vbOmWaKeUCJ6W2xkvmUa00= X-Received: by 2002:a05:6000:14d:: with SMTP id r13mr18191232wrx.231.1551804676601; Tue, 05 Mar 2019 08:51:16 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id 2sm10071495wrg.89.2019.03.05.08.51.15 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 Mar 2019 08:51:15 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Date: Tue, 5 Mar 2019 16:50:49 +0000 Message-Id: <20190305165051.26860-21-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190305165051.26860-1-peter.maydell@linaro.org> References: <20190305165051.26860-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42c Subject: [Qemu-devel] [PULL 20/22] hw/arm/virt: Check the VCPU PA range in TCG mode X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" From: Eric Auger We are about to allow the memory map to grow beyond 1TB and potentially overshoot the VCPU AA64MMFR0.PARANGE. In aarch64 mode and when highmem is set, let's check the VCPU PA range is sufficient to address the highest GPA of the memory map. Signed-off-by: Eric Auger Reviewed-by: Igor Mammedov Message-id: 20190304101339.25970-10-eric.auger@redhat.com Signed-off-by: Peter Maydell --- hw/arm/virt.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) -- 2.20.1 diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 3ac6b152f55..d725daefdf8 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -60,6 +60,7 @@ #include "standard-headers/linux/input.h" #include "hw/arm/smmuv3.h" #include "hw/acpi/acpi.h" +#include "target/arm/internals.h" #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \ static void virt_##major##_##minor##_class_init(ObjectClass *oc, \ @@ -1608,6 +1609,22 @@ static void machvirt_init(MachineState *machine) fdt_add_timer_nodes(vms); fdt_add_cpu_nodes(vms); + if (!kvm_enabled()) { + ARMCPU *cpu = ARM_CPU(first_cpu); + bool aarch64 = object_property_get_bool(OBJECT(cpu), "aarch64", NULL); + + if (aarch64 && vms->highmem) { + int requested_pa_size, pamax = arm_pamax(cpu); + + requested_pa_size = 64 - clz64(vms->highest_gpa); + if (pamax < requested_pa_size) { + error_report("VCPU supports less PA bits (%d) than requested " + "by the memory map (%d)", pamax, requested_pa_size); + exit(1); + } + } + } + memory_region_allocate_system_memory(ram, NULL, "mach-virt.ram", machine->ram_size); memory_region_add_subregion(sysmem, vms->memmap[VIRT_MEM].base, ram);