From patchwork Wed Feb 19 02:17:58 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: bibo mao X-Patchwork-Id: 13981432 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id 57AADC021AA for ; Wed, 19 Feb 2025 02:18:57 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tkZfD-0000ZC-Nw; Tue, 18 Feb 2025 21:18:15 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tkZfA-0000Z3-2k for qemu-devel@nongnu.org; Tue, 18 Feb 2025 21:18:12 -0500 Received: from mail.loongson.cn ([114.242.206.163]) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tkZf5-0005uQ-WE for qemu-devel@nongnu.org; Tue, 18 Feb 2025 21:18:10 -0500 Received: from loongson.cn (unknown [10.2.5.213]) by gateway (Coremail) with SMTP id _____8BxlmlXP7VnAnd6AA--.14769S3; Wed, 19 Feb 2025 10:17:59 +0800 (CST) Received: from localhost.localdomain (unknown [10.2.5.213]) by front1 (Coremail) with SMTP id qMiowMDxu8RWP7VneVgbAA--.35346S2; Wed, 19 Feb 2025 10:17:58 +0800 (CST) From: Bibo Mao To: Richard Henderson , =?utf-8?q?Philippe_Mat?= =?utf-8?q?hieu-Daud=C3=A9?= Cc: qemu-devel@nongnu.org Subject: [PATCH] hw/elf_ops: Use physical address about kernel entry Date: Wed, 19 Feb 2025 10:17:58 +0800 Message-Id: <20250219021758.190644-1-maobibo@loongson.cn> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 X-CM-TRANSID: qMiowMDxu8RWP7VneVgbAA--.35346S2 X-CM-SenderInfo: xpdruxter6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBjDUn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7 ZEXasCq-sGcSsGvfJ3UbIjqfuFe4nvWSU5nxnvy29KBjDU0xBIdaVrnUUvcSsGvfC2Kfnx nUUI43ZEXa7xR_UUUUUUUUU== Received-SPF: pass client-ip=114.242.206.163; envelope-from=maobibo@loongson.cn; helo=mail.loongson.cn X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=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.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org With load_elf() API, if input parameter translate_fn is set, loading address is converted to physical address. It should be the same for entry address, since MMU is disabled when system power on, the first instruction of PC should be physical address. Signed-off-by: Bibo Mao --- include/hw/elf_ops.h.inc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) base-commit: db7aa99ef894e88fc5eedf02ca2579b8c344b2ec diff --git a/include/hw/elf_ops.h.inc b/include/hw/elf_ops.h.inc index 9c35d1b9da..37ce7845a9 100644 --- a/include/hw/elf_ops.h.inc +++ b/include/hw/elf_ops.h.inc @@ -388,7 +388,11 @@ static ssize_t glue(load_elf, SZ)(const char *name, int fd, *pflags = ehdr.e_flags; } if (pentry) { - *pentry = ehdr.e_entry; + if (translate_fn) { + *pentry = translate_fn(translate_opaque, ehdr.e_entry); + } else { + *pentry = ehdr.e_entry; + } } glue(load_symbols, SZ)(&ehdr, fd, must_swab, clear_lsb, sym_cb);