Received: by 2002:a05:6358:16cc:b0:ea:6187:17c9 with SMTP id r12csp1141353rwl; Thu, 5 Jan 2023 09:11:19 -0800 (PST) X-Google-Smtp-Source: AMrXdXs1OGDWWCoHiQB5137vtzLaZueXL2yV1mZs7q6m9Pv/4kUxO4pH2MWgSm6Ys3phcQmJHoPn X-Received: by 2002:a05:6402:e9b:b0:479:8313:3008 with SMTP id h27-20020a0564020e9b00b0047983133008mr38585032eda.0.1672938679111; Thu, 05 Jan 2023 09:11:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1672938679; cv=pass; d=google.com; s=arc-20160816; b=KIuxhII86SgGWare80MKDgQAQl7jiwaE47hQ8MoUxSAiwumrPapYwURVOyaJb67mmh zfXRmrn6MCAmdgIwX6C+Ub5RC6GU9mlwyPpNOTBYPBeoFljdNiIZm63m8sUn+7C/HN0M sGaLMveUZhFG9zbGji7+ayH5Gc2k3TveEAW8aka7tgVJMa/MXEsrYDlm5IxqSksREcz0 m5S+Qhl1XIDtfXkRqBJhxkgLbft1Ow21ZywMuBmGl7x0Tn3zo/pef/yITt7vpR2CwUPu Gn5olg2d1LNTf6jtV6qaoHpAKg2Ik7Ova4bnMu824W8bw7F845s5M1Aq5pkbt6C75MBP qL4Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=ynPL55bDIBx5Nk4ox3LhpLnU0VIYc1yv64LYC31DONk=; b=sIp10S8kTEiHtrZENN+l3YwmPvb4B4dChNkwIUsTeDzJNe2rop1ycZwty8/Oi/QYDC mVfRiGXFzOB7bEjoaCotEx4SizDxiGO8+D5XTlBIeoh1guf5x9l0n0ZV+CxXUKdM/lhn Spoqm5jmlgNWulplJG22P+loSyPzdOyS/yFuslxXSUe4StMnslbi3ENIEA34I9F0Dzt4 e4ZsXkqNp5IZ6ljT+L+EtlAA9JFPc/gJUfOmrglyqzL86P00dxEMQ9limXt9HbX6Capz TWJD3yD9P5BPzV6KpmnS8O0X7k/HlAw8/3bGkGwhvbSi1dGyaItTiHw4HeNE3AIjHJHN 9/iw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=klka4UeP; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ey2-20020a0564022a0200b004854e1d36dasi26497418edb.317.2023.01.05.09.11.05; Thu, 05 Jan 2023 09:11:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@amd.com header.s=selector1 header.b=klka4UeP; arc=pass (i=1 spf=pass spfdomain=amd.com dmarc=pass fromdomain=amd.com); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amd.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235209AbjAERDt (ORCPT + 56 others); Thu, 5 Jan 2023 12:03:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47706 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234854AbjAERCi (ORCPT ); Thu, 5 Jan 2023 12:02:38 -0500 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2062.outbound.protection.outlook.com [40.107.220.62]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5D6F01E3FE for ; Thu, 5 Jan 2023 09:02:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WVZgp5pmq6Rq+AmUDamdQlgWMTfiQN81IvKluY3LCLzh3J4gPTTWZYuQMxuPRzBXh/1/DHq6VOkAbQ4BRMGeDEcSRwQkZqrG6hmo5eu3r1+ObBxf8FVom6CtaR2nUsqAFlm9/XqMwhdrT3lcwoMpAbfKJX0QTJnF/QX09R9pHTK/SKlHBebyUU3dnce0Yf41h/+FEHcyAw1Suy1KwoEcrw05YNaLViD3pcVIo6vtnYd8NcN+zsltGpUcOKtGIRKbBXbjgdmkjqLwbDoHmpRfmHPozG3gV3Xeg8hs/CbvI75UYchmL1H0/5QDvJil1Yof3whcksn6CAw0fNhSVKdjPQ== 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=ynPL55bDIBx5Nk4ox3LhpLnU0VIYc1yv64LYC31DONk=; b=NrnfpCppbIU0ULvn0xZGpX0KLZORqT8BXkGlDZbSP5fiaVwl6ADcFFCB7QM+lgXJFab1wxs2Un4X7hlAg/+UzBekJ7fpdyju9mmBuCb/aDfEQ+23Tq6DsuFLvgD/JSozRkLgQJYS4OxQoOrAmi8kb6Qr9oWCz7TI5zBYNDjMmMLApEVtwkunSbt/fbp/ER2WFcRIIVP4ixadNsKyRkrdcqzhXNBRyyemQSpVWd+7eG5K4bMpL7d6Vdv5Jj3YBox8qR9Y9nxaiWhSNEa4X0nQ1fqRT5DrK9RCtMvRnl0YRAIaNItKeC5y9JQIUl24HsZQDFaxlad6iks7AzyhUS96zg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=vger.kernel.org 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=ynPL55bDIBx5Nk4ox3LhpLnU0VIYc1yv64LYC31DONk=; b=klka4UeP2fMVa8asa87OyItCTjteeohQIEowCjMcbVAkPqlRo41Ei3gEE8J2QVBY2b3fBl74/IhxYq5q0usptlHj+6lyDQHz2ELgXUob0y5fUIFzGI6yNXHNXddrxGDOUql+tWm1qxVXott8M1XJa9oPO4ot/cFEakKdnzPKwIM= Received: from BN9PR03CA0381.namprd03.prod.outlook.com (2603:10b6:408:f7::26) by DS7PR12MB6309.namprd12.prod.outlook.com (2603:10b6:8:96::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5944.19; Thu, 5 Jan 2023 17:02:31 +0000 Received: from BN8NAM11FT023.eop-nam11.prod.protection.outlook.com (2603:10b6:408:f7:cafe::95) by BN9PR03CA0381.outlook.office365.com (2603:10b6:408:f7::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.15 via Frontend Transport; Thu, 5 Jan 2023 17:02:31 +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=SATLEXMB04.amd.com; pr=C Received: from SATLEXMB04.amd.com (165.204.84.17) by BN8NAM11FT023.mail.protection.outlook.com (10.13.177.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5986.14 via Frontend Transport; Thu, 5 Jan 2023 17:02:31 +0000 Received: from AUS-LX-MLIMONCI.amd.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.2375.34; Thu, 5 Jan 2023 11:02:21 -0600 From: Mario Limonciello To: Alex Deucher , CC: Javier Martinez Canillas , Carlos Soriano Sanchez , , , David Airlie , "Daniel Vetter" , , Lazar Lijo , Mario Limonciello , "Lijo Lazar" , "Pan, Xinhui" , David Airlie Subject: [PATCH v7 19/45] drm/amd: Load GFX11 microcode during early_init Date: Thu, 5 Jan 2023 11:01:05 -0600 Message-ID: <20230105170138.717-20-mario.limonciello@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230105170138.717-1-mario.limonciello@amd.com> References: <20230105170138.717-1-mario.limonciello@amd.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.180.168.240] X-ClientProxiedBy: SATLEXMB03.amd.com (10.181.40.144) To SATLEXMB04.amd.com (10.181.40.145) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN8NAM11FT023:EE_|DS7PR12MB6309:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e13cfe6-3f1a-4744-29fb-08daef3ea218 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5gDcQWDxXkCzfsGeNUgISf1gzxApHMaHXRXbhK/WhGMISCo7rkcUevjRsNM0sRw1qAY1y+xH0XbMDc13aPCwq0ZU00EIDNdyU9qR2mTLO5UD4xzgWFBNSlo8g2wAwiSzjrub34RfWgqho2wr9xRRjLYLYI4Af9eU/+OFO/8DPBcyQ9ENPPNZw60sZor3kpl0yOTPtl0Bg0NHZHGOevdMYEYCshoHYcchnSjbnCUbjJLrcl13oinf15wTXLgels9i+HVfKheNh6CWvzx9WAfuPauIn165NzZG55Oyivp6M/85piXWfzLDI5A7tMeTuPGFueQfmn90oTbVdmsnaqtDBJWLzxrI86hOjHzUAtBgngnKTjXWfzd2iPqAdNTdmHZZ1363BLQrxaflKNkF2Jka+3gdNvsx5pP75obDueI8SAq9i/kjbucLHsg9fIKW7r7Ub0m7FvFwDHvSfjRLJ1XYPGBbvgL/dIrEH/TWPtzZMBDUmRpKqPCIc77baXRK1+h3iRmVMKLuOgixkruGleKMgeFS2dM1XBzbefmp2rmRT4P+gkIIQJWYKXVHCh7WyKW4jmvGuQockXCuUKGvZBADEtuQSJLxrqgkgF3bdEku/nzvSoS/GtJgDtkKrdDF4igA320a2zKAN0TkYHE4t/VT9g8Xz4vRSbR7uzz82f+Iu5Jn6JiPH/TbhT7mtJBnZFRT7qFI9k4UqOaS0SjWPEsG3FtbfezNWnWNvnhlen+QB48= X-Forefront-Antispam-Report: CIP:165.204.84.17;CTRY:US;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:SATLEXMB04.amd.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230022)(4636009)(39860400002)(346002)(396003)(136003)(376002)(451199015)(46966006)(40470700004)(36840700001)(82740400003)(478600001)(40480700001)(40460700003)(36756003)(82310400005)(356005)(86362001)(81166007)(1076003)(336012)(316002)(54906003)(2906002)(2616005)(7696005)(44832011)(110136005)(8936002)(5660300002)(26005)(8676002)(4326008)(6666004)(41300700001)(70206006)(70586007)(36860700001)(47076005)(186003)(16526019)(426003)(83380400001)(36900700001);DIR:OUT;SFP:1101; X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jan 2023 17:02:31.2381 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6e13cfe6-3f1a-4744-29fb-08daef3ea218 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=[SATLEXMB04.amd.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT023.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6309 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If GFX11 microcode is required but not available during early init, the firmware framebuffer will have already been released and the screen will freeze. Move the request for GFX11 microcode into the early_init phase so that if it's not available, driver init will fail. Reviewed-by: Alex Deucher Reviewed-by: Lijo Lazar Signed-off-by: Mario Limonciello --- v5->v6: * Rebase on earlier changes --- drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c index d4f67624d05b..5cc329cf66c4 100644 --- a/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c @@ -439,14 +439,12 @@ static void gfx_v11_0_free_microcode(struct amdgpu_device *adev) kfree(adev->gfx.rlc.register_list_format); } -static int gfx_v11_0_init_toc_microcode(struct amdgpu_device *adev) +static int gfx_v11_0_init_toc_microcode(struct amdgpu_device *adev, const char *ucode_prefix) { const struct psp_firmware_header_v1_0 *toc_hdr; int err = 0; char fw_name[40]; - char ucode_prefix[30]; - amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix, sizeof(ucode_prefix)); snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_toc.bin", ucode_prefix); err = amdgpu_ucode_request(adev, &adev->psp.toc_fw, fw_name); if (err) @@ -534,6 +532,9 @@ static int gfx_v11_0_init_microcode(struct amdgpu_device *adev) amdgpu_gfx_cp_init_microcode(adev, AMDGPU_UCODE_ID_CP_MEC1_JT); } + if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) + err = gfx_v11_0_init_toc_microcode(adev, ucode_prefix); + /* only one MEC for gfx 11.0.0. */ adev->gfx.mec2_fw = NULL; @@ -684,19 +685,11 @@ static void gfx_v11_0_mec_fini(struct amdgpu_device *adev) amdgpu_bo_free_kernel(&adev->gfx.mec.mec_fw_data_obj, NULL, NULL); } -static int gfx_v11_0_me_init(struct amdgpu_device *adev) +static void gfx_v11_0_me_init(struct amdgpu_device *adev) { - int r; - bitmap_zero(adev->gfx.me.queue_bitmap, AMDGPU_MAX_GFX_QUEUES); amdgpu_gfx_graphics_queue_acquire(adev); - - r = gfx_v11_0_init_microcode(adev); - if (r) - DRM_ERROR("Failed to load gfx firmware!\n"); - - return r; } static int gfx_v11_0_mec_init(struct amdgpu_device *adev) @@ -1309,9 +1302,7 @@ static int gfx_v11_0_sw_init(void *handle) } } - r = gfx_v11_0_me_init(adev); - if (r) - return r; + gfx_v11_0_me_init(adev); r = gfx_v11_0_rlc_init(adev); if (r) { @@ -1379,9 +1370,6 @@ static int gfx_v11_0_sw_init(void *handle) /* allocate visible FB for rlc auto-loading fw */ if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) { - r = gfx_v11_0_init_toc_microcode(adev); - if (r) - dev_err(adev->dev, "Failed to load toc firmware!\n"); r = gfx_v11_0_rlc_autoload_buffer_init(adev); if (r) return r; @@ -4650,7 +4638,7 @@ static int gfx_v11_0_early_init(void *handle) gfx_v11_0_init_rlcg_reg_access_ctrl(adev); - return 0; + return gfx_v11_0_init_microcode(adev); } static int gfx_v11_0_ras_late_init(void *handle) -- 2.34.1