From patchwork Tue Mar 24 04:16:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260447 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=fs+DBNlp; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdJ753rpz9sSM for ; Tue, 24 Mar 2020 15:17:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0AA9681764; Tue, 24 Mar 2020 05:17:19 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="fs+DBNlp"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 266AE81829; Tue, 24 Mar 2020 05:17:15 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 9F3AA81764 for ; Tue, 24 Mar 2020 05:17:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023453; x=1616559453; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=+FWeikJ1BLW/5UvYBrH0sAQJ4Udpd9nE9F8lNrhV3KI=; b=fs+DBNlpBvmDkPVgk3MWHPgn6wCFUQArKW39NBbsq5YYhzF+0mKTMPeJ cxThbKeLlFYHtfq8RZsbMBCrFmQVAv4iH5Ge1ounMB1wWnMgAom5Ra+yR V/ZHLrQIV245iRi59rBg6hwu4fzzuTMyMUSTd4qWoWatHlUl7Z8k7uHEs G5UE9YzG0TIAtvL/flDLChly2V7m/1+dCJWyCbrF8+kIKhYydw0kx/F0W nJA6X3gyMiFR8QN+C/USdfM83nLFyLJGCP3Jhb5JkzElmnhS/Du+xxc37 tz7YqUdhZPuRcDJ0XMgqSddRdQgIcuPcUMetXXbk/sB/zXZG7j/+6bSbq A==; IronPort-SDR: JbnCx7U4HvmrOF7aLGoXonCTbkDw/AgUn+yHYMRz3NLoklzx03vxpdfATq5E3/gBWc9Clg5y7l CvUQCF/N1OEhJ8Nl6yMKLf0A60KZ0sudD55tih3ucM/0V8L8GFAYAJMByJvHQuWkG2grDleXXk LiwuZB6h8CbI22wD4hJtAGe+pn6/K7a/aspIj9yJBqH2q+H5AEyYwXkzHFQn/ljQtnwQK6A8Fg 6UBIeATAlgvfFBTVQGdkVYJyDNsqnpRoZZPywo7i67xau3kNda7rbtpIOSEldYUYWldQWcC1da wZE= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522562" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:28 +0800 IronPort-SDR: CFqzDGLrpLpJ5RrnUncB90WSOhMhn2k6A9KLmtulermSfRNG7C4RlYqFZ++yXD+KeX21aGQSlC FKI5XwfEcYeKQRXQ8Gg/ArXrvTmlrZqGriQXgpsZ2jGyHa2hccmuD+G2rRRzPbz/TsFWFkNgYE fjjQnqrKwdEtR+V/R9buGTNcUZjYq/qN1lpKsLA6bpG3V/7htQDUPkxE3Uehkk1AKDnC2e0iK2 XmekcvrlqLJzavbB+GaQLBa4+U5iFnpzFVMz1R9TIG7gsSvRotz9tLSSZK/u5ktOYWPXAnWvEH coQ3/VBQakuZx+9KqOyokbTd Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:47 -0700 IronPort-SDR: yLeuh/qkMAVOXLzUHTaE0O4m+S4Ch0DU55k1TvA/4/IitB1jotYK8ywgWPlGqe3lKs6vUD/tVj +zAMotY3RaslSIIOybYrARrLf2XQU/0PhsvyrJpS+jZyRcOTYxkJKTl4YGpWymCRUbvmgR/ifj dPWVXA60DRIaTD4TbuPM6BozXKhUOrLJdd5UvCE1N5dlgRt3Y5V1+VXQR4DN+T4VC0ne5LnQIH UoBK5hRBH0frW3r/ii5yvvwdzzj+x9S96RkH6r8T/hZZs88SXQqyesFh2CPJ5eZV8zE98bAjO9 WwU= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:06 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Rick Chen , Alexander Graf , Anup Patel , Bin Meng , Heinrich Schuchardt , Lukas Auer , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 1/6] riscv: Add boot hartid to Device tree Date: Mon, 23 Mar 2020 21:16:45 -0700 Message-Id: <20200324041650.280302-2-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean Linux booting protocol mandates that register "a0" contains the hartid. However, U-boot can not pass the hartid via a0 during via standard UEFI protocol. DT nodes are commonly used to pass such information to the OS. Add a DT node under chosen node to indicate the boot hartid. EFI stub in Linux kernel will parse this node and pass it to the real kernel in "a0" before jumping to it. Signed-off-by: Atish Patra Reviewed-by: Rick Chen --- arch/riscv/lib/bootm.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index fad16901c5f2..87cadad5016d 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -28,6 +28,28 @@ __weak void board_quiesce_devices(void) int arch_fixup_fdt(void *blob) { +#ifdef CONFIG_EFI_LOADER + int err; + u32 size; + int chosen_offset; + + size = fdt_totalsize(blob); + err = fdt_open_into(blob, blob, size + 32); + if (err < 0) { + printf("Device Tree can't be expanded to accommodate new node"); + return err; + } + chosen_offset = fdt_path_offset(blob, "/chosen"); + if (chosen_offset < 0) { + err = fdt_add_subnode(blob, 0, "chosen"); + if (err < 0) { + printf("chosen node can not be added\n"); + return err; + } + } + /* Overwrite the boot-hartid as U-Boot is the last stage BL */ + fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart); +#endif return 0; } From patchwork Tue Mar 24 04:16:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260450 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=IbyKKCVU; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdJp5ZX7z9sRf for ; Tue, 24 Mar 2020 15:18:02 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id DF7FE81764; Tue, 24 Mar 2020 05:17:45 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="IbyKKCVU"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E242A81822; Tue, 24 Mar 2020 05:17:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 0B2DE81776 for ; Tue, 24 Mar 2020 05:17:10 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023453; x=1616559453; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=96lFwyOICS6OFVAcNqWnYfdjNQD5DW5eHwTgzw93x9A=; b=IbyKKCVUL/PLg9GBBKncspXhK7fdIL0Hnlwztxym3xtnAnoOYFmQH2or UjlvOfyk4lX34aFn6TZ+D2gVfmqx6NJGz72MN+TvobiJaTBA3F02dcDt0 +1rLkbb0BgTycDrRzAjMUydZUsTJHuJylpAidNYCU6rMiuaq4DP6YONp0 I3XrbULf6o1pRPg7Uxy/KfN7qqbplKwzXTHevPMaefQMfPNVS+z5x7rRV dOVWNC7K2ETx//HDONU8qyU6pDKZL0E1d1pcOCfNMKlKmxxrsKyGkxe4D n+DzHiVtUMUV0GKtMjCxG7OzKwD6fZXRiHDu2mvQtatIfMlVRMs1i/ip0 w==; IronPort-SDR: Y9VPtxVPAqQuo+IjPaDxv/QTOYFd4SteUYNt+s2FpO5SoH0epzxG5S/eWXuciOZ5rftPxJOoQR kk0PJuUkxHRfDOlPZJGP2yoSXwOj4iCjD0RqmUCFhO5GujPwys1ndm6DUQau6Cq7XefUP2I503 jrxHjcNPwMglNRx1z1adl1oswezs8Eo0u8eL5XY/bSGebUuYjSwSikjFTH42eKZ6Z4/tJ7GB/E 9NpjeB6NMnGEM2TmpkThqKZQpovxwqF4atkrvHHos87a3dspDBpgGhFjuA+hOgtvx6tmPFYIaO Qhk= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522565" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:29 +0800 IronPort-SDR: iqT/pIkCHrHP9zlhHhRCeLmo0LuFBVGb4nAhzNCFM+62Q6u/CItU07yD1Lb62lj0ky1QJX8pkv Dq7t8WRndjMD94FG5unKFtr1+Vglfg+pyHuGmzPv8lIyUiZfLyRZ1JjWKtRHeahKUWA3TiLLzA CBTIx4p8XP7VMd/bpWgvoEqu5ZlFfV9Kf+Uqe6H4WL/byt6B6rjgC4mjr9CY/7PGAsOYK9tuEw CcR/CE/FNKn7nj0cd8kXKJNm9NDHTrvDp6Y9B8fdNjD//3Mq1HCxt8ejWlSFl8ewG7PrQUTLaV IZcpe8nUoRpTgWQbpBCw7Nyp Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:48 -0700 IronPort-SDR: aybvp6XXk/Im2ANFKoHXBCjocYisjCgCPxs3Wg1Yhlxd3y6dRqLQOBxSXeOm9HtecOZe2l5N2f TBNHhn8zldTyY2LoQRauZNVeGvbSGVDAE1RH6azPs46CQkw293yb0hO0CWH+jbqOnZfBktWo4C hXCqbrk05MCUTX1d0/T02R5g1kshvWpmLuvENPXRy8j7J8sII8d7LQuRLrJacy60eXIzDDp2h9 x0mTHKWB6CoCBBbcT69yBgj+Aok3d/UihBQ0yQyAZxFYAFtpfPikryl66fQ6OXwAeQJ1fxmuh8 Czk= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:07 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Alexander Graf , Anup Patel , Bin Meng , Heinrich Schuchardt , Lukas Auer , Rick Chen , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 2/6] fdtdec: Fix boundary check Date: Mon, 23 Mar 2020 21:16:46 -0700 Message-Id: <20200324041650.280302-3-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean In U-Boot, the reserved memory end address is considered as a inclusive address. This notion is followed while adding a reserved memory node to the DT. For example: end_address = start_address + size - 1 Follow the same notion and fix the end address computation while checking for existing nodes. Signed-off-by: Atish Patra --- lib/fdtdec.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/fdtdec.c b/lib/fdtdec.c index eb11fc898e30..07ba9f5c97e9 100644 --- a/lib/fdtdec.c +++ b/lib/fdtdec.c @@ -1311,7 +1311,8 @@ int fdtdec_add_reserved_memory(void *blob, const char *basename, continue; } - if (addr == carveout->start && (addr + size) == carveout->end) { + if (addr == carveout->start && (addr + size - 1) == + carveout->end) { if (phandlep) *phandlep = fdt_get_phandle(blob, node); return 0; From patchwork Tue Mar 24 04:16:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260451 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=N8FClzX5; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdK43h4Yz9sRf for ; Tue, 24 Mar 2020 15:18:16 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0FC6981854; Tue, 24 Mar 2020 05:17:51 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="N8FClzX5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3BB678183D; Tue, 24 Mar 2020 05:17:22 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 35AF2817C1 for ; Tue, 24 Mar 2020 05:17:11 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023454; x=1616559454; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=M2XNNP944RpmRA71PbUP1WSw6+YkbDF4WVaMU22kr64=; b=N8FClzX51z2KWEgkK7VxFtcD1x3OMA5wUPlt5H+BeKdUJOuhKyBF7qVo ngEN45899Aw0GbeWWhZkP82wNRTiwe2hSczkX/Zw1QkxYDfmBd3dcnTmQ AZKpINW6E88SAkNZ1iMjjvgMt8BbfspQ3WYYzE1IqtnX+vZQz/1fTO0v/ spbo8hnYSnaAzjYogMXTdtBbhgo8KEwVxx4rGHs9rEGxBvh2uiTG8ke0W Xswns+KbBcysw4hLvSfDEbhH6AtHBKmGhoBXSHHNFSHUIxhofAua021D4 /c7N1QJzeaKtmDbVWDtRK9EC62RgLp4rF78e3N7NTlZMMwa2ttcFYunHU g==; IronPort-SDR: 7YoJ1dZ3a0oJe5seG//qSrSUSTbXl0Y50YblHcsv+ognr0wua2Vti+AxkKmgn9BGHOEJTKBpzd KeLPawzYA0usMiNEOAl5JZ6scmlqnKoe64W0oZ990zdMKtjPdkW7lpBp3C+ynV5iZq3dO9sXVt yImfAJK4NeME5PM8Hw7mpxoKWzWqG+NR44dsrv2zKmMaYwV2bXo0KFS1JLcyOzpX9MxNNSOfR5 juwOArtlu8p+p/rBjCGfUMjirIET5/y8bR7pPiGt0OJcBkmy9SuDdIIzXTrKBzxL0LV9YvfQvA zvg= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522566" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:29 +0800 IronPort-SDR: ih82BOCkM456jWLDjih1rJ7B4De2nBpil+W32vApAJ1tfcqvHFClGgelkLA+6kPKQgpXqbvnDW kzs/m8aGjY3QjrhFZBDnnLo+yj8tyxDtsnK2R0+LG3VukgH0pkdsc4M84b4IX895FMNIFbzYrJ MMRyzAyhCFVF8KZ6RnPYL3a9nDcCdDtZv0KHz12vTlRKQSMKLHCyipnUhhcKQFCkStkohsw/cC mH4ckOmEHeYpwLxsbTzQfxrulkGpXynsTSd4Z8U1O58k/YeBa4s+Lt1fY418jc06QZh34fk+iC /aJHf4N29A+Ast2zQBgszoLm Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:48 -0700 IronPort-SDR: sFIKduacqEU6evF409CCaunkZDqek0WG5a/XZT/5cmjX3IyHVY++Yte+Zs9759DgVTdB9TvYTd oB1za3TPJ0R1U+rwlhy3qeQsi4Wwha0YMM/bKIf7teTXv+Fu0fi/tu9rRfUr/X9duD6uY4taz2 80Wixvlk+HvTCwQPstmBnoaEDyXJenbyPVAnLJ4CqwkbCdqZp2Uw9Qh/cf30mKLwXQ3hUN8vY5 WCFooCluxFarIpCbajO4IhAteFoasIy7XnHIY0zmSNgrdQTuLmSN0B7b3kNObexUv/y8KvF7FZ z7s= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:07 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Alexander Graf , Anup Patel , Bin Meng , Heinrich Schuchardt , Lukas Auer , Rick Chen , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 3/6] riscv: Provide a mechanism to fix DT for reserved memory Date: Mon, 23 Mar 2020 21:16:47 -0700 Message-Id: <20200324041650.280302-4-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean In RISC-V, M-mode software can reserve physical memory regions by setting appropriate physical memory protection (PMP) csr. As the PMP csr are accessible only in M-mode, S-mode U-Boot can not read this configuration directly. However, M-mode software can pass this information via reserved-memory node in device tree so that S-mode software can access this information. This patch provides a framework to copy to the reserved-memory node from one DT to another. This will be used to update the DT used by U-Boot and the DT passed to the next stage OS. Signed-off-by: Atish Patra --- arch/riscv/cpu/start.S | 1 + arch/riscv/include/asm/global_data.h | 1 + arch/riscv/include/asm/u-boot-riscv.h | 2 + arch/riscv/lib/Makefile | 1 + arch/riscv/lib/asm-offsets.c | 1 + arch/riscv/lib/fdt_fixup.c | 80 +++++++++++++++++++++++++++ 6 files changed, 86 insertions(+) create mode 100644 arch/riscv/lib/fdt_fixup.c diff --git a/arch/riscv/cpu/start.S b/arch/riscv/cpu/start.S index 6b3ff99c3882..0282685c2906 100644 --- a/arch/riscv/cpu/start.S +++ b/arch/riscv/cpu/start.S @@ -121,6 +121,7 @@ call_board_init_f_0: jal board_init_f_init_reserve + SREG s1, GD_FIRMWARE_FDT_ADDR(gp) /* save the boot hart id to global_data */ SREG tp, GD_BOOT_HART(gp) diff --git a/arch/riscv/include/asm/global_data.h b/arch/riscv/include/asm/global_data.h index b74bd7e738bb..51ac8d1c98e2 100644 --- a/arch/riscv/include/asm/global_data.h +++ b/arch/riscv/include/asm/global_data.h @@ -15,6 +15,7 @@ /* Architecture-specific global data */ struct arch_global_data { long boot_hart; /* boot hart id */ + phys_addr_t firmware_fdt_addr; #ifdef CONFIG_SIFIVE_CLINT void __iomem *clint; /* clint base address */ #endif diff --git a/arch/riscv/include/asm/u-boot-riscv.h b/arch/riscv/include/asm/u-boot-riscv.h index 49febd588102..543a1688db8f 100644 --- a/arch/riscv/include/asm/u-boot-riscv.h +++ b/arch/riscv/include/asm/u-boot-riscv.h @@ -17,5 +17,7 @@ int cleanup_before_linux(void); /* board/.../... */ int board_init(void); void board_quiesce_devices(void); +int riscv_board_reserved_mem_fixup(void *fdt); +int riscv_fdt_copy_resv_mem_node(const void *src_fdt, void *dest_fdt); #endif /* _U_BOOT_RISCV_H_ */ diff --git a/arch/riscv/lib/Makefile b/arch/riscv/lib/Makefile index adadbf4bcbef..d132b59ce32c 100644 --- a/arch/riscv/lib/Makefile +++ b/arch/riscv/lib/Makefile @@ -24,6 +24,7 @@ obj-y += reset.o obj-y += setjmp.o obj-$(CONFIG_SMP) += smp.o obj-$(CONFIG_SPL_BUILD) += spl.o +obj-y += fdt_fixup.o # For building EFI apps CFLAGS_$(EFI_CRT0) := $(CFLAGS_EFI) diff --git a/arch/riscv/lib/asm-offsets.c b/arch/riscv/lib/asm-offsets.c index 4fa4fd371473..7301c1b98e23 100644 --- a/arch/riscv/lib/asm-offsets.c +++ b/arch/riscv/lib/asm-offsets.c @@ -14,6 +14,7 @@ int main(void) { DEFINE(GD_BOOT_HART, offsetof(gd_t, arch.boot_hart)); + DEFINE(GD_FIRMWARE_FDT_ADDR, offsetof(gd_t, arch.firmware_fdt_addr)); #ifndef CONFIG_XIP DEFINE(GD_AVAILABLE_HARTS, offsetof(gd_t, arch.available_harts)); #endif diff --git a/arch/riscv/lib/fdt_fixup.c b/arch/riscv/lib/fdt_fixup.c new file mode 100644 index 000000000000..f3d1ec5c5d02 --- /dev/null +++ b/arch/riscv/lib/fdt_fixup.c @@ -0,0 +1,80 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright (c) 2020 Western Digital Corporation or its affiliates + * + */ + +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +int riscv_fdt_copy_resv_mem_node(const void *src, void *dst) +{ + u32 phandle; + struct fdt_memory pmp_mem; + fdt_addr_t addr; + fdt_size_t size; + int offset, node, err, rmem_offset; + bool nomap = true; + char basename[32] = {0}; + int bname_len; + int max_len = sizeof(basename); + const char *name; + char *temp; + + offset = fdt_path_offset(src, "/reserved-memory"); + if (offset < 0) { + printf("No reserved memory region found in source FDT\n"); + return 0; + } + + fdt_for_each_subnode(node, src, offset) { + name = fdt_get_name(src, node, NULL); + + addr = fdtdec_get_addr_size_auto_noparent(src, node, + "reg", 0, &size, + false); + if (addr == FDT_ADDR_T_NONE) { + debug("failed to read address/size for %s\n", name); + continue; + } + strncpy(basename, name, max_len); + temp = strchr(basename, '@'); + if (temp) { + bname_len = strnlen(basename, max_len) - strnlen(temp, + max_len); + *(basename + bname_len) = '\0'; + } + pmp_mem.start = addr; + pmp_mem.end = addr + size - 1; + err = fdtdec_add_reserved_memory(dst, basename, &pmp_mem, + &phandle); + if (err < 0) { + printf("failed to add reserved memory: %d\n", err); + return err; + } + if (!fdt_getprop(src, node, "no-map", NULL)) + nomap = false; + if (nomap) { + rmem_offset = fdt_node_offset_by_phandle(dst, phandle); + fdt_setprop_empty(dst, rmem_offset, "no-map"); + } + } + + return 0; +} + +int riscv_board_reserved_mem_fixup(void *fdt) +{ + int err; + void *src_fdt_addr; + + src_fdt_addr = map_sysmem(gd->arch.firmware_fdt_addr, 0); + err = riscv_fdt_copy_resv_mem_node(src_fdt_addr, fdt); + if (err < 0) + return err; + + return 0; +} From patchwork Tue Mar 24 04:16:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260449 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=YLIWTFoN; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdJZ6h5Tz9sRf for ; Tue, 24 Mar 2020 15:17:50 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6800981836; Tue, 24 Mar 2020 05:17:40 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="YLIWTFoN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 089F48183B; Tue, 24 Mar 2020 05:17:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 8127B81807 for ; Tue, 24 Mar 2020 05:17:11 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023454; x=1616559454; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8nc2KpowKDKfLC7uTvXgC6ieDw1k2dTE0f8xTF+vVUw=; b=YLIWTFoNkzlGjWkGOMqfwPdiRyLNy5KTeWgJrt6185CRLKdWXbWvlzvi 6MWhiiNre4nHn6XONn8FxdgGKr+TrwIlzsg/2TVo2ECFMhcM/rywBPp73 4zNXp4yUYLXi+WdETRQVo2CrxLVV493OQ5fNT7gXkA2JaZ/m7jRuET/vG ogTJ5bmGLpr+pgkYdGgVhypy+pcX/nB712osK2VBlZXkAvgmzfRXIP2TT VzDmPYFKQvEecQRRSkK/TL6p5NRv9n+R5seb0+HHEQIjbvLzcqRduNRIr kP+GvhDBOwhagqWEXGFYo8zS4mM5CGyJ8LV2+gDM2uXlQCDJ9jQYA16pT w==; IronPort-SDR: bKViA5M5/FJ2gMwAyLqEj0lhcoNitkpz5oxdqPw9F0oZxkPRvyXJSJVzLm6HYV7LSJRdD0KudJ OxMaYUxGxAno+nEiFQOC0aVSMH0e/3eP1E01bhLCjbMPSGgT1zJde7rBKqUE3BRV/C4UFCeBLX /OM0RWZX+7ZJQ4/7yhY9YOUc29jE9nu+aYjJClLpvUk/hAimmbuhcs4VzWnx+eLS1v5PYwqaeO eMUIEzyUOvwl9zBW5GtbaB6e0ac2ZXevkN9O4r6UpJ0Myo6PnORqkGjQyUjCjZCB8eQe8IZy9d SAY= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522567" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:30 +0800 IronPort-SDR: mYOq3fWiIP2l2ZxgiEEuh/wSE6bFLlCpXXdBg6ckveDyXfhiDDXSvytpmZ+faUAOWX8XUTq/k3 4T54MEctKvJcabEgvj0+1eMZsDFYxVTWsQFdJ6iIKntom+rZ4rcR+be3TCg7sikkSsoXvBi8L6 RIuvd3LqJW2N0uuO/fx2uBomA3pGWnHXEiw1MltgGDTO+gCK+SPSObG81TLyAdWWfMVJRM9+59 sNnsPaqLRK67rsp7DE1z20kZ48fvCj2thzR6PjvmaY1u7+qNpjSmMuI1DZ+9ML4ccav9/jp06Z gWvA3M50FvWrqGkspl2ePn9X Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:49 -0700 IronPort-SDR: C++HL/Y9AVw30xzcv+sQdZsGX5WwWWYP2iZ4VtMbSu3LzlMqQhDGGS38Sj/7bMFnJZ5pk6qFdz /rw5HT9kqQiWxKvKoSz3OaLqwmA2/oR8DpoMA2ynT0j72zCMKqItDbI1Gj7zT4jMgazznV9w2u UTPIkWGeZ7CmNaHfEgfYDYC82Ndei9zVbQK+kdpoQZfcNpRy14i0LGRvSMLj+N+f5xgG7zXSNS y/ff7HtZqk5zKK0lrI03az6MHdUsQYBPKypLgtsmCBJdt+xBGG6hDvkzKyIyFgRKPemV/sYVmp N3g= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:08 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Alexander Graf , Anup Patel , Bin Meng , Heinrich Schuchardt , Lukas Auer , Rick Chen , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 4/6] riscv: Setup reserved-memory node for FU540 Date: Mon, 23 Mar 2020 21:16:48 -0700 Message-Id: <20200324041650.280302-5-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean FU540 uses OF_SEPARATE instead of OF_PRIOR. Enable OF_BOARD_FIXUP to update the DT with reserved-memory node. Signed-off-by: Atish Patra --- arch/riscv/lib/fdt_fixup.c | 15 +++++++++++++++ configs/sifive_fu540_defconfig | 1 + 2 files changed, 16 insertions(+) diff --git a/arch/riscv/lib/fdt_fixup.c b/arch/riscv/lib/fdt_fixup.c index f3d1ec5c5d02..e41f06f5b7f1 100644 --- a/arch/riscv/lib/fdt_fixup.c +++ b/arch/riscv/lib/fdt_fixup.c @@ -10,6 +10,21 @@ DECLARE_GLOBAL_DATA_PTR; +#ifdef CONFIG_OF_BOARD_FIXUP +int board_fix_fdt(void *fdt) +{ + int err; + + err = riscv_board_reserved_mem_fixup(fdt); + if (err < 0) { + printf("failed to fixup DT for reserved memory: %d\n", err); + return err; + } + + return 0; +} +#endif + int riscv_fdt_copy_resv_mem_node(const void *src, void *dst) { u32 phandle; diff --git a/configs/sifive_fu540_defconfig b/configs/sifive_fu540_defconfig index 6d61e6c960ee..8fb3794cd578 100644 --- a/configs/sifive_fu540_defconfig +++ b/configs/sifive_fu540_defconfig @@ -12,3 +12,4 @@ CONFIG_DISPLAY_BOARDINFO=y CONFIG_DEFAULT_DEVICE_TREE="hifive-unleashed-a00" CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_DM_MTD=y +CONFIG_OF_BOARD_FIXUP=y From patchwork Tue Mar 24 04:16:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260453 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=ayOcTP58; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdKV3jvxz9sSJ for ; Tue, 24 Mar 2020 15:18:38 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6AA8A81881; Tue, 24 Mar 2020 05:17:57 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="ayOcTP58"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8A9FD81827; Tue, 24 Mar 2020 05:17:24 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id EAAF181813 for ; Tue, 24 Mar 2020 05:17:11 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023455; x=1616559455; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=15wEaSM5+aJTlTiM9DMRllUUNc6sZN1168dhM8zY40U=; b=ayOcTP58v2/pQNzeQKKL07WtqFa/m3dbJ1Ij/5gZgd4cvik2eVcyWbpQ NTxhz0pt/rMHAPAOrPkZ1HFrAaHVMTqmLxNmyi7r1JRz459upba8vQ+Ze /EWDCwn7TsdYVG2sAX/YT8h18JXXu2y09djkJSxJr6CFtbg1qnHXBAq8q vLO207A/k7PBE4WVOyPMkBe5AKL8+P1vZ0fTvVxmzoEJ7xmp5wFsbtAf0 HGOq5GnU8zTtP/RUnqM2OAzUES7oTE3lkOe7kF1wE7EEGAnexHbNDuIw5 D/JzjcKZxV9yctnshzwCC+IXkb8kYaOlp8n2s0hDfFhqs4vg7ZOS5572W A==; IronPort-SDR: cJUSjeL2qKQi5fJXgOPH9txGUP87t+2F3l+88KH8UAUQoFM7IdAE1MYtylSjMpn5BkpBVWs7ry gP8h1++Rv/emybwVcCxwS1VDKZw9AulLs/DLWKkzXH4Ggiba53H3IjNzkqCQ5qNMxOAeyHPS4w 6m2eVtgyI8zLnetm9VpOh64LkKXFm4sH3RBX9X3bRjYkHtpJ0Vg3jtp8A1BWk1cWSA6ZRZTBpB MPEOua0Lahb1dF40O0hzggc+6Lnv8grN7uxoyYlIPqAFz0SMd1gSOJd8A1OwcaIXbOCUGkq7zf /Og= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522569" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:31 +0800 IronPort-SDR: zANj1jJAy+FBsxdvqwInlYvyCHwKjoz5kJ+/PiKkcsNtiPqtmhM4W8Hd95SBcuV0HnTsiXdjVu sJYAPBlGAvvRDemHgtwz80Rmz39eRploooNJNNECoikPLERYTRBta8g0qV+R+9hrumq0a/en+D DRbE3eFRLQhMQupM95Bo4T2JuZrErg4actPOpaZvXsAzQKEPa3KDXghcYWDJae/O/kMgXUehMK 7RsP717jLM1FK9iMjUMpgGQfLi+MKL6SaBF8J5r/55GYouNZ9wj7j8p2Pt3NDE8yHRv4iE3MOy NCasQRGYVvCmN3gGI2kzfsau Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:49 -0700 IronPort-SDR: VRpR/mlizZsc/xTQy5lJXSbRoLVoRsTqk1Ar3KhiiV27mZ5d7e8clMYSU79VnKt3Md8MTi1z0N b5TOnFFI3jDMMe5ug3EwWZMvc9kDBUdeVwOu9kxSnShqDTaqfgh89K2V+c9iiy18BrnJlcMPRv gBVkUV2zZSE6rLIB1/3lIFOjvx0MZ2wyxT9P/nZQXYRF6V5UOtW7c3RP4aTkXiAHUfEl69bCJF lZxdUgd62MTAXc7ztth2/NU/UVZBK1NaNqn/wnv9mWbA/pkYDvifV408B33zu/06M6WDXe3zMl tXY= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:09 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Bin Meng , Alexander Graf , Anup Patel , Heinrich Schuchardt , Lukas Auer , Rick Chen , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 5/6] riscv: Copy the reserved-memory nodes to final DT Date: Mon, 23 Mar 2020 21:16:49 -0700 Message-Id: <20200324041650.280302-6-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean The DT used by U-Boot may be different from the DT being passed to the OS if the DT is loaded from external media such as network or mmc. In that case, the reserved-memory node needs to be copied to the DT passed to the OS. Signed-off-by: Atish Patra Reviewed-by: Bin Meng --- arch/riscv/lib/bootm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index 87cadad5016d..8ff8db6bf533 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -28,8 +28,8 @@ __weak void board_quiesce_devices(void) int arch_fixup_fdt(void *blob) { -#ifdef CONFIG_EFI_LOADER int err; +#ifdef CONFIG_EFI_LOADER u32 size; int chosen_offset; @@ -50,6 +50,12 @@ int arch_fixup_fdt(void *blob) /* Overwrite the boot-hartid as U-Boot is the last stage BL */ fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart); #endif + + /* Copy the reserved-memory node to the DT used by OS */ + err = riscv_fdt_copy_resv_mem_node(gd->fdt_blob, blob); + if (err < 0) + return err; + return 0; } From patchwork Tue Mar 24 04:16:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Atish Patra X-Patchwork-Id: 1260452 X-Patchwork-Delegate: uboot@andestech.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.a=rsa-sha256 header.s=dkim.wdc.com header.b=WC+xOuxz; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48mdKH6Ypdz9sRf for ; Tue, 24 Mar 2020 15:18:27 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A96D781856; Tue, 24 Mar 2020 05:17:54 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=wdc.com header.i=@wdc.com header.b="WC+xOuxz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E371381836; Tue, 24 Mar 2020 05:17:22 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from esa2.hgst.iphmx.com (esa2.hgst.iphmx.com [68.232.143.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 36843817D0 for ; Tue, 24 Mar 2020 05:17:12 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=wdc.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=prvs=345a454b9=atish.patra@wdc.com DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=wdc.com; i=@wdc.com; q=dns/txt; s=dkim.wdc.com; t=1585023455; x=1616559455; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8m1LvMSQBo6sn4TQm61U5GSL6d1DvVg9d7cZBYBMfAk=; b=WC+xOuxzRYNiQcAJm0stehk2pO+d7p7I3LtPXOW9a69GvjRJddtO+KfU lI/b7RA/KBf4Kgq6g3nSlbVjr4qZJdpWVwUjdY+rWo5l6xX0Sf6dNfEsQ JPliXlbE6D8emjT5M36vSXKXddv3Xra3AJXYV2AxIOTxAAVPUSMyLEXEP A5J0pwyLlRLwcqerh9nTm+40LqKwmQyX6T1wsPGlsZUOkHLNm8fOtSi+G q2PM/srE+jIFUmvs5abNQIcZAH9tiy2UqkjE9q5dv9XxRVIN+u9OpUT3t XrU8QiBwsWrcZG/8m53kFRUT2D5tZ7Fk2BLT0CJ9W66FCEH0yGyan/1Vc Q==; IronPort-SDR: YiSKXyvX5145/IGWFzJ3t3h61oYBX95ixLdcyXKfGAMROUtSW1xW3bLfaueeHVbRELwWIboGlw VYJQbg95YmyZ70VnDVCnuRwI+lIRtOSfgILT5EAfiWkexTsDU/bu+jBc+0tigiX8EEibaZxpLh NGskdMHn1yYEUcJNTdaw1EVclQQjmFOrTne3htC0mP6LdR/ttwAxWmPaWQbBGlOptMTjhwL5jF nSXvp0w43uEyIXkEfxkvr6P/EVMm3LzRN762aSbYX0/uM7PHFwS2sPGgINwyrPNbCvLh+4sKT6 KfQ= X-IronPort-AV: E=Sophos;i="5.72,298,1580745600"; d="scan'208";a="235522571" Received: from uls-op-cesaip01.wdc.com (HELO uls-op-cesaep01.wdc.com) ([199.255.45.14]) by ob1.hgst.iphmx.com with ESMTP; 24 Mar 2020 12:17:32 +0800 IronPort-SDR: iAV6JoBiDQ9p8Do+tEeR8QxPaoBYx1I/zWm9kcMizNEU3cS0ZcflVzJgcwgy0cTAGOksoN8qzl VlHDuqCEBNuLb+q7lfWoi6miS8XaCXbLd/8uzUlZzPn9k8rFFIJj6OmTps08lNCiJKD7auT6oK kF/3Z8w43XMqwN3XMcsxM2xSuedrlU1Bj0nsuzRrLeXizQrFqa5Zil+0o+Md2hz2teQjlD2TQY OV6eTOtH5LsBZmOcuihoQXdgqpdneNhO4riOrjXInIGgkJXf8YvGhr0p+cycIyGEAfW/ui/Asd BgbsSVAqhTgKktEiqUhyHkOO Received: from uls-op-cesaip02.wdc.com ([10.248.3.37]) by uls-op-cesaep01.wdc.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Mar 2020 21:08:50 -0700 IronPort-SDR: MmxaG5+ESOQGzxBnSTkauiUHOZu33UkIUVfRtbuyoZ6dfTnGd53u06I5+6WRGGwctYZhJlsiNH IB7mMDz8FOUF2C4a1kN79SQPQew6LRt+Ef2KZUktiZoHK7WumIDF9A4rUVtilaXn2iFxk5jkai 8vrSfkVhqaALhwgwV2rkX40taJxelFl5cZBOLtCM6Wn3CENi6ca5qJ0GnZ6OcVDny1rQOUWyYD ULZtQU7BHdoZe5gKpqr8nWFUL9c2Lkj9Covzpb4b9psyJjEifG1/zZuquABWoSctVL6avVvRuK U7U= WDCIronportException: Internal Received: from cm122g2.ad.shared (HELO yoda.hgst.com) ([10.86.54.193]) by uls-op-cesaip02.wdc.com with ESMTP; 23 Mar 2020 21:17:09 -0700 From: Atish Patra To: u-boot@lists.denx.de Cc: Atish Patra , Alexander Graf , Anup Patel , Bin Meng , Heinrich Schuchardt , Lukas Auer , Rick Chen , abner.chang@hpe.com, daniel.schaefer@hpe.com, Thierry Reding Subject: [PATCH v4 6/6] riscv: Move all fdt fixups together Date: Mon, 23 Mar 2020 21:16:50 -0700 Message-Id: <20200324041650.280302-7-atish.patra@wdc.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200324041650.280302-1-atish.patra@wdc.com> References: <20200324041650.280302-1-atish.patra@wdc.com> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean Keep all the fdt fixups together for better code management. Signed-off-by: Atish Patra --- arch/riscv/lib/bootm.c | 33 --------------------------------- arch/riscv/lib/fdt_fixup.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/arch/riscv/lib/bootm.c b/arch/riscv/lib/bootm.c index 8ff8db6bf533..0d06095da11a 100644 --- a/arch/riscv/lib/bootm.c +++ b/arch/riscv/lib/bootm.c @@ -26,39 +26,6 @@ __weak void board_quiesce_devices(void) { } -int arch_fixup_fdt(void *blob) -{ - int err; -#ifdef CONFIG_EFI_LOADER - u32 size; - int chosen_offset; - - size = fdt_totalsize(blob); - err = fdt_open_into(blob, blob, size + 32); - if (err < 0) { - printf("Device Tree can't be expanded to accommodate new node"); - return err; - } - chosen_offset = fdt_path_offset(blob, "/chosen"); - if (chosen_offset < 0) { - err = fdt_add_subnode(blob, 0, "chosen"); - if (err < 0) { - printf("chosen node can not be added\n"); - return err; - } - } - /* Overwrite the boot-hartid as U-Boot is the last stage BL */ - fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart); -#endif - - /* Copy the reserved-memory node to the DT used by OS */ - err = riscv_fdt_copy_resv_mem_node(gd->fdt_blob, blob); - if (err < 0) - return err; - - return 0; -} - /** * announce_and_cleanup() - Print message and prepare for kernel boot * diff --git a/arch/riscv/lib/fdt_fixup.c b/arch/riscv/lib/fdt_fixup.c index e41f06f5b7f1..df340d1e9fda 100644 --- a/arch/riscv/lib/fdt_fixup.c +++ b/arch/riscv/lib/fdt_fixup.c @@ -93,3 +93,36 @@ int riscv_board_reserved_mem_fixup(void *fdt) return 0; } + +int arch_fixup_fdt(void *blob) +{ + int err; +#ifdef CONFIG_EFI_LOADER + u32 size; + int chosen_offset; + + size = fdt_totalsize(blob); + err = fdt_open_into(blob, blob, size + 32); + if (err < 0) { + printf("Device Tree can't be expanded to accommodate new node"); + return err; + } + chosen_offset = fdt_path_offset(blob, "/chosen"); + if (chosen_offset < 0) { + err = fdt_add_subnode(blob, 0, "chosen"); + if (err < 0) { + printf("chosen node can not be added\n"); + return err; + } + } + /* Overwrite the boot-hartid as U-Boot is the last stage BL */ + fdt_setprop_u32(blob, chosen_offset, "boot-hartid", gd->arch.boot_hart); +#endif + + /* Copy the reserved-memory node to the DT used by OS */ + err = riscv_fdt_copy_resv_mem_node(gd->fdt_blob, blob); + if (err < 0) + return err; + + return 0; +}