From patchwork Wed Jun 8 16:20:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Herbrechtsmeier X-Patchwork-Id: 1640787 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.a=rsa-sha256 header.s=selector1-weidmueller-onmicrosoft-com header.b=Mrx8dJt/; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LJCDQ20BKz9sFk for ; Thu, 9 Jun 2022 02:22:14 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8C5308436C; Wed, 8 Jun 2022 18:21:45 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=fail (p=none dis=none) header.from=weidmueller.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=weidmueller.onmicrosoft.com header.i=@weidmueller.onmicrosoft.com header.b="Mrx8dJt/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B30818434B; Wed, 8 Jun 2022 18:21:26 +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=BAYES_00,DKIM_SIGNED, DKIM_VALID,FORGED_SPF_HELO,SPF_HELO_PASS,T_SCC_BODY_TEXT_LINE, T_SPF_PERMERROR autolearn=no autolearn_force=no version=3.4.2 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-ve1eur02on060c.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe06::60c]) (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 5FD1F84357 for ; Wed, 8 Jun 2022 18:21:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=weidmueller.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=stefan.herbrechtsmeier-oss@weidmueller.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T0hxJKEbSX+NM7bTWUPjr5/SeSqrPO8RoDE1s9KCor/pB0CfIBUphq1tnCGZD8dKEfg+nbjzuz7i7LYO55zbqVnRoGF8HJIwvK4dV9AJVMeScULVOJrdtUT6B+NcCdNl8PVSPlleMWQMRa/oLE6MmL/3DuXiK9KaYCF7CI0MZQk/ijafQTVYztvTw1GEp1ZocGp9lPPcIFWqf6iRuC2eX4K1rd+nB5myFBJwKxD2FEZXH7Rub0FwA+OYPSLYYeQuiI7C2vVJC9mR28h/L/sp1H6Gm4E/JsVUY5O6OBElt/+NzkENPRgl0w2GJy00HV0Tg8JEB8YBNJ60DE2WJVivfg== 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=fVgL8P3paSmimHp1msnPP63lquJhvFTTYoA880mT16g=; b=gQf2xn9FSoMAUpFAILAaZVh8PDJhPDEwBwcIwGudtSDX6dQVbIdEmC8EDPfq0OtjoS04hBD4FKCY5Ks5gt1QRQC2/qoJ5tYYqt3z7neAlpZOx1V5jQhwQfFg9FYWpR/QADA+Jd9jUtSClj10zdI/VoKZ1rPHonzEVRn/8fA0tj42IIOOMiM57GSYF0QNeP7AVM/t3XiWvycOy5TUwcnACdiZvJTzknFAQ3FoxrW+fWscYy623r9d9nVnhZ04kec4xZw3aZ/8Q31ZrWvA6N5COUWHWaqyopbdBDZCJwwQxP4ufUdHg6n+u/iXtpEiemlnsDR18oA+KIeuSEMSIPXDew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=weidmueller.com; dmarc=pass action=none header.from=weidmueller.com; dkim=pass header.d=weidmueller.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=weidmueller.onmicrosoft.com; s=selector1-weidmueller-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fVgL8P3paSmimHp1msnPP63lquJhvFTTYoA880mT16g=; b=Mrx8dJt/Y16sh4OS/VgvHp8TVJCbWp3S8xFW1A7AL5AnUBrQ2MQLASufKJol2xnioaTnzk7WgxWi85CTSZK4UAQXmwzj+KpdnCccvwjKMOvPXkAI+aPWkgBMi12zDDhfKGc5WdQDfSjSFv+xvyj2nWUHA2kgU67ADrubDyOmNhU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=weidmueller.com; Received: from PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) by VI1PR0802MB2189.eurprd08.prod.outlook.com (2603:10a6:800:9b::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.17; Wed, 8 Jun 2022 16:21:18 +0000 Received: from PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f938:78d7:da4b:8d23]) by PAXPR08MB6969.eurprd08.prod.outlook.com ([fe80::f938:78d7:da4b:8d23%9]) with mapi id 15.20.5314.019; Wed, 8 Jun 2022 16:21:18 +0000 From: Stefan Herbrechtsmeier To: u-boot@lists.denx.de, Michal Simek Cc: Stefan Herbrechtsmeier Subject: [PATCH 04/10] xilinx: zynqmp: Use soc machine function to get silicon idcode name Date: Wed, 8 Jun 2022 18:20:47 +0200 Message-Id: <20220608162054.25641-5-stefan.herbrechtsmeier-oss@weidmueller.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220608162054.25641-1-stefan.herbrechtsmeier-oss@weidmueller.com> References: <20220608162054.25641-1-stefan.herbrechtsmeier-oss@weidmueller.com> X-ClientProxiedBy: AS8P250CA0006.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:330::11) To PAXPR08MB6969.eurprd08.prod.outlook.com (2603:10a6:102:1d8::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9f8b91ee-17ba-42c3-8e00-08da496aeaa5 X-MS-TrafficTypeDiagnostic: VI1PR0802MB2189:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VGLJuwl3qlrT8zblteecHhp7JvvAakzfJ4sPQ/gu0APB/mDWduS+9MeJPs51XoxI3kGGguLXyzxH83e9E/OyuBy32UnO//Kl28JCkHbbAJPMp31n6NJn4Gg35ZGl5/HfCyE5S7stOMTr2U5RAI/sbyQAh4EYZ8CoZ++QJ0fnDHciclhXEChLoorL7M2H9L8ehZ3JFyU3CUCuxeY5BtSdVewlZuYLYpN7L6xmIf59S04bi64AQVLtHPqr4yNznYM2p8mp7lNKQMe+NbPn6T2QqyTiU6AnPb3FHpKLrRQOongK9JzmqYG3AUbtEzQiFDRqlm++n2oYVV0xkgmcdT6f7KSNQ2AL42rtP9KZu59tbWHfeu4ahSFY3fxnYz7LZMk4+7W+NbwNQ4GPmJu1tSYVtLdQSb5Jg4e3obivC4NTVJ99xutEnYfScSIXF4s5pNbH2PRDt7T5pupEx+W+xzOWXEPykcFtRGbtcG+q0CB7rjnQgqA7k/AY+7zUWoBO8PEfwG7iOshpuqiTzOtc0Tbaob4VxTfs0Rx9JS7gVQ/G6cYLLT6nT4tyd078xPB0AlXQDvT5GmI7sq8f/iWlu2WHrNihm+casuE9JnTaaRwBLtUAwRcubvVnsuW1BDFKIYigbMmrhBGVCFjcY4irK2ZCv6pyaXWFnZpwKs25bdg5WIvgjFviHHd6xtJcC2SBwvQUXgmFR+G8ej7iux58yzHBNA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6969.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(2906002)(66946007)(66556008)(66476007)(2616005)(1076003)(107886003)(83380400001)(8676002)(5660300002)(186003)(8936002)(4326008)(6666004)(26005)(6512007)(6506007)(52116002)(36756003)(316002)(6486002)(86362001)(508600001)(38100700002)(6916009)(38350700002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: erZhUt3xz9T7NzNyliYYMEtz3jypJ3DlbrxpPwOId5/ePctBDcN98vwYCrXDKOqCEbHYxWj/9J7Z7YoxjFakUsE/7JyOLI/HbKL6bOpNQ7E8Mba4V4pBrJEROLjK00paB38Ob/B1CYjEUE7C3RUzp+9rosKyIg8ZYRF0lMfKwoEQ9RfW/OkTVnDvf0Ot45c3DgZRkB863bdogULR8kYbe/FHozeJQyejp8+qlIobs+JPBJNbhVlp+U0EsO0Wuvdc5SmpsKU15QLCgXc1IFt9nrxcg8iio+CQVmCSu0fghjBMWZbPC90ErvjDbyB+u0GLVzwVXMBRH4IAa/Bqcjh76pyADffNLfRAvoLTzumLvCHFSulFSUL/mzgmd9dkJcy0jqGsPC/3i5SHSktHMmMWeHa+f1cgDovFRIvPlWMzciCwbtmPZxOghC6KI8aVVAmu5BDepMW80bn2O//ZCus2ayVv1ZOeDESVEzr7ISwVCvUY7s9vxAPT68GkMDHpPnQu8q8Fj6Cld6WLDekanc9cDWcy+Um2eCgFdghL2jQuU8Ree3kXM0VtnRw03OHcJHMBYfCqKm7pacgXylLVZky2q+o92wK1KLt6dQ/9IcD34/2IakekZJX7pCwhol3iAoMvXrn+AJMA2jbUO6OuVHxSXzYsITsldcL5NNXv32EGpnEFNDNoa3Q85InnrzTH/iCS7QvMXOIyjTFm5ijXDOdVPwla3mg6IyHXBF+aKk/RRx/IEAmTzBe52cGWgqWbIEDn0/sh/oJyLBmAT5bssJMDQhorTL27qOcaEgUNe23k/uQ32c0eb/WJzN237sA/8xOjkeDnoiDWY+G8bC4QbL+NMp9xRltUBaN4gtY8u+szqrFgNobyS0Xuqu8t7PwNCV0cxKH4vtfHDfyZ96bnTcQXlxc0hKfyitxAFk4ux2+PZcwRLo/d72Gwh98TEecYlQS+lbgEsTFiYcuank/2iKrYEgtbigInIySAfwrvSHl+86nZtkPVvsr6wEGxKPOw1T1pQ7vOnhuHoidpX08QpPAVQa5HBriKh9+OSjP2jVCfPnmm4Ljq3k+zTk0bcbEJ1diYgkedXT0mAA+R3q8s88xMCl00plLN18dxH9TW8Wfb5BXpmL6BmbedU8xs0NnSIG3W/Hnfpm4AyJJRAfIaN8M79rLa6zIpC2XBP5jfpL0y0MLKnBy/XlWy5fwinD7sSHMTx36W240H6ypZTAd4shsEDIKRDEHNWEQ163anbqS7FgZ0NSY/CNVJAYpV9VjuFO6TD1H+693VAnMBbkd93AGtbiFjeieV8Onw1HFgSpEhF0VXG46XvpOjg+rnJzDEXVA+ND5ajV2Y6D28Ksxoxsg9lNvIV+8hqnZwH0hB3oGP5GA4k+gPxJRdq13tC/LndeWwr4ZQ3Drg+UvCB9kfvfqj3xATlOjQRcZF1FxUD2gnak6loefPIA9gjpo7RTLNUf4ccv3QvF2iKYtkTmS45UhSdpOLDUKhJLRcgoggwPAyPybjWHC0i55Hn8QB/4VAPexbprBCzjP395UblqP2is1iPXjYZrkVJHs6K5uGFr7VV3StKpJIMkQ5PJic5aPouNwHR+UEDY+hgKmPITCXAYowqTxGXJGc/ZbZ99yTQDgfRRg8fLrXoRIyzXmYexQQCFAeeZbk/AKG7sMwHR8K9r4R/+c8By/n5PV8m/l18kLFgvyJB6OTmwBPxC0kRsxIkyhKIFwVCY4IzwxOjPDsfa24sZgAXXm/kM/751qCDnJL/uc= X-OriginatorOrg: weidmueller.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f8b91ee-17ba-42c3-8e00-08da496aeaa5 X-MS-Exchange-CrossTenant-AuthSource: PAXPR08MB6969.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2022 16:21:17.9988 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: e4289438-1c5f-4c95-a51a-ee553b8b18ec X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3LXZ0c1Xvru9V2IqbkiY5InRa1efAb57/uD8her8r0GBtm+P46qd+Ue3qhkQ6yxq5xg2d4SQidyRS9FSowOgaw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2189 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.5 at phobos.denx.de X-Virus-Status: Clean From: Stefan Herbrechtsmeier Use the soc_get_machine function of the soc uclass to get silicon idcode name for the fpga init. Signed-off-by: Stefan Herbrechtsmeier --- board/xilinx/zynqmp/zynqmp.c | 287 ++--------------------------------- 1 file changed, 15 insertions(+), 272 deletions(-) diff --git a/board/xilinx/zynqmp/zynqmp.c b/board/xilinx/zynqmp/zynqmp.c index e311aa772c..06f6dbab18 100644 --- a/board/xilinx/zynqmp/zynqmp.c +++ b/board/xilinx/zynqmp/zynqmp.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -44,278 +45,10 @@ #include "pm_cfg_obj.h" -#define ZYNQMP_VERSION_SIZE 7 -#define EFUSE_VCU_DIS_MASK 0x100 -#define EFUSE_VCU_DIS_SHIFT 8 -#define EFUSE_GPU_DIS_MASK 0x20 -#define EFUSE_GPU_DIS_SHIFT 5 -#define IDCODE2_PL_INIT_MASK 0x200 -#define IDCODE2_PL_INIT_SHIFT 9 - DECLARE_GLOBAL_DATA_PTR; #if CONFIG_IS_ENABLED(FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) static xilinx_desc zynqmppl = XILINX_ZYNQMP_DESC; - -enum { - ZYNQMP_VARIANT_EG = BIT(0U), - ZYNQMP_VARIANT_EV = BIT(1U), - ZYNQMP_VARIANT_CG = BIT(2U), - ZYNQMP_VARIANT_DR = BIT(3U), -}; - -static const struct { - u32 id; - u8 device; - u8 variants; -} zynqmp_devices[] = { - { - .id = 0x04688093, - .device = 1, - .variants = ZYNQMP_VARIANT_EG, - }, - { - .id = 0x04711093, - .device = 2, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG, - }, - { - .id = 0x04710093, - .device = 3, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG, - }, - { - .id = 0x04721093, - .device = 4, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG | - ZYNQMP_VARIANT_EV, - }, - { - .id = 0x04720093, - .device = 5, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG | - ZYNQMP_VARIANT_EV, - }, - { - .id = 0x04739093, - .device = 6, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG, - }, - { - .id = 0x04730093, - .device = 7, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG | - ZYNQMP_VARIANT_EV, - }, - { - .id = 0x04738093, - .device = 9, - .variants = ZYNQMP_VARIANT_EG | ZYNQMP_VARIANT_CG, - }, - { - .id = 0x04740093, - .device = 11, - .variants = ZYNQMP_VARIANT_EG, - }, - { - .id = 0x04750093, - .device = 15, - .variants = ZYNQMP_VARIANT_EG, - }, - { - .id = 0x04759093, - .device = 17, - .variants = ZYNQMP_VARIANT_EG, - }, - { - .id = 0x04758093, - .device = 19, - .variants = ZYNQMP_VARIANT_EG, - }, - { - .id = 0x047E1093, - .device = 21, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E3093, - .device = 23, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E5093, - .device = 25, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E4093, - .device = 27, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E0093, - .device = 28, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E2093, - .device = 29, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047E6093, - .device = 39, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047FD093, - .device = 43, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047F8093, - .device = 46, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047FF093, - .device = 47, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047FB093, - .device = 48, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x047FE093, - .device = 49, - .variants = ZYNQMP_VARIANT_DR, - }, - { - .id = 0x046d0093, - .device = 67, - .variants = ZYNQMP_VARIANT_DR, - }, -}; - -static const struct { - u32 id; - char *name; -} zynqmp_svd_devices[] = { - { - .id = 0x04714093, - .name = "xck24" - }, - { - .id = 0x04724093, - .name = "xck26", - }, -}; - -static char *zynqmp_detect_svd_name(u32 idcode) -{ - u32 i; - - for (i = 0; i < ARRAY_SIZE(zynqmp_svd_devices); i++) { - if (zynqmp_svd_devices[i].id == (idcode & 0x0FFFFFFF)) - return zynqmp_svd_devices[i].name; - } - - return "unknown"; -} - -static char *zynqmp_get_silicon_idcode_name(void) -{ - u32 i; - u32 idcode, idcode2; - char name[ZYNQMP_VERSION_SIZE]; - u32 ret_payload[PAYLOAD_ARG_CNT]; - int ret; - - ret = xilinx_pm_request(PM_GET_CHIPID, 0, 0, 0, 0, ret_payload); - if (ret) { - debug("%s: Getting chipid failed\n", __func__); - return "unknown"; - } - - /* - * Firmware returns: - * payload[0][31:0] = status of the operation - * payload[1]] = IDCODE - * payload[2][19:0] = Version - * payload[2][28:20] = EXTENDED_IDCODE - * payload[2][29] = PL_INIT - */ - - idcode = ret_payload[1]; - idcode2 = ret_payload[2] >> ZYNQMP_CSU_VERSION_EMPTY_SHIFT; - debug("%s, IDCODE: 0x%0x, IDCODE2: 0x%0x\r\n", __func__, idcode, - idcode2); - - for (i = 0; i < ARRAY_SIZE(zynqmp_devices); i++) { - if (zynqmp_devices[i].id == (idcode & 0x0FFFFFFF)) - break; - } - - if (i >= ARRAY_SIZE(zynqmp_devices)) - return zynqmp_detect_svd_name(idcode); - - /* Add device prefix to the name */ - ret = snprintf(name, ZYNQMP_VERSION_SIZE, "zu%d", - zynqmp_devices[i].device); - if (ret < 0) - return "unknown"; - - if (zynqmp_devices[i].variants & ZYNQMP_VARIANT_EV) { - /* Devices with EV variant might be EG/CG/EV family */ - if (idcode2 & IDCODE2_PL_INIT_MASK) { - u32 family = ((idcode2 & EFUSE_VCU_DIS_MASK) >> - EFUSE_VCU_DIS_SHIFT) << 1 | - ((idcode2 & EFUSE_GPU_DIS_MASK) >> - EFUSE_GPU_DIS_SHIFT); - - /* - * Get family name based on extended idcode values as - * determined on UG1087, EXTENDED_IDCODE register - * description - */ - switch (family) { - case 0x00: - strncat(name, "ev", 2); - break; - case 0x10: - strncat(name, "eg", 2); - break; - case 0x11: - strncat(name, "cg", 2); - break; - default: - /* Do not append family name*/ - break; - } - } else { - /* - * When PL powered down the VCU Disable efuse cannot be - * read. So, ignore the bit and just findout if it is CG - * or EG/EV variant. - */ - strncat(name, (idcode2 & EFUSE_GPU_DIS_MASK) ? "cg" : - "e", 2); - } - } else if (zynqmp_devices[i].variants & ZYNQMP_VARIANT_CG) { - /* Devices with CG variant might be EG or CG family */ - strncat(name, (idcode2 & EFUSE_GPU_DIS_MASK) ? "cg" : "eg", 2); - } else if (zynqmp_devices[i].variants & ZYNQMP_VARIANT_EG) { - strncat(name, "eg", 2); - } else if (zynqmp_devices[i].variants & ZYNQMP_VARIANT_DR) { - strncat(name, "dr", 2); - } else { - debug("Variant not identified\n"); - } - - return strdup(name); -} #endif int __maybe_unused psu_uboot_init(void) @@ -406,6 +139,11 @@ static void print_secure_boot(void) int board_init(void) { +#if CONFIG_IS_ENABLED(FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) + struct udevice *soc; + char name[SOC_MAX_STR_SIZE]; + int ret; +#endif #if defined(CONFIG_ZYNQMP_FIRMWARE) struct udevice *dev; @@ -432,10 +170,15 @@ int board_init(void) printf("EL Level:\tEL%d\n", current_el()); #if CONFIG_IS_ENABLED(FPGA) && defined(CONFIG_FPGA_ZYNQMPPL) - zynqmppl.name = zynqmp_get_silicon_idcode_name(); - printf("Chip ID:\t%s\n", zynqmppl.name); - fpga_init(); - fpga_add(fpga_xilinx, &zynqmppl); + ret = soc_get(&soc); + if (!ret) { + ret = soc_get_machine(soc, name, sizeof(name)); + if (ret >= 0) { + zynqmppl.name = strdup(name); + fpga_init(); + fpga_add(fpga_xilinx, &zynqmppl); + } + } #endif /* display secure boot information */