From patchwork Wed Jun 19 04:53:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alistair Francis X-Patchwork-Id: 1118454 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) 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=none (p=none dis=none) header.from=alistair23.me 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 45TCKl6fP8z9s4V for ; Wed, 19 Jun 2019 14:54:35 +1000 (AEST) Received: from localhost ([::1]:35088 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hdScD-0004mW-TN for incoming@patchwork.ozlabs.org; Wed, 19 Jun 2019 00:54:33 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60086) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hdSbc-0004lP-Kt for qemu-devel@nongnu.org; Wed, 19 Jun 2019 00:54:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hdSba-0001GV-FD for qemu-devel@nongnu.org; Wed, 19 Jun 2019 00:53:55 -0400 Received: from mail-oln040092255018.outbound.protection.outlook.com ([40.92.255.18]:6165 helo=APC01-HK2-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hdSba-0001Ex-4H for qemu-devel@nongnu.org; Wed, 19 Jun 2019 00:53:54 -0400 Received: from PU1APC01FT111.eop-APC01.prod.protection.outlook.com (10.152.252.53) by PU1APC01HT192.eop-APC01.prod.protection.outlook.com (10.152.252.177) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1987.11; Wed, 19 Jun 2019 04:53:50 +0000 Received: from PSXP216MB0277.KORP216.PROD.OUTLOOK.COM (10.152.252.55) by PU1APC01FT111.mail.protection.outlook.com (10.152.252.236) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.1987.11 via Frontend Transport; Wed, 19 Jun 2019 04:53:50 +0000 Received: from PSXP216MB0277.KORP216.PROD.OUTLOOK.COM ([fe80::61e4:d213:4652:f57]) by PSXP216MB0277.KORP216.PROD.OUTLOOK.COM ([fe80::61e4:d213:4652:f57%2]) with mapi id 15.20.1987.014; Wed, 19 Jun 2019 04:53:50 +0000 From: Alistair Francis To: "qemu-devel@nongnu.org" , "peter.maydell@linaro.org" Thread-Topic: [PATCH v3 1/6] armv7m: Allow entry information to be returned Thread-Index: AQHVJlr5EI6advsLzUyHHdVjs+pQfw== Date: Wed, 19 Jun 2019 04:53:50 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-AU, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BYAPR03CA0028.namprd03.prod.outlook.com (2603:10b6:a02:a8::41) To PSXP216MB0277.KORP216.PROD.OUTLOOK.COM (2603:1096:300:a::18) x-incomingtopheadermarker: OriginalChecksum:0A2DB9DA948C47458DDCD66E49D2CE4413EA324FEF203D898BC9337499876D96; UpperCasedChecksum:BC2A8FEC58C0638B7B5E4048525533D3EDAE6868469E47A418F1E2D683316B8D; SizeAsReceived:7593; Count:50 x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.11.0 x-tmn: [A6Fsicjmh3sB6uH0nxPFXHn4BldFepHMnGBANj3k7sZksnTol+75Dg0QSXKvBSoV] x-microsoft-original-message-id: <83a4d0c4a1aa79e4483aec4c011a0fd72b4894d0.1560919807.git.alistair@alistair23.me> x-ms-publictraffictype: Email x-incomingheadercount: 50 x-eopattributedmessage: 0 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(5050001)(7020095)(20181119110)(201702061078)(5061506573)(5061507331)(1603103135)(2017031320274)(2017031322404)(2017031323274)(2017031324274)(1601125500)(1603101475)(1701031045); SRVR:PU1APC01HT192; x-ms-traffictypediagnostic: PU1APC01HT192: x-microsoft-antispam-message-info: 5btHcM5U85/z5ymcygRI6RzCtAWvknuZSP2pcAOqVCNd9UGWk9irBBicB3ShdFB0xiFAEVlrxwJibovKI/rUQVR0LCR2NJzqOiQUC+yOHh2qUzevo4Ao3nRbNQu/YoTW4Es3KHAKdnPwVfZV4eBOyLMBRLp5qZ9RAwpbCgrX/U9wLZJWoHDFhyiZdnvrQ+kw MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: 46f0f314-9b65-4ce7-ec2e-08d6f4721b35 X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jun 2019 04:53:50.1674 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Internet X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PU1APC01HT192 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.92.255.18 Subject: [Qemu-devel] [PATCH v3 1/6] armv7m: Allow entry information to be returned 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: "alistair23@gmail.com" Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Allow the kernel's entry point information to be returned when loading a kernel. Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé --- hw/arm/armv7m.c | 4 +++- include/hw/arm/boot.h | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index b9efad6bac..8ee6291a47 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -304,7 +304,7 @@ static void armv7m_reset(void *opaque) cpu_reset(CPU(cpu)); } -void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size) +uint64_t armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size) { int image_size; uint64_t entry; @@ -351,6 +351,8 @@ void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size) * board must call this function! */ qemu_register_reset(armv7m_reset, cpu); + + return entry; } static Property bitband_properties[] = { diff --git a/include/hw/arm/boot.h b/include/hw/arm/boot.h index c48cc4c2bc..4e4db0416c 100644 --- a/include/hw/arm/boot.h +++ b/include/hw/arm/boot.h @@ -29,11 +29,13 @@ typedef enum { * @kernel_filename: file to load * @mem_size: mem_size: maximum image size to load * + * returns: location of the kernel's entry point + * * Load the guest image for an ARMv7M system. This must be called by * any ARMv7M board. (This is necessary to ensure that the CPU resets * correctly on system reset, as well as for kernel loading.) */ -void armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size); +uint64_t armv7m_load_kernel(ARMCPU *cpu, const char *kernel_filename, int mem_size); /* arm_boot.c */ struct arm_boot_info {