From nobody Fri Oct 24 20:17:15 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1518717786324992.9472684793664; Thu, 15 Feb 2018 10:03:06 -0800 (PST) Received: from localhost ([::1]:44407 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emNs9-000589-Jq for importer@patchew.org; Thu, 15 Feb 2018 13:03:05 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55325) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1emNmV-00086L-PL for qemu-devel@nongnu.org; Thu, 15 Feb 2018 12:57:16 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1emNmU-0000cW-PX for qemu-devel@nongnu.org; Thu, 15 Feb 2018 12:57:15 -0500 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:46422) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1emNmS-0000Xo-3u; Thu, 15 Feb 2018 12:57:12 -0500 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1emNmQ-000215-JJ; Thu, 15 Feb 2018 17:57:10 +0000 From: Peter Maydell To: qemu-arm@nongnu.org, qemu-devel@nongnu.org Date: Thu, 15 Feb 2018 17:57:06 +0000 Message-Id: <20180215175707.15491-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.16.1 In-Reply-To: <20180215175707.15491-1-peter.maydell@linaro.org> References: <20180215175707.15491-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 3/3] hw/arm/armv7m: Honour CPU's address space for image loads 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: , Cc: patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Instead of loading guest images to the system address space, use the CPU's address space. This is important if we're trying to load the file to memory or via an alias memory region that is provided by an SoC object and thus not mapped into the system address space. Signed-off-by: Peter Maydell --- hw/arm/armv7m.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index 56770a7048..facc536b07 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -270,6 +270,9 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel= _filename, int mem_size) uint64_t entry; uint64_t lowaddr; int big_endian; + AddressSpace *as; + int asidx; + CPUState *cs =3D CPU(cpu); =20 #ifdef TARGET_WORDS_BIGENDIAN big_endian =3D 1; @@ -282,11 +285,19 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kern= el_filename, int mem_size) exit(1); } =20 + if (arm_feature(&cpu->env, ARM_FEATURE_EL3)) { + asidx =3D ARMASIdx_S; + } else { + asidx =3D ARMASIdx_NS; + } + as =3D cpu_get_address_space(cs, asidx); + if (kernel_filename) { - image_size =3D load_elf(kernel_filename, NULL, NULL, &entry, &lowa= ddr, - NULL, big_endian, EM_ARM, 1, 0); + image_size =3D load_elf_as(kernel_filename, NULL, NULL, &entry, &l= owaddr, + NULL, big_endian, EM_ARM, 1, 0, as); if (image_size < 0) { - image_size =3D load_image_targphys(kernel_filename, 0, mem_siz= e); + image_size =3D load_image_targphys_as(kernel_filename, 0, + mem_size, as); lowaddr =3D 0; } if (image_size < 0) { --=20 2.16.1