From patchwork Wed Jun 14 09:30:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ashok Reddy Soma X-Patchwork-Id: 1794874 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.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: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.a=rsa-sha256 header.s=selector1 header.b=ciui1Hr0; 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 ECDSA (P-384)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Qh0Yy4Wh7z20QH for ; Wed, 14 Jun 2023 19:32:04 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id D27228601B; Wed, 14 Jun 2023 11:31:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=amd.com header.i=@amd.com header.b="ciui1Hr0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 792BD861FE; Wed, 14 Jun 2023 11:31:45 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=0.9 required=5.0 tests=AC_FROM_MANY_DOTS,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7ea9::62d]) (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 D19D2861E8 for ; Wed, 14 Jun 2023 11:31:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=amd.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=ashok.reddy.soma@amd.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G8D0jhasY7+J08ToRk2t9zHouKmIEPkkrioziAgA658N7Da/w64l2Lpsqg2CRHnsl3r4qjFvrxYLQk8fZZuuZK+GgBicXuZJWwe7pAZH/EMPFBM02sOsH6814/UGphu96gwuufQUBERqKj1ed8aN3n6LFRros+bN9cNizTE/F6+zzLIpY0/4aX31ZUEappB6N/Y/BuxkEa8LxycYnizAkqt5iW+kbZznGvP7s/Bxu0opvns8spwX4Q8v4LGxdKE72UFd8NlsUCjy5DtkeLcIp5yCsbsNabNDpdZWpvTR5Sf6Ykd9MoNVVO89cSw38A4R/+DHIbXbICRVfMzlZWknsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vWIQb9DxvDDVmlf29Qt7YI9iQ12GgGKFfCStJ7Rrpe8=; b=Cp+b2nntFcdcBo9RyjIUPaQhxPxu3IEMee7a4kB8npSBo40ArHOoJ/OoKHJunVk5PlFV+vHTKtewyWSynK0u2XJ9tlAk7T9f8xWC+6Uoh5KHWNtCy1jw2/b5y73BF4YTd18muvnHo3dJmvjjp4/PFooDhFsf5MI7e1xVR6t0ExKGTGr65jwEsOf91O9nTj+AC3khd+OEyMzNxxaOayhQA3n2PMeHIJJftnFhwXjwM5g8Tp9KJexReFprEA4A1lfdpdxnPRhHAXM5bi5sCJknqTzROG8bJ3IiCeV8BFoZPU/fkdGe0jV9VwmHJdrMc5uA/ljnUX/YVacNtplVDcPz1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.denx.de smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vWIQb9DxvDDVmlf29Qt7YI9iQ12GgGKFfCStJ7Rrpe8=; b=ciui1Hr0fyBXsP639iU7sR+Nq2Q+m8d1itPOGjE7R2+wR5aQZkNuBkFvKl7pfyY9NjVDiSaWPAivTRdIsKMedcEIyYlTBgLAHQzGR0hYk51hC3sZ5tvKd4qGczzR1EZAFfEgBAJ2J9yYO/Q0MT+MXwavb08AE6whkyz5A5htmng= Received: from CY5PR15CA0254.namprd15.prod.outlook.com (2603:10b6:930:66::28) by CH0PR12MB5121.namprd12.prod.outlook.com (2603:10b6:610:bc::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Wed, 14 Jun 2023 09:31:10 +0000 Received: from CY4PEPF0000E9D1.namprd03.prod.outlook.com (2603:10b6:930:66:cafe::50) by CY5PR15CA0254.outlook.office365.com (2603:10b6:930:66::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.37 via Frontend Transport; Wed, 14 Jun 2023 09:31:10 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 165.204.84.17) smtp.mailfrom=amd.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=amd.com; Received-SPF: Pass (protection.outlook.com: domain of amd.com designates 165.204.84.17 as permitted sender) receiver=protection.outlook.com; client-ip=165.204.84.17; helo=SATLEXMB03.amd.com; pr=C Received: from SATLEXMB03.amd.com (165.204.84.17) by CY4PEPF0000E9D1.mail.protection.outlook.com (10.167.241.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.6500.23 via Frontend Transport; Wed, 14 Jun 2023 09:31:09 +0000 Received: from SATLEXMB04.amd.com (10.181.40.145) by SATLEXMB03.amd.com (10.181.40.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Wed, 14 Jun 2023 04:31:08 -0500 Received: from xhdashokred41.xilinx.com (10.180.168.240) by SATLEXMB04.amd.com (10.181.40.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Wed, 14 Jun 2023 04:31:07 -0500 From: Ashok Reddy Soma To: CC: , , Ashok Reddy Soma Subject: [PATCH] arm64: versal-net: spi: Update boot sequence dynamically Date: Wed, 14 Jun 2023 03:30:58 -0600 Message-ID: <20230614093058.30438-1-ashok.reddy.soma@amd.com> X-Mailer: git-send-email 2.17.1 MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000E9D1:EE_|CH0PR12MB5121:EE_ X-MS-Office365-Filtering-Correlation-Id: da9bea31-592e-40e2-3031-08db6cba1632 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ltXiWK/DM4DC5TFc4TDRVAERW4LGT51br6wQlBs4C4CQEAEz02tOsfLGw9NxV5lDE/8RR3tYrjdGUiWmNiERzhH+mX1LZu5FOuErrXXDppujroxJXzlOQIUVm+H0LAOdl3LLGMzB2etvcZsoCl+rlrFuF+6s+D7W6AiwyUDCMoueqgdcW9wz5wfBF9u8bZDCYfPTgO9Cj7hMmLRd99a7N17LtIo3CTgZzTf/EUoFP9q2icaq4DCBL8EZ0JfNMxRxKsv2ACkjmQgMEC9fszTusCIAzq9rcKA7sHEm4h+Yvs1yFLvTI2Ooxd7uGOwAZzA8/B/cpOCBlGA3CEQcS+Vu+zULEDYmjm2BVVlIxcX4yOrDqH5tfGY/BccunKhGO2uVHfzkGJ7zhXQoo7xkbGc/t0i6lP3s95JjdXNftDxpfAjZiv1fMSjIIiG83xOVfpbiLT2V/whwMNbTnpzNsoq9l+jPSSIFiQF8ZcqYD/0cwKxD68cYZ+1Ldf0I7X180a3li/Vnkib4oDfIdf3Gg/g6qtQast9J+fS9VsIBxKQeGBakrr/jdyKM7+jSMSVO1uPSCs4QpkDEjTUwPCAd+c+Usugu+83V8dusipAOTz73Ku0shNXvZgeopsl1c1nFWyUIOGRjdCiVdO4fyOeyE1br5ky7i4z1wme9cu39uBxanZz5yHTGF3UJvKBu4EU9gTbseA1NkR4j1QqW9PCwv7uckZfrYT6y1+0C93CZz3D1Atjfs8y9P8BmJKt4hYatS5z/ceAVU7znjJyIJca+pVfcQw== X-Forefront-Antispam-Report: CIP:165.204.84.17; CTRY:US; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:SATLEXMB03.amd.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230028)(4636009)(136003)(346002)(396003)(376002)(39860400002)(451199021)(36840700001)(46966006)(40470700004)(86362001)(40460700003)(36860700001)(8676002)(82310400005)(41300700001)(316002)(83380400001)(26005)(82740400003)(5660300002)(40480700001)(81166007)(356005)(1076003)(6666004)(103116003)(8936002)(336012)(36756003)(70586007)(4326008)(70206006)(47076005)(478600001)(186003)(6916009)(426003)(15650500001)(54906003)(2906002)(2616005)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jun 2023 09:31:09.4068 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: da9bea31-592e-40e2-3031-08db6cba1632 X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[165.204.84.17]; Helo=[SATLEXMB03.amd.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000E9D1.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR12MB5121 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 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.103.8 at phobos.denx.de X-Virus-Status: Clean Currently xspi0 is used for all spi boot modes, it means it will use "sf probe 0 0 0" for all spi's irrespective of which node it is wired. Get boot sequence from dev_seq() and update boot command for xspi dynamically. As a result bootcmd for spi is updated as below when two instances of spi are present in DT node. bootcmd_xspi0=devnum_xspi=0; run xspi_boot bootcmd_xspi1=devnum_xspi=1; run xspi_boot xspi_boot=sf probe $devnum_xspi:0 0 0 && sf read $scriptaddr $script_offset_f $script_size_f && echo XSPI: Trying to boot script at ${scriptaddr} && source ${scriptaddr}; echo XSPI: SCRIPT FAILED: continuing...; Signed-off-by: Ashok Reddy Soma --- board/xilinx/versal-net/board.c | 24 +++++++++++++++++++++--- include/configs/xilinx_versal_net.h | 19 ++++++++++++------- 2 files changed, 33 insertions(+), 10 deletions(-) diff --git a/board/xilinx/versal-net/board.c b/board/xilinx/versal-net/board.c index 6595d6f3e8..00b01d9641 100644 --- a/board/xilinx/versal-net/board.c +++ b/board/xilinx/versal-net/board.c @@ -214,15 +214,33 @@ int board_late_init(void) break; case QSPI_MODE_24BIT: puts("QSPI_MODE_24\n"); - mode = "xspi0"; + if (uclass_get_device_by_name(UCLASS_SPI, + "spi@f1030000", &dev)) { + puts("Boot from QSPI but without QSPI enabled!\n"); + return -1; + } + mode = "xspi"; + bootseq = dev_seq(dev); break; case QSPI_MODE_32BIT: puts("QSPI_MODE_32\n"); - mode = "xspi0"; + if (uclass_get_device_by_name(UCLASS_SPI, + "spi@f1030000", &dev)) { + puts("Boot from QSPI but without QSPI enabled!\n"); + return -1; + } + mode = "xspi"; + bootseq = dev_seq(dev); break; case OSPI_MODE: puts("OSPI_MODE\n"); - mode = "xspi0"; + if (uclass_get_device_by_name(UCLASS_SPI, + "spi@f1010000", &dev)) { + puts("Boot from OSPI but without OSPI enabled!\n"); + return -1; + } + mode = "xspi"; + bootseq = dev_seq(dev); break; case EMMC_MODE: puts("EMMC_MODE\n"); diff --git a/include/configs/xilinx_versal_net.h b/include/configs/xilinx_versal_net.h index 424ead038e..613cce46f9 100644 --- a/include/configs/xilinx_versal_net.h +++ b/include/configs/xilinx_versal_net.h @@ -76,20 +76,24 @@ # define BOOT_TARGET_DEVICES_DHCP(func) #endif -#if defined(CONFIG_ZYNQMP_GQSPI) || defined(CONFIG_CADENCE_OSPI_VERSAL_NET) -# define BOOT_TARGET_DEVICES_XSPI(func) func(XSPI, xspi, 0) +#if defined(CONFIG_ZYNQMP_GQSPI) || defined(CONFIG_CADENCE_OSPI_VERSAL) +# define BOOT_TARGET_DEVICES_XSPI(func) func(XSPI, xspi, 0) func(XSPI, xspi, 1) +# define BOOTENV_DEV_SHARED_XSPI \ + "xspi_boot=sf probe $devnum_xspi:0 0 0 && " \ + "sf read $scriptaddr $script_offset_f $script_size_f && " \ + "echo XSPI: Trying to boot script at ${scriptaddr} && " \ + "source ${scriptaddr}; echo XSPI: SCRIPT FAILED: continuing...;\0" #else # define BOOT_TARGET_DEVICES_XSPI(func) +# define BOOTENV_DEV_SHARED_XSPI #endif #define BOOTENV_DEV_XSPI(devtypeu, devtypel, instance) \ - "bootcmd_xspi0=sf probe 0 0 0 && " \ - "sf read $scriptaddr $script_offset_f $script_size_f && " \ - "echo XSPI: Trying to boot script at ${scriptaddr} && " \ - "source ${scriptaddr}; echo XSPI: SCRIPT FAILED: continuing...;\0" + "bootcmd_" #devtypel #instance "=" \ + "devnum_xspi=" #instance "; run " #devtypel "_boot\0" \ #define BOOTENV_DEV_NAME_XSPI(devtypeu, devtypel, instance) \ - "xspi0 " + "" #define BOOT_TARGET_DEVICES_JTAG(func) func(JTAG, jtag, na) @@ -127,6 +131,7 @@ #define CFG_EXTRA_ENV_SETTINGS \ ENV_MEM_LAYOUT_SETTINGS \ BOOTENV \ + BOOTENV_DEV_SHARED_XSPI \ DFU_ALT_INFO #endif