From patchwork Mon Jun 27 03:24:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648531 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=dwh5g9B4; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX790lcpz9sGp for ; Mon, 27 Jun 2022 12:41:57 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 94280839BD; Mon, 27 Jun 2022 04:41:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="dwh5g9B4"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0F2B0837BB; Mon, 27 Jun 2022 04:41:46 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80054.outbound.protection.outlook.com [40.107.8.54]) (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 6E32C839CC for ; Mon, 27 Jun 2022 04:41:43 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MzWiM/bqMcSwFiWZGPESoYI6PL3XbChmD7/wvvaYSWO82sokQFKwDqnx0gnZbfUTSkfjr32W9Ikrhez/0zcXmbb9MAWyS6B+tBYlOFREYAovPfdl0kQujiKps+PPLFl62Q8AGOEZMFMVj3DHCCBoJLyb1n7aG5SulaAmks/Q5GYAzzP5PSdpNnTVCEDM/8lRtEGuoXnm7lTs9UHv+uf8GiU6eDSuklOL/dyUlZXUodkXoSdswH7mOkVFZUzVyq6dJufsQyBr3ilBBN6vV75r7cGi1mZ41FUoEe6pj7LzRuwhrabHZLwVI4dsnhyv/txF+GRyfl4iL4RAzjn/pq4PpA== 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=hP4S/mZzID+Mgie10y0PyrcBubgJTlI60iGW73TdqBA=; b=hKBZ9eaMW9AJfNmlz8+pvahmikbr8CvbkfOc+p0dHabL+a9/vo/ISVnDbWAUr8kZHtyUZ272rWDfO/LFIJm+KcoRFaerXd1FLTYq/EhAOe60WuRPz4ch2jtGN47WPqtxwysuaaq0cNz5JXNCXkIkHtMgw9Hf8yrJD7IVrqaaXvsI0LuTeTF6WYmjak9UifA7H36SiJJFAj3ctcmLiRZ5ciDxd8aB7PnWWctklyZ1WHmHJiUPrzZu39YC7xwPfvQBSviMOmy4iSkU4zin7xQxnu4lYmzaf1ev7vT3xGea++XFuJZ40naIbjoeNz4oFjgQT5+NCZB+C/w0StX7DjA+LA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hP4S/mZzID+Mgie10y0PyrcBubgJTlI60iGW73TdqBA=; b=dwh5g9B4FGAy/+36TnToUTvhnCxV7wG9oyPftQkoamQh5iwbC35ZXbFioJQDW9UsjpA7bK8Zxd/14+4rsXeR7Du9layhU0K7WrQvqN+dU95LtGmGFq/rtsAJoQI4YaqqQplgZUnZLHrFl+vJUyuzhPy5fLNZLs1g7Ey/t7n/kLw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM0PR0402MB3892.eurprd04.prod.outlook.com (2603:10a6:208:11::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:41 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:40 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "Ying-Chun Liu (PaulLiu)" , Jagan Teki , Matteo Lisi , Marek Vasut , Olaf Mandel , Adam Ford , Peng Fan , Tim Harvey , Teresa Remmet , Marcel Ziswiler Cc: u-boot@lists.denx.de Subject: [PATCH V2 01/49] spl: imx8mm: enlarge SPL_MAX_SIZE Date: Mon, 27 Jun 2022 11:24:07 +0800 Message-Id: <20220627032455.28280-2-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bf4d1f57-f8c1-498e-e5e6-08da57e69092 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3892:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-LD-Processed: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: m4J3S+pvBUf8k/hbUPd6uArms3OoMXJ85nP7x8ZwZr6exTqCpW4Gciqjry/wevgML0WK39MuLBIYoN5rAM2SfpNcJVmiyxVMUmW1b7X8coVGGJa4BP/UNEyDarfYynYOzG/bVNfOTiimoRdlzvYpWCLgCx4UcHSyhILE5+79FNRWplT48s5EeGZC6gdDmNuiY8313bY4t/6kUnI1hV8OK2WigKsdh3TjQcdT9OVvSwIzxwjzFYyBY8wgO/jq2O20Yzs0T2hBOpW/IZLu3hX3TSODAe4C3NreteUB4gZkOmSOb3nnqQV0bh47d7PyPhRX/1Et2naea0RCt95bAFhs112HAVJmXMyAVNQv0lVfcnIojqcPgoAawjJHniUzu/yQ81bCwwgiV4NfiCeVtHYpQJ5GqMN/G/Tzroa4f1gORU4H4Yxi0wtsHh6wlirtubCIZO5hsE1sdulrGD7XaSQEXG6kFg1RbJqVqhrwmycIXUuiQe0XanlIkNGJWjgGV6dxEWV0s7XFCk8AOcGa53anpWZnSmyWpfTGXfI3mj8W5LbumNLxEMmOV0slnU+p8vAxVxQv5aR/vkCcxmvghtQnAXNkahEOURqEAfdyiU+2yq8dGEuJ/0VVHZJsQ5+WwjYTdw+SmWgQMeW66QdygFp/CIHpTlCbKEbwGNwYXGJu4BuJwBvts8K4aS7LKKaZ/G24EM0av55LmG0raYJozz/WniRuKLqiyJ9ADpoSR0XVIdLeglBl+R0Or17iB4P0ot8mObM8Z8P98hiykq3SSi5Qpcx0w04rsYto8sGS22ZvF33Wt5HpbRgwWpu1w73B4QxwuWMNaO+amKJGlCZjtWKqDGPruSI5LiFZitezFYIUAWNyLhNozAhWxD6WXq7R/q92vTc5F6zFAUfmQ8SKrd+oQw== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(136003)(396003)(346002)(366004)(376002)(4326008)(66476007)(66946007)(38350700002)(66556008)(5660300002)(478600001)(6486002)(8676002)(7416002)(26005)(6512007)(8936002)(86362001)(2906002)(1076003)(38100700002)(316002)(41300700001)(2616005)(110136005)(6666004)(921005)(83380400001)(6506007)(186003)(52116002)(161623001)(32563001)(147533002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2BocyyCvkKVuQm3gCvSiNiqh6Iq61+GVPRrK6WmY7plG3mdAz2ubpzU+gLLy85QC1SCPaCE8SqlXsl9jOBI3AM1kZmTXDSpzwLby5iSvotOq4FVWFGcXzjasdedCMpiQwbAcsFL2iuUiKYMJnyG3DwimcDawMoefOz+U/udHckkbNyiR2NlLJxK+xhmgspSotUTqGuEdFfyWN3U0hihNynaUQcoQxEzLTxvS7AdIUXtdqPHsQ/bGobli8r6/LCDccrjf+xzJvRqRowcqyiovCX7KfHfwjXNzCzr6AVPB5MjgxX/UVNaEdzyI6Vv5gJnjLiKoinDIb7UEaPV4k2goIuKgM8pcmEZhFJnmaKvv9VRBkTqFKRDMj8aBiRH9rKu7tDoe6UTvtlrdbZ/s78ZOnWzjiJNT/iYJaA7bRXYhGWkGBosjDPe/owOwWKHXVs9zJdS3JIgSTXjM619/oY7GfTo/AJPErmm23rSgeeRZ6ppX66Px58RdT9Jk1hCwlfP9QKoGjzRyI9ijHA+Toe1udThOsAb0mLZbouvTDC0UItGDbcu3ET3v9O8ofZIHwGsraGQjAf3xR9cqoZEfsRKou1dvdBAGvGugc5Iqyyy74hFG7ZtUnrIpNqs2JGKzJkJbTvZsWefZ8d6P2PR6b2mtiIu7unQK4woLNjKJJvv9pLiGOsZZQEUuMh7M4S2CT10gcPdg1bd/VUwVt8AwLXI2oQHfXss59YyLV+5f640D3fXRrfP4aTOvRIogUQCoP6gUzxvmVCbp44XYg9OM45QuIKdEd7eIDIQZz9zTOo/YbexwDzduwgMcOtckD1K9fltjjjUWwdikpnBG/zDf76yMurMCPSZFjoi5QZKUZsS6Tl1a/cbLWiesKcNXbYJit33pXmCFcs7tzUD7m0yzkemUqFC9wdv5A0DNEg29Hr3d4ceX8vfI/GTOpboExXusYnPb3Qm4df4/I6gfeqi31q1ScZwQpmIz+7U2yIye6j1xyD5cFxBoxmWdlclRK3MMNeg/sXRRKN0pHv8rJ3GQHpV1Rd1xaQjOlHEh8kK4L2Y6+DIouprhkXFaTLtORl0F7+z7HM0p5gOQ7Tns1wwaspoxZ5o7Z7RBnruyXGhsj3H0WXIrG6ErPO3n94ozxNRXvEZCtVmJ+mT4OiQeGGbQpUz2q0rmMRkVfh5AVI1YX4gDjJjgV+Mi95WHa9CT9hEj99RHvRZ4gsfmb6QiyRg+jrxHEjqaZ3Aq3PZvBaSPjFBLBOPUpgkTxAoORTUscnqgcVLzWDltkHh4DVaFmCsujPTQkjeNJQjx2qoRpOCnuCXo87KIzv0OA9fRRiNkGavgrfBdvEtoUIA3hJYGbLrr4IZb4qcG91wwFhtiSmeU6VGxwna2t8sLNSqvwrD/DJAb5ZdhMzX0KsZrR90rQ2FLa7bgdDSq/VV7+YHXqlcBWYEbacpKkGoi4mjxGwW556ALTwDkQs/7kV3ubIw6JnfyEk9lPnujgFg1L+0V+kS4umLYAWOFGhYXkBw2s3CbVvsBiGClaqaKJUODdHXK3GsJl7WiXK+M020VcWsSV4TNtrvHcu/iH1FFiIQ4NZ3HlDAqlvME X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf4d1f57-f8c1-498e-e5e6-08da57e69092 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:40.8486 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CT2lKpCdSie7TtOZaUZ6bYaA+4UssEOnjmNdEBp+XXwsSTdkpTB9Vvkl1O5mo2S4BSl/QJKliRzkzNfmyJtvXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3892 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan The CONFIG_SPL_MAX_SIZE could be 0x27000 for i.MX8MM when SPL_TEXT_BASE set to 0x7E1000. Signed-off-by: Peng Fan --- common/spl/Kconfig | 1 + configs/imx8mm-cl-iot-gate-optee_defconfig | 1 - configs/imx8mm-cl-iot-gate_defconfig | 1 - configs/imx8mm-icore-mx8mm-ctouch2_defconfig | 1 - configs/imx8mm-icore-mx8mm-edimm2.2_defconfig | 1 - configs/imx8mm-mx8menlo_defconfig | 1 - configs/imx8mm_beacon_defconfig | 1 - configs/imx8mm_data_modul_edm_sbc_defconfig | 1 - configs/imx8mm_evk_defconfig | 1 - configs/imx8mm_venice_defconfig | 1 - configs/phycore-imx8mm_defconfig | 1 - configs/verdin-imx8mm_defconfig | 1 - 12 files changed, 1 insertion(+), 11 deletions(-) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 2ad2351c6eb..848237c1e85 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -82,6 +82,7 @@ config SPL_MAX_SIZE default 0x7fa0 if SUNXI_SRAM_ADDRESS = 0x20000 && !MACH_SUN50I_H616 default 0x7000 if RCAR_GEN3 default 0x5fa0 if SUNXI_SRAM_ADDRESS = 0x0 + default 0x27000 if IMX8MM && SPL_TEXT_BASE = 0x7E1000 default 0x0 help Maximum size of the SPL image (text, data, rodata, and linker lists diff --git a/configs/imx8mm-cl-iot-gate-optee_defconfig b/configs/imx8mm-cl-iot-gate-optee_defconfig index 80055912096..a02010621ea 100644 --- a/configs/imx8mm-cl-iot-gate-optee_defconfig +++ b/configs/imx8mm-cl-iot-gate-optee_defconfig @@ -23,7 +23,6 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm-cl-iot-gate_defconfig b/configs/imx8mm-cl-iot-gate_defconfig index dae7ddc20e0..f05ac98326c 100644 --- a/configs/imx8mm-cl-iot-gate_defconfig +++ b/configs/imx8mm-cl-iot-gate_defconfig @@ -25,7 +25,6 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm-icore-mx8mm-ctouch2_defconfig b/configs/imx8mm-icore-mx8mm-ctouch2_defconfig index 69ebc6fa325..7d08b244f2c 100644 --- a/configs/imx8mm-icore-mx8mm-ctouch2_defconfig +++ b/configs/imx8mm-icore-mx8mm-ctouch2_defconfig @@ -23,7 +23,6 @@ CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" CONFIG_OF_SYSTEM_SETUP=y CONFIG_DEFAULT_FDT_FILE="imx8mm-icore-mx8mm-ctouch2.dtb" -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig b/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig index a3c142feb28..acc5d34659b 100644 --- a/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig +++ b/configs/imx8mm-icore-mx8mm-edimm2.2_defconfig @@ -23,7 +23,6 @@ CONFIG_SPL_LOAD_FIT=y CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" CONFIG_OF_SYSTEM_SETUP=y CONFIG_DEFAULT_FDT_FILE="imx8mm-icore-mx8mm-edimm2.2.dtb" -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm-mx8menlo_defconfig b/configs/imx8mm-mx8menlo_defconfig index ec672f8764e..2a6f3b7c412 100644 --- a/configs/imx8mm-mx8menlo_defconfig +++ b/configs/imx8mm-mx8menlo_defconfig @@ -34,7 +34,6 @@ CONFIG_LOG=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm_beacon_defconfig b/configs/imx8mm_beacon_defconfig index bf2b6486347..fd21f9f6db8 100644 --- a/configs/imx8mm_beacon_defconfig +++ b/configs/imx8mm_beacon_defconfig @@ -25,7 +25,6 @@ CONFIG_OF_SYSTEM_SETUP=y CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadbootscript; then run bootscript; else if run loadimage; then run mmcboot; else run netboot; fi; fi; fi;" CONFIG_DEFAULT_FDT_FILE="imx8mm-beacon-kit.dtb" -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm_data_modul_edm_sbc_defconfig b/configs/imx8mm_data_modul_edm_sbc_defconfig index 399b388460f..1fae936bda5 100644 --- a/configs/imx8mm_data_modul_edm_sbc_defconfig +++ b/configs/imx8mm_data_modul_edm_sbc_defconfig @@ -41,7 +41,6 @@ CONFIG_CONSOLE_MUX=y CONFIG_SYS_CONSOLE_ENV_OVERWRITE=y CONFIG_ARCH_MISC_INIT=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm_evk_defconfig b/configs/imx8mm_evk_defconfig index 00af724bbaa..24bb136c7ad 100644 --- a/configs/imx8mm_evk_defconfig +++ b/configs/imx8mm_evk_defconfig @@ -23,7 +23,6 @@ CONFIG_SPL_LOAD_FIT=y # CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_OF_SYSTEM_SETUP=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/imx8mm_venice_defconfig b/configs/imx8mm_venice_defconfig index 190209d6325..2f7857bdfb6 100644 --- a/configs/imx8mm_venice_defconfig +++ b/configs/imx8mm_venice_defconfig @@ -31,7 +31,6 @@ CONFIG_OF_SYSTEM_SETUP=y CONFIG_USE_PREBOOT=y CONFIG_PREBOOT="gsc wd-disable" CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/phycore-imx8mm_defconfig b/configs/phycore-imx8mm_defconfig index 0316d45caeb..3a169692735 100644 --- a/configs/phycore-imx8mm_defconfig +++ b/configs/phycore-imx8mm_defconfig @@ -26,7 +26,6 @@ CONFIG_USE_BOOTCOMMAND=y CONFIG_BOOTCOMMAND="mmc dev ${mmcdev}; if mmc rescan; then if run loadimage; then run mmcboot; else run netboot; fi; fi;" CONFIG_DEFAULT_FDT_FILE="oftree" CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 diff --git a/configs/verdin-imx8mm_defconfig b/configs/verdin-imx8mm_defconfig index 34afdc57911..8c5274d33f1 100644 --- a/configs/verdin-imx8mm_defconfig +++ b/configs/verdin-imx8mm_defconfig @@ -32,7 +32,6 @@ CONFIG_LOG=y # CONFIG_DISPLAY_BOARDINFO is not set CONFIG_DISPLAY_BOARDINFO_LATE=y CONFIG_BOARD_LATE_INIT=y -CONFIG_SPL_MAX_SIZE=0x25000 CONFIG_SPL_HAS_BSS_LINKER_SECTION=y CONFIG_SPL_BSS_START_ADDR=0x910000 CONFIG_SPL_BSS_MAX_SIZE=0x2000 From patchwork Mon Jun 27 03:24:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648532 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=YUu15aA9; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX7N2g6Bz9sGp for ; Mon, 27 Jun 2022 12:42:08 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 91A78839CC; Mon, 27 Jun 2022 04:41:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="YUu15aA9"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 68049839F9; Mon, 27 Jun 2022 04:41:48 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80051.outbound.protection.outlook.com [40.107.8.51]) (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 8C511839F9 for ; Mon, 27 Jun 2022 04:41:45 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OapoKnBhq6cW+5Ipv1BlFy2E6JNoa8Dnceh7VmnrLBRTkcuWrLcaXZ5mubXhEZhkvPvU/UtAfARPvxVz3vO+/6z7aPhX/fq7cNwt8WFD8nJanuTtPk5BeLdnaTAgZypkn1gkfpwqGwIVpH8sIIpjQQSQ1fc2znMYMWQgQIz9DPZEIecBsfKP0FvGto52tPVLyNhegkgbwJps/pBxB+DmGQvujQbli89U3NBWiowAUcZRfFNZ+J+zXfaYmoelPJJDJh0CAvHQYCVmpqNSGMbY1Xa0wSpdyrrCWpUX+iyeJuu1FoXXKt/cQcQVIPdzS7oy6/lk9pGo7P85OW3qWKzbhA== 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=Vexjf2GqRJeFqo+VQGE5cOw9mP1+ZE3EM+ngrZt3xl4=; b=DAFZKfzkp9A1B6hfzBUppXfS3UUYFgojXQPuBKzaBsOf6Xe73PcfXxMuSNg4GN1dTLDfeWH8+CZV5XYjhZOvAMHIGaEN9tghZFfWkOj1XOqIOWsmYd5xYiKLzHC+yKvaBlC4wQyPY+Jm0z0TTkUEEM/wiGDr5g8iMZH5DzjHiknFi35K6SNUrmuCXloDpgkigVaJVOHb4qqadg8APV9tmH3/gAX/ot9tbpHuW6XTub8wPoRP/25M7la9+7l+Jr6rMlRA27XdWnnPogtp6QSo7OoelpLW5jPCOSMpybRuVXChoC9hUOfMr6+eXmrl10RY/Op5QA7jJqgWwqbmD+71hQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vexjf2GqRJeFqo+VQGE5cOw9mP1+ZE3EM+ngrZt3xl4=; b=YUu15aA9zuYIP68B2TrPXRZi+CY8YRETkrvYiPS5lruNoHt6Xze4Q9IokFT4faFq1hky2NTPBEj03sIcj722hOyEXcrXMrrTJ6/GHZtCOTut8NVN6xGM2qBic0UI5OPF9o+V+TOUZad+UTxcuwpKvCfqY5pSlqWobk/o/i+Nw00= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM0PR0402MB3892.eurprd04.prod.outlook.com (2603:10a6:208:11::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:43 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:43 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 02/49] arm: makefile: cleanup mach-imx usage Date: Mon, 27 Jun 2022 11:24:08 +0800 Message-Id: <20220627032455.28280-3-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f0852b28-8bd8-440f-944c-08da57e69239 X-MS-TrafficTypeDiagnostic: AM0PR0402MB3892:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7SG2natxGTqOLzrsbflZCPoGsnX+otvfnbTrvjy0uMXQ5bmO6T0KzQ+ttLbPvStLjW+MouF4zbklReotugWqc/N7UlSrYZY2GnvHiCGLEPZOP1UpyimwPk4XhEGCgGnWgmZS1IDP0lyVkj4qSwGGnQrxJ0U/SAtzusJwhhjoZ7zygeyCwulsvXReIDagUL6ZPMEYGBPFCqcnFI5aYmHhEpwY86tNS0DXedAzapFYI0DtBYzESkigPtcFIziiDQCIqkXndymjCIIT18pdeqGZX0+soqoj0Ga3Jzjj/wh+qT2BEe2f8cNmyashULzd/Imb2OUnZhggvywLINMB/wcUaE+MKUFww77/nfpS8vciugqFSmN6l8kYDRh49EFO76raZ3srVRPasYxb+BArA5VoK8VrqozbZTA+9cJmNeZbrRqUPfcMT2Y0LmBFDa1cDfE/gk7W7oUoPlLPRP00rQFtlZtAcGgIBREAm0DCtaoJugwOquiZH9FDOnGbLgintrHt8QjKTUKOFykyD93hYBqZ6YLutnBrfeeS5rYaVSCo1pnS9ebcf0mWvA+8xb6+1mX0PWMMGlJOLGku78vjq69F+b1wBo6lAtSbolQKs3R37ZR3c1hsiVmUPhGNCX8vFXv3GFEthNjcQjB7vMKMydpJpDdETDzoLS4b67qIj1RMZ34n5DzNioUTVlqrsiQ7xI+Jzjv8HyMe+raOIkZX/pqIW5f/7MfgyMCSI4hQRvWiqKdaGm628cZL3mi6SoMxpGZkuCksClSL74/fh8ZmL3rOf8HaeTLdWa+nDco6RxEtyVs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(136003)(396003)(346002)(366004)(376002)(4326008)(66476007)(66946007)(38350700002)(66556008)(5660300002)(478600001)(6486002)(8676002)(26005)(6512007)(8936002)(86362001)(2906002)(1076003)(38100700002)(316002)(41300700001)(2616005)(6666004)(83380400001)(6506007)(186003)(52116002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: KKwwjoR66w4gw79AJJn8EVMohYBB62hsHqOI+JHCT+fCImoKLRbH0hcE8T3+Tm94YMrv4dOrrm9zCJ8ZpQTP4gFzeetBMCWaqSSZfbgnWtyAhUAGnA9rDWv7MmXXOjvlMtsKxXpdNoqmpLuplwDzDSvHN2JBB2IdEz/1BKNZH/z3cfB5jwzHOyPlfTx2bFKjnwhFDQyC+R39KJ8gnXI45casxCzQu8zCEVhUrQ9IKr2/cfhsgPYsPf+IHo9F2D4ykI/pSqBT0n5NT2Cvx5xwxXkZARMFowZRVdPcLYRD0wKcBNMQgrfvfNb/UGmgEo8yFc88XLDm07TSOB+QksJXJlujAExlFxe6A/D4xl26QKzojhMEaWREMPFYbK8LfN39x3XsCmGpNXUo/Emvfwg50jU9iPBehn2zgukiyspY4kT1YW3v7dt8UIkn7WMDMD/luwFqmaK42IgoGWlQka0kWRb5dPQCWNi3AbhaQnFaifuHDDv7FcP4oQ0vtRijLrgEeOTAnUwycaIQ4cJNR8tB5SqkQnrCIYxmY5Luz4phzPMjLOLKywjbY1RyWxNnXChWF9NuIFxXyYYTlAmOCOg4OSyP8l2fWYUVzm68hLRcUYG5TlW3oDjW1uxjxaiQlWPW8i26RTDCEE2HtEsWcTCVVr3Pl3GdtfgH37GPzwUC10MqFDWc0n4bWAKYr+u9uF94ITHDKDJFgoSrpPaGxoAwZ0bYh85x+FO8dGOkz5k2dOBUNY5laTDvX9n7EZp6S6A9RkDcXtAqIfND6HTpR0fCVTSgA2c/T2QuxtZozwGphBZoA8boFvwDqG99bKXCuDH9WqIhdD10FZcGScxcVLda2CodITxcVvdFDkmSVJ3Rzxbo+CTS9IsAM/BsJkcp7E79YG6gqREUIad/51LzDTBLmwATLgooGYcRv2whZ5sKOyETTm1TwJeJw5a6Aqh3QMJFemxlETw8YGixzmkWYoTlu+JteqwMlavyoVrxiKFioJrEhC5aEZIzODwI1Nt2NdH3oXJ6z0NJXrVd0F3DDoVq/Eawfy/k21uL7zBY+JA276QR7qeUMg/Y6R3mamUiGB+ZVCSZ7KLnoEEyNyKoZlS+y+AnXB+oJqwl0Uov6ypTymhWnEqkc35ZySb8plsUs489sW5zjBmFSWmfArh6aVdotOOesJIjbQZ8T++GKw0ZBt9X/YTRJBh8N+KC71fz8GjZuaf7sS7tkbzOeLnEpY/18Kb6Z+rnU2acB6ERPsLWGO2FI1O1KHeayfsMLpougZm07NNDz/iDm3dvhUVoHNJYujm41zuo+a5sJd/XlBpgV2XvrWmW2taDH3Tt2qlUebrW5KQdGh//r+S+UKZ8Fg+91Q7yArLC9n02WaQ8C3z0qTEonYVgkGAuuGN33dOrp6F4dBUvCFszL5vAy3cEHQVaTW3Ge1gMldHXSa04tR4hw2l5yRfHuGbqvexgQ/OUWvGed/yuxQ2WigXMJM4F2qGCD7PWsqkU44eBdKDwP9Pp0Ieda8SebiK9Q8vmRm/ZhAH/35eUO0MocVgGMj3mkzDOehD2oNeWRs+pkZX12c5VFDOFkbd90tcOrMsQxt8XLn1U X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0852b28-8bd8-440f-944c-08da57e69239 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:43.7906 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Do/hpvqY/wuSlKh9x42Lzk2/oDBZ7f8atjH3wM6P6dn1+U3bGnIXzFp1ODqRYbO1ckz/q5ECP12bAaurVCQujg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0402MB3892 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan All the SoCs use mach-imx has CONFIG_MACH_IMX selected, so the macro could be the gate to build arch/arm/mach-imx to simplify the rules. Signed-off-by: Peng Fan --- arch/arm/Makefile | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 64c58f4c4a3..a69cb1f610f 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -96,6 +96,8 @@ machine-$(CONFIG_ARCH_ZYNQ) += zynq machine-$(CONFIG_ARCH_ZYNQMP) += zynqmp machine-$(CONFIG_ARCH_ZYNQMP_R5) += zynqmp-r5 +machine-$(CONFIG_MACH_IMX) += imx + machdirs := $(patsubst %,arch/arm/mach-%/,$(machine-y)) PLATFORM_CPPFLAGS += $(patsubst %,-I$(srctree)/%include,$(machdirs)) @@ -114,16 +116,6 @@ libs-y += arch/arm/cpu/$(CPU)/ libs-y += arch/arm/cpu/ libs-y += arch/arm/lib/ -ifeq ($(CONFIG_SPL_BUILD),y) -ifneq (,$(CONFIG_MX23)$(CONFIG_MX28)$(filter $(SOC), mx25 mx5 mx6 mx7 mx35 imx8m imx8 imx8ulp imxrt)) -libs-y += arch/arm/mach-imx/ -endif -else -ifneq (,$(filter $(SOC), mx25 mx27 mx5 mx6 mx7 mx7ulp mx31 mx35 mxs imx8m imx8 imx8ulp imxrt vf610)) -libs-y += arch/arm/mach-imx/ -endif -endif - ifneq (,$(filter $(SOC), kirkwood)) libs-y += arch/arm/mach-mvebu/ endif From patchwork Mon Jun 27 03:24:09 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648533 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=IBodWzWP; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX7b59YBz9sGp for ; Mon, 27 Jun 2022 12:42:19 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 128BB84282; Mon, 27 Jun 2022 04:41:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="IBodWzWP"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 39D18839F9; Mon, 27 Jun 2022 04:41:52 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2080.outbound.protection.outlook.com [40.107.104.80]) (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 F177B840DD for ; Mon, 27 Jun 2022 04:41:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SrSV4UvhN0jVwvilKO3eb+EUe/VvsPGhZJktMPh8q8BvdjwzBQBe+VHJBPclbIZqPl+8RA5v6xl4geW45V2NUgMKwKFflYlfG1Z192CpWKqMsbH3yo0xrQ6c9kejWO4ueXdsnYeb50qo7ZVvn/V+X07Bj0EMh2SthmkJdECkIegXfAtwjSnBoT1PxfbcTaa6dK87qbQrtZFzmJhF3SOcT3lMYtCKnsRr79FPOm3ESNvctvltXskk7kLt8omQI6nH/ZphLbDVq0CfOFX49TCHc84pVtLA+A6QxkccNCy8Why837rBPTNjq4WayQn9LQ0xVglpJ1zm7K3mkmUCMFTFMQ== 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=oGdkBQxBOYKxFJUV8fxibUnIgLwyUqWr9GuzTCv+g/s=; b=QJEODl4F6Zs5byMfn6uN3nrl+OfCiQ8+yM0QqzJlKHwcS0OWGiFO2QxV+n3vxCXx1bVhmqDDiJmPS+B8h5GD1su6P8khzStphJPfwcZHudsy65DFRWOp5Ceapv1ueFj7f3ttsiVhG9NrsYRtY6CYWi7oZNUvm3mcH83xL/oaWfYR3W8zU9CposXT/Tpw6ioLfrfI3PWbr67O3X7zh010BTQOMnpywoJwWAilFxGu7i1gLf0BrqKWC5VU3u3s0KRAs+/u91meBnu6j4JOmqgxYTRBhuwwogXkmQFtskwdcYlJ474yOPC6gsK1WMTynbVGVnoehZ8ulYrMl50DcaTRbA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=oGdkBQxBOYKxFJUV8fxibUnIgLwyUqWr9GuzTCv+g/s=; b=IBodWzWPxcLIBvnC/GI/tOAmxIIcG1JKUXZqoN0o7mYunn/Hgh0gshPApA1BHW90tA5t5gu9aEbop6yRd8Xzh3TTFjldAMu9MyNq0FM8oTjboQKhpSIgQ94SxIRDi/YVKF2N5krEp9wr0HeaIa9ZOn9Q2dB+BqDdpYo9UP4eMQI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:47 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:47 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 03/49] imx: Change USB boot device type Date: Mon, 27 Jun 2022 11:24:09 +0800 Message-Id: <20220627032455.28280-4-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 93579b09-2e13-47e1-7352-08da57e6941b X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: f7SttW7o3tnV1+orTr70z+Sgdo6MyRm1vegl8skmFllkUYdwWD+6MSSnVunmeoPdQdv876ORyASEf7VR/usmkS4eunxDGqQZG5SoaSkQJzM8iw34zC3EjxuylAk4pNa3KvaGBeqZC/fAHKVsAUcXuB6CIwIkihZQ+iDb473SMLaCM8Y8p/8JyrbVeD+J2T03y7VtetOxcU4VGnmsRUaioGZb2iQI3tUyDGklDXHqTJsR7VzIvgOa6PEiv2Gxrt7+CnYJ1ag+TLFsPt/nXcUTDaYjhkTaHLUV+HR+Ma9fATZ+sXW8M9YBm0AWwEkp1qPDt7nsxGdeXQJf0BzA0KNOemGFv1AbUwkQ4dq8hyoYiYMm7QhNKPqRTPz8O0ImpeE1TZtCAj/QNpEiTQ02eJLhHHq3MswwXtXn2wj+w4DpIuOr6b6AiHLrTXu6/lxih0CGNzAw7rcH2v/ZVNch2MY4iL0Yqk3aFbI4of/tzR90B/t3OCHXAwT6YNzydrHn7xJsdyGe+kQOAv5tC9NUNRidbYJn+fsN1fSnqm1KuJQc+Xf8bx3o2UESUdkgK1qZD+h9KH8Tt6CkNoEm4yjdvJfy4B5mNiZ6lJd7OtMVfjzqghfuighjbBnrY0Ckm8WsNfzxzz1JyEb/+m7za9PKiXfsb9mTrQiKVb0E6WVxK/F+wU2aRDJ+DAV/Gdnk+W6e7MbMW/SkKt8WDX9nZOvFNXM+kFE73MDXMJCghYdj7LFxvtg2S7wOWR8A3TscIpjiSIwEgjejY1pd129yJ+G0JYnn0SzjcSUMtuhJSjffvpJFrE4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(4744005)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: k+EAf0c2T4KCnFeoj3bA68YuZ4kFvPPhh2BkOckM0LVONEpF4acbF/Yje7B4LmDeetn4aPr5GCC+d4/JUUfDexqTEx80N+LUFZkJira07GDFbiJBKapdY7VuADXGjwMb4xF3xyBaxiCfebu6N2ZOfMCQ8VepAxhr+dMjPI5UMSOCMeB3lDxGlBspZ4Fpci4P87z1qsa+1Hwy7qUVLZjxpCFNuH8S0d9rYc8VE47zBtykJyxXZCqVpQv0WZGjOP4R27l9GoMSDVEVQVQwCGgMJwAbI3CCewbqPjzszce1ohOOO8znsBL+8BNvj6fLbckqDRrAmSxhfzFnW+0nzZStrk9QATJTXcOd6Lx5B+PSZvhM5C2SLuessN2j38s4BhTZk9i1AQdfv0jxtuet20lU130ttYXv+ULEK/A6FJJgbknIKHVfYKYwQ7P3twsSqDZsrJ1RgkjrDeroAwlW4vQA/w6k4VfRzBeHV291p8Ov1k42MVZtzgQ3GhJBWmPwrthgkBx8CF0t0Tlh02X/Plhg8opjbwvfyhyaNYYZeH+lLpnrt964xvnKast71kw+MRRV+5Df2pjUZ0IRO3tLlgvZLE4Sx8W8w2fpNLybcAC2Y4G4YjfZ5dsBGskoiBrh/V60zkrikw40vVeKS1DmUat/jYRhc0nLA3ekSzZIdk56+cEJWuC+YVscfbFyL7r82m23PbPLjcuMNNkOfBmC37i4hsK4TdZkrDygA2+0FqKb/rcBavsflcoLVJjvnW/7LwtsYhlW11Y9K04soEYQV/ZAQrfzYf5gKF4FqKyZgw9aG93xD+b5QkklrQd8joA5vOwe3KSAKyo36sLDflfHexrdVVJEbTNJ5jDHQrAxGRV5p2yPKuLZ9wcYvPBKMZxLIeXPsX0jFmQhPca8y415WCDy8/UaH1uzRwVISkh2esq1U3NIe2L3r2anChApLfUfeCjMDFxMHPCP1abvSRqrVPr3eBVdjpCWjV59wpKy7pkti4ckAqOGh5V2VllVEoHMTfH3bPb3Vxv1fhEEwdbBgEJug/yB9pDO03CZi0tS420xgg7ShwFBadn7HxhwA555qxkrZmscg+uIFqbZt9ZfEoQ4mQniEF2Ax5AEl9P8Q8AmfvJGmMRKlDLZh/haiECvSlAywViH73Kwk9Sc7g8SqKAYhsVD5TR1XfC0qxItUnldN2G9fA+m37vBXjdw2hfbgYwDYnOkK03a1FEFIqrn7/6FqyKLHGCX9hp5/00cuwB0nWrSrPVuZL+4wGZR0uw5HVbkeSA/gqwdtyBXpfQqhSwQ2E2F1ZlKslKAh3K7N97WHwVdSV9C2OWb8ftoo67TYVg4P79FiSIRrIxZs7365pWgp7ktrdaxTOLuqR8viVxRVjhz6VAkXdh7iOubHlyTKjQehCqM32eZU8gzOnxIIBwIB5n456ZSohwOHeXJlusx99/F6trSvV3mRp9qSriEegEAabJWUELtmXmpJe6szIZ06ANlwLRmIY6aPC1tjxLxReJ9WgMQI5bYoxOFpkC2EXk6N+5Mpgx2IUJdjpt2Ury7NeJsiMYr/MpolbZEgn/yeJf+2UpWw+XCGiSPSfwneQg+ X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93579b09-2e13-47e1-7352-08da57e6941b X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:47.0423 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: S7gOedcn+lIwn/Cru05uRMltpnwkYrbkA+oFALcmng7sjQdWnkVCrG+PsC0Lg3HKgq26lXrac5cGqAbsyXm3Og== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li The SPL SDP is configured as BOOT_DEVICE_BOARD, so when booting from USB, change its type to BOOT_DEVICE_BOARD, so we can use SDP. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/mach-imx/spl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index 64ca2967721..e89e2277ef7 100644 --- a/arch/arm/mach-imx/spl.c +++ b/arch/arm/mach-imx/spl.c @@ -177,7 +177,7 @@ u32 spl_boot_device(void) case QSPI_BOOT: return BOOT_DEVICE_NOR; case USB_BOOT: - return BOOT_DEVICE_USB; + return BOOT_DEVICE_BOARD; default: return BOOT_DEVICE_NONE; } From patchwork Mon Jun 27 03:24:10 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648534 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=XNHgHgVs; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX7q5k2jz9sGp for ; Mon, 27 Jun 2022 12:42:31 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 165E4843FE; Mon, 27 Jun 2022 04:41:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="XNHgHgVs"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 895A9820E2; Mon, 27 Jun 2022 04:41:55 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2059.outbound.protection.outlook.com [40.107.21.59]) (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 B96D08427E for ; Mon, 27 Jun 2022 04:41:52 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MLRvAQWBXCnEN9Rr9m8NeU9EAM9PlUbbHnRmcr8JIGZkw8MOvFyvG2yiGzQURuPX6ZXpe+5vo3xTqss3vcpe68vPFvfxM2WZC8xG+g3+VTkL9NV/jPIfyB+yZyrMA6HvDWrmTdz2EMQDpit8W0Pz7jBI/UCJcUwW9UlUXx9XJMyOcyIgavdI/p6NDwKoBCXzuvE5j/+AqTnt5eihuWHzcvMJF4tk5/r2XDdWMiCqdLvukjwXV4FA1B+TMCGIXD4dawPjHeCk2xITdHNDw+0ly6f/ZMn6qJmE1eN8Lbe0W5QAh2tMeNadkzOEdL65fSioicxh2EzPChiwLQBHszdKdg== 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=X00CcfXBDlutrgqRtSAulzEA301vC2qdCPwSfweXGcA=; b=jt3l0UG3xqbcqVGZXAh6VbtJ7y6o92u+AmnQJEzDrNKvx44aKayGVcZhq9ZvL1QL0E6rgWjWHNDWQ6rrvnNr+TlFCfzTUDM7p1VpFutDoB4GUu0J1nHFfYY6SHPEEYY7KWlVlyXKS6cPfx9GYPnbwAWpw2XwTGuCrEISOQZWmOAhDAT3OjLWwom3FUBCUNBMfeVm/Go9qeMu+dSuIIKsBWGW92Y4ekdXChu9NzpUEvvW95BLgbJPcWjUiZJfkInzDHXOIOchIoVbKDi7lWnw4PUknz2LruSz09iO1Ejfgc16WFLlVseWCT/7HpC4ozkrwKnbCQla2GjQtl1YhrphOA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X00CcfXBDlutrgqRtSAulzEA301vC2qdCPwSfweXGcA=; b=XNHgHgVsKeoHHnSyXWnj+N94MMyJSRH2vJI5aQAUPsihbRUZKYlRNLgPf6zVfREA0qlBRi+QNLJV5Zja/4aPW2Ryuw5dqhv77VOsA+KoR0Et9kvmHZ9n4AFayO4s0WaYNI6u9+Wa4YBc89OIijxY3NH4ms7ULXd96iPNV7sIDBk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:50 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:50 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li , Peng Fan Subject: [PATCH V2 04/49] imx: spl: Allow iMX7/8/8M to overwrite spl_board_boot_device Date: Mon, 27 Jun 2022 11:24:10 +0800 Message-Id: <20220627032455.28280-5-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7ba9b063-c980-4cc4-2d60-08da57e69673 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cyJVjIIfX+NAlRCGZuGpYrZrJKdNYZI2r6kJNzcUauekPXYcThlguxt2GRKXeN6T5f8hKq8CmLAKNl0GgtVBXtGSvQJFSxp38VMMFWTynAE1gx+qDmWDuHt8Jo/9ylWXLSD83pJhX4z+t7SRKMln/Ccr1CqS+HdsDVzM2CDWoC8ZPPRjlT4TCZVj9ItI8jMrA55YXmTcgbcGy+6vfjXyLz3SskdQKMUpECmx0eVjMBAnPvOLwCtw1iYgWQ7TOlIhZvzofupoyR8GMnFxOlKZtb1R0cIY//cHklFGG92kGWJcJkrlZ0JOzQrjG25x5HPMx3A41EMhSZPtIJvWqep+cLkrtFp6Joi9lBEc4YI0I/a+HvTx1yezYt0YhBTZfxK5gBqGdmzHHsx8mhoi9ZnK3wLwRrX+UWwL+I/EPG7wMENkyhikuCf7wWWB/fZ2owxchGOGX/04acd3xrzhcYIWS4MyyBqUQuEaVA5Mojam/ykBnXBACslIh1pn5CtG77Ks1o6vIBYk6oKWeekO+rYpm3DUVpeUz+zYUBweuj/kmPUSLrG6o/XzPV6nPM4UT1tzQRyuImrb35AGu3X0unXFh4QaOcKTiFotnj/LZWkXUBBRIhbvHvonjq7OBCwQIHSZw6bQ1Grb+PaLHI2w2sEG5Mv7df8Fk+bACIu9SEYiEyDWdWxTKJROld6THj8OJ/YqqKqQlQ9QkXzuQNe572yi+kk9j6gX5x5SR1Qy87Bp/8gLWs30VEn0XE8XoJmmAppoH/0ILe9bxjYYx4oWrOdA/tUrVrqYQoRhFr4wnZJ3Ikc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(54906003)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: FVzxm7O7homqlpLIsoZl/ajh6UR4EeW294FTdueydywAAvZuLnZmKoWX70r0YBf9J/ACuq3/04B5Xlhlu0n/uDtZgNcLtZ7yONZpWdCs+tfcKB5h7QZLl2iHhESpmTMnHgmtT5jXz4IQFfquAZ0+5OSK1p9XKwGLV+ltBg4ZNA33JgAANDBB9iD8BivN+WiP0eNWmM3yxAWLZY/UTCoS/xM7Vn3oDkIqZTYgcuv4pvbEd5aACBQ+/JVnHV1lH8cGxfVvlD3iXdB8UooTYFpuLEThv3rj61PoA95U3l3h7Esbce7z+hG6QMJIJrPaPNkoDVX3SjzHngvyKzfKBk9vbjJ4yjaFKm5eEZDnKpAz7WmY5ndxnNowtHW6s19Q88kEfoAj/kXbtKR0ofrm4o42MYily3fQdpcZ9FDOXJbaOot2jRANsdG/oOP8BC+a9Zptre/HMpyVvpRQpAYWsfJgwOI9Pfh04U4H49vOZK1NdrNXlrmcZSl4iQNEDwXvxnsZxTAcfhONW0bbgR+QLwVVuC9z0eqTbfdSmSgPPh9riYUXnce1w2r/7gAOH2RrJ/FywpZrPqU18wuNxl2opYoJTeLlG8q+f1xx1WushIra6IKNKPtp6/DTPC6tQQiq2bVf6Zh/qi5k56JYzpCQ5JGDoN47vDwTOn4n7+ZYr3bsLeuOMBSlOrbnWcVx8/ahMquQWEpRGBc310hhxYBdPAWzv9i+t28XOi+S3A6Lk5TvezpLeJrFS2gU9q4cQ9omgFDATth9cNdSEM5bRDzwUE4w+rjT/A+gp1K3YoZDWxg7I4k81X2PLYgiwda7DuxCMGZCli5YsM54qUvGgm09rUXDeC1sWWpXx+7iWhjfSAUBRTViZdxC5kGtp9SQIj/1OC9fG4HEC25zmXV97j2RTbRxieaLTea2EI4LPgSEbZrRAz2ULKlPC1ZOMMi09SQRph5VEwYLxAUTvOasqHjttZqAa/ekwbZ0At7YqBkhyb8xMN++uwS++c3xe1gMs2GJb/mBzLuCNzMV91YDt/AcKvQyUklbVfIl9UxqhZgIxXW3f78MVIeqCLMeUOoTZPij/NfgSmoKAFqpthhoihUkwtnIh9zcWvWR5XRuNctuFUHoLykymNQLtyWwNoNvYJAves4mURZpDcT+iWbS200DQ7Y4kHHwJdM6yggFDC4BLGio0tcp799AGZH2JSiedLXLbXHj+gVg5g3NT2EbKAUr1nol1RUGB456jCgPZpdtyJnrTLCTF2XeLeknXRxJp9/v4+vFzEIDJMHWafWRdKkxd6PLF3gnkphVnKk47+zSFNk/QHLEA+05bTiCoNIsk4vq9Ma65nv4CqOGxAbqnFEPEZyL17X5O2eUb52/DUoxG2KM0VPivX0uCMF1Zwxk797momy0fJOp4TISCCwb3IXir92rsKQEAdpY0z6qU9bw+7WBiv6KWPboRgA7My2Xzr/pEeISl0Jg5js/W4glYnNzbd3sjwVfQUywu30DAyRBuOE1Mo4S3/eMCSxeMie+stknRK9CY4XP2USv/rv4wlVGk7mBeJa8uasKuadL6M1WCutOrDR41QP/sXx1YvpGRUZ42aX5 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7ba9b063-c980-4cc4-2d60-08da57e69673 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:50.6602 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I9mmc9YpBH8xa754Of2stR4M3m/KSiUKUSZIvFJ5go69pGFhlYOjg/nPfgZB4oTd9N2xPLIdxLpyQ1g2jrv6Cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Move the default mapping of spl_boot_device to weak function of spl_board_boot_device. So that every board of iMX7/8/8M can overwrite this function to implement specific mapping. Reviewed-by: Peng Fan Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/mach-imx/spl.c | 80 ++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 42 deletions(-) diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index e89e2277ef7..e5ad993b8d9 100644 --- a/arch/arm/mach-imx/spl.c +++ b/arch/arm/mach-imx/spl.c @@ -25,7 +25,43 @@ DECLARE_GLOBAL_DATA_PTR; __weak int spl_board_boot_device(enum boot_device boot_dev_spl) { - return 0; + switch (boot_dev_spl) { +#if defined(CONFIG_MX7) + case SD1_BOOT: + case MMC1_BOOT: + case SD2_BOOT: + case MMC2_BOOT: + case SD3_BOOT: + case MMC3_BOOT: + return BOOT_DEVICE_MMC1; +#elif defined(CONFIG_IMX8) + case MMC1_BOOT: + return BOOT_DEVICE_MMC1; + case SD2_BOOT: + return BOOT_DEVICE_MMC2_2; + case SD3_BOOT: + return BOOT_DEVICE_MMC1; + case FLEXSPI_BOOT: + return BOOT_DEVICE_SPI; +#elif defined(CONFIG_IMX8M) + case SD1_BOOT: + case MMC1_BOOT: + return BOOT_DEVICE_MMC1; + case SD2_BOOT: + case MMC2_BOOT: + return BOOT_DEVICE_MMC2; +#endif + case NAND_BOOT: + return BOOT_DEVICE_NAND; + case SPI_NOR_BOOT: + return BOOT_DEVICE_SPI; + case QSPI_BOOT: + return BOOT_DEVICE_NOR; + case USB_BOOT: + return BOOT_DEVICE_BOARD; + default: + return BOOT_DEVICE_NONE; + } } #if defined(CONFIG_MX6) @@ -140,47 +176,7 @@ u32 spl_boot_device(void) enum boot_device boot_device_spl = get_boot_device(); - if (IS_ENABLED(CONFIG_IMX8MM) || IS_ENABLED(CONFIG_IMX8MN) || - IS_ENABLED(CONFIG_IMX8MP)) - return spl_board_boot_device(boot_device_spl); - - switch (boot_device_spl) { -#if defined(CONFIG_MX7) - case SD1_BOOT: - case MMC1_BOOT: - case SD2_BOOT: - case MMC2_BOOT: - case SD3_BOOT: - case MMC3_BOOT: - return BOOT_DEVICE_MMC1; -#elif defined(CONFIG_IMX8) - case MMC1_BOOT: - return BOOT_DEVICE_MMC1; - case SD2_BOOT: - return BOOT_DEVICE_MMC2_2; - case SD3_BOOT: - return BOOT_DEVICE_MMC1; - case FLEXSPI_BOOT: - return BOOT_DEVICE_SPI; -#elif defined(CONFIG_IMX8M) - case SD1_BOOT: - case MMC1_BOOT: - return BOOT_DEVICE_MMC1; - case SD2_BOOT: - case MMC2_BOOT: - return BOOT_DEVICE_MMC2; -#endif - case NAND_BOOT: - return BOOT_DEVICE_NAND; - case SPI_NOR_BOOT: - return BOOT_DEVICE_SPI; - case QSPI_BOOT: - return BOOT_DEVICE_NOR; - case USB_BOOT: - return BOOT_DEVICE_BOARD; - default: - return BOOT_DEVICE_NONE; - } + return spl_board_boot_device(boot_device_spl); } #endif /* CONFIG_MX7 || CONFIG_IMX8M || CONFIG_IMX8 */ From patchwork Mon Jun 27 03:24:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648535 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=ikZUeITc; 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) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX8D2VHJz9sGp for ; Mon, 27 Jun 2022 12:42:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 05CE084458; Mon, 27 Jun 2022 04:42:04 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ikZUeITc"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2B667843D8; Mon, 27 Jun 2022 04:41:58 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2060.outbound.protection.outlook.com [40.107.104.60]) (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 B49B4840DD for ; Mon, 27 Jun 2022 04:41:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UOf0JouTjVdiBO+NEw7Q1OdsCSR9WektiZLcW8beMKAVZgIIxWSZGXUxCNs3UK0+b21IZPE4lffx1Ut3jisgKLzr3FP+1RZCNg0lS1K2p8kYS+Vwmveq9/zSfNKa8n+rPP9ZcOYXdjUeicebO2DNhkDyEWRqP18G9G/7b401ekT56QCyFgyTS/WUJ/H57ewqqR7ELPAA5JRMuIRqU82PmmLM8vAluHzxMZWJ3V8y2cR7sY5pHPBJ2fEnpbnHxAK5+77zUjClOqVPWZwsOpDz001/6ahEIe8Y/ygt5XM5YgawZsLAgQO6SH9HB6fwNk77Fw/sogdbz1whtKKyg1G5Aw== 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=R6+22FhtRlSXSiTVUy1nrbcsfOvxHey+5ULuGmT3TWM=; b=NrXoLPKKk7S7Ekv85CMewEvf4KBWTQnqjHo5qL13XBD+IHf+rMCGjoVRPsOFudNyfdsX0oc80vuL5/hkIuPX3y4vve901Nf338R++eiR19wq7RT49nzMF928mJ7uxynRcVeak/PVB68qh4+WIKFknWWAuPKy7/i7wUa59rBBFxknUu2F/XSWjG6ygJUTZoOiaH5dxxxTMgCvhbt62IbAsa3gWg+Nt6dUVOXV2sTlIkSWbLdSVSHzqOVZRFTqYiWW+4vErWbu0iC+vi1nOwGLmcuRLvJrK47lr6xazWEZOcMAMvp7W+qSgxTFK+qSjp/EvhtIltEbtmkMGxB1QZGydw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=R6+22FhtRlSXSiTVUy1nrbcsfOvxHey+5ULuGmT3TWM=; b=ikZUeITcGiftYx5bGK/lS4H5Y97Wr2jo9nmRfXEQapD+0oNF01VffY3yDi0JFrN0eZ1KEiteOG/vwGxDXUEq6wDpQtWwSjzeV2zzmg5ye7Mfi4VhQkGBiK2w4+egrmiMjOCTFjT7am8EB3XcQvmamVEyrLfSvD4bZR/T+2EcGp0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:54 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:53 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 05/49] imx: simplify dependency with SPL_BOOTROM_SUPPORT Date: Mon, 27 Jun 2022 11:24:11 +0800 Message-Id: <20220627032455.28280-6-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fd1b41a4-ccdd-4db3-e078-08da57e69857 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 3cPqEfnFmoFmdbsE0l5aBLg7un6cKjojdbRcoKp4nm3vq8LhVZI4dOAkHnNfFZEBzxOvk2mQ3uWtuZTXK8/lvLU0jEwbNoJAwHM9+2tSkT+bU6uAiVVVhhzZZL17bMrG1C3B0tTG/H2GQbJ4O7+yDmrd8f0ndI7Ahi8T3SgDZ/C3n6J7q37lAnLpJo6soFIPz/Bs440uqJrNwPTR5BLitgYgveRuNR/4g6nWLgb/G96SjLBu+RI8/pIIWQsgTaeyWjIss+FQLh5YNU8h+vnWgTFKW02+cTDW+hBuwAC5Zu7dhzfL/oro3GJQ3U6/ntSMN4cqFTT/J5NgO6M7duai9cEYx7N0z/WFKZW7kHsVPhCKZ2j0Z+1/50/Zw1VBxAcwkWve/Qltq63EI4wRz1D54ywxkaDklxYWvW9F3ayXcuJ5c3zBtERHqVfPv30IAlT2EUoHsv29Xx3AcUr0FLHKpJfO5JuaUd6+tMFnvBd72kw11/b/8oqz+Mo96Beq843MLNhudeAVIF8CPiDc7FD3RAGGDKSDhv5XHEjTP1JSvLZvroyuO8LNI8O4HYu48fUX4zkEBExHXKyM+ILcvuz/Iv3TGbhgvYUNFOmf2/9apLxwS8Iz23kcDEP7FuyamhQ3luKYCZmJLh2XxjK2ZCA1QyyBN0FXx9PjyujWkkCrpPkWnJxa3TJ86ECRSbL+3bpzcJ5oTt8yh6t9S8lef3KBXrif7MpJCjyDONDNJJKfa8gt619YsEjGk9uzLqIUkyg8JyNlavVWpWppwk0/4uwr7fH/XuZiF4yGOXe4GP4I8YA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7dSDEQjr1pqon73+S3RjpE702e8ajwr2LtPCQ/WqqV0d27c/xyhU45r+FXAXytxSqy9LBOSt2gx99tZiTTh5OjZRqb5ghmzProLMDfAzev20kl0PcTAKFlAWvR2RfmGh+jxc6zm1pLxwb8jRB8UM8L6W820qnTYKjYRUeUe+EggGmxuvyJeJpHMDXD271vxZylDVRev//7YPb0mD24Wvs9Nqp4PPL4nGzN26IT86A8BekAyuMludrS4zKbgWM7rZhbAu07/WBgjaalF+gac4oheI49X2cvJI+GS4MNiLaY/eur4rzE3Gwoec0QDvHtSkEk633jMgG2HVObCRv4tnUGkqj29AVfibzf4b3G9Um+bSy9zxSLcHbJnmubQ8pbKMJutcLlYEJPjyb6OIa+eqdBvgpFTZ3nJGL3K+E/qF5cwchaorCVgFGNiL6aXgA3GCfUdFQYEC9l5EpFRXga1MlRngpiiMW/4vuzS85Q1uazvmNf0r1gR0kLgd/6XtSrBN0MZbqa5lsZ/Cd0UQGrl/+I+dDJg5OfTfkh+MiuIqn9ghsJj7R7np8QpPhNIwmn/icy+S0++YQAqtG7/1xIYilp6vQP2nonLh0n95mLz3LP/OC2dFoyQX3xZTmEEiOSGZhgTAIwEQS+ffL4Ptszf8fnOQWXgaihRW+3DOsbXVMHd8vmPyL75CWfOqk4PJK2nVGu9W0nUsCS46U+I2ir5FVyG0iGF4aEvsAoZDh+PAGNCgQY0gwC9AUTF1EIaF2mhK+UWTmnnYtw8ZuSm66jrZS6mxCBSCzB71zn5R1JsCJtlsqZpHp+E5XAH/MWkHB4HjETXB6jhMGCn0M2vJBdLJimX1SIZrdd5bje+MJwmODgA70K5tFRb21fTqM971ai3Ga1+YL326hbRyqXfGioZkzsbt97UNA3WfTmxwEXC4m7+kf/NX/sJqYXFhoLgnvKiR7hhBZE17IyzBPg9FCkGdrbAyMC0UGco8gBHoiqJaagNx2zt2ZsaKqyW/mVfnilCJsgdmUWkM4iFLiLCTdF2dKqJqSNTC+3MNrtyYHhEqwEfH8noZa7/uCnLrx9o+xwvtLoIMz2FlP/cjpCc9O8ihRy4taniU5PPOg/Mh62Hp47qJ6BQbblK8T7F2CknnOAjbf7ZTxwmAYRuFKx0lszTdH1zPYkaifeJxXRKtmLSDWxPXZJa2AdaqyhBItNjy+IDfzxTocz+k2vX+7RPLxMP2/+Z4fA+R05DiI8lrzi85FCRD+QbbIwX2ohrSzWjeLpwf6yfb7Hnja2s2n06DnezOh/KZRwD51o0n12tEVUBAroU1d3JL516RACJLxrQZfcKbRAhvD5bQ60R+M1XDobcIwuQcoY9PDSjpxpGsHWDGH2v7mFW9dAV2RBk2FpCEcBCDnBJ2YXNvv9Aae+oarMZRdbEtN0QhjzgzMASzwasTNAMns0WNtSvEEBhKNS/Of8/C+eGjjZNwH6Zo/OGBmVRR6p9SHA5z/DaSOOHYUMU181pykiv4qOshtdCg8wgozFrHpNDJKlAc6cM0FGX/D1J4mxRowhAYwvrlJ6s3LQ4oX3eZ1wsIq+ULxWJxAPOFvxNR X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd1b41a4-ccdd-4db3-e078-08da57e69857 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:53.8680 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: XOIv542eB8TJfesJ5VVdCiy/ewMxYob12BMw30btDbjC26Dvz0G09mIkLyid5qFT+31x/M38fr8qyXyxDP2OHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan For SoCs support ROM API, CONFIG_SPL_BOOTROM_SUPPORT is needed, so use this macro to guard the code to avoid extend the list. And drop the guard with structure definition, there is no need. Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/sys_proto.h | 2 -- arch/arm/mach-imx/Kconfig | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index fdbbfb169cb..fc5e5c66aad 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -146,7 +146,6 @@ struct rproc_att { u32 size; /* size of reg range */ }; -#if defined(CONFIG_IMX8M) || defined(CONFIG_IMX8ULP) struct rom_api { u16 ver; u16 tag; @@ -178,7 +177,6 @@ enum boot_dev_type_e { #define ROM_API_OKAY 0xF0 extern struct rom_api *g_rom_api; -#endif /* For i.MX ULP */ #define BT0CFG_LPBOOT_MASK 0x1 diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index ad0fb365023..5e9c4d9b355 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig @@ -166,7 +166,8 @@ config DDRMC_VF610_CALIBRATION config SPL_IMX_ROMAPI_LOADADDR hex "Default load address to load image through ROM API" - depends on IMX8MN || IMX8MP || IMX8ULP + depends on SPL_BOOTROM_SUPPORT + default 0 config IMX_DCD_ADDR hex "DCD Blocks location on the image" From patchwork Mon Jun 27 03:24:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648536 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=imXzBTN5; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX8J5DTxz9sGp for ; Mon, 27 Jun 2022 12:42:56 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 48D0384462; Mon, 27 Jun 2022 04:42:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="imXzBTN5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 236108443D; Mon, 27 Jun 2022 04:42:04 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2064.outbound.protection.outlook.com [40.107.21.64]) (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 C436C839F9 for ; Mon, 27 Jun 2022 04:41:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IwPGnMBai3pK1k/YfPaJ1Mr15tBR5Vieb4X/gaDDomrA7O+SXl55VOynOGr2Gf7w+4aWPLRvN7G1GV7YZxB2g9maYgG0iPI8Is0NL1kCV52/l8ZZNeQvNQ0t1y1G8G/GG4pIeLm4m31i5CPZNdyT8RChSamCwUiyQNZyx/jJvIbb6S2pqmWIhQyh3kXwRNCXEIR3E+6a+HQzFX1Rv0OGyYuig5IGsWWBZoB4PcGFrI3sOrqwSAWN/Ck/PWmrmsZc4bzrN0jWFQ7WRZd0p3cQXyBQOA9n6hXeHRj31Z7ntodjEwEkIHfKzy19/EeZ1kOhv0Iyj+Q2GtREEKbvNmd9Cg== 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=0bqpUInC8QHYCsCjw57ck7Mi/15KPw+KIg1WOVQnYzw=; b=EzIO2IpjPfo+X7eQ5EcXEXvhT72zs4PBlBs6fS0Zf8a3A8qNFB8EWfVfRumsCBkpmr9V8+nf5QaNCTCC7GEX93YJ/bqVpWCLlP0FiI+B/b1+eap5/QUfLGjvM21a9TAa/64pqKyZkUVGioNp6uRJUpZFNjpHiFMDTWCBL1oos/LUpgLaFywpirylTQTdrZK9vR9SjiRQjq5yhTwZsUu1zpA1xeG+Ou9MnS9D4doQQ5KpIjZOw1adwTBrQ50Iu3EXpeO7cvlQ6Y5THCRe2QaDrFiCFgVe9sYwuGddkEKqH2QXc5yqAheEtAH/h92rMwEHAB29diM94axcqCY650ZJuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0bqpUInC8QHYCsCjw57ck7Mi/15KPw+KIg1WOVQnYzw=; b=imXzBTN5sGBTFpU5nIEdBq100xlHNEQtvhfD7AOfBmwQBECbpPTJUE0BbWa6o0meJ2hcWSOzxwc8UgWCXlVfq8lBuR5qgrn5g4991xg2xPokvDRFrKUQf63uTIPLdp2+iob4EahWPS/v9q5eIr1kzjapmHMSPWcqEveR1EZxxq8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:41:57 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:41:57 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 06/49] imx: move get_boot_device to common header Date: Mon, 27 Jun 2022 11:24:12 +0800 Message-Id: <20220627032455.28280-7-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 68105cf4-9c43-4476-7c48-08da57e69ab9 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wrl/tMnw/S63buMhPoG5ef5hDi2uX1vK2oelhtDO1+fG28cIhWosTW6lwkr9ez7AfVSZ5QHTcA+aPcy8lACvXdXEjz3ent6lzqj+l3IfQAzIuUOusUXm6LOqhCHaFBqBbZzv6ROY9ms/k3OrVioQ4C9DoYKOva50/JqvyLqYgier16L0YILfVImI5cK6oPxPKg8pTJBTV7fKvkTdjiRi0kcYc/RKkyPuDXU0T2bHtOlfqYpkX5quFm9nrUzvpzwY9AbvctvPfXHyJJw5KEZQ+7SkNhNxqMbMcudyR9Nsj4anq7jb13cnKJN13KF7GAuTV+IGLxC11qssPE/weChrHN0+nUv5pD4t/47xQHVeRvPJO3d07kfxAlTvC9/4XpRX7oPL2P4es/OETl+snwpmZhTYq0WMtVTaT9Q6tPCKZ0K0e0u5brgWi+TBOMs2OugXFZNJMG1GeTSvj4mC46US/HfXSbubnA41ym3hbbEovQPQFNYS20LNZ1FPdrMSrBwehUZmJA1hmvaZNtKyvQnXNOVtVv7RSA2CJyoZlB67PCsqYMpwrbQG2n0jFmfolivuzu08mmflqHgvyALbjxlaafM9BMf547VEYGv1/i23vTiiAf2zNU3wd0kxhLunnWTF0IzjHJsRKJW876xfnBfqGl6g/ZfMyaDkoQrWqWX2jpmXFTJizTA4vaLxjZHhK0KDBRvVaOW6dJLRweaNiZzjW+PvIVin23jPptPKNvbOMPkAMrY7tI2D61n1z3klst/Gj4VhPTOmnlsDM4cJ4PiqJ7JvA9g2BD6ex8O8PvKt5nc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: TMO9w4SvZZMN4zVlH/NdIy3ZDfMySJF+Yz9qzJPNy6VS0l0MpDNEdbM4G3fI8wlJ1ZA1v0O1NH6boezbAsfxUZOysJ1mJUyn3jWgnvI3xlY3G/y/vo2yeYxXA+24dnuJ88Ulv52cOFYqoE4oreHDn7LxTgEKpYDHuGpOS7gJMAco6/b85QdqxlyqZsDClx2+puX4T/UHgx/o5MvEjBq1pLyb/1ls3xIhA5xDwEkrJkqNOaj0SZgIMAjtcAhVP4NsjpuXb1f4yg8eJvoUcAIIVTXOM3BYlGEvc5+wgZRQ9DnZwyAjLCJgSpsotC7NKGcsAu1PxvviqTWNh7GkSiJ8t1knxmoHIDyNb2BovmOyusvVeiBDv8aOBXnGoS/hZ0Oz8IKG9P6t1IOzTrGBHzX1XMPB/Yxo0O+iV9N3kjdCmu35IwJD+xNg5Q/7bZS5yjqY4y5dp//YEcI5V2hVV40XaLrgHWVuBIEbQb0GYbZWz5+GtMJn/dabPZ6IfVwkbt1vSZ+4JYTw7TVlnovVAm1Ey0ylzZGsxfNOMkqBK8DFHTK4pASauMQeHcpLnqevCPr8BCSjzJdfphyHFSFQ2F5qLMi0m5FKl2BNbG9OMN8ZJy/92s/zD6lqeVjB4TopltbwBzkYagW9Hy1SE5jLuTXOM8nehwTXAnTW54PWHWDSl/stxGW/AeaPtBPuQq9+rnlGvRG8VBf6psR4vXhnUNQ1R9q6Ktw2PN4Kz22FzOcZiuTIBAnuCaP7RPmRPc+yaqO+qmXlhm0ILe7dGis0V7TS4zEf3VXMICf4xyd4vxPyZulG+C5TB3bcYJNwy6pqDqwT9wARjtpNB2nzBe9QmTwgBRzmSGEHVzTqihmw0JuxBdAmBOOa/z+46Lbt97VZQP27dHYi1PEwe2blNr995aJrKLdvwVuUOFGAcomml+13cIuL6Vs10N9QkUuxm6kwsAI9u2nwoH2U8uWmpmtj6eT68SF1CZAlZsdyh9AJcl9f99236sCU+gyjbc11wIL6zYa3UybcqIs8FnmlsgpBeAtwkldnZSeMcKRLNXzUGonRjGaIofuFFFL8RNxYqhdmeRBUneERAMN85PUYYfi+ZyYEEf6w2Ou+g966HAit6IJHiisgABfMr2hVCnScs1K67o/1HYr+q5G6ydPPB3trNQcuLeHdfLWlI0gVw99Stqo55INAMqRAFq+pM1BzFZOpQAOd+v3BpGtGXKZSGmtePxY4BcJmyHiTkjm6ZdvFD70Qwt8xrucT+Z5HqlfyeJ0Fs+KkQmqOconJpTcUujExTQuutIxIV08tDr5mqwIlNz7lzVSDvVsfOuRq1ZqslqNR3o7+mBEjQyzp+92x/cdaCF82O17MhwIsXe7cb/gND/WsUa4ZCNi6ruTXG/u5MIT2xFBprNH2SWT7SUvAptnVY4UI5oJbwNimjr8SsjFkzJER6jddr8kvsfJewms5UFHtZN+RB6eqnUQap1QBkDhx6dRad0752kZXdupphbwgGtzXEoWMOmYNXsNr1j+E1EcUEUF0zg0K99ov/TU4TnVOFzQ5ZldL5VrwY03jNiA0YeTWBkP+HxHmjWYxxWbHdVwEiSaC X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 68105cf4-9c43-4476-7c48-08da57e69ab9 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:41:57.8006 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 23QdsXWVI6VajtfQKuXF/25fOBbBkn5nFVQzy056dy3gA3ADlAa71ctyUl4pQwiLpS8KK1YUQpTo5A8AN20OjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Most i.MX implements get_boot_device, move it to common header to simplify code Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8/sys_proto.h | 1 - arch/arm/include/asm/arch-imx8m/sys_proto.h | 1 - arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 1 - arch/arm/include/asm/arch-mx7/sys_proto.h | 1 - arch/arm/include/asm/arch-mx7ulp/sys_proto.h | 1 - arch/arm/include/asm/mach-imx/sys_proto.h | 2 ++ 6 files changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm/include/asm/arch-imx8/sys_proto.h b/arch/arm/include/asm/arch-imx8/sys_proto.h index 6f1fc8f999d..d38f606e07e 100644 --- a/arch/arm/include/asm/arch-imx8/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8/sys_proto.h @@ -23,7 +23,6 @@ struct pass_over_info_t { extern unsigned long boot_pointer[]; void build_info(void); -enum boot_device get_boot_device(void); int print_bootinfo(void); int sc_pm_setup_uart(sc_rsrc_t uart_rsrc, sc_pm_clock_rate_t clk_rate); int imx8_power_domain_lookup_name(const char *name, diff --git a/arch/arm/include/asm/arch-imx8m/sys_proto.h b/arch/arm/include/asm/arch-imx8m/sys_proto.h index d328542ece2..f8854e77128 100644 --- a/arch/arm/include/asm/arch-imx8m/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8m/sys_proto.h @@ -12,6 +12,5 @@ void set_wdog_reset(struct wdog_regs *wdog); void enable_tzc380(void); void restore_boot_params(void); extern unsigned long rom_pointer[]; -enum boot_device get_boot_device(void); bool is_usb_boot(void); #endif diff --git a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h index 5f030eaa0ad..05859dfc2aa 100644 --- a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h @@ -15,7 +15,6 @@ ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev); enum bt_mode get_boot_mode(void); int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm); int xrdc_config_pdac_openacc(u32 bridge, u32 index); -enum boot_device get_boot_device(void); void set_lpav_qos(void); void load_lposc_fuse(void); bool m33_image_booted(void); diff --git a/arch/arm/include/asm/arch-mx7/sys_proto.h b/arch/arm/include/asm/arch-mx7/sys_proto.h index e46a02198d6..634736cc09c 100644 --- a/arch/arm/include/asm/arch-mx7/sys_proto.h +++ b/arch/arm/include/asm/arch-mx7/sys_proto.h @@ -8,6 +8,5 @@ #include void set_wdog_reset(struct wdog_regs *wdog); -enum boot_device get_boot_device(void); #endif /* __SYS_PROTO_IMX7_ */ diff --git a/arch/arm/include/asm/arch-mx7ulp/sys_proto.h b/arch/arm/include/asm/arch-mx7ulp/sys_proto.h index 0daa922fad9..7adf4720fec 100644 --- a/arch/arm/include/asm/arch-mx7ulp/sys_proto.h +++ b/arch/arm/include/asm/arch-mx7ulp/sys_proto.h @@ -8,5 +8,4 @@ #include -enum boot_device get_boot_device(void); #endif diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index fc5e5c66aad..cd69384d8ef 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -243,4 +243,6 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac); void enable_ca7_smp(void); #endif +enum boot_device get_boot_device(void); + #endif From patchwork Mon Jun 27 03:24:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648537 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=cb4ZhamT; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX8X1GwGz9sGp for ; Mon, 27 Jun 2022 12:43:08 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id EA56384464; Mon, 27 Jun 2022 04:42:10 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="cb4ZhamT"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AE33384474; Mon, 27 Jun 2022 04:42:06 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2086.outbound.protection.outlook.com [40.107.21.86]) (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 C383F84409 for ; Mon, 27 Jun 2022 04:42:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LamCJjl/oL6Tt927pf9YCMHjIEJw4jsGXqFi+IWtDCQyqvc//tyqqQUpcfk1rNCZIG+dpyt8w8cEMUtH0CfD4uXPq11BblvMcJa9MElrG0O2ogaOcLbNuVvwH64n0jIRlEaXXDCe24LvB+xeAugmX9idS9ynvsIqW4x8kFMQd2qm7HoPqfgsR14QcTDiuf3+BewwgkfuzmNt5Lx6SWWCHrSG9xNRdoVBZ0MTlGH8V5B0RuMZWGOlmLFZNbpXHMAiFZ8C2J7z+vb2fT31M/Z9oDOuLoFiKI2xdV9aBFPDQqnS/FoV1wFfncXGYLbPJKhkgn/r7yvZ075UsISyZ7vPGw== 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=kaBDOmcaoRRR57l+Untls89Koa4TiWf40zynO2pF6ts=; b=FjXWxVDo4oNFEXCVkG0mk0DZwIqeapbRHCjQvEfE4t49pJTzRG9Rvi9NrxNdvcZwjZE0Xm2fa+quHrtvsJc6qe+OFHb51n7BTK3wblf91rZ2EA+TdzyziagXKm1EANSVn2HiXvaplXtODOrqy7fx0cQIr2cwaorm3eknWQMWpWeSRR67GzTzEJ6cGNmN/HHbYvPfCT20ZJKEKK4HJHpJGfvCFKivKdNYzMBGuVCwG9xfyZqWiZ+NMGz/BV480i3DNhxIGSs5u0wCqzg4Ridgxbxwz+qxeu1dKLQpXptaSdp9OC0Vzx2ZgmHs7ZapfWWDmpq798+Z1ScaONojLfPYsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kaBDOmcaoRRR57l+Untls89Koa4TiWf40zynO2pF6ts=; b=cb4ZhamTuCN5MTvLng2l7sGFcd58wIr5lbxamC8+O1ZVnimsbenNYU/COId1dZlz41/Q7tCzvJTbvxThsITJYOSipGNwfs2YDEDaeEOybK9Wpstawgu92iaAdXiuGsi69kyNx9kDYwVXKkD2Ao4XYJ9j27QrYyPoPexAD6merDQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:01 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:01 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 07/49] imx: move get_boot_device to common file Date: Mon, 27 Jun 2022 11:24:13 +0800 Message-Id: <20220627032455.28280-8-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9418095-2531-489c-4a7e-08da57e69c88 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qGrckOKufPejDkU4GRqNn1rXMNqlq8lLDUd7ALrdpHK7pD5iRl2OiBT0dJyKYUqeCrIlSC+Y/0HQu4q7SWGgBd5LW3PquV5YIdZJepoMjeZ0YNuSopapHTow5RHmogG0w9kraEdw6lkZ85lp1l0K/xowxxArCSl8kGMIxYXYQ1KIZeS+oMnY+XjgFuWC0bxwDhdla75oi4a5s12j21Br8CSJZFTsQ49+a7OXcFWLOJU6imj7+YgLFrMx0syR6ccDWg0uMjCEyqp9RVQF3RSczeCMW5Pn0PyvU7s45vM7t5iEvbb0Gl+0Kpxsh1dE130tJm+bi5zUXWT2aCMpw6mbIvsucn9IghVCK+SKloBcN+KIjVk+8sXIy/yLFEhMc+Lm/497z4wJN3cIrEyJE4LsHr2+dNgMNgT7i2k4iJ2M0HVjQ15p6w4Sx8DR6WrQpdRnmYduv/QcrW0frHuMyL8AVsErsKpQ6PXSBvhwxYKZMG9C9jM5QThNCxJ34DEA+zfifu0MsHFv1IORbb2rjtvA89ANbDLeg23/tFbtbRUPkGeQEu8Ub69RRz68jLCGW/JNdvM45X1PzsIOU5kRlpDlaLJMR/SHfVrMHza9M4G08aNdAJiEoVAsVGr3Pnk1BBQhTPx8jvbakE1uGk+RijGIgxlDN+YcFe4KLU14vVKggHK+pAlrQ25urqKV3+TkTBDAaDPfdxggpsDCm98MaLWcRIFoOcFDvckEO9nDsyUpyBmH1xGaZrs+3xh8jNgxUbktPRyx1tYMG401TxOy3N9kGO10mmW6fbpjVCGfrY2zOlI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9WmlvKwwaQmUeEg9gYeXeLDyiDiTCcRcYfeBgaXQcR2rtpTCgcb839V+gUVGOJ6vPmLrg94o9RFxKuHx3AezzMDZw2bWsxw174jjiBZSlXpQpTgjxg+iFHhOLIrNaDIYzhZY7huWTKQh+hMcyy2iykBgvkZf4nTX/WIghukQAE5fsYqal4OYav34o4E4r0cChRLaU+7ZRivoypeJyxm1/ElnRHKBiHBt/hZA+4IlgP/+J3+w+CQEZvM6KEhNSl5SOWtJDjuymBn4yNNdQOFeFo9IaOdGVfKebSIIi4EGZ1LyPcaRg1LAd5YJH2v29eM7K2dpvV9oeFk2gk8WigqdkmR6kJTx4MR6b4xbjlkT5inYgkI2TXUDeIre+QekM6TAoMviZ9Y6abKGrOJCKnOjjmfZeBbPdV91XZmzR9B7bVr5baQaMcnXLGJUT4sAQx/wP2TuusmLfgF4qNjnqvY7MxV86Z4t02nPwqx0qNGQ6jIF7efhRYs4KDSSzsLNVpYOSD/YfgjEYDUq8ArxbnLYpOxr48NwwhIuc5ywx+h9HTV822DD4y7BjFpmDRs2IaI9MhR34XdrIOOMPhBU2tFoy4p7HvcizaldchFKCeD1CnsH5jfefyeKrtJzt4G1gbeHHRQ4bcqNbP0/NH2+jBnmY9Pypg/C3fHi2IJCRr+j+u+Wf5sD00oaZnJFO4dml+DdsGp/4H/jpZizq7a1NZDslR65Lm0doIG5ChFtzPyljgEfZbZ6gZ5BEw2sni1+cesPm7RnFB5vtVUol8KTBizgsyaueX3yf2j4KVTUgH/bQRAL6OOlA/Kvmsozbf1KBKxSN4yGBQzzASZXLedgu0UgZ3zpnAyCyqXaIToHGpuIhfwrszPoUnVID6lrVipnwiF9WQyoY61EChILK7zCl95n8bpglgUPN5ECt45+J6d1pEQITiBc1qXxKsDcIWrEOjMp4aaNX+8ltlwlHAQHOjvLvnErojacSVB3vB7aVNbmzs7r78uae6zNhs1w7zY0nbnbhC4noWox64wpLygVy3DoxDcwQYqqlQgBClnlJZMee0IAZqe9Vb7j7Cc2o3oyF6t5ro6PBvr/5MJDx5kCryuYR7dP12vO7ws3YwQrpFDh4aJPCKCNcLhloelcjTkm/cySDQyx7DedVa6bmk2C8e2Ze5xtp+jsPayZ8D36nh0jexoDEf8FOj1I55wyUr8d1QgJrmiMMRy0a7dHaVzHmZ5pdvlCZUTwilHP8k0EsOfv8Tu03fHTiLoagVOPBX90WUdEYeL8Si5iLkBdagtAUEL76iJUJwC3VUYOtnEZKuRYehLyCzQYGSCyPW/vMn2oSVG3HP1Crq4Z5BTghdeTKaE16nm59uDq7qu6FqaHHWqSZurMItLZ+6z3Mm1bWV7BPgPPsnxX7ps/T3QuxxY3C17oELsYhCpsLYZVwjhXJDcVrRs6MsTcZ7ciA65ErOZoau20YQOmh46VS0OFjPrR0jvcJJZ2K97MOtuQaR9e5f+TWOWGd1KMtV0JbebSZnHbbv9cGhL01UCn/OmMw+SYS6pmQuswEIhEl1nxv2hrrboHkT1fgVQRgDoittzg+8ug0xXK X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9418095-2531-489c-4a7e-08da57e69c88 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:00.9743 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Dw1JZwm6JC6mgrDSRp0pt/w+wwBxRGJU8/m5G3NFAIs6Sf/BOACV6m/4BN0DaXGcg7krqpSDyDIUYubVKyuL7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan i.MX8MN/P/ULP supports ROM API, they have almost same get_boot_device implementation, so move to a common file. And when support i.MX9, no need to include the other function copy. Since sys_proto.h is included in imx_romapi.c, there will be build warning for i.MX8M because wdog_regs not defined, so include imx-regs.h in i.MX8M sys_proro.h Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8m/sys_proto.h | 1 + arch/arm/mach-imx/Makefile | 1 + arch/arm/mach-imx/imx8m/soc.c | 47 ---------------- arch/arm/mach-imx/imx8ulp/soc.c | 44 --------------- arch/arm/mach-imx/imx_romapi.c | 60 +++++++++++++++++++++ 5 files changed, 62 insertions(+), 91 deletions(-) create mode 100644 arch/arm/mach-imx/imx_romapi.c diff --git a/arch/arm/include/asm/arch-imx8m/sys_proto.h b/arch/arm/include/asm/arch-imx8m/sys_proto.h index f8854e77128..55b46afaf78 100644 --- a/arch/arm/include/asm/arch-imx8m/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8m/sys_proto.h @@ -7,6 +7,7 @@ #define __ARCH_NMX8M_SYS_PROTO_H #include +#include void set_wdog_reset(struct wdog_regs *wdog); void enable_tzc380(void); diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index aa0b6447f14..c5be63dfe4f 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -242,4 +242,5 @@ obj-$(CONFIG_IMX8M) += imx8m/ obj-$(CONFIG_ARCH_IMX8) += imx8/ obj-$(CONFIG_ARCH_IMXRT) += imxrt/ +obj-$(CONFIG_IMX8MN)$(CONFIG_IMX8MP)$(CONFIG_IMX8ULP) += imx_romapi.o obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c index 59335356b57..d2a856f5410 100644 --- a/arch/arm/mach-imx/imx8m/soc.c +++ b/arch/arm/mach-imx/imx8m/soc.c @@ -599,53 +599,6 @@ int arch_cpu_init(void) #if defined(CONFIG_IMX8MN) || defined(CONFIG_IMX8MP) struct rom_api *g_rom_api = (struct rom_api *)0x980; - -enum boot_device get_boot_device(void) -{ - volatile gd_t *pgd = gd; - int ret; - u32 boot; - u16 boot_type; - u8 boot_instance; - enum boot_device boot_dev = SD1_BOOT; - - ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot, - ((uintptr_t)&boot) ^ QUERY_BT_DEV); - set_gd(pgd); - - if (ret != ROM_API_OKAY) { - puts("ROMAPI: failure at query_boot_info\n"); - return -1; - } - - boot_type = boot >> 16; - boot_instance = (boot >> 8) & 0xff; - - switch (boot_type) { - case BT_DEV_TYPE_SD: - boot_dev = boot_instance + SD1_BOOT; - break; - case BT_DEV_TYPE_MMC: - boot_dev = boot_instance + MMC1_BOOT; - break; - case BT_DEV_TYPE_NAND: - boot_dev = NAND_BOOT; - break; - case BT_DEV_TYPE_FLEXSPINOR: - boot_dev = QSPI_BOOT; - break; - case BT_DEV_TYPE_SPI_NOR: - boot_dev = SPI_NOR_BOOT; - break; - case BT_DEV_TYPE_USB: - boot_dev = USB_BOOT; - break; - default: - break; - } - - return boot_dev; -} #endif #if defined(CONFIG_IMX8M) diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c index 35020c9714d..529fda4594e 100644 --- a/arch/arm/mach-imx/imx8ulp/soc.c +++ b/arch/arm/mach-imx/imx8ulp/soc.c @@ -34,50 +34,6 @@ DECLARE_GLOBAL_DATA_PTR; struct rom_api *g_rom_api = (struct rom_api *)0x1980; -enum boot_device get_boot_device(void) -{ - volatile gd_t *pgd = gd; - int ret; - u32 boot; - u16 boot_type; - u8 boot_instance; - enum boot_device boot_dev = SD1_BOOT; - - ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot, - ((uintptr_t)&boot) ^ QUERY_BT_DEV); - set_gd(pgd); - - if (ret != ROM_API_OKAY) { - puts("ROMAPI: failure at query_boot_info\n"); - return -1; - } - - boot_type = boot >> 16; - boot_instance = (boot >> 8) & 0xff; - - switch (boot_type) { - case BT_DEV_TYPE_SD: - boot_dev = boot_instance + SD1_BOOT; - break; - case BT_DEV_TYPE_MMC: - boot_dev = boot_instance + MMC1_BOOT; - break; - case BT_DEV_TYPE_NAND: - boot_dev = NAND_BOOT; - break; - case BT_DEV_TYPE_FLEXSPINOR: - boot_dev = QSPI_BOOT; - break; - case BT_DEV_TYPE_USB: - boot_dev = USB_BOOT; - break; - default: - break; - } - - return boot_dev; -} - bool is_usb_boot(void) { return get_boot_device() == USB_BOOT; diff --git a/arch/arm/mach-imx/imx_romapi.c b/arch/arm/mach-imx/imx_romapi.c new file mode 100644 index 00000000000..3b2cc6935dc --- /dev/null +++ b/arch/arm/mach-imx/imx_romapi.c @@ -0,0 +1,60 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +extern struct rom_api *g_rom_api; + +enum boot_device get_boot_device(void) +{ + volatile gd_t *pgd = gd; + int ret; + u32 boot; + u16 boot_type; + u8 boot_instance; + enum boot_device boot_dev = SD1_BOOT; + + ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot, + ((uintptr_t)&boot) ^ QUERY_BT_DEV); + set_gd(pgd); + + if (ret != ROM_API_OKAY) { + puts("ROMAPI: failure at query_boot_info\n"); + return -1; + } + + boot_type = boot >> 16; + boot_instance = (boot >> 8) & 0xff; + + switch (boot_type) { + case BT_DEV_TYPE_SD: + boot_dev = boot_instance + SD1_BOOT; + break; + case BT_DEV_TYPE_MMC: + boot_dev = boot_instance + MMC1_BOOT; + break; + case BT_DEV_TYPE_NAND: + boot_dev = NAND_BOOT; + break; + case BT_DEV_TYPE_FLEXSPINOR: + boot_dev = QSPI_BOOT; + break; + case BT_DEV_TYPE_USB: + boot_dev = USB_BOOT; + break; + default: + break; + } + + return boot_dev; +} From patchwork Mon Jun 27 03:24:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648538 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=Pkh842ht; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX8l3TBTz9sGp for ; Mon, 27 Jun 2022 12:43:19 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 308A38438D; Mon, 27 Jun 2022 04:42:13 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Pkh842ht"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 627A483F4C; Mon, 27 Jun 2022 04:42:08 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2045.outbound.protection.outlook.com [40.107.21.45]) (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 2625484260 for ; Mon, 27 Jun 2022 04:42:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WG6uAMTWz/gkgOZ1IK21arb3liz2QYEd2MRCVUAErdEj7zhH/kk/jxFmhMnyIwaVyTtMKuVFVroHG5oPACLYC9g/XXvoeKC5l3Xq5Oy0VNdJT/y8fqw+WL6tdhPAYoljiIe3WM5wyHp6eYz9X/wonehkTFBQ4kYj5TmkP/Y859UUwQ/oS23eGk3MhPMpAAhaRJpur8fElxg0oQ+ZrYvSqXUrMHvmR0BPdscWzOH7VMx8s7+4Ztox2JJAw7X/jv2Cn8XrwNKEf2kCCDoHRuqpyTPxqqGHl5u+UDJSmholtQGkTF99aa6a01i0FhrTHJnMeLgiRRjzGuz5PflUk6EEuA== 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=xLlFd7m7aev1M7nZNZeUa238IhtAX3+2R7eDTesbVro=; b=mCQDf1vA6f7R1LDYp+q/Ei56isnzMRhWPlmvIzZPkjlU9tUH3DIcjAPuITvXV7hhUet71RKCO9k3UBQh7hZme/Nj8ebm4JzpV9zBX5eQszYxpj1ClweI17/SfnS5flIO9wz4ZlMNmAJP/pTfoLY7dSntjl6gMMdtTtINoqL2OhNgwcJnGylZ3ybn37uY4giWAH1ymSWoNn0tpoRN/EZwzKM2JBKM66NMolM2zza3QEfZMJ8KhEiPcc/Thuc5rKy8CdzAMaW2x8RmGJOq6TwlYOZPKNfe2im/1APbIR3a/a8vxHDjU3ej9CLRwos6fb3bNLv1HePA09swCjIgG/3bcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xLlFd7m7aev1M7nZNZeUa238IhtAX3+2R7eDTesbVro=; b=Pkh842htnlLgUu4L5KWFpWn0dOKvdeZLNiaI6BEili8w2gPcAH5kUfSTBESzz11x0zhml6C7C4Ffe55wQS6D7wDMCcz9lGrNU8l1qPUOPW5weRZvWNJlUF91VCh4G3gnLOMtuML03Um1g3QZ7P9kGEhQZBzZWUiDvLCXBbosg5Y= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:04 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:04 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 08/49] imx: add USB2_BOOT type Date: Mon, 27 Jun 2022 11:24:14 +0800 Message-Id: <20220627032455.28280-9-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 54861495-6ce7-4a9b-803d-08da57e69e67 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BRRjzVEzjyjlc6NXS2r2MzXs/xpFlw2Gc7+0bdqIPm83t2IPVcrO4k7s4Fq7UVcAwmzPnjt01Sro5JVI6/Rs1ZuIxhbld6DA+rOAn6I04SgGk0Fd4jzoUryKAobGNwSgQBnglqMJvbPeaWx956HoTXBYek/wiEwCz5s7E3BSgSvjPxmedcu6hwq8x2Osx4cNeNqSRyb5SxjwUgJpFktOlC9Cdh3Sr+83aV1YBF9iJOEht9b9rrSQmSplqjT0XQKriqPujZN1V9/zxsmDfoc69uHE0EJ9deHvq6k6tcQNk3237at7rv8JBYax2B3fk6H+sbTWhqrT+6meFiU1u3HD9AdTHhMmPVUsydWSl/auxKtn1auHBa2gGtcQHQ7m9q6pzTPE+6Rw0hFyVbMheuVhX8it1SAWFq2+dnsZG5NsaVV7EY6ke5hGnHfQlN61T82B9UFhzi0OR2IDCARD4Wr56XieBPNvRbg+5oaS1beNilInRDLeuuis5cRHd82hw7uO9tFSH9nbn5/TzWZ8g0w3cWXzstqUS7FvbRHQHvznWRriLKQyZfGjRWRM8/qhK5V9Q3SOfmvQKuKN3atqsgNLOPYZF9OlDBL9HaBTK+Rvx+9L2Q6io2swAYXV7k7op2FpFu6jEnNMhQMxVZ01j3AX0SufvFcPLrxGKrDTcanYhKa4iTu9pezLVhZwnJ9BRKvVWvVBNfPrdOe1MG940N4QTUTafJkSYr2gn8SgcxdqnpIWC8pJ5ykUGu1NGRkeZloSnkPZoG+O50/5ZCYY2CpH4YvJKYcMYnjZ3XDYKvubEjM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: j2kENa09AdEPo2xCshAExmg3uD+S5q5LEdTJTm7k9ZcNa34jfYznZoXtx217xa+WgN6EDBdBbhTb/ctqP4SoKYsbTDfwyg4C6asvkmrP56Q+s3whT4gAVGSyaTsP0J4P858Qe2JDSDBNv78Ou6/5ws1ezk3RU7owjqMYZLLyr/aVwLC7hiec4sncIlYlavzl+F8IIkqhnmpx6DqhRz+ze5vGtiLlyR8wRddFma+7EKBPUQdkFo7OxQkIsIbV8U6TWGKKyBAF/smTogEdpO83vBo0YXgWzcS2l+OBST9WsVqb0U+KYWsoMXFU+ta8GmobVbdUP32wJ3Elr3puv4MCSU9xgxur5YrKqvqLHUbLu2FywJxX3lUSaBXsKpwh9s+iuPXRELP5fWRVQJ4UzzsVUeY3BMNnsqMSXfTGdYv/o7Wc/An52hhczO6pB4cKM2LIecq7MpeQbx8ZgTrZDQT9KONj3A12qnaZVgrX+JunguUm+lw+cQsGrXxJshHP+4PlfdJApivth23UZeuR1NtHyjZSYFsnyAQAhl438161op6FFArf9ckmLOliQ4d0JDxBo+XkReDs3Ch8a84EF1XC0TUXHo2YFqCT3oZIlctHG4buVu6wFtl7XUJdchAHtrRsVeNJmI593OIj/VesK1KD6guAGhL/AcYUgWBK6ATMYBTK8kBvHgbLjcRp8qrpYYWUvbjFjyYWz8GH3bA5g4BTg8CIe0Tvtfgf4bzsdMaG6mSph8s6SY7FYHiEXAd6zg/v1i2n7Pe9ZdQc+9VkUbtxLnpfY6nnajML0aL8asEU6uuActVaVrWdc2f+OfslhMZS0ywkPtNMxerJGuxXM9tIovpuYvi6/5HFMqqX6zWz5W9uLMgrMrXOoBDFaqJmthgq87Fypy9K8BpNW244AICElz1+fPc6HJNjI5iqoY3RUhzVib+zf/HUWF2yftmaFEeSaZf+ZGTwhKLzg4E+heu6fs0vwyhXoMGyGOczOAyE6EUqaKZYTy6vRrbgVhT8GcocHSkQ7CTAKM6OhCiFOb5qDorq2C53uZeRVk+5oz7zc6IQm4bDcItxLQ8R8OsAhPq0xTtddZ2a/LGeaNpSM84SB/vDuiXMRSLZeaB99HHlBJbLN0hLF5Ydib7wNvdcUSqHieOGz5NtQeC45ZigdBm7EregygPYxQZlAGML+4tJktPPisALJ7/sGuN6NOtDEBuxGGfnqcIw3iQfRcYTGmGKHsRbq7/xmSOFE331ZlluRAoDTuuuq228WyGXueoWCqpLPOvIjnO0Uj3bX88TBpZmF7+yF/GWK04xc5gTivLPM7mvwed9qSY+YtHXNK5hP+y61kb7G2ka5qo959l5/fVopSTJq/NS3ZmJb2TQvINV7Lm9vJtPSM0AopyalR9kepqW7bood8zegx1Xg/9OkpDpKG4zYsRbiRQCPQayv2oDxx/1JzhlTqHUYODR6AYspuyxEDK4LW6ysSAU9JDAkZPyhvLTjw3DwRC3U8y+L7R9kosbFNrKD+DOgsMEGClKdjo8GOR88RjJSFCycQMi9ShyzLoYDDpR8ITkNorZkXiptpU03Qeb8iWuai9SNzxxHYIN X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54861495-6ce7-4a9b-803d-08da57e69e67 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:04.1004 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8i/S5dhggg6eJFYwJPSCHwpZkX/ctHDwdJcKsgyH8Qvf+KQq6pGfo/gSvyj5yyKOMXfNG9QHr5UqKJW82Xpp9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add USB2_BOOT type for i.MX8ULP and i.MX9 Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/boot_mode.h | 1 + arch/arm/mach-imx/imx_romapi.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/mach-imx/boot_mode.h b/arch/arm/include/asm/mach-imx/boot_mode.h index 6dc58559680..a568c443722 100644 --- a/arch/arm/include/asm/mach-imx/boot_mode.h +++ b/arch/arm/include/asm/mach-imx/boot_mode.h @@ -29,6 +29,7 @@ enum boot_device { QSPI_BOOT, FLEXSPI_BOOT, USB_BOOT, + USB2_BOOT, UNKNOWN_BOOT, BOOT_DEV_NUM = UNKNOWN_BOOT, }; diff --git a/arch/arm/mach-imx/imx_romapi.c b/arch/arm/mach-imx/imx_romapi.c index 3b2cc6935dc..0f94091fc53 100644 --- a/arch/arm/mach-imx/imx_romapi.c +++ b/arch/arm/mach-imx/imx_romapi.c @@ -50,7 +50,7 @@ enum boot_device get_boot_device(void) boot_dev = QSPI_BOOT; break; case BT_DEV_TYPE_USB: - boot_dev = USB_BOOT; + boot_dev = boot_instance + USB_BOOT; break; default: break; From patchwork Mon Jun 27 03:24:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648541 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=gGtG+H+2; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX9N3mf8z9sGp for ; Mon, 27 Jun 2022 12:43:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5912884490; Mon, 27 Jun 2022 04:42:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="gGtG+H+2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D230E8448C; Mon, 27 Jun 2022 04:42:25 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2057.outbound.protection.outlook.com [40.107.104.57]) (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 7A84F8447A for ; Mon, 27 Jun 2022 04:42:15 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nbX9sGK6+LFR/z0HdeWthYCSSZlVygBtThKjcl9p1RTOVFdtS+lcq0uZXlpN9azPpVyEBB53vUnpkd+M0dEBvFoygCh9HDGPz1IeRGkWkHghxM77PIa7j57tDuuX3GJj6bO3AH4eAli9Y59UsSwaqnEfiH0zlTafMCU1vYCy/8WACdr87KLZvxlgDn2h7qrBL/b7oQBO1MqVVmlq1P9EAK+IEMJCLNkhaUgXf9XQOJ73heX78qKcJhagl7z64pS6a9BmrnM3554EhWEqvdduss2/w8p88u5oXYTn8jtNJaRLOBhyNEVI6k26kuQ97yOXFJqhWG3vXClN6u0227dkCg== 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=FBorWmwtUicCK9o5a9LDo+MIU5xQdA9nGJasxeT54dw=; b=SCy5A8MI4HVaRNXPE06CWIQUrE3qicn6LzwEn0JX6BGglEs4k9i+2aZ+t/zlrujvwCArRkxPiVlptDAQk/d6Vet6hc6iD20h/oqZZYKlWCxteugngSizFzteoW/gtrEwpqjCUZUnvkvbfhxvzMdmiKh/sm1LSJf46BIFpKeun15G3cYS7GCjkxB9BSCfUFjOoZddzZvgkRagIAqr3F1xEnfyx9zwQDMgSM+c6SHCnkQU6f8XvzeBb8kT5hU06v+AcCaTW4QLCQ9lNlDO9TBGDB6VqRCAsRSMbdLEGN8BsWploMyX+9jkjqRERUS6UDG0UNtLuhQdS09xZxUe3oFPGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FBorWmwtUicCK9o5a9LDo+MIU5xQdA9nGJasxeT54dw=; b=gGtG+H+2EZLahX3iBAHmqoMGto1S2p5NLkXT+DjZCj8ub60mZlxSgVuS4K+Bar8YJvW4F4adc81Z0haK0xPjx95ySVW+SaBqcr5E3VhqaEhvB3+FXwF0AmrgPmzjn0dBB+kiKV0VE+4a0842+DBoNLaxgK4ZHdHryUssXBbWquk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:09 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:09 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Bharat Gooty , Rayagonda Kokatanur , "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 09/49] imx: add basic i.MX9 support Date: Mon, 27 Jun 2022 11:24:15 +0800 Message-Id: <20220627032455.28280-10-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8c2f5d3a-b243-4326-d056-08da57e6a0f9 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: VYxuaCk7W4//eEtzUMX1jfqmVi840Npf/bkLZ0JbtHnQWqD64oqH4yucXq3DiU9ULRhZxe3FtsFYpGT8FoxWbMmDEgYoqKWhV478kAw+9h3f5FPJ71mW19M6ZbONUZoGN6ZW35zwe36/ZivA14LrTl3pqBMM3AIIJ08KMvU4L2Y/znRSghmzaKJU254ggOGyVLbCrnjamlRE9i9fGvi2TVoQ8TBpsS3XTomv7smIP0q3wFhvwxPUnF44D3SK6iqHIzTorj0qElPYQpnSQ8TryytHyzSCYmkjPLXKPFG7Av1xa/8RlzTzkiiJUvCSV+FuOrXH4QPbNCbbNJdWsSYpX06WlcP2MvEghRGm1xNcX0LKqNS82Pb9adUAD2qRZYF8ZmaT5+rPv/HAxl66JGFtrwxr0FrFgTlccJcNBHEmGlGGU9cw1YLrdxqIqGo9FhYitSvlH/HM52uSOzxYHsh5boSl4Ce9qF+sc0t1fTOzSloi6t14BHQ4sNXZHTdC/EYKvILAQ3tK32DukzcgiuM8JHsswbW97OKq4mHDS1LUETdJUiFXxXJ2RMFyEd0fXYKs2UU4y+S/Pe8hxNMpr4KA++/+6jFdmCLMq4HtUbD/Uf50uv25GzizAqsA+SwQg5QrXRnbCGp6E6m2JSllAYd7eImEq8kS8nwwejsDJKIihJ/v38H5P1jJAng8TAikJMCJEaZrlY2pmKM8RbiMK/FBVhb/DTPg/vUx3UWKXuHvRZMSo747P4mgQWpk1wZKBvKG5Whp6gi8Sm89O8Vapd2eLx5AulneLCAjtUVn15dQ6aQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(30864003)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(110136005)(38350700002)(6666004)(26005)(579004)(559001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NJgdtWsqN6HzxATNZVi9vpNhjn/8UBQlxlP9pVe94LUlKoUvF3i3DIs0legQ2jQxMmCQ0Zep4hb9u8oVxdC/nLzLczrZLsWwc3ZTrsaSbg4vQPJYMJYzmwBhXK84vX5x2337kSuONpGbkWgJg4h6QmlKFEqz77L1jsi1XUqHfrIj9G0prkS6s26NRInB/xVGG92RKQw8bjHIttMJEHC3ez8OxWBPhpfJ8w7fY+CuZ+1DzrEDUrvPKhBLWZUUNwZzDr39vHE2OZFNF/Sd5TQHMOhPMWNH8gxQyQ0hS1Ul3hv+V4F3VbzKH1VKc1f9jy3UudFp2mmbp8eju7zrRTwPQ1ypg9DazGBkLC5zut/l8F8FLNfq52A5Kl3yvvOh2yFGWSKnpmgH8u9lZhwaBYf6VZdXyNhwUTpnPHoLBtid/x90OCgBgWMyZ2KwfYlzairOhlHFY+rXTMM0rnxK7uzjjNoIfc0aZOV4KRFmiASBFc+PrTOFCX0E7tw8J+1VjEehVOMJvtyRwEjHxWknTc9tKsMX8wr/XhEOCXsnDkNb29tM4betVhGvlXTOZyoEWSb+EIB4UhHTSMvOOoFG5uxXISXrHFkCAdbL0+JEd0GVGGcnGV1WbFvtBMEcRWDeJJl7i1AqXEigHxIYjXUfNSMsmUZCB4hsorxl5wVG/Xt2c5QcRqVtf1nwv6+kquUI7og1jthjOPPnePYBfh3ik08BxmTvJK+epFM5X5YxY1YCaYN6fOCZPCmBN1yhogoTx4EaszfmZdA+7FHDXcFM/tnmjVp1BRkZHeQU75p6QydTJv6l1vsUBt459wbHQneUyIFrtWKeLHrJEBH1m4JvdCL3mCupfj7ByCKObhuJfmKU18mREYqxgabhN9If0QYDtAL9zMjLF6anBzUeUGHl9dMsSmanludX0xQ0SW6W3DOBVVX1iAvmYF0E/2H/gLtPLkE0QaYOhn4of0NDSD7XfohwrpjMKGQKOUGHUmH36Um6HZq/9INdkkFp2fY5mPLGnVfMvryurMfPAx7wPzEhmLuwbeS49vg/M9drQXQmsqVdY1rrYe0OYgClybifW5cbeJhVBhuFZ8wirzf+U568jLCpUHa9NZzJodvs9qg+tyuXt2IMYZEiaYiWIodVBiSeM1WuflzAGxts7o8O68zK0+RhLahTbayFQ//ezoj+mOdpLYTg6BQ0d15kdU2UvnKgYXulgGIky6yG6VHeYuq2EEYb3lxGJock4zenAifoZz0R1rynriL77XQKUa0THczFlX8Ixix+3LDeaukdOU6yyH/18haeTr2TRr/0HVaSkUNugE4+EPNMppjVzZ0fSRdGNizgCbU+gcu2xf55xjytDVi4WhGLYTLkWpSdCjNBRGOnRgDYKePebW4/0jyBZL4ysL+7+5Lerjtfs9RqKcu+/Z4kVgdliGGpa6ZBAlkL44WtHxpN1u6FyNfPmWhTk0VnkOHFiPnaByrYr0o055tXerBT4TcY5XJJP+DWdOnLRTUIcWO7HmF73SfG4cbL1ggfqX/TLrpReIf8vTbrjuRo4jvVqEVKpN/9ib4SssQi0QYcG33fkSfDkFZIv6q8OSfSnLzC X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8c2f5d3a-b243-4326-d056-08da57e6a0f9 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:09.7570 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2m+SvmHT24qGcI4JVylMt4M44j0wB7xMozdShiIv4azE0VOucgVqGZTlmm9fJVW7o+bION2JjLjGIl85DqdYLg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add i.MX9 Kconfig and basic files for the new SoC Signed-off-by: Peng Fan --- arch/arm/Kconfig | 11 + arch/arm/include/asm/arch-imx/cpu.h | 2 + arch/arm/include/asm/arch-imx9/clock.h | 0 arch/arm/include/asm/arch-imx9/gpio.h | 0 arch/arm/include/asm/arch-imx9/imx-regs.h | 13 + arch/arm/include/asm/arch-imx9/imx93_pins.h | 729 ++++++++++++++++++++ arch/arm/include/asm/arch-imx9/sys_proto.h | 11 + arch/arm/include/asm/mach-imx/iomux-v3.h | 11 +- arch/arm/include/asm/mach-imx/sys_proto.h | 3 + arch/arm/mach-imx/Makefile | 11 +- arch/arm/mach-imx/imx9/Kconfig | 17 + arch/arm/mach-imx/imx9/Makefile | 6 + arch/arm/mach-imx/imx9/clock.c | 27 + arch/arm/mach-imx/imx9/lowlevel_init.S | 26 + arch/arm/mach-imx/imx9/soc.c | 127 ++++ arch/arm/mach-imx/spl.c | 2 +- 16 files changed, 991 insertions(+), 5 deletions(-) create mode 100644 arch/arm/include/asm/arch-imx9/clock.h create mode 100644 arch/arm/include/asm/arch-imx9/gpio.h create mode 100644 arch/arm/include/asm/arch-imx9/imx-regs.h create mode 100644 arch/arm/include/asm/arch-imx9/imx93_pins.h create mode 100644 arch/arm/include/asm/arch-imx9/sys_proto.h create mode 100644 arch/arm/mach-imx/imx9/Kconfig create mode 100644 arch/arm/mach-imx/imx9/Makefile create mode 100644 arch/arm/mach-imx/imx9/clock.c create mode 100644 arch/arm/mach-imx/imx9/lowlevel_init.S create mode 100644 arch/arm/mach-imx/imx9/soc.c diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index dab785efad5..12ec661ac3b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -925,6 +925,15 @@ config ARCH_IMX8ULP imply CMD_DM imply DM_EVENT +config ARCH_IMX9 + bool "NXP i.MX9 platform" + select ARM64 + select DM + select MACH_IMX + select SUPPORT_SPL + imply CMD_DM + imply DM_EVENT + config ARCH_IMXRT bool "NXP i.MXRT platform" select CPU_V7M @@ -2251,6 +2260,8 @@ source "arch/arm/mach-imx/imx8m/Kconfig" source "arch/arm/mach-imx/imx8ulp/Kconfig" +source "arch/arm/mach-imx/imx9/Kconfig" + source "arch/arm/mach-imx/imxrt/Kconfig" source "arch/arm/mach-imx/mxs/Kconfig" diff --git a/arch/arm/include/asm/arch-imx/cpu.h b/arch/arm/include/asm/arch-imx/cpu.h index 4f63803765e..d54e6e63352 100644 --- a/arch/arm/include/asm/arch-imx/cpu.h +++ b/arch/arm/include/asm/arch-imx/cpu.h @@ -59,6 +59,7 @@ #define MXC_CPU_MX7ULP 0xE1 /* Temporally hard code */ #define MXC_CPU_VF610 0xF6 /* dummy ID */ +#define MXC_CPU_IMX93 0xC1 /* dummy ID */ #define MXC_SOC_MX6 0x60 #define MXC_SOC_MX7 0x70 @@ -66,6 +67,7 @@ #define MXC_SOC_IMX8 0x90 /* dummy */ #define MXC_SOC_IMXRT 0xB0 /* dummy */ #define MXC_SOC_MX7ULP 0xE0 /* dummy */ +#define MXC_SOC_IMX9 0xC0 /* dummy */ #define CHIP_REV_1_0 0x10 #define CHIP_REV_1_1 0x11 diff --git a/arch/arm/include/asm/arch-imx9/clock.h b/arch/arm/include/asm/arch-imx9/clock.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arch/arm/include/asm/arch-imx9/gpio.h b/arch/arm/include/asm/arch-imx9/gpio.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h new file mode 100644 index 00000000000..2adbdadf03c --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX9_REGS_H__ +#define __ASM_ARCH_IMX9_REGS_H__ + +#define ARCH_MXC + +#define IOMUXC_BASE_ADDR 0x443C0000UL + +#endif diff --git a/arch/arm/include/asm/arch-imx9/imx93_pins.h b/arch/arm/include/asm/arch-imx9/imx93_pins.h new file mode 100644 index 00000000000..f13aef5619c --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/imx93_pins.h @@ -0,0 +1,729 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX93_PINS_H__ +#define __ASM_ARCH_IMX93_PINS_H__ + +#include + +enum { + MX93_PAD_DAP_TDI__JTAG_MUX_TDI = IOMUX_PAD(0x1B0, 0x0000, 0, 0x3D8, 0, 0), + MX93_PAD_DAP_TDI__MQS2_LEFT = IOMUX_PAD(0x1B0, 0x0000, 1, 0x0000, 0, 0), + MX93_PAD_DAP_TDI__CAN2_TX = IOMUX_PAD(0x1B0, 0x0000, 3, 0x0000, 0, 0), + MX93_PAD_DAP_TDI__FLEXIO2_FLEXIO30 = IOMUX_PAD(0x1B0, 0x0000, 4, 0x0000, 0, 0), + MX93_PAD_DAP_TDI__GPIO3_IO28 = IOMUX_PAD(0x1B0, 0x0000, 5, 0x0000, 0, 0), + MX93_PAD_DAP_TDI__LPUART5_RX = IOMUX_PAD(0x1B0, 0x0000, 6, 0x430, 0, 0), + + MX93_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS = IOMUX_PAD(0x1B4, 0x0004, 0, 0x3DC, 0, 0), + MX93_PAD_DAP_TMS_SWDIO__FLEXIO2_FLEXIO31 = IOMUX_PAD(0x1B4, 0x0004, 4, 0x0000, 0, 0), + MX93_PAD_DAP_TMS_SWDIO__GPIO3_IO29 = IOMUX_PAD(0x1B4, 0x0004, 5, 0x0000, 0, 0), + MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B = IOMUX_PAD(0x1B4, 0x0004, 6, 0x0000, 0, 0), + + MX93_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK = IOMUX_PAD(0x1B8, 0x0008, 0, 0x3D4, 0, 0), + MX93_PAD_DAP_TCLK_SWCLK__FLEXIO1_FLEXIO30 = IOMUX_PAD(0x1B8, 0x0008, 4, 0x0000, 0, 0), + MX93_PAD_DAP_TCLK_SWCLK__GPIO3_IO30 = IOMUX_PAD(0x1B8, 0x0008, 5, 0x0000, 0, 0), + MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B = IOMUX_PAD(0x1B8, 0x0008, 6, 0x42C, 0, 0), + + MX93_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO = IOMUX_PAD(0x1BC, 0x000C, 0, 0x0000, 0, 0), + MX93_PAD_DAP_TDO_TRACESWO__MQS2_RIGHT = IOMUX_PAD(0x1BC, 0x000C, 1, 0x0000, 0, 0), + MX93_PAD_DAP_TDO_TRACESWO__CAN2_RX = IOMUX_PAD(0x1BC, 0x000C, 3, 0x364, 0, 0), + MX93_PAD_DAP_TDO_TRACESWO__FLEXIO1_FLEXIO31 = IOMUX_PAD(0x1BC, 0x000C, 4, 0x0000, 0, 0), + MX93_PAD_DAP_TDO_TRACESWO__GPIO3_IO31 = IOMUX_PAD(0x1BC, 0x000C, 5, 0x0000, 0, 0), + MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX = IOMUX_PAD(0x1BC, 0x000C, 6, 0x434, 0, 0), + + MX93_PAD_GPIO_IO00__GPIO2_IO00 = IOMUX_PAD(0x1C0, 0x0010, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO00__LPI2C3_SDA = IOMUX_PAD(0x1C0, 0x0010, 1, 0x3E4, 0, 0), + MX93_PAD_GPIO_IO00__MEDIAMIX_CAM_CLK = IOMUX_PAD(0x1C0, 0x0010, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK = IOMUX_PAD(0x1C0, 0x0010, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO00__LPSPI6_PCS0 = IOMUX_PAD(0x1C0, 0x0010, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO00__LPUART5_TX = IOMUX_PAD(0x1C0, 0x0010, 5, 0x434, 1, 0), + MX93_PAD_GPIO_IO00__LPI2C5_SDA = IOMUX_PAD(0x1C0, 0x0010, 6, 0x3EC, 0, 0), + MX93_PAD_GPIO_IO00__FLEXIO1_FLEXIO00 = IOMUX_PAD(0x1C0, 0x0010, 7, 0x36C, 0, 0), + + MX93_PAD_GPIO_IO01__GPIO2_IO01 = IOMUX_PAD(0x1C4, 0x0014, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO01__LPI2C3_SCL = IOMUX_PAD(0x1C4, 0x0014, 1, 0x3E0, 0, 0), + MX93_PAD_GPIO_IO01__MEDIAMIX_CAM_DATA00 = IOMUX_PAD(0x1C4, 0x0014, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO01__MEDIAMIX_DISP_DE = IOMUX_PAD(0x1C4, 0x0014, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO01__LPSPI6_SIN = IOMUX_PAD(0x1C4, 0x0014, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO01__LPUART5_RX = IOMUX_PAD(0x1C4, 0x0014, 5, 0x430, 1, 0), + MX93_PAD_GPIO_IO01__LPI2C5_SCL = IOMUX_PAD(0x1C4, 0x0014, 6, 0x3E8, 0, 0), + MX93_PAD_GPIO_IO01__FLEXIO1_FLEXIO01 = IOMUX_PAD(0x1C4, 0x0014, 7, 0x370, 0, 0), + + MX93_PAD_GPIO_IO02__GPIO2_IO02 = IOMUX_PAD(0x1C8, 0x0018, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO02__LPI2C4_SDA = IOMUX_PAD(0x1C8, 0x0018, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO02__MEDIAMIX_CAM_VSYNC = IOMUX_PAD(0x1C8, 0x0018, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC = IOMUX_PAD(0x1C8, 0x0018, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO02__LPSPI6_SOUT = IOMUX_PAD(0x1C8, 0x0018, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO02__LPUART5_CTS_B = IOMUX_PAD(0x1C8, 0x0018, 5, 0x42C, 1, 0), + MX93_PAD_GPIO_IO02__LPI2C6_SDA = IOMUX_PAD(0x1C8, 0x0018, 6, 0x3F4, 0, 0), + MX93_PAD_GPIO_IO02__FLEXIO1_FLEXIO02 = IOMUX_PAD(0x1C8, 0x0018, 7, 0x374, 0, 0), + + MX93_PAD_GPIO_IO03__GPIO2_IO03 = IOMUX_PAD(0x1CC, 0x001C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__LPI2C4_SCL = IOMUX_PAD(0x1CC, 0x001C, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__MEDIAMIX_CAM_HSYNC = IOMUX_PAD(0x1CC, 0x001C, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC = IOMUX_PAD(0x1CC, 0x001C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__LPSPI6_SCK = IOMUX_PAD(0x1CC, 0x001C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__LPUART5_RTS_B = IOMUX_PAD(0x1CC, 0x001C, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO03__LPI2C6_SCL = IOMUX_PAD(0x1CC, 0x001C, 6, 0x3F0, 0, 0), + MX93_PAD_GPIO_IO03__FLEXIO1_FLEXIO03 = IOMUX_PAD(0x1CC, 0x001C, 7, 0x378, 0, 0), + + MX93_PAD_GPIO_IO04__GPIO2_IO04 = IOMUX_PAD(0x1D0, 0x0020, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__TPM3_CH0 = IOMUX_PAD(0x1D0, 0x0020, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__PDM_CLK = IOMUX_PAD(0x1D0, 0x0020, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA00 = IOMUX_PAD(0x1D0, 0x0020, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__LPSPI7_PCS0 = IOMUX_PAD(0x1D0, 0x0020, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__LPUART6_TX = IOMUX_PAD(0x1D0, 0x0020, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO04__LPI2C6_SDA = IOMUX_PAD(0x1D0, 0x0020, 6, 0x3F4, 1, 0), + MX93_PAD_GPIO_IO04__FLEXIO1_FLEXIO04 = IOMUX_PAD(0x1D0, 0x0020, 7, 0x37C, 0, 0), + + MX93_PAD_GPIO_IO05__GPIO2_IO05 = IOMUX_PAD(0x1D4, 0x0024, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO05__TPM4_CH0 = IOMUX_PAD(0x1D4, 0x0024, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO05__PDM_BIT_STREAM00 = IOMUX_PAD(0x1D4, 0x0024, 2, 0x438, 0, 0), + MX93_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA01 = IOMUX_PAD(0x1D4, 0x0024, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO05__LPSPI7_SIN = IOMUX_PAD(0x1D4, 0x0024, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO05__LPUART6_RX = IOMUX_PAD(0x1D4, 0x0024, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO05__LPI2C6_SCL = IOMUX_PAD(0x1D4, 0x0024, 6, 0x3F0, 1, 0), + MX93_PAD_GPIO_IO05__FLEXIO1_FLEXIO05 = IOMUX_PAD(0x1D4, 0x0024, 7, 0x380, 0, 0), + + MX93_PAD_GPIO_IO06__GPIO2_IO06 = IOMUX_PAD(0x1D8, 0x0028, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO06__TPM5_CH0 = IOMUX_PAD(0x1D8, 0x0028, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO06__PDM_BIT_STREAM01 = IOMUX_PAD(0x1D8, 0x0028, 2, 0x43C, 0, 0), + MX93_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA02 = IOMUX_PAD(0x1D8, 0x0028, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO06__LPSPI7_SOUT = IOMUX_PAD(0x1D8, 0x0028, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO06__LPUART6_CTS_B = IOMUX_PAD(0x1D8, 0x0028, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO06__LPI2C7_SDA = IOMUX_PAD(0x1D8, 0x0028, 6, 0x3FC, 0, 0), + MX93_PAD_GPIO_IO06__FLEXIO1_FLEXIO06 = IOMUX_PAD(0x1D8, 0x0028, 7, 0x384, 0, 0), + + MX93_PAD_GPIO_IO07__GPIO2_IO07 = IOMUX_PAD(0x1DC, 0x002C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__LPSPI3_PCS1 = IOMUX_PAD(0x1DC, 0x002C, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__MEDIAMIX_CAM_DATA01 = IOMUX_PAD(0x1DC, 0x002C, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA03 = IOMUX_PAD(0x1DC, 0x002C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__LPSPI7_SCK = IOMUX_PAD(0x1DC, 0x002C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__LPUART6_RTS_B = IOMUX_PAD(0x1DC, 0x002C, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO07__LPI2C7_SCL = IOMUX_PAD(0x1DC, 0x002C, 6, 0x3F8, 0, 0), + MX93_PAD_GPIO_IO07__FLEXIO1_FLEXIO07 = IOMUX_PAD(0x1DC, 0x002C, 7, 0x388, 0, 0), + + MX93_PAD_GPIO_IO08__GPIO2_IO08 = IOMUX_PAD(0x1E0, 0x0030, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__LPSPI3_PCS0 = IOMUX_PAD(0x1E0, 0x0030, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__MEDIAMIX_CAM_DATA02 = IOMUX_PAD(0x1E0, 0x0030, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA04 = IOMUX_PAD(0x1E0, 0x0030, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__TPM6_CH0 = IOMUX_PAD(0x1E0, 0x0030, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__LPUART7_TX = IOMUX_PAD(0x1E0, 0x0030, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO08__LPI2C7_SDA = IOMUX_PAD(0x1E0, 0x0030, 6, 0x3FC, 1, 0), + MX93_PAD_GPIO_IO08__FLEXIO1_FLEXIO08 = IOMUX_PAD(0x1E0, 0x0030, 7, 0x38C, 0, 0), + + MX93_PAD_GPIO_IO09__GPIO2_IO09 = IOMUX_PAD(0x1E4, 0x0034, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__LPSPI3_SIN = IOMUX_PAD(0x1E4, 0x0034, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__MEDIAMIX_CAM_DATA03 = IOMUX_PAD(0x1E4, 0x0034, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA05 = IOMUX_PAD(0x1E4, 0x0034, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__TPM3_EXTCLK = IOMUX_PAD(0x1E4, 0x0034, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__LPUART7_RX = IOMUX_PAD(0x1E4, 0x0034, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO09__LPI2C7_SCL = IOMUX_PAD(0x1E4, 0x0034, 6, 0x3F8, 1, 0), + MX93_PAD_GPIO_IO09__FLEXIO1_FLEXIO09 = IOMUX_PAD(0x1E4, 0x0034, 7, 0x390, 0, 0), + + MX93_PAD_GPIO_IO10__GPIO2_IO10 = IOMUX_PAD(0x1E8, 0x0038, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__LPSPI3_SOUT = IOMUX_PAD(0x1E8, 0x0038, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__MEDIAMIX_CAM_DATA04 = IOMUX_PAD(0x1E8, 0x0038, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA06 = IOMUX_PAD(0x1E8, 0x0038, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__TPM4_EXTCLK = IOMUX_PAD(0x1E8, 0x0038, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__LPUART7_CTS_B = IOMUX_PAD(0x1E8, 0x0038, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO10__LPI2C8_SDA = IOMUX_PAD(0x1E8, 0x0038, 6, 0x404, 0, 0), + MX93_PAD_GPIO_IO10__FLEXIO1_FLEXIO10 = IOMUX_PAD(0x1E8, 0x0038, 7, 0x394, 0, 0), + + MX93_PAD_GPIO_IO11__GPIO2_IO11 = IOMUX_PAD(0x1EC, 0x003C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__LPSPI3_SCK = IOMUX_PAD(0x1EC, 0x003C, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__MEDIAMIX_CAM_DATA05 = IOMUX_PAD(0x1EC, 0x003C, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA07 = IOMUX_PAD(0x1EC, 0x003C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__TPM5_EXTCLK = IOMUX_PAD(0x1EC, 0x003C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__LPUART7_RTS_B = IOMUX_PAD(0x1EC, 0x003C, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO11__LPI2C8_SCL = IOMUX_PAD(0x1EC, 0x003C, 6, 0x400, 0, 0), + MX93_PAD_GPIO_IO11__FLEXIO1_FLEXIO11 = IOMUX_PAD(0x1EC, 0x003C, 7, 0x398, 0, 0), + + MX93_PAD_GPIO_IO12__GPIO2_IO12 = IOMUX_PAD(0x1F0, 0x0040, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO12__TPM3_CH2 = IOMUX_PAD(0x1F0, 0x0040, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO12__PDM_BIT_STREAM02 = IOMUX_PAD(0x1F0, 0x0040, 2, 0x440, 0, 0), + MX93_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA08 = IOMUX_PAD(0x1F0, 0x0040, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO12__LPSPI8_PCS0 = IOMUX_PAD(0x1F0, 0x0040, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO12__LPUART8_TX = IOMUX_PAD(0x1F0, 0x0040, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO12__LPI2C8_SDA = IOMUX_PAD(0x1F0, 0x0040, 6, 0x404, 1, 0), + MX93_PAD_GPIO_IO12__SAI3_RX_SYNC = IOMUX_PAD(0x1F0, 0x0040, 7, 0x450, 0, 0), + + MX93_PAD_GPIO_IO13__GPIO2_IO13 = IOMUX_PAD(0x1F4, 0x0044, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO13__TPM4_CH2 = IOMUX_PAD(0x1F4, 0x0044, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO13__PDM_BIT_STREAM03 = IOMUX_PAD(0x1F4, 0x0044, 2, 0x444, 0, 0), + MX93_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA09 = IOMUX_PAD(0x1F4, 0x0044, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO13__LPSPI8_SIN = IOMUX_PAD(0x1F4, 0x0044, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO13__LPUART8_RX = IOMUX_PAD(0x1F4, 0x0044, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO13__LPI2C8_SCL = IOMUX_PAD(0x1F4, 0x0044, 6, 0x400, 1, 0), + MX93_PAD_GPIO_IO13__FLEXIO1_FLEXIO13 = IOMUX_PAD(0x1F4, 0x0044, 7, 0x39C, 0, 0), + + MX93_PAD_GPIO_IO14__GPIO2_IO14 = IOMUX_PAD(0x1F8, 0x0048, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO14__LPUART3_TX = IOMUX_PAD(0x1F8, 0x0048, 1, 0x41C, 0, 0), + MX93_PAD_GPIO_IO14__MEDIAMIX_CAM_DATA06 = IOMUX_PAD(0x1F8, 0x0048, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 = IOMUX_PAD(0x1F8, 0x0048, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO14__LPSPI8_SOUT = IOMUX_PAD(0x1F8, 0x0048, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO14__LPUART8_CTS_B = IOMUX_PAD(0x1F8, 0x0048, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO14__LPUART4_TX = IOMUX_PAD(0x1F8, 0x0048, 6, 0x428, 0, 0), + MX93_PAD_GPIO_IO14__FLEXIO1_FLEXIO14 = IOMUX_PAD(0x1F8, 0x0048, 7, 0x3A0, 0, 0), + + MX93_PAD_GPIO_IO15__GPIO2_IO15 = IOMUX_PAD(0x1FC, 0x004C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO15__LPUART3_RX = IOMUX_PAD(0x1FC, 0x004C, 1, 0x418, 0, 0), + MX93_PAD_GPIO_IO15__MEDIAMIX_CAM_DATA07 = IOMUX_PAD(0x1FC, 0x004C, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 = IOMUX_PAD(0x1FC, 0x004C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO15__LPSPI8_SCK = IOMUX_PAD(0x1FC, 0x004C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO15__LPUART8_RTS_B = IOMUX_PAD(0x1FC, 0x004C, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO15__LPUART4_RX = IOMUX_PAD(0x1FC, 0x004C, 6, 0x424, 0, 0), + MX93_PAD_GPIO_IO15__FLEXIO1_FLEXIO15 = IOMUX_PAD(0x1FC, 0x004C, 7, 0x3A4, 0, 0), + + MX93_PAD_GPIO_IO16__GPIO2_IO16 = IOMUX_PAD(0x200, 0x0050, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO16__SAI3_TX_BCLK = IOMUX_PAD(0x200, 0x0050, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO16__PDM_BIT_STREAM02 = IOMUX_PAD(0x200, 0x0050, 2, 0x440, 1, 0), + MX93_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 = IOMUX_PAD(0x200, 0x0050, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO16__LPUART3_CTS_B = IOMUX_PAD(0x200, 0x0050, 4, 0x414, 0, 0), + MX93_PAD_GPIO_IO16__LPSPI4_PCS2 = IOMUX_PAD(0x200, 0x0050, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO16__LPUART4_CTS_B = IOMUX_PAD(0x200, 0x0050, 6, 0x420, 0, 0), + MX93_PAD_GPIO_IO16__FLEXIO1_FLEXIO16 = IOMUX_PAD(0x200, 0x0050, 7, 0x3A8, 0, 0), + + MX93_PAD_GPIO_IO17__GPIO2_IO17 = IOMUX_PAD(0x204, 0x0054, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__SAI3_MCLK = IOMUX_PAD(0x204, 0x0054, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__MEDIAMIX_CAM_DATA08 = IOMUX_PAD(0x204, 0x0054, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 = IOMUX_PAD(0x204, 0x0054, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__LPUART3_RTS_B = IOMUX_PAD(0x204, 0x0054, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__LPSPI4_PCS1 = IOMUX_PAD(0x204, 0x0054, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__LPUART4_RTS_B = IOMUX_PAD(0x204, 0x0054, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO17__FLEXIO1_FLEXIO17 = IOMUX_PAD(0x204, 0x0054, 7, 0x3AC, 0, 0), + + MX93_PAD_GPIO_IO18__GPIO2_IO18 = IOMUX_PAD(0x208, 0x0058, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__SAI3_RX_BCLK = IOMUX_PAD(0x208, 0x0058, 1, 0x44C, 0, 0), + MX93_PAD_GPIO_IO18__MEDIAMIX_CAM_DATA09 = IOMUX_PAD(0x208, 0x0058, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 = IOMUX_PAD(0x208, 0x0058, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__LPSPI5_PCS0 = IOMUX_PAD(0x208, 0x0058, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__LPSPI4_PCS0 = IOMUX_PAD(0x208, 0x0058, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__TPM5_CH2 = IOMUX_PAD(0x208, 0x0058, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO18__FLEXIO1_FLEXIO18 = IOMUX_PAD(0x208, 0x0058, 7, 0x3B0, 0, 0), + + MX93_PAD_GPIO_IO19__GPIO2_IO19 = IOMUX_PAD(0x20C, 0x005C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO19__SAI3_RX_SYNC = IOMUX_PAD(0x20C, 0x005C, 1, 0x450, 1, 0), + MX93_PAD_GPIO_IO19__PDM_BIT_STREAM03 = IOMUX_PAD(0x20C, 0x005C, 2, 0x444, 1, 0), + MX93_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 = IOMUX_PAD(0x20C, 0x005C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO19__LPSPI5_SIN = IOMUX_PAD(0x20C, 0x005C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO19__LPSPI4_SIN = IOMUX_PAD(0x20C, 0x005C, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO19__TPM6_CH2 = IOMUX_PAD(0x20C, 0x005C, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO19__SAI3_TX_DATA00 = IOMUX_PAD(0x20C, 0x005C, 7, 0x0000, 0, 0), + + MX93_PAD_GPIO_IO20__GPIO2_IO20 = IOMUX_PAD(0x210, 0x0060, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__SAI3_RX_DATA00 = IOMUX_PAD(0x210, 0x0060, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__PDM_BIT_STREAM00 = IOMUX_PAD(0x210, 0x0060, 2, 0x438, 1, 0), + MX93_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 = IOMUX_PAD(0x210, 0x0060, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__LPSPI5_SOUT = IOMUX_PAD(0x210, 0x0060, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__LPSPI4_SOUT = IOMUX_PAD(0x210, 0x0060, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__TPM3_CH1 = IOMUX_PAD(0x210, 0x0060, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO20__FLEXIO1_FLEXIO20 = IOMUX_PAD(0x210, 0x0060, 7, 0x3B4, 0, 0), + + MX93_PAD_GPIO_IO21__GPIO2_IO21 = IOMUX_PAD(0x214, 0x0064, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__SAI3_TX_DATA00 = IOMUX_PAD(0x214, 0x0064, 1, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__PDM_CLK = IOMUX_PAD(0x214, 0x0064, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 = IOMUX_PAD(0x214, 0x0064, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__LPSPI5_SCK = IOMUX_PAD(0x214, 0x0064, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__LPSPI4_SCK = IOMUX_PAD(0x214, 0x0064, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__TPM4_CH1 = IOMUX_PAD(0x214, 0x0064, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO21__SAI3_RX_BCLK = IOMUX_PAD(0x214, 0x0064, 7, 0x44C, 1, 0), + + MX93_PAD_GPIO_IO22__GPIO2_IO22 = IOMUX_PAD(0x218, 0x0068, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO22__USDHC3_CLK = IOMUX_PAD(0x218, 0x0068, 1, 0x458, 0, 0), + MX93_PAD_GPIO_IO22__SPDIF_IN = IOMUX_PAD(0x218, 0x0068, 2, 0x454, 0, 0), + MX93_PAD_GPIO_IO22__MEDIAMIX_DISP_DATA18 = IOMUX_PAD(0x218, 0x0068, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO22__TPM5_CH1 = IOMUX_PAD(0x218, 0x0068, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO22__TPM6_EXTCLK = IOMUX_PAD(0x218, 0x0068, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO22__LPI2C5_SDA = IOMUX_PAD(0x218, 0x0068, 6, 0x3EC, 1, 0), + MX93_PAD_GPIO_IO22__FLEXIO1_FLEXIO22 = IOMUX_PAD(0x218, 0x0068, 7, 0x3B8, 0, 0), + + MX93_PAD_GPIO_IO23__GPIO2_IO23 = IOMUX_PAD(0x21C, 0x006C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO23__USDHC3_CMD = IOMUX_PAD(0x21C, 0x006C, 1, 0x45C, 0, 0), + MX93_PAD_GPIO_IO23__SPDIF_OUT = IOMUX_PAD(0x21C, 0x006C, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO23__MEDIAMIX_DISP_DATA19 = IOMUX_PAD(0x21C, 0x006C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO23__TPM6_CH1 = IOMUX_PAD(0x21C, 0x006C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO23__LPI2C5_SCL = IOMUX_PAD(0x21C, 0x006C, 6, 0x3E8, 1, 0), + MX93_PAD_GPIO_IO23__FLEXIO1_FLEXIO23 = IOMUX_PAD(0x21C, 0x006C, 7, 0x3BC, 0, 0), + + MX93_PAD_GPIO_IO24__GPIO2_IO24 = IOMUX_PAD(0x220, 0x0070, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO24__USDHC3_DATA0 = IOMUX_PAD(0x220, 0x0070, 1, 0x460, 0, 0), + MX93_PAD_GPIO_IO24__MEDIAMIX_DISP_DATA20 = IOMUX_PAD(0x220, 0x0070, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO24__TPM3_CH3 = IOMUX_PAD(0x220, 0x0070, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO24__JTAG_MUX_TDO = IOMUX_PAD(0x220, 0x0070, 5, 0x0000, 0, 0), + MX93_PAD_GPIO_IO24__LPSPI6_PCS1 = IOMUX_PAD(0x220, 0x0070, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO24__FLEXIO1_FLEXIO24 = IOMUX_PAD(0x220, 0x0070, 7, 0x3C0, 0, 0), + + MX93_PAD_GPIO_IO25__GPIO2_IO25 = IOMUX_PAD(0x224, 0x0074, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO25__USDHC3_DATA1 = IOMUX_PAD(0x224, 0x0074, 1, 0x464, 0, 0), + MX93_PAD_GPIO_IO25__CAN2_TX = IOMUX_PAD(0x224, 0x0074, 2, 0x0000, 0, 0), + MX93_PAD_GPIO_IO25__MEDIAMIX_DISP_DATA21 = IOMUX_PAD(0x224, 0x0074, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO25__TPM4_CH3 = IOMUX_PAD(0x224, 0x0074, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO25__JTAG_MUX_TCK = IOMUX_PAD(0x224, 0x0074, 5, 0x3D4, 1, 0), + MX93_PAD_GPIO_IO25__LPSPI7_PCS1 = IOMUX_PAD(0x224, 0x0074, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO25__FLEXIO1_FLEXIO25 = IOMUX_PAD(0x224, 0x0074, 7, 0x3C4, 0, 0), + + MX93_PAD_GPIO_IO26__GPIO2_IO26 = IOMUX_PAD(0x228, 0x0078, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO26__USDHC3_DATA2 = IOMUX_PAD(0x228, 0x0078, 1, 0x468, 0, 0), + MX93_PAD_GPIO_IO26__PDM_BIT_STREAM01 = IOMUX_PAD(0x228, 0x0078, 2, 0x43C, 1, 0), + MX93_PAD_GPIO_IO26__MEDIAMIX_DISP_DATA22 = IOMUX_PAD(0x228, 0x0078, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO26__TPM5_CH3 = IOMUX_PAD(0x228, 0x0078, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO26__JTAG_MUX_TDI = IOMUX_PAD(0x228, 0x0078, 5, 0x3D8, 1, 0), + MX93_PAD_GPIO_IO26__LPSPI8_PCS1 = IOMUX_PAD(0x228, 0x0078, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO26__SAI3_TX_SYNC = IOMUX_PAD(0x228, 0x0078, 7, 0x0000, 0, 0), + + MX93_PAD_GPIO_IO27__GPIO2_IO27 = IOMUX_PAD(0x22C, 0x007C, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO27__USDHC3_DATA3 = IOMUX_PAD(0x22C, 0x007C, 1, 0x46C, 0, 0), + MX93_PAD_GPIO_IO27__CAN2_RX = IOMUX_PAD(0x22C, 0x007C, 2, 0x364, 1, 0), + MX93_PAD_GPIO_IO27__MEDIAMIX_DISP_DATA23 = IOMUX_PAD(0x22C, 0x007C, 3, 0x0000, 0, 0), + MX93_PAD_GPIO_IO27__TPM6_CH3 = IOMUX_PAD(0x22C, 0x007C, 4, 0x0000, 0, 0), + MX93_PAD_GPIO_IO27__JTAG_MUX_TMS = IOMUX_PAD(0x22C, 0x007C, 5, 0x3DC, 1, 0), + MX93_PAD_GPIO_IO27__LPSPI5_PCS1 = IOMUX_PAD(0x22C, 0x007C, 6, 0x0000, 0, 0), + MX93_PAD_GPIO_IO27__FLEXIO1_FLEXIO27 = IOMUX_PAD(0x22C, 0x007C, 7, 0x3C8, 0, 0), + + MX93_PAD_GPIO_IO28__GPIO2_IO28 = IOMUX_PAD(0x230, 0x0080, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO28__LPI2C3_SDA = IOMUX_PAD(0x230, 0x0080, 1, 0x3E4, 1, 0), + MX93_PAD_GPIO_IO28__FLEXIO1_FLEXIO28 = IOMUX_PAD(0x230, 0x0080, 7, 0x0000, 0, 0), + + MX93_PAD_GPIO_IO29__GPIO2_IO29 = IOMUX_PAD(0x234, 0x0084, 0, 0x0000, 0, 0), + MX93_PAD_GPIO_IO29__LPI2C3_SCL = IOMUX_PAD(0x234, 0x0084, 1, 0x3E0, 1, 0), + MX93_PAD_GPIO_IO29__FLEXIO1_FLEXIO29 = IOMUX_PAD(0x234, 0x0084, 7, 0x0000, 0, 0), + + MX93_PAD_CCM_CLKO1__CCMSRCGPCMIX_CLKO1 = IOMUX_PAD(0x238, 0x0088, 0, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO1__FLEXIO1_FLEXIO26 = IOMUX_PAD(0x238, 0x0088, 4, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO1__GPIO3_IO26 = IOMUX_PAD(0x238, 0x0088, 5, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO2__GPIO3_IO27 = IOMUX_PAD(0x23C, 0x008C, 5, 0x0000, 0, 0), + + MX93_PAD_CCM_CLKO2__CCMSRCGPCMIX_CLKO2 = IOMUX_PAD(0x23C, 0x008C, 0, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO2__FLEXIO1_FLEXIO27 = IOMUX_PAD(0x23C, 0x008C, 4, 0x3C8, 1, 0), + + MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3 = IOMUX_PAD(0x240, 0x0090, 0, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO3__FLEXIO2_FLEXIO28 = IOMUX_PAD(0x240, 0x0090, 4, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO3__GPIO4_IO28 = IOMUX_PAD(0x240, 0x0090, 5, 0x0000, 0, 0), + + MX93_PAD_CCM_CLKO4__CCMSRCGPCMIX_CLKO4 = IOMUX_PAD(0x244, 0x0094, 0, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO4__FLEXIO2_FLEXIO29 = IOMUX_PAD(0x244, 0x0094, 4, 0x0000, 0, 0), + MX93_PAD_CCM_CLKO4__GPIO4_IO29 = IOMUX_PAD(0x244, 0x0094, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_MDC__ENET_QOS_MDC = IOMUX_PAD(0x248, 0x0098, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_MDC__LPUART3_DCB_B = IOMUX_PAD(0x248, 0x0098, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_MDC__I3C2_SCL = IOMUX_PAD(0x248, 0x0098, 2, 0x3CC, 0, 0), + MX93_PAD_ENET1_MDC__HSIOMIX_OTG_ID1 = IOMUX_PAD(0x248, 0x0098, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_MDC__FLEXIO2_FLEXIO00 = IOMUX_PAD(0x248, 0x0098, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_MDC__GPIO4_IO00 = IOMUX_PAD(0x248, 0x0098, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO = IOMUX_PAD(0x24C, 0x009C, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_MDIO__LPUART3_RIN_B = IOMUX_PAD(0x24C, 0x009C, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_MDIO__I3C2_SDA = IOMUX_PAD(0x24C, 0x009C, 2, 0x3D0, 0, 0), + MX93_PAD_ENET1_MDIO__HSIOMIX_OTG_PWR1 = IOMUX_PAD(0x24C, 0x009C, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_MDIO__FLEXIO2_FLEXIO01 = IOMUX_PAD(0x24C, 0x009C, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_MDIO__GPIO4_IO01 = IOMUX_PAD(0x24C, 0x009C, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 = IOMUX_PAD(0x250, 0x00A0, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TD3__CAN2_TX = IOMUX_PAD(0x250, 0x00A0, 2, 0x0000, 0, 0), + MX93_PAD_ENET1_TD3__HSIOMIX_OTG_ID2 = IOMUX_PAD(0x250, 0x00A0, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_TD3__FLEXIO2_FLEXIO02 = IOMUX_PAD(0x250, 0x00A0, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TD3__GPIO4_IO02 = IOMUX_PAD(0x250, 0x00A0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 = IOMUX_PAD(0x254, 0x00A4, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK = IOMUX_PAD(0x254, 0x00A4, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_TD2__CAN2_RX = IOMUX_PAD(0x254, 0x00A4, 2, 0x364, 2, 0), + MX93_PAD_ENET1_TD2__HSIOMIX_OTG_OC2 = IOMUX_PAD(0x254, 0x00A4, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_TD2__FLEXIO2_FLEXIO03 = IOMUX_PAD(0x254, 0x00A4, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TD2__GPIO4_IO03 = IOMUX_PAD(0x254, 0x00A4, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 = IOMUX_PAD(0x258, 0x00A8, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__LPUART3_RTS_B = IOMUX_PAD(0x258, 0x00A8, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__I3C2_PUR = IOMUX_PAD(0x258, 0x00A8, 2, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__HSIOMIX_OTG_OC1 = IOMUX_PAD(0x258, 0x00A8, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__FLEXIO2_FLEXIO04 = IOMUX_PAD(0x258, 0x00A8, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__GPIO4_IO04 = IOMUX_PAD(0x258, 0x00A8, 5, 0x0000, 0, 0), + MX93_PAD_ENET1_TD1__I3C2_PUR_B = IOMUX_PAD(0x258, 0x00A8, 6, 0x0000, 0, 0), + + MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 = IOMUX_PAD(0x25C, 0x00AC, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TD0__LPUART3_TX = IOMUX_PAD(0x25C, 0x00AC, 1, 0x41C, 1, 0), + MX93_PAD_ENET1_TD0__FLEXIO2_FLEXIO05 = IOMUX_PAD(0x25C, 0x00AC, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TD0__GPIO4_IO05 = IOMUX_PAD(0x25C, 0x00AC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL = IOMUX_PAD(0x260, 0x00B0, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TX_CTL__LPUART3_DTR_B = IOMUX_PAD(0x260, 0x00B0, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_TX_CTL__FLEXIO2_FLEXIO06 = IOMUX_PAD(0x260, 0x00B0, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TX_CTL__GPIO4_IO06 = IOMUX_PAD(0x260, 0x00B0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK = IOMUX_PAD(0x264, 0x00B4, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_TXC__ENET_QOS_TX_ER = IOMUX_PAD(0x264, 0x00B4, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_TXC__FLEXIO2_FLEXIO07 = IOMUX_PAD(0x264, 0x00B4, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_TXC__GPIO4_IO07 = IOMUX_PAD(0x264, 0x00B4, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL = IOMUX_PAD(0x268, 0x00B8, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RX_CTL__LPUART3_DSR_B = IOMUX_PAD(0x268, 0x00B8, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_RX_CTL__HSIOMIX_OTG_PWR2 = IOMUX_PAD(0x268, 0x00B8, 3, 0x0000, 0, 0), + MX93_PAD_ENET1_RX_CTL__FLEXIO2_FLEXIO08 = IOMUX_PAD(0x268, 0x00B8, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RX_CTL__GPIO4_IO08 = IOMUX_PAD(0x268, 0x00B8, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK = IOMUX_PAD(0x26C, 0x00BC, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER = IOMUX_PAD(0x26C, 0x00BC, 1, 0x0000, 0, 0), + MX93_PAD_ENET1_RXC__FLEXIO2_FLEXIO09 = IOMUX_PAD(0x26C, 0x00BC, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RXC__GPIO4_IO09 = IOMUX_PAD(0x26C, 0x00BC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 = IOMUX_PAD(0x270, 0x00C0, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RD0__LPUART3_RX = IOMUX_PAD(0x270, 0x00C0, 1, 0x418, 1, 0), + MX93_PAD_ENET1_RD0__FLEXIO2_FLEXIO10 = IOMUX_PAD(0x270, 0x00C0, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RD0__GPIO4_IO10 = IOMUX_PAD(0x270, 0x00C0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 = IOMUX_PAD(0x274, 0x00C4, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RD1__LPUART3_CTS_B = IOMUX_PAD(0x274, 0x00C4, 1, 0x414, 1, 0), + MX93_PAD_ENET1_RD1__LPTMR2_ALT1 = IOMUX_PAD(0x274, 0x00C4, 3, 0x408, 0, 0), + MX93_PAD_ENET1_RD1__FLEXIO2_FLEXIO11 = IOMUX_PAD(0x274, 0x00C4, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RD1__GPIO4_IO11 = IOMUX_PAD(0x274, 0x00C4, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 = IOMUX_PAD(0x278, 0x00C8, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RD2__LPTMR2_ALT2 = IOMUX_PAD(0x278, 0x00C8, 3, 0x40C, 0, 0), + MX93_PAD_ENET1_RD2__FLEXIO2_FLEXIO12 = IOMUX_PAD(0x278, 0x00C8, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RD2__GPIO4_IO12 = IOMUX_PAD(0x278, 0x00C8, 5, 0x0000, 0, 0), + + MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 = IOMUX_PAD(0x27C, 0x00CC, 0, 0x0000, 0, 0), + MX93_PAD_ENET1_RD3__FLEXSPI1_TESTER_TRIGGER = IOMUX_PAD(0x27C, 0x00CC, 2, 0x0000, 0, 0), + MX93_PAD_ENET1_RD3__LPTMR2_ALT3 = IOMUX_PAD(0x27C, 0x00CC, 3, 0x410, 0, 0), + MX93_PAD_ENET1_RD3__FLEXIO2_FLEXIO13 = IOMUX_PAD(0x27C, 0x00CC, 4, 0x0000, 0, 0), + MX93_PAD_ENET1_RD3__GPIO4_IO13 = IOMUX_PAD(0x27C, 0x00CC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_MDC__ENET1_MDC = IOMUX_PAD(0x280, 0x00D0, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_MDC__LPUART4_DCB_B = IOMUX_PAD(0x280, 0x00D0, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_MDC__SAI2_RX_SYNC = IOMUX_PAD(0x280, 0x00D0, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_MDC__FLEXIO2_FLEXIO14 = IOMUX_PAD(0x280, 0x00D0, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_MDC__GPIO4_IO14 = IOMUX_PAD(0x280, 0x00D0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_MDIO__ENET1_MDIO = IOMUX_PAD(0x284, 0x00D4, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_MDIO__LPUART4_RIN_B = IOMUX_PAD(0x284, 0x00D4, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_MDIO__SAI2_RX_BCLK = IOMUX_PAD(0x284, 0x00D4, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_MDIO__FLEXIO2_FLEXIO15 = IOMUX_PAD(0x284, 0x00D4, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_MDIO__GPIO4_IO15 = IOMUX_PAD(0x284, 0x00D4, 5, 0x0000, 0, 0), + MX93_PAD_ENET2_TD3__SAI2_RX_DATA00 = IOMUX_PAD(0x288, 0x00D8, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TD3__FLEXIO2_FLEXIO16 = IOMUX_PAD(0x288, 0x00D8, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TD3__GPIO4_IO16 = IOMUX_PAD(0x288, 0x00D8, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 = IOMUX_PAD(0x288, 0x00D8, 0, 0x0000, 0, 0), + + MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 = IOMUX_PAD(0x28C, 0x00DC, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_TD2__ENET1_TX_CLK = IOMUX_PAD(0x28C, 0x00DC, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_TD2__SAI2_RX_DATA01 = IOMUX_PAD(0x28C, 0x00DC, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TD2__FLEXIO2_FLEXIO17 = IOMUX_PAD(0x28C, 0x00DC, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TD2__GPIO4_IO17 = IOMUX_PAD(0x28C, 0x00DC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 = IOMUX_PAD(0x290, 0x00E0, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_TD1__LPUART4_RTS_B = IOMUX_PAD(0x290, 0x00E0, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_TD1__SAI2_RX_DATA02 = IOMUX_PAD(0x290, 0x00E0, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TD1__FLEXIO2_FLEXIO18 = IOMUX_PAD(0x290, 0x00E0, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TD1__GPIO4_IO18 = IOMUX_PAD(0x290, 0x00E0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 = IOMUX_PAD(0x294, 0x00E4, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_TD0__LPUART4_TX = IOMUX_PAD(0x294, 0x00E4, 1, 0x428, 1, 0), + MX93_PAD_ENET2_TD0__SAI2_RX_DATA03 = IOMUX_PAD(0x294, 0x00E4, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TD0__FLEXIO2_FLEXIO19 = IOMUX_PAD(0x294, 0x00E4, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TD0__GPIO4_IO19 = IOMUX_PAD(0x294, 0x00E4, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL = IOMUX_PAD(0x298, 0x00E8, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_TX_CTL__LPUART4_DTR_B = IOMUX_PAD(0x298, 0x00E8, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_TX_CTL__SAI2_TX_SYNC = IOMUX_PAD(0x298, 0x00E8, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TX_CTL__FLEXIO2_FLEXIO20 = IOMUX_PAD(0x298, 0x00E8, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TX_CTL__GPIO4_IO20 = IOMUX_PAD(0x298, 0x00E8, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC = IOMUX_PAD(0x29C, 0x00EC, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_TXC__ENET1_TX_ER = IOMUX_PAD(0x29C, 0x00EC, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_TXC__SAI2_TX_BCLK = IOMUX_PAD(0x29C, 0x00EC, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_TXC__FLEXIO2_FLEXIO21 = IOMUX_PAD(0x29C, 0x00EC, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_TXC__GPIO4_IO21 = IOMUX_PAD(0x29C, 0x00EC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL = IOMUX_PAD(0x2A0, 0x00F0, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RX_CTL__LPUART4_DSR_B = IOMUX_PAD(0x2A0, 0x00F0, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_RX_CTL__SAI2_TX_DATA00 = IOMUX_PAD(0x2A0, 0x00F0, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_RX_CTL__FLEXIO2_FLEXIO22 = IOMUX_PAD(0x2A0, 0x00F0, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RX_CTL__GPIO4_IO22 = IOMUX_PAD(0x2A0, 0x00F0, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC = IOMUX_PAD(0x2A4, 0x00F4, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RXC__ENET1_RX_ER = IOMUX_PAD(0x2A4, 0x00F4, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_RXC__SAI2_TX_DATA01 = IOMUX_PAD(0x2A4, 0x00F4, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_RXC__FLEXIO2_FLEXIO23 = IOMUX_PAD(0x2A4, 0x00F4, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RXC__GPIO4_IO23 = IOMUX_PAD(0x2A4, 0x00F4, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 = IOMUX_PAD(0x2A8, 0x00F8, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RD0__LPUART4_RX = IOMUX_PAD(0x2A8, 0x00F8, 1, 0x424, 1, 0), + MX93_PAD_ENET2_RD0__SAI2_TX_DATA02 = IOMUX_PAD(0x2A8, 0x00F8, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_RD0__FLEXIO2_FLEXIO24 = IOMUX_PAD(0x2A8, 0x00F8, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RD0__GPIO4_IO24 = IOMUX_PAD(0x2A8, 0x00F8, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 = IOMUX_PAD(0x2AC, 0x00FC, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RD1__SPDIF_IN = IOMUX_PAD(0x2AC, 0x00FC, 1, 0x454, 1, 0), + MX93_PAD_ENET2_RD1__SAI2_TX_DATA03 = IOMUX_PAD(0x2AC, 0x00FC, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_RD1__FLEXIO2_FLEXIO25 = IOMUX_PAD(0x2AC, 0x00FC, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RD1__GPIO4_IO25 = IOMUX_PAD(0x2AC, 0x00FC, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 = IOMUX_PAD(0x2B0, 0x100, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RD2__LPUART4_CTS_B = IOMUX_PAD(0x2B0, 0x100, 1, 0x420, 1, 0), + MX93_PAD_ENET2_RD2__SAI2_MCLK = IOMUX_PAD(0x2B0, 0x100, 2, 0x0000, 0, 0), + MX93_PAD_ENET2_RD2__MQS2_RIGHT = IOMUX_PAD(0x2B0, 0x100, 3, 0x0000, 0, 0), + MX93_PAD_ENET2_RD2__FLEXIO2_FLEXIO26 = IOMUX_PAD(0x2B0, 0x100, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RD2__GPIO4_IO26 = IOMUX_PAD(0x2B0, 0x100, 5, 0x0000, 0, 0), + + MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 = IOMUX_PAD(0x2B4, 0x104, 0, 0x0000, 0, 0), + MX93_PAD_ENET2_RD3__SPDIF_OUT = IOMUX_PAD(0x2B4, 0x104, 1, 0x0000, 0, 0), + MX93_PAD_ENET2_RD3__SPDIF_IN = IOMUX_PAD(0x2B4, 0x104, 2, 0x454, 2, 0), + MX93_PAD_ENET2_RD3__MQS2_LEFT = IOMUX_PAD(0x2B4, 0x104, 3, 0x0000, 0, 0), + MX93_PAD_ENET2_RD3__FLEXIO2_FLEXIO27 = IOMUX_PAD(0x2B4, 0x104, 4, 0x0000, 0, 0), + MX93_PAD_ENET2_RD3__GPIO4_IO27 = IOMUX_PAD(0x2B4, 0x104, 5, 0x0000, 0, 0), + MX93_PAD_SD1_CLK__FLEXIO1_FLEXIO08 = IOMUX_PAD(0x2B8, 0x108, 4, 0x38C, 1, 0), + MX93_PAD_SD1_CLK__GPIO3_IO08 = IOMUX_PAD(0x2B8, 0x108, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_CLK__USDHC1_CLK = IOMUX_PAD(0x2B8, 0x108, 0, 0x0000, 0, 0), + + MX93_PAD_SD1_CMD__USDHC1_CMD = IOMUX_PAD(0x2BC, 0x10C, 0, 0x0000, 0, 0), + MX93_PAD_SD1_CMD__FLEXIO1_FLEXIO09 = IOMUX_PAD(0x2BC, 0x10C, 4, 0x390, 1, 0), + MX93_PAD_SD1_CMD__GPIO3_IO09 = IOMUX_PAD(0x2BC, 0x10C, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA0__USDHC1_DATA0 = IOMUX_PAD(0x2C0, 0x110, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA0__FLEXIO1_FLEXIO10 = IOMUX_PAD(0x2C0, 0x110, 4, 0x394, 1, 0), + MX93_PAD_SD1_DATA0__GPIO3_IO10 = IOMUX_PAD(0x2C0, 0x110, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA1__USDHC1_DATA1 = IOMUX_PAD(0x2C4, 0x114, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA1__FLEXIO1_FLEXIO11 = IOMUX_PAD(0x2C4, 0x114, 4, 0x398, 1, 0), + MX93_PAD_SD1_DATA1__GPIO3_IO11 = IOMUX_PAD(0x2C4, 0x114, 5, 0x0000, 0, 0), + MX93_PAD_SD1_DATA1__CCMSRCGPCMIX_INT_BOOT = IOMUX_PAD(0x2C4, 0x114, 6, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA2__USDHC1_DATA2 = IOMUX_PAD(0x2C8, 0x118, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA2__FLEXIO1_FLEXIO12 = IOMUX_PAD(0x2C8, 0x118, 4, 0x0000, 0, 0), + MX93_PAD_SD1_DATA2__GPIO3_IO12 = IOMUX_PAD(0x2C8, 0x118, 5, 0x0000, 0, 0), + MX93_PAD_SD1_DATA2__CCMSRCGPCMIX_PMIC_READY = IOMUX_PAD(0x2C8, 0x118, 6, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA3__USDHC1_DATA3 = IOMUX_PAD(0x2CC, 0x11C, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA3__FLEXSPI1_A_SS1_B = IOMUX_PAD(0x2CC, 0x11C, 1, 0x0000, 0, 0), + MX93_PAD_SD1_DATA3__FLEXIO1_FLEXIO13 = IOMUX_PAD(0x2CC, 0x11C, 4, 0x39C, 1, 0), + MX93_PAD_SD1_DATA3__GPIO3_IO13 = IOMUX_PAD(0x2CC, 0x11C, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA4__USDHC1_DATA4 = IOMUX_PAD(0x2D0, 0x120, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA4__FLEXSPI1_A_DATA04 = IOMUX_PAD(0x2D0, 0x120, 1, 0x0000, 0, 0), + MX93_PAD_SD1_DATA4__FLEXIO1_FLEXIO14 = IOMUX_PAD(0x2D0, 0x120, 4, 0x3A0, 1, 0), + MX93_PAD_SD1_DATA4__GPIO3_IO14 = IOMUX_PAD(0x2D0, 0x120, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA5__USDHC1_DATA5 = IOMUX_PAD(0x2D4, 0x124, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA5__FLEXSPI1_A_DATA05 = IOMUX_PAD(0x2D4, 0x124, 1, 0x0000, 0, 0), + MX93_PAD_SD1_DATA5__USDHC1_RESET_B = IOMUX_PAD(0x2D4, 0x124, 2, 0x0000, 0, 0), + MX93_PAD_SD1_DATA5__FLEXIO1_FLEXIO15 = IOMUX_PAD(0x2D4, 0x124, 4, 0x3A4, 1, 0), + MX93_PAD_SD1_DATA5__GPIO3_IO15 = IOMUX_PAD(0x2D4, 0x124, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA6__USDHC1_DATA6 = IOMUX_PAD(0x2D8, 0x128, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA6__FLEXSPI1_A_DATA06 = IOMUX_PAD(0x2D8, 0x128, 1, 0x0000, 0, 0), + MX93_PAD_SD1_DATA6__USDHC1_CD_B = IOMUX_PAD(0x2D8, 0x128, 2, 0x0000, 0, 0), + MX93_PAD_SD1_DATA6__FLEXIO1_FLEXIO16 = IOMUX_PAD(0x2D8, 0x128, 4, 0x3A8, 1, 0), + MX93_PAD_SD1_DATA6__GPIO3_IO16 = IOMUX_PAD(0x2D8, 0x128, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_DATA7__USDHC1_DATA7 = IOMUX_PAD(0x2DC, 0x12C, 0, 0x0000, 0, 0), + MX93_PAD_SD1_DATA7__FLEXSPI1_A_DATA07 = IOMUX_PAD(0x2DC, 0x12C, 1, 0x0000, 0, 0), + MX93_PAD_SD1_DATA7__USDHC1_WP = IOMUX_PAD(0x2DC, 0x12C, 2, 0x0000, 0, 0), + MX93_PAD_SD1_DATA7__FLEXIO1_FLEXIO17 = IOMUX_PAD(0x2DC, 0x12C, 4, 0x3AC, 1, 0), + MX93_PAD_SD1_DATA7__GPIO3_IO17 = IOMUX_PAD(0x2DC, 0x12C, 5, 0x0000, 0, 0), + + MX93_PAD_SD1_STROBE__USDHC1_STROBE = IOMUX_PAD(0x2E0, 0x130, 0, 0x0000, 0, 0), + MX93_PAD_SD1_STROBE__FLEXSPI1_A_DQS = IOMUX_PAD(0x2E0, 0x130, 1, 0x0000, 0, 0), + MX93_PAD_SD1_STROBE__FLEXIO1_FLEXIO18 = IOMUX_PAD(0x2E0, 0x130, 4, 0x3B0, 1, 0), + MX93_PAD_SD1_STROBE__GPIO3_IO18 = IOMUX_PAD(0x2E0, 0x130, 5, 0x0000, 0, 0), + + MX93_PAD_SD2_VSELECT__USDHC2_VSELECT = IOMUX_PAD(0x2E4, 0x134, 0, 0x0000, 0, 0), + MX93_PAD_SD2_VSELECT__USDHC2_WP = IOMUX_PAD(0x2E4, 0x134, 1, 0x0000, 0, 0), + MX93_PAD_SD2_VSELECT__LPTMR2_ALT3 = IOMUX_PAD(0x2E4, 0x134, 2, 0x410, 1, 0), + MX93_PAD_SD2_VSELECT__FLEXIO1_FLEXIO19 = IOMUX_PAD(0x2E4, 0x134, 4, 0x0000, 0, 0), + MX93_PAD_SD2_VSELECT__GPIO3_IO19 = IOMUX_PAD(0x2E4, 0x134, 5, 0x0000, 0, 0), + MX93_PAD_SD2_VSELECT__CCMSRCGPCMIX_EXT_CLK1 = IOMUX_PAD(0x2E4, 0x134, 6, 0x368, 0, 0), + + MX93_PAD_SD3_CLK__USDHC3_CLK = IOMUX_PAD(0x2E8, 0x138, 0, 0x458, 1, 0), + MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK = IOMUX_PAD(0x2E8, 0x138, 1, 0x0000, 0, 0), + MX93_PAD_SD3_CLK__FLEXIO1_FLEXIO20 = IOMUX_PAD(0x2E8, 0x138, 4, 0x3B4, 1, 0), + MX93_PAD_SD3_CLK__GPIO3_IO20 = IOMUX_PAD(0x2E8, 0x138, 5, 0x0000, 0, 0), + + MX93_PAD_SD3_CMD__USDHC3_CMD = IOMUX_PAD(0x2EC, 0x13C, 0, 0x45C, 1, 0), + MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B = IOMUX_PAD(0x2EC, 0x13C, 1, 0x0000, 0, 0), + MX93_PAD_SD3_CMD__FLEXIO1_FLEXIO21 = IOMUX_PAD(0x2EC, 0x13C, 4, 0x0000, 0, 0), + MX93_PAD_SD3_CMD__GPIO3_IO21 = IOMUX_PAD(0x2EC, 0x13C, 5, 0x0000, 0, 0), + + MX93_PAD_SD3_DATA0__USDHC3_DATA0 = IOMUX_PAD(0x2F0, 0x140, 0, 0x460, 1, 0), + MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00 = IOMUX_PAD(0x2F0, 0x140, 1, 0x0000, 0, 0), + MX93_PAD_SD3_DATA0__FLEXIO1_FLEXIO22 = IOMUX_PAD(0x2F0, 0x140, 4, 0x3B8, 1, 0), + MX93_PAD_SD3_DATA0__GPIO3_IO22 = IOMUX_PAD(0x2F0, 0x140, 5, 0x0000, 0, 0), + + MX93_PAD_SD3_DATA1__USDHC3_DATA1 = IOMUX_PAD(0x2F4, 0x144, 0, 0x464, 1, 0), + MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01 = IOMUX_PAD(0x2F4, 0x144, 1, 0x0000, 0, 0), + MX93_PAD_SD3_DATA1__FLEXIO1_FLEXIO23 = IOMUX_PAD(0x2F4, 0x144, 4, 0x3BC, 1, 0), + MX93_PAD_SD3_DATA1__GPIO3_IO23 = IOMUX_PAD(0x2F4, 0x144, 5, 0x0000, 0, 0), + + MX93_PAD_SD3_DATA2__USDHC3_DATA2 = IOMUX_PAD(0x2F8, 0x148, 0, 0x468, 1, 0), + MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02 = IOMUX_PAD(0x2F8, 0x148, 1, 0x0000, 0, 0), + MX93_PAD_SD3_DATA2__FLEXIO1_FLEXIO24 = IOMUX_PAD(0x2F8, 0x148, 4, 0x3C0, 1, 0), + MX93_PAD_SD3_DATA2__GPIO3_IO24 = IOMUX_PAD(0x2F8, 0x148, 5, 0x0000, 0, 0), + + MX93_PAD_SD3_DATA3__USDHC3_DATA3 = IOMUX_PAD(0x2FC, 0x14C, 0, 0x46C, 1, 0), + MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03 = IOMUX_PAD(0x2FC, 0x14C, 1, 0x0000, 0, 0), + MX93_PAD_SD3_DATA3__FLEXIO1_FLEXIO25 = IOMUX_PAD(0x2FC, 0x14C, 4, 0x3C4, 1, 0), + MX93_PAD_SD3_DATA3__GPIO3_IO25 = IOMUX_PAD(0x2FC, 0x14C, 5, 0x0000, 0, 0), + + MX93_PAD_SD2_CD_B__USDHC2_CD_B = IOMUX_PAD(0x300, 0x150, 0, 0x0000, 0, 0), + MX93_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN = IOMUX_PAD(0x300, 0x150, 1, 0x0000, 0, 0), + MX93_PAD_SD2_CD_B__I3C2_SCL = IOMUX_PAD(0x300, 0x150, 2, 0x3CC, 1, 0), + MX93_PAD_SD2_CD_B__FLEXIO1_FLEXIO00 = IOMUX_PAD(0x300, 0x150, 4, 0x36C, 1, 0), + MX93_PAD_SD2_CD_B__GPIO3_IO00 = IOMUX_PAD(0x300, 0x150, 5, 0x0000, 0, 0), + + MX93_PAD_SD2_CLK__USDHC2_CLK = IOMUX_PAD(0x304, 0x154, 0, 0x0000, 0, 0), + MX93_PAD_SD2_CLK__ENET_QOS_1588_EVENT0_OUT = IOMUX_PAD(0x304, 0x154, 1, 0x0000, 0, 0), + MX93_PAD_SD2_CLK__I3C2_SDA = IOMUX_PAD(0x304, 0x154, 2, 0x3D0, 1, 0), + MX93_PAD_SD2_CLK__FLEXIO1_FLEXIO01 = IOMUX_PAD(0x304, 0x154, 4, 0x370, 1, 0), + MX93_PAD_SD2_CLK__GPIO3_IO01 = IOMUX_PAD(0x304, 0x154, 5, 0x0000, 0, 0), + MX93_PAD_SD2_CLK__CCMSRCGPCMIX_OBSERVE0 = IOMUX_PAD(0x304, 0x154, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_CMD__USDHC2_CMD = IOMUX_PAD(0x308, 0x158, 0, 0x0000, 0, 0), + MX93_PAD_SD2_CMD__ENET1_1588_EVENT0_IN = IOMUX_PAD(0x308, 0x158, 1, 0x0000, 0, 0), + MX93_PAD_SD2_CMD__I3C2_PUR = IOMUX_PAD(0x308, 0x158, 2, 0x0000, 0, 0), + MX93_PAD_SD2_CMD__I3C2_PUR_B = IOMUX_PAD(0x308, 0x158, 3, 0x0000, 0, 0), + MX93_PAD_SD2_CMD__FLEXIO1_FLEXIO02 = IOMUX_PAD(0x308, 0x158, 4, 0x374, 1, 0), + MX93_PAD_SD2_CMD__GPIO3_IO02 = IOMUX_PAD(0x308, 0x158, 5, 0x0000, 0, 0), + MX93_PAD_SD2_CMD__CCMSRCGPCMIX_OBSERVE1 = IOMUX_PAD(0x308, 0x158, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_DATA0__USDHC2_DATA0 = IOMUX_PAD(0x30C, 0x15C, 0, 0x0000, 0, 0), + MX93_PAD_SD2_DATA0__ENET1_1588_EVENT0_OUT = IOMUX_PAD(0x30C, 0x15C, 1, 0x0000, 0, 0), + MX93_PAD_SD2_DATA0__CAN2_TX = IOMUX_PAD(0x30C, 0x15C, 2, 0x0000, 0, 0), + MX93_PAD_SD2_DATA0__FLEXIO1_FLEXIO03 = IOMUX_PAD(0x30C, 0x15C, 4, 0x378, 1, 0), + MX93_PAD_SD2_DATA0__GPIO3_IO03 = IOMUX_PAD(0x30C, 0x15C, 5, 0x0000, 0, 0), + MX93_PAD_SD2_DATA0__CCMSRCGPCMIX_OBSERVE2 = IOMUX_PAD(0x30C, 0x15C, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_DATA1__USDHC2_DATA1 = IOMUX_PAD(0x310, 0x160, 0, 0x0000, 0, 0), + MX93_PAD_SD2_DATA1__ENET1_1588_EVENT1_IN = IOMUX_PAD(0x310, 0x160, 1, 0x0000, 0, 0), + MX93_PAD_SD2_DATA1__CAN2_RX = IOMUX_PAD(0x310, 0x160, 2, 0x364, 3, 0), + MX93_PAD_SD2_DATA1__FLEXIO1_FLEXIO04 = IOMUX_PAD(0x310, 0x160, 4, 0x37C, 1, 0), + MX93_PAD_SD2_DATA1__GPIO3_IO04 = IOMUX_PAD(0x310, 0x160, 5, 0x0000, 0, 0), + MX93_PAD_SD2_DATA1__CCMSRCGPCMIX_WAIT = IOMUX_PAD(0x310, 0x160, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_DATA2__USDHC2_DATA2 = IOMUX_PAD(0x314, 0x164, 0, 0x0000, 0, 0), + MX93_PAD_SD2_DATA2__ENET1_1588_EVENT1_OUT = IOMUX_PAD(0x314, 0x164, 1, 0x0000, 0, 0), + MX93_PAD_SD2_DATA2__MQS2_RIGHT = IOMUX_PAD(0x314, 0x164, 2, 0x0000, 0, 0), + MX93_PAD_SD2_DATA2__FLEXIO1_FLEXIO05 = IOMUX_PAD(0x314, 0x164, 4, 0x380, 1, 0), + MX93_PAD_SD2_DATA2__GPIO3_IO05 = IOMUX_PAD(0x314, 0x164, 5, 0x0000, 0, 0), + MX93_PAD_SD2_DATA2__CCMSRCGPCMIX_STOP = IOMUX_PAD(0x314, 0x164, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_DATA3__USDHC2_DATA3 = IOMUX_PAD(0x318, 0x168, 0, 0x0000, 0, 0), + MX93_PAD_SD2_DATA3__LPTMR2_ALT1 = IOMUX_PAD(0x318, 0x168, 1, 0x408, 1, 0), + MX93_PAD_SD2_DATA3__MQS2_LEFT = IOMUX_PAD(0x318, 0x168, 2, 0x0000, 0, 0), + MX93_PAD_SD2_DATA3__FLEXIO1_FLEXIO06 = IOMUX_PAD(0x318, 0x168, 4, 0x384, 1, 0), + MX93_PAD_SD2_DATA3__GPIO3_IO06 = IOMUX_PAD(0x318, 0x168, 5, 0x0000, 0, 0), + MX93_PAD_SD2_DATA3__CCMSRCGPCMIX_EARLY_RESET = IOMUX_PAD(0x318, 0x168, 6, 0x0000, 0, 0), + + MX93_PAD_SD2_RESET_B__USDHC2_RESET_B = IOMUX_PAD(0x31C, 0x16C, 0, 0x0000, 0, 0), + MX93_PAD_SD2_RESET_B__LPTMR2_ALT2 = IOMUX_PAD(0x31C, 0x16C, 1, 0x40C, 1, 0), + MX93_PAD_SD2_RESET_B__FLEXIO1_FLEXIO07 = IOMUX_PAD(0x31C, 0x16C, 4, 0x388, 1, 0), + MX93_PAD_SD2_RESET_B__GPIO3_IO07 = IOMUX_PAD(0x31C, 0x16C, 5, 0x0000, 0, 0), + MX93_PAD_SD2_RESET_B__CCMSRCGPCMIX_SYSTEM_RESET = IOMUX_PAD(0x31C, 0x16C, 6, 0x0000, 0, 0), + + MX93_PAD_I2C1_SCL__LPI2C1_SCL = IOMUX_PAD(0x320, 0x170, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0), + MX93_PAD_I2C1_SCL__I3C1_SCL = IOMUX_PAD(0x320, 0x170, 1, 0x0000, 0, 0), + MX93_PAD_I2C1_SCL__LPUART1_DCB_B = IOMUX_PAD(0x320, 0x170, 2, 0x0000, 0, 0), + MX93_PAD_I2C1_SCL__TPM2_CH0 = IOMUX_PAD(0x320, 0x170, 3, 0x0000, 0, 0), + MX93_PAD_I2C1_SCL__GPIO1_IO00 = IOMUX_PAD(0x320, 0x170, 5, 0x0000, 0, 0), + + MX93_PAD_I2C1_SDA__LPI2C1_SDA = IOMUX_PAD(0x324, 0x174, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0), + MX93_PAD_I2C1_SDA__I3C1_SDA = IOMUX_PAD(0x324, 0x174, 1, 0x0000, 0, 0), + MX93_PAD_I2C1_SDA__LPUART1_RIN_B = IOMUX_PAD(0x324, 0x174, 2, 0x0000, 0, 0), + MX93_PAD_I2C1_SDA__TPM2_CH1 = IOMUX_PAD(0x324, 0x174, 3, 0x0000, 0, 0), + MX93_PAD_I2C1_SDA__GPIO1_IO01 = IOMUX_PAD(0x324, 0x174, 5, 0x0000, 0, 0), + + MX93_PAD_I2C2_SCL__LPI2C2_SCL = IOMUX_PAD(0x328, 0x178, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__I3C1_PUR = IOMUX_PAD(0x328, 0x178, 1, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__LPUART2_DCB_B = IOMUX_PAD(0x328, 0x178, 2, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__TPM2_CH2 = IOMUX_PAD(0x328, 0x178, 3, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__SAI1_RX_SYNC = IOMUX_PAD(0x328, 0x178, 4, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__GPIO1_IO02 = IOMUX_PAD(0x328, 0x178, 5, 0x0000, 0, 0), + MX93_PAD_I2C2_SCL__I3C1_PUR_B = IOMUX_PAD(0x328, 0x178, 6, 0x0000, 0, 0), + + MX93_PAD_I2C2_SDA__LPI2C2_SDA = IOMUX_PAD(0x32C, 0x17C, 0 | IOMUX_CONFIG_SION, 0x0000, 0, 0), + MX93_PAD_I2C2_SDA__LPUART2_RIN_B = IOMUX_PAD(0x32C, 0x17C, 2, 0x0000, 0, 0), + MX93_PAD_I2C2_SDA__TPM2_CH3 = IOMUX_PAD(0x32C, 0x17C, 3, 0x0000, 0, 0), + MX93_PAD_I2C2_SDA__SAI1_RX_BCLK = IOMUX_PAD(0x32C, 0x17C, 4, 0x0000, 0, 0), + MX93_PAD_I2C2_SDA__GPIO1_IO03 = IOMUX_PAD(0x32C, 0x17C, 5, 0x0000, 0, 0), + + MX93_PAD_UART1_RXD__LPUART1_RX = IOMUX_PAD(0x330, 0x180, 0, 0x0000, 0, 0), + MX93_PAD_UART1_RXD__S400_UART_RX = IOMUX_PAD(0x330, 0x180, 1, 0x0000, 0, 0), + MX93_PAD_UART1_RXD__LPSPI2_SIN = IOMUX_PAD(0x330, 0x180, 2, 0x0000, 0, 0), + MX93_PAD_UART1_RXD__TPM1_CH0 = IOMUX_PAD(0x330, 0x180, 3, 0x0000, 0, 0), + MX93_PAD_UART1_RXD__GPIO1_IO04 = IOMUX_PAD(0x330, 0x180, 5, 0x0000, 0, 0), + + MX93_PAD_UART1_TXD__LPUART1_TX = IOMUX_PAD(0x334, 0x184, 0, 0x0000, 0, 0), + MX93_PAD_UART1_TXD__S400_UART_TX = IOMUX_PAD(0x334, 0x184, 1, 0x0000, 0, 0), + MX93_PAD_UART1_TXD__LPSPI2_PCS0 = IOMUX_PAD(0x334, 0x184, 2, 0x0000, 0, 0), + MX93_PAD_UART1_TXD__TPM1_CH1 = IOMUX_PAD(0x334, 0x184, 3, 0x0000, 0, 0), + MX93_PAD_UART1_TXD__GPIO1_IO05 = IOMUX_PAD(0x334, 0x184, 5, 0x0000, 0, 0), + + MX93_PAD_UART2_RXD__LPUART2_RX = IOMUX_PAD(0x338, 0x188, 0, 0x0000, 0, 0), + MX93_PAD_UART2_RXD__LPUART1_CTS_B = IOMUX_PAD(0x338, 0x188, 1, 0x0000, 0, 0), + MX93_PAD_UART2_RXD__LPSPI2_SOUT = IOMUX_PAD(0x338, 0x188, 2, 0x0000, 0, 0), + MX93_PAD_UART2_RXD__TPM1_CH2 = IOMUX_PAD(0x338, 0x188, 3, 0x0000, 0, 0), + MX93_PAD_UART2_RXD__SAI1_MCLK = IOMUX_PAD(0x338, 0x188, 4, 0x448, 0, 0), + MX93_PAD_UART2_RXD__GPIO1_IO06 = IOMUX_PAD(0x338, 0x188, 5, 0x0000, 0, 0), + + MX93_PAD_UART2_TXD__LPUART2_TX = IOMUX_PAD(0x33C, 0x18C, 0, 0x0000, 0, 0), + MX93_PAD_UART2_TXD__LPUART1_RTS_B = IOMUX_PAD(0x33C, 0x18C, 1, 0x0000, 0, 0), + MX93_PAD_UART2_TXD__LPSPI2_SCK = IOMUX_PAD(0x33C, 0x18C, 2, 0x0000, 0, 0), + MX93_PAD_UART2_TXD__TPM1_CH3 = IOMUX_PAD(0x33C, 0x18C, 3, 0x0000, 0, 0), + MX93_PAD_UART2_TXD__GPIO1_IO07 = IOMUX_PAD(0x33C, 0x18C, 5, 0x0000, 0, 0), + + MX93_PAD_PDM_CLK__PDM_CLK = IOMUX_PAD(0x340, 0x190, 0, 0x0000, 0, 0), + MX93_PAD_PDM_CLK__MQS1_LEFT = IOMUX_PAD(0x340, 0x190, 1, 0x0000, 0, 0), + MX93_PAD_PDM_CLK__LPTMR1_ALT1 = IOMUX_PAD(0x340, 0x190, 4, 0x0000, 0, 0), + MX93_PAD_PDM_CLK__GPIO1_IO08 = IOMUX_PAD(0x340, 0x190, 5, 0x0000, 0, 0), + MX93_PAD_PDM_CLK__CAN1_TX = IOMUX_PAD(0x340, 0x190, 6, 0x0000, 0, 0), + + MX93_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM00 = IOMUX_PAD(0x344, 0x194, 0, 0x438, 2, 0), + MX93_PAD_PDM_BIT_STREAM0__MQS1_RIGHT = IOMUX_PAD(0x344, 0x194, 1, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM0__LPSPI1_PCS1 = IOMUX_PAD(0x344, 0x194, 2, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM0__TPM1_EXTCLK = IOMUX_PAD(0x344, 0x194, 3, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM0__LPTMR1_ALT2 = IOMUX_PAD(0x344, 0x194, 4, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM0__GPIO1_IO09 = IOMUX_PAD(0x344, 0x194, 5, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM0__CAN1_RX = IOMUX_PAD(0x344, 0x194, 6, 0x360, 0, 0), + + MX93_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM01 = IOMUX_PAD(0x348, 0x198, 0, 0x43C, 2, 0), + MX93_PAD_PDM_BIT_STREAM1__NMI_GLUE_NMI = IOMUX_PAD(0x348, 0x198, 1, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM1__LPSPI2_PCS1 = IOMUX_PAD(0x348, 0x198, 2, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM1__TPM2_EXTCLK = IOMUX_PAD(0x348, 0x198, 3, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM1__LPTMR1_ALT3 = IOMUX_PAD(0x348, 0x198, 4, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10 = IOMUX_PAD(0x348, 0x198, 5, 0x0000, 0, 0), + MX93_PAD_PDM_BIT_STREAM1__CCMSRCGPCMIX_EXT_CLK1 = IOMUX_PAD(0x348, 0x198, 6, 0x368, 1, 0), + + MX93_PAD_SAI1_TXFS__SAI1_TX_SYNC = IOMUX_PAD(0x34C, 0x19C, 0, 0x0000, 0, 0), + MX93_PAD_SAI1_TXFS__SAI1_TX_DATA01 = IOMUX_PAD(0x34C, 0x19C, 1, 0x0000, 0, 0), + MX93_PAD_SAI1_TXFS__LPSPI1_PCS0 = IOMUX_PAD(0x34C, 0x19C, 2, 0x0000, 0, 0), + MX93_PAD_SAI1_TXFS__LPUART2_DTR_B = IOMUX_PAD(0x34C, 0x19C, 3, 0x0000, 0, 0), + MX93_PAD_SAI1_TXFS__MQS1_LEFT = IOMUX_PAD(0x34C, 0x19C, 4, 0x0000, 0, 0), + MX93_PAD_SAI1_TXFS__GPIO1_IO11 = IOMUX_PAD(0x34C, 0x19C, 5, 0x0000, 0, 0), + + MX93_PAD_SAI1_TXC__SAI1_TX_BCLK = IOMUX_PAD(0x350, 0x1A0, 0, 0x0000, 0, 0), + MX93_PAD_SAI1_TXC__LPUART2_CTS_B = IOMUX_PAD(0x350, 0x1A0, 1, 0x0000, 0, 0), + MX93_PAD_SAI1_TXC__LPSPI1_SIN = IOMUX_PAD(0x350, 0x1A0, 2, 0x0000, 0, 0), + MX93_PAD_SAI1_TXC__LPUART1_DSR_B = IOMUX_PAD(0x350, 0x1A0, 3, 0x0000, 0, 0), + MX93_PAD_SAI1_TXC__CAN1_RX = IOMUX_PAD(0x350, 0x1A0, 4, 0x360, 1, 0), + MX93_PAD_SAI1_TXC__GPIO1_IO12 = IOMUX_PAD(0x350, 0x1A0, 5, 0x0000, 0, 0), + + MX93_PAD_SAI1_TXD0__SAI1_TX_DATA00 = IOMUX_PAD(0x354, 0x1A4, 0, 0x0000, 0, 0), + MX93_PAD_SAI1_TXD0__LPUART2_RTS_B = IOMUX_PAD(0x354, 0x1A4, 1, 0x0000, 0, 0), + MX93_PAD_SAI1_TXD0__LPSPI1_SCK = IOMUX_PAD(0x354, 0x1A4, 2, 0x0000, 0, 0), + MX93_PAD_SAI1_TXD0__LPUART1_DTR_B = IOMUX_PAD(0x354, 0x1A4, 3, 0x0000, 0, 0), + MX93_PAD_SAI1_TXD0__CAN1_TX = IOMUX_PAD(0x354, 0x1A4, 4, 0x0000, 0, 0), + MX93_PAD_SAI1_TXD0__GPIO1_IO13 = IOMUX_PAD(0x354, 0x1A4, 5, 0x0000, 0, 0), + + MX93_PAD_SAI1_RXD0__SAI1_RX_DATA00 = IOMUX_PAD(0x358, 0x1A8, 0, 0x0000, 0, 0), + MX93_PAD_SAI1_RXD0__SAI1_MCLK = IOMUX_PAD(0x358, 0x1A8, 1, 0x448, 1, 0), + MX93_PAD_SAI1_RXD0__LPSPI1_SOUT = IOMUX_PAD(0x358, 0x1A8, 2, 0x0000, 0, 0), + MX93_PAD_SAI1_RXD0__LPUART2_DSR_B = IOMUX_PAD(0x358, 0x1A8, 3, 0x0000, 0, 0), + MX93_PAD_SAI1_RXD0__MQS1_RIGHT = IOMUX_PAD(0x358, 0x1A8, 4, 0x0000, 0, 0), + MX93_PAD_SAI1_RXD0__GPIO1_IO14 = IOMUX_PAD(0x358, 0x1A8, 5, 0x0000, 0, 0), + + MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY = IOMUX_PAD(0x35C, 0x1AC, 0, 0x0000, 0, 0), + MX93_PAD_WDOG_ANY__GPIO1_IO15 = IOMUX_PAD(0x35C, 0x1AC, 5, 0x0000, 0, 0), +}; +#endif /* __ASM_ARCH_IMX93_PINS_H__ */ diff --git a/arch/arm/include/asm/arch-imx9/sys_proto.h b/arch/arm/include/asm/arch-imx9/sys_proto.h new file mode 100644 index 00000000000..513aa0b9581 --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/sys_proto.h @@ -0,0 +1,11 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright (C) 2022 NXP + */ + +#ifndef __ARCH_IMX9_SYS_PROTO_H +#define __ARCH_NMX9_SYS_PROTO_H + +#include + +#endif diff --git a/arch/arm/include/asm/mach-imx/iomux-v3.h b/arch/arm/include/asm/mach-imx/iomux-v3.h index 231b9c027ce..0492abd298c 100644 --- a/arch/arm/include/asm/mach-imx/iomux-v3.h +++ b/arch/arm/include/asm/mach-imx/iomux-v3.h @@ -86,7 +86,16 @@ typedef u64 iomux_v3_cfg_t; #define IOMUX_CONFIG_LPSR 0x20 #define MUX_MODE_LPSR ((iomux_v3_cfg_t)IOMUX_CONFIG_LPSR << \ MUX_MODE_SHIFT) -#ifdef CONFIG_IMX8M +#ifdef CONFIG_IMX93 +#define PAD_CTL_FSEL2 (0x2 << 7) +#define PAD_CTL_FSEL3 (0x3 << 7) +#define PAD_CTL_PUE (0x1 << 9) +#define PAD_CTL_PDE (0x1 << 10) +#define PAD_CTL_ODE (0x1 << 11) +#define PAD_CTL_HYS (0x1 << 12) +#define PAD_CTL_DSE(x) (((x) << 1) & 0x7f) + +#elif defined(CONFIG_IMX8M) #define PAD_CTL_FSEL0 (0x0 << 3) #define PAD_CTL_FSEL1 (0x1 << 3) #define PAD_CTL_FSEL2 (0x2 << 3) diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index cd69384d8ef..05532ebea89 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -31,6 +31,7 @@ struct bd_info; #define is_mx7() (is_soc_type(MXC_SOC_MX7)) #define is_imx8m() (is_soc_type(MXC_SOC_IMX8M)) #define is_imx8() (is_soc_type(MXC_SOC_IMX8)) +#define is_imx9() (is_soc_type(MXC_SOC_IMX9)) #define is_imxrt() (is_soc_type(MXC_SOC_IMXRT)) #define is_mx6dqp() (is_cpu_type(MXC_CPU_MX6QP) || is_cpu_type(MXC_CPU_MX6DP)) @@ -81,6 +82,8 @@ struct bd_info; #define is_imx8qxp() (is_cpu_type(MXC_CPU_IMX8QXP)) +#define is_imx93() (is_cpu_type(MXC_CPU_IMX93)) + #define is_imxrt1020() (is_cpu_type(MXC_CPU_IMXRT1020)) #define is_imxrt1050() (is_cpu_type(MXC_CPU_IMXRT1050)) diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index c5be63dfe4f..fd8e236af8d 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile @@ -5,7 +5,7 @@ # # (C) Copyright 2011 Freescale Semiconductor, Inc. -ifeq ($(SOC),$(filter $(SOC),mx25 mx35 mx5 mx6 mx7 imx8m vf610)) +ifeq ($(SOC),$(filter $(SOC),mx25 mx35 mx5 mx6 mx7 imx8m imx9 vf610)) obj-y = iomux-v3.o endif @@ -29,7 +29,7 @@ endif obj-$(CONFIG_GPT_TIMER) += timer.o obj-$(CONFIG_SYS_I2C_MXC) += i2c-mxv7.o endif -ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8 imxrt)) +ifeq ($(SOC),$(filter $(SOC),mx7 mx6 mxs imx8m imx8 imx9 imxrt)) obj-y += misc.o obj-$(CONFIG_CMD_PRIBLOB) += priblob.o obj-$(CONFIG_SPL_BUILD) += spl.o @@ -195,6 +195,10 @@ flash.bin: spl/u-boot-spl.bin FORCE endif endif +ifeq ($(CONFIG_ARCH_IMX9), y) +SPL: +endif + else MKIMAGEFLAGS_SPL = -n $(filter-out $(PLUGIN).bin $< $(PHONY),$^) \ -T $(IMAGE_TYPE) -e $(CONFIG_SPL_TEXT_BASE) @@ -240,7 +244,8 @@ obj-$(CONFIG_ARCH_MX7ULP) += mx7ulp/ obj-$(CONFIG_ARCH_IMX8ULP) += imx8ulp/ obj-$(CONFIG_IMX8M) += imx8m/ obj-$(CONFIG_ARCH_IMX8) += imx8/ +obj-$(CONFIG_ARCH_IMX9) += imx9/ obj-$(CONFIG_ARCH_IMXRT) += imxrt/ -obj-$(CONFIG_IMX8MN)$(CONFIG_IMX8MP)$(CONFIG_IMX8ULP) += imx_romapi.o +obj-$(CONFIG_IMX8MN)$(CONFIG_IMX8MP)$(CONFIG_IMX8ULP)$(CONFIG_IMX9) += imx_romapi.o obj-$(CONFIG_SPL_BOOTROM_SUPPORT) += spl_imx_romapi.o diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig new file mode 100644 index 00000000000..ce58e41428f --- /dev/null +++ b/arch/arm/mach-imx/imx9/Kconfig @@ -0,0 +1,17 @@ +if ARCH_IMX9 + +config IMX9 + bool + select HAS_CAAM + select ROM_UNIFIED_SECTIONS + +config IMX93 + bool + select IMX9 + select ARMV8_SPL_EXCEPTION_VECTORS + +config SYS_SOC + default "imx9" + +endif + diff --git a/arch/arm/mach-imx/imx9/Makefile b/arch/arm/mach-imx/imx9/Makefile new file mode 100644 index 00000000000..773b12ee129 --- /dev/null +++ b/arch/arm/mach-imx/imx9/Makefile @@ -0,0 +1,6 @@ +# SPDX-License-Identifier: GPL-2.0+ +# +# Copyright 2022 NXP + +obj-y += lowlevel_init.o +obj-y += soc.o clock.o diff --git a/arch/arm/mach-imx/imx9/clock.c b/arch/arm/mach-imx/imx9/clock.c new file mode 100644 index 00000000000..fe89dccb316 --- /dev/null +++ b/arch/arm/mach-imx/imx9/clock.c @@ -0,0 +1,27 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + * + * Peng Fan + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +u32 get_lpuart_clk(void) +{ + return 24000000; +} + diff --git a/arch/arm/mach-imx/imx9/lowlevel_init.S b/arch/arm/mach-imx/imx9/lowlevel_init.S new file mode 100644 index 00000000000..1dc1dbfcddc --- /dev/null +++ b/arch/arm/mach-imx/imx9/lowlevel_init.S @@ -0,0 +1,26 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#include + +.align 8 +.global rom_pointer +rom_pointer: + .space 256 + +/* + * Routine: save_boot_params (called after reset from start.S) + */ + +.global save_boot_params +save_boot_params: +#ifndef CONFIG_SPL_BUILD + /* The firmware provided ATAG/FDT address can be found in r2/x0 */ + adr x0, rom_pointer + stp x1, x2, [x0], #16 + stp x3, x4, [x0], #16 +#endif + /* Returns */ + b save_boot_params_ret diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c new file mode 100644 index 00000000000..d905fe76c91 --- /dev/null +++ b/arch/arm/mach-imx/imx9/soc.c @@ -0,0 +1,127 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + * + * Peng Fan + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +u32 get_cpu_rev(void) +{ + return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0; +} + +static struct mm_region imx93_mem_map[] = { + { + /* ROM */ + .virt = 0x0UL, + .phys = 0x0UL, + .size = 0x100000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | + PTE_BLOCK_OUTER_SHARE + }, { + /* OCRAM */ + .virt = 0x20480000UL, + .phys = 0x20480000UL, + .size = 0xA0000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | + PTE_BLOCK_OUTER_SHARE + }, { + /* AIPS */ + .virt = 0x40000000UL, + .phys = 0x40000000UL, + .size = 0x40000000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | + PTE_BLOCK_NON_SHARE | + PTE_BLOCK_PXN | PTE_BLOCK_UXN + }, { + /* Flexible Serial Peripheral Interface */ + .virt = 0x28000000UL, + .phys = 0x28000000UL, + .size = 0x30000000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | + PTE_BLOCK_NON_SHARE | + PTE_BLOCK_PXN | PTE_BLOCK_UXN + }, { + /* DRAM1 */ + .virt = 0x80000000UL, + .phys = 0x80000000UL, + .size = PHYS_SDRAM_SIZE, + .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | + PTE_BLOCK_OUTER_SHARE + }, { + /* empty entrie to split table entry 5 if needed when TEEs are used */ + 0, + }, { + /* List terminator */ + 0, + } +}; + +struct mm_region *mem_map = imx93_mem_map; + +int dram_init(void) +{ + gd->ram_size = PHYS_SDRAM_SIZE; + + return 0; +} + +void imx_get_mac_from_fuse(int dev_id, unsigned char *mac) +{ + mac[0] = 0x1; + mac[1] = 0x2; + mac[2] = 0x3; + mac[3] = 0x4; + mac[4] = 0x5; + mac[5] = 0x6; +} + +int print_cpuinfo(void) +{ + u32 cpurev; + + cpurev = get_cpu_rev(); + + printf("CPU: i.MX93 rev%d.%d\n", (cpurev & 0x000F0) >> 4, (cpurev & 0x0000F) >> 0); + + return 0; +} + +int arch_misc_init(void) +{ + return 0; +} + +int ft_system_setup(void *blob, struct bd_info *bd) +{ + return 0; +} + +int arch_cpu_init(void) +{ + return 0; +} diff --git a/arch/arm/mach-imx/spl.c b/arch/arm/mach-imx/spl.c index e5ad993b8d9..ef00969a5e0 100644 --- a/arch/arm/mach-imx/spl.c +++ b/arch/arm/mach-imx/spl.c @@ -147,7 +147,7 @@ u32 spl_boot_device(void) return BOOT_DEVICE_NONE; } -#elif defined(CONFIG_MX7) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) +#elif defined(CONFIG_MX7) || defined(CONFIG_IMX8M) || defined(CONFIG_IMX8) || defined(CONFIG_IMX9) /* Translate iMX7/i.MX8M boot device to the SPL boot device enumeration */ u32 spl_boot_device(void) { From patchwork Mon Jun 27 03:24:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648539 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=RZtunkGk; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX8y2ymMz9sGp for ; Mon, 27 Jun 2022 12:43:30 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 90F4C84483; Mon, 27 Jun 2022 04:42:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="RZtunkGk"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0BC8684488; Mon, 27 Jun 2022 04:42:17 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2085.outbound.protection.outlook.com [40.107.21.85]) (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 743D984477 for ; Mon, 27 Jun 2022 04:42:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eCPjbS9FdR18mNvLyImOfyhPvcwaVFToKRCraqgyM1Mo07vEjq11cvZvoJvLFkHDTYfnp2rULx9iesuoQYZCcz3Do22MgjSvUz7A2YFu86YJ9LZeHPIz1sfwDivpswpCzIBCRXTAwgOzRAT0O7714RtimERkZCSrGcVDbltr+JQRbUNs45tzCHyg3O71BRXD46AB/vPzA7ZZttQlJ6jDYyHmLtZyluqgydEqNPByG9iK4/rDbPOSSjzJ2yWsEhRTqnOmzUVaQULLZ/zrSHUqW9ptZujaOyV6joBZv4c06MPjvgvuPgjeW1RGvTtOYTUavkRr9qu81DVXkIRyKhTFYw== 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=UBKM7mMCKmNRp95KWNlvJO9/J/4+5qSlX9aVqYXV59M=; b=epfG/lFFdtosHCozRABAJA+K6JY9V4NV8eFkoEzHf5xa6sVasVzF3GzDihHPdBw8ll96GMaLRnUGUGB/eraMuF7wesFecaL/QSnHSjNVnFFyjwmG2prRQbZbbyTBDgbo9TKntWTnjs6yKat9QIC3dEVau1IZIqwCXH7wcwa7Q6gQVRELTNqyM0MEK3Iz+ybtKQhXK7sBauhzPq4vajTzET75ZbeEK6iOFC4YWQ6Tk3iiHsl0LpSu3HxDHq+3396KAqmXUdOg1/GYIWEgm7pByRKqkdVQZSnJzSA2QIcZEh53+Qxqd5wjfTmkPTjjyCLFk1Cf5xCgzYUI65SEHsICew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UBKM7mMCKmNRp95KWNlvJO9/J/4+5qSlX9aVqYXV59M=; b=RZtunkGkFiy0VrK6vlBpsnp0w/GMwOLsjRefssljyPZKHFsB5uSJOPTo4cm5cqp6fhqcy6X+osplZzU3LvSZXT7fx6F4wu2JtCv6XmzsVa9kjc569vgDzwqsSlD9/rqgzH4ntG2BJRfAg/0sKZyJ3Jl4gSjypFzWgo/7h54wy6Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:12 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:12 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 10/49] fsl_lpuart: add i.MX9 support Date: Mon, 27 Jun 2022 11:24:16 +0800 Message-Id: <20220627032455.28280-11-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 810e75b0-c746-489b-47f7-08da57e6a37b X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0E5czMJzYbwMqtGXYiBFTze5UO5O8RoANd9Q38Cuneui/mzaDcBGIbGcKLXLREZB0yxvsQPDbX9QJ5DIfrasWR/uVsZ8WKxjJ5xmrWS9onP0J3F6htpyMLtbRNyZqjwhW3rZ57e9U10yB8Y3MW575jdB9OllRWnOKywe6n6h/wkekme7ybwN45AB/pg17VeFtJxa/c2QzW0oCHwdPrKfWgReFZ3APGMLWm7IOUjpPcBb1pZsm0I9Wp8FhLoFPJW2tvAXctFddd0zkUxk80rj4thO84lLGVFmUihnr+uTlbTtRnFq2w8usB+RkGCjbCN1hcG1POUQLCPa7lil7jNlqQix2n0mBAZTb5hMAumVT4YY1QdSOVt7VFG8ZNS5b3gFYpoaDDIRkYre8ZUgw8iH6MHUbGmGqKDwB2RBCZQJIdrixOrWfMProEGApjXrw+RFOPgat8YVomfzco7OD9QBz1dYxFUG64VK9GxlnTExXizc+NfBsjpATe0ly/pbdc/dQzzYE42bZvNfdfrkzKGl/b6lICoPDLyzsAfSYYmP8Bv4Q/+T5mK0Z13ps+qaTWJgxJL0aMLJ9EzV7HupXFDducW9bV6zt3l6tJyPE8YG2GwZjgACemR8rg6EEsRi7pNVeZJp2EsY5VR2bStssgqyrzJkhhPhVibt2DgXjSOM54UibsnGM9KAjZsCpnGqVpZd+OkkFrbvLT467joTDdFIEGX/po9/rkfCQeA2iVc696L65XW86F1Ld+uXLJB5fOuUjXItumUYiy9BqPj2dxXGS9JGn+21GyNtFAKbCfpROPk= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(4744005)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: af6Ae8cGq00s1dMeMd8+2w6iDiwt36hjefI9PIq6W/54pWZIrU5M80nKmWHEG9/2ZTJ5HTYJ/3g7rtKFc8GP1CYdfCDcum2wwYigVHtH5uq9K91Ky6Q20GJWie2VI1mpZkEVevCBlQKWqV2L8iTVEDPRaIGyc3cLj+MPTtbHznw2X7CzStwiHBsMcrB6JkL6rbpzhGkiqY/EJyi9kVuC95tsJnjFWgPNNf6oNts/gxHMFvpw6ThLLCJSIbCq0V5J1eRVzMy1//s4wFgKbYUq6anztRJJPb+A7QInMn9Kmzh8ptl9ypxuJEVpwPqGqfykZIALx5v7pQQRQ31oYC6gHmZZRAPSVY8OtxT1wTknksC2m1rpDbwqJo+5baUEI9Ntht3epdWAyfgICmSRJHVe0js5ZEOHrqy88icegjWnnzpNh+/KKcbx6jzigNQHINZlG4yfwHrxg70fmZJMn16nXKaPns532zxPnRZ0gkxMxgnKprNvcLOVOxCKWCqH4dvaC3xEE5TSNzA/9eR4pSE7fQfK5UNxo5/VRqmQrI7VUvVhhxSVNOBZyT+gKTfCmmvKc1dskjngR7F8XrVrVU9HfmU6QlJZxlzqxcItA4IV7ZHCZDPYdXq2IG8r7x9JbP7r+VQzBfGyx47yb01E61Y/hfLJcWjnyE/4zj9KLQxmfB8qJHfbiv9M119jllCaV+xdKVl3j9or+ov31w+QYxwUYcoWv3jAt+NA5BwbS7LhUD/8+U6sBAH3toFP7CoGZZTcq/igAhaEZMiETq5M/ZxDHj4ku0fk6Kh5Fx+oPu/sou+y3k3wgKInyiQQoH4ZYYYdCZEva4iqkMz5vVoR1SVVb3nw9YCyW73P6fLE24JpR3aDEnu5lpY83KabBjp5vtSBdsH3FRrH5Vt8oppdwEtv8xveKRK0oyff/WfJXQ4dgYttzwFQPAqH3fSs0v0Heb5BzAuiYGn43fNSSl5tYNemlbJ/tYJxDOC9MA97ZWdIa7/Z69rEbAEdi+rB6G58JodbhE+GsHJj9XXT8/A9qiIYTGeUppL7iDAHpgFYqDNcb4yhsv2Xk4UizqZaPc2DRdIRsOZwMOX/XC8JN30I0gsnfbJbCOKT6RA/0rhP/Mkld2qcFz6VV9mcAI0y17AnFkQBRDY7N+z4zSDt2BpJKFNKAuYRO3ewD9s4wHbV+5ItymdzxtIU2wujUw8Q7sdEv30sAAKszglGBwgZrg6ARc9+zaZQHOEFweXYRj1rCB+2wmGMpvyuRAin4d6DK8Jhgpe1caxhMA58RdMpowv4l0iwCYodtBXJcJtyhxvz+UOlzcztmKp2hmoGynkY3fG64rViV2y0b9ArNbCuAquOW78xBmYmeYaXuBkS0Cglgtj+1/bD9N+MhzM2Gd0FYOYeAbKbIZ4v1hVOQR5Pv06YRm9Nd8I0dUCRVMjUchKaXGsaT9UvwLLfNxwjMXCOgFt4Z29VetheJufBGraq685TgOcTR7wJe66+PDx0HPLT8j9NbWU95YCxztPzhkkE7Rd4y+E5T6o9DKcmXXFCRQar4WfyPr97k36u3/MkH3GC1fS+cCXrl7CPzxt+Da20+0aglSzi X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 810e75b0-c746-489b-47f7-08da57e6a37b X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:12.6799 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: N94xOsyQS+nxtaWLfXGfyTzlZmNuvU4PlpivPngjaCIT4IvmDMQJoLFtZi0nOJ6bNep4Vmz754PCrdJlXaMTTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan i.MX9 shares same register layout as i.MX7ULP, so add the i.MX9 define here. Signed-off-by: Peng Fan --- include/fsl_lpuart.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/fsl_lpuart.h b/include/fsl_lpuart.h index 18e5cc15d61..93c996b764b 100644 --- a/include/fsl_lpuart.h +++ b/include/fsl_lpuart.h @@ -5,7 +5,7 @@ */ #if defined(CONFIG_ARCH_MX7ULP) || defined(CONFIG_ARCH_IMX8) || \ - defined(CONFIG_ARCH_IMXRT) || defined(CONFIG_ARCH_IMX8ULP) + defined(CONFIG_ARCH_IMXRT) || defined(CONFIG_ARCH_IMX8ULP) || defined(CONFIG_ARCH_IMX9) struct lpuart_fsl_reg32 { u32 verid; u32 param; From patchwork Mon Jun 27 03:24:17 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648540 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=LVpIZAE9; 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 4LWX994Wrbz9sGp for ; Mon, 27 Jun 2022 12:43:41 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E8F0B84492; Mon, 27 Jun 2022 04:42:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="LVpIZAE9"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D5F9784488; Mon, 27 Jun 2022 04:42:19 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2062.outbound.protection.outlook.com [40.107.104.62]) (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 33C3984477 for ; Mon, 27 Jun 2022 04:42:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TXM7CmoU+iU/nmdeXllc+HIwap1SkxDPanPy7aFVxV1ks1yyiqkQs5mP3YNuORBpax5Bq54UqVoiYLf5mgqOJSDvceD68Ql/LlOt1LXz5ybBrtINwunlGl7yI837/7XR17lbmZ5q0pdwnjYuZb7hULyAsjsKYkDriZ3qp60+b84Xpqb511wdc94mpG1toaP0l9SxJJj0r28u4GrzY0qZUtUeH6y8WO39mjOOEVlPKkOpTm5ckKMfq8Jz+y/3HFNQiv5C6fy42kGI/iWMqmCAd74F08jzUcrpqa1TX5nGhlyoz8mMcoBB86ul6JjThKrvlP/SygHUd5QrDAfAmncf9Q== 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=l/Y/w5OSdNzCbf36wAgxLAo6Jk6dP2ii6Oc6P0Ck794=; b=E2YhNe6U3yxbOacPejSqUetB2/asHdWDQpV/UBuYkDx8uBwpR+lWwOiIyuNWYsAQjYTplrvc1E4LdN22QQVg6gqYSBorLurAMe34IiDTiP+OK2ipRzepRax9I70aiPsNYPwsq2HkNSa0czybjmpoeD3FGDwHGnYc9WXH3yFc/bo3FfhUzpwasWnitLFi2NPTlGdtIV6pnoMvWmfuGLb4Xaz7Eh54jN22rKyf0HjC2ee3Tr4RYG7+etRqfuJD58u2W9n5RzHd2+LeayxpcCxTzhDzlf5gXVWFeXGDKZYSqmakS5Cy37Q8R0blvANktcg60+WiJR1c32SsPGubXOeZsQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=l/Y/w5OSdNzCbf36wAgxLAo6Jk6dP2ii6Oc6P0Ck794=; b=LVpIZAE9WMwH2iolt1DFu+KFQ5OudGvrCUFvDM0h3Puc8ivU03FdoYT3/1qF6pcmiSo0oM7QWQ5PXsCdXDI+eWj5Cs+mqKm5I5Hvwvg5u2YB51NQtaxitLxKeFZumw4Mb3T1/iSZ0no2yohtWooXyrRgh5nytcJYiEzyIM0rlVM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:15 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:15 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 11/49] gpio: pca953x: support pcal6524 Date: Mon, 27 Jun 2022 11:24:17 +0800 Message-Id: <20220627032455.28280-12-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7d128c16-9cee-4f6e-a068-08da57e6a51c X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IW8GbEc5ki4odLlvdiRyqOr0VQg1cITfwLNQHHRiKU/rUBAkKgwmYOCN2cEJyFYb5jmEfqR4pCPq1QsNPcsHjylhzyPL9C8Qk2IpJI+O8Rx1mmZu87k8ewxmJelgpldxypCQSqvpWY2WIOqvcIFhvK2+tML2+aE6Q6oweqphUJ+i2eK0qjS4KlPqlkpTOHYiaeY+cND/GX4KIMo3fd6WO1dxEivWvD2nAmYJjEeV+lxKrM2XlCsnf/6KKop+vROP/3xu34FR/sXotiTKkxgClTA2QIsN2fkW4pdPj307E+2Fy+yqcUGcX91eNDnpTXFODx4yUTCyl3DTS8TxcG/66T54N9Qk6hjBVeI+FjQfmy+W9q/X14yEA/FSIw9bbyf9R0jRufgZs77KKFHTFc7+w9WVU90kJA8rXepV65nQItRVxtXEJYiULnpKnk01fV3NvpYjf/w9YqcsLZNGoEvmzwjXi7SGWl6rX21+mS3maL1v72fsCL+Grg+4/BOZ4OnMR6b+RWVQcJspo7ZVcRV/64Ulw+QU1mW5IvUbsHfiAzTlyWnTsfe+i3Fxse3rWKPv591Qvu/Fe27vzQ2Uy/ipGkCi9Obo6C4tqhpzVpg7IJxsXHniqtI+y0ww8yr0QdD8ig7xpCvfW1iQQ1UFc46XyyHWuon8F3Gqv9M/bpe0YpRZUD9AGw9XCDrUssxIUy6jTQbA+eeozoY04inu/d1Kf8HRY6f5g4DwNxbdJzj0U2Q9NFHVm8WhjtxA4+h+3dVsa1eMrJJ0zu/+fFEhe+mTtukk3V5jKvbCpghUZHKyUfI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(38350700002)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: L55LA344YaBcrPyMwFSCil2PZkLFR6p35XiFcQNAYJvnUwJ3y1wQvpjbnmR9jaIFmYLFitNknmsNRAN93SW3lW3t4WC+E/01xzzR8dlouvPIzaD6xh5HgdIjwE4AWsYSWVGwj5i0CBh2Zf0utx0d4L18t/WU5dFYYklYea+CjTPR6oBFl4yXsLglxH4gS3HyAg9T9+WbvKcMpWMsxQllDKm6d6ttdPu250hUa7aK5Q0f6IRxfRYqYg+qk2nR+C1Pags1vM13pWGOibxhyRO7GcDt9GPaaJm+8+k9LTyAjwzV0ktKheiNrBlci5ieeqlDjipS9YnpMmyYBNI+NJe2OcGEjJoVvfK/G9rxlNg6V50G3horjgHsW8T/yUw0dOuHZeHbRrX73IoddTygr2RGeH9QtykFLsIyjP3Ij8E8Da6XpcX/inJqvAUFekyEjOIARA7jg8Sz0as6oa2tWNz2PUkupzBtmJN7MVkCDheN1505/MMu9ZwhZ/tAd1mGHBFWru8AndHz4vQRQX+lIHBFjAgfmv11FkTpUkjK9eqAy3MWJQxE8FsXaYtYx28xxIQYI7jowfBCviX2d/T9EC09U0OpahZDTZNA7gWuDhGds45ZiaNlYoxyyR1rvOgiUdGc83MGb+MHSOv76Nsk+tA68B6Vq+7hYiaRzDHjbvvznRE2tHd8Q+Vgn/hTBL3gGABEYMBLsVZ4iyqNoyrxxIt7k3Vg8k1EDevM+djaFK9RsTFJkzIT0Ss6szv3CcsmEtSSJ4zsddi4stiz0h4N1WAm9QRGdE56ebM1imiLelibaGZGwt61zigg14sCOb/F6kxO5pTezROxHJFXEwykN06HYS98VHJ0XvSpbSdV4acekxC7m+6XedaggAXuL+1NLUIIh0Yq7qGCEQPNhRyxl8U6sIDXMAFab1C1oKjr7Y3JxtosSeGgM4M5zWrbpDUNoXE9al8F6fSOwRnRlqIpIWiQ0YqcR5+2bpJHqmgvY+czb7XNG29nUhqoUTA4WYcRDPJQVEkA/Dy/3DOHCTRauGRrFfgo9A3Y+34qnVJGL7udKfy5ELLHs5YLan7nv6J/t/WNoW1Fn+sJbOvAZE392CRGJMp0wMbwhTXZyvrCEYcSUlB9iK40lI3o2REJL5L85LNCkMbbDlMYG9jE7naIInyhDklpy4N8yt5G6O/6XyZyOgLWKBDe65XxNPzGTSqS3izZm2jXpT5cFTXuHLydur2fHWCqs9p8ERhiv8xM67y4vG2P2i4DXtFR3Q108jcfZUHsOfF3Dlc99cCagjqlaWKMqo57SYoend2BV5kSzq6oPAyahwOaWSPCV3nwudKuyq1nYyIpImBdWGSHmBmpNhDnvV7A8qMy1vDs2OLTAI7ysMeDyY2mg9xGkBWc0fp/eonZiYxbNGwMJrnsshPnXc7xdfmW93pSmxHLCBAkGXJC2PNI2f15SA6KjD1u41uDT/ICKjdH/v7YCJw+NIJ2p/kICcyVEqN1NOmkHrP2WJe7iSf1QPzZ4tn7eoDQsw6TgMUg8hrH8h6rE6h+A7ETPfnn7UdXT7BLLi4TA0L0U/BKPMgNM/hqKbu0XIoOoRRH535g X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7d128c16-9cee-4f6e-a068-08da57e6a51c X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:15.3525 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bZF3CLATrYLR3q6AMwwK+Hfws0Jl3GJjZYhamaD5YNGj0kmV0rkUUyHvvngLgPns+tN4My7s+9qntEcipZSpSQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Support pcal6524 IO expander driver Signed-off-by: Peng Fan --- drivers/gpio/pca953x_gpio.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/gpio/pca953x_gpio.c b/drivers/gpio/pca953x_gpio.c index e98e1e56dbc..4654f9e0989 100644 --- a/drivers/gpio/pca953x_gpio.c +++ b/drivers/gpio/pca953x_gpio.c @@ -43,6 +43,8 @@ #define PCA_GPIO_MASK 0x00FF #define PCA_INT 0x0100 +#define PCA_PCAL BIT(9) +#define PCA_LATCH_INT (PCA_PCAL | PCA_INT) #define PCA953X_TYPE 0x1000 #define PCA957X_TYPE 0x2000 #define PCA_TYPE_MASK 0xF000 @@ -393,6 +395,8 @@ static const struct udevice_id pca953x_ids[] = { { .compatible = "nxp,pca9575", .data = OF_957X(16, PCA_INT), }, { .compatible = "nxp,pca9698", .data = OF_953X(40, 0), }, + { .compatible = "nxp,pcal6524", .data = OF_953X(24, PCA_LATCH_INT), }, + { .compatible = "maxim,max7310", .data = OF_953X(8, 0), }, { .compatible = "maxim,max7312", .data = OF_953X(16, PCA_INT), }, { .compatible = "maxim,max7313", .data = OF_953X(16, PCA_INT), }, From patchwork Mon Jun 27 03:24:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648542 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=XCuunRlv; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWX9n5PTNz9sGp for ; Mon, 27 Jun 2022 12:44:13 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id BB1238449B; Mon, 27 Jun 2022 04:42:35 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="XCuunRlv"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 0E7D0844A9; Mon, 27 Jun 2022 04:42:31 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2089.outbound.protection.outlook.com [40.107.104.89]) (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 EE06684499 for ; Mon, 27 Jun 2022 04:42:23 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iH8GfMWlkcxdg3RgDlGgDGz/PInl2GDJrxCKcazDKq1sY3dyCNQPKMR84VY1+5YtsaXTiTk+e9pr1CCBWAkuoxVuJ6X1XFprDcjhBOb2+zngExCKrS10ZC3ugKhpPW6p0i/voKO2K27q/WxSrW82u7qFMAk41yVyoxGwhqUoaqFwn3tkaN6uoV9CSXglo/tbV00DbNIkYqL1Cj0KUbVLKyhDsWYPjsXhjnq3NpPGo447Y7VlxRLKaYo904V2OhS3dWjRyMPjbRxN2Ts1OoWDwSLs+NmxpeA6iufWMOPHTB1cMV61vkXdFDSKWoo0lluoneg/tQUPokzi6VNgqlovKQ== 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=pTj0nLynR8tjSqxULoJTP85X3F+i83InWBGFLKX/Zj4=; b=TIm/kFrw6xD2qNPNEQldl8ZH99t7zf7oYGwIzpwSqnkEHe4T+xq5Lm04qQGBZRDi1QYCCA1oSD56XmgInKk77+KrM/iUCOPp0vgwtNnl/RkttI0Y/GcMeDDTKppPIwathCj3YP5LriWRdEonCh6cEkNvYAXTk12LDAtRJt4oGRfj45qs6ELtn1QeVi1c0YqHqDU7uw+0vSotzkMM/bkLo7PH5XU3T9juxcYWcK5ShcDtqzAxM7Dhp691tPHM7C7aaGN+QtRKmrKpz+KtByirYXtatitlSk4YkHFpCBJHXKXloIrqtmbBBEU8y5lQ0URlYTThIs+4TTokrJhLsTlp+A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pTj0nLynR8tjSqxULoJTP85X3F+i83InWBGFLKX/Zj4=; b=XCuunRlv3lm0oQvrTaUeIfv/Ow/Eb9oVAjps5Uvd0Y7+r1lCGF6qH139MC/I8vLtMWp1+P9VFhBxDpLxUEbbTp/620G7VUAeZvXbmPT2lmdj6+z6VtWGo+Lu1omiKMytS/Gh8yFL2U/3nWvvxLp/+Zz28fdb2GOuPgIoAaf3LkU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:19 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:19 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 12/49] imx: pinctrl: add pinctrl and pinfunc file for i.MX93 Date: Mon, 27 Jun 2022 11:24:18 +0800 Message-Id: <20220627032455.28280-13-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: d3d69ecd-3c1b-460e-ccf9-08da57e6a713 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZmCox1DD0IppaYfKFozq7ABVvg3nAMRezUcet2jXaveE5ZTgNwyhvQGbw0DAyx621CefRfcc6pAd17XLI4ztyRuZRoPvEbAIXVQwRA2OdpR35rL1/sjZgGEGKqN6sQWAqk7HUjgic9cvnpbgkufrUgdygS0rWmzdmqXm+3OQIKkP1fME7Z6hbs8ElhP8RUvCwDE1MSxVx0ZrCWQyNxAq1kiODkcY5Ebih7gSp3IdmymvTfSjmYRUkZ2DAfMm0Zh01gaX0nkQbDDqc34GlzxhryMn/4FXD/4YkQMDt6la7KkaBZ7BzB2aX2iVt16QdY4aqz22SCdJrlp8MaRv0eIDNuMd3/4zUDNfJe1ziTpJuW/gMDirBm8oPguYltlIuCwsYk3mtNJqSb7wGB9pPKDijS9hFRkEPJ+eX9oK3ueUy1G7ouQlpoRPTmaaVYM25AH/lWVmwPsFpZF1hTvXmY1v6h9+1kWykK4541VNM16GNAjoJAATg+oHbWFBuf6diuolwY8QWB6yo5KeiJsTHiISr3WyH8huNph1OMhXw9FgI1y/kcdabWAjNYMdsxP5LmJQj4gMiBCyvqXSmExbs4XV8cx46LZ8eIofdlVC/C+Qu18bCeUW2tLLDPKlxSnqLn71J4SgBmcbszPgqz1faKteDwLun/l3ARY7q58SlX2Z+F5vpcd4bOP2qg+zsUVPJ4RLfZQbiv6fvxPcuhypPm+CmEX3RLi2KkEd2rQGdISP4JjE2XYn5sIdNBX8Kj5qQFzzBOcu5inpVL4AM0oPg/Oec0i2By3pYQfAAs0UukV/tdA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(30864003)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(26005)(579004)(559001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9BbnVIvfgnk5IBF9QrdRm3leqJlqlcKYT2I+yz8ExGey5mjyeDVTZExT5B0mt6Gsn0XyUadv1XHL6n5FZPa6nFATxhnDEJqW85Hjj6PTb+tgFbqkv/jCgYSC/ImtGup17k2CqjwYuLgLQWS6VbWz5h+KXpS/DUoK/ALxYHfrVMOTZ6/MM6kQFA/oVoBu01OOhoSJz3CHdkLUju5mS8Us57CPfcKQMCG4yDWnT51oOqou9I16Vvrk6SzZmVRDCoA6q+myGa8DHS54wNVS9LTm9VEAK1DBLrRRAg2806Ki4Hqh1oQH4Xe9w3OgH++j+UJ6WjRkvM+LShVpt7C2EoKL+NO2tlxHCNIdd+5V0UJwj00UcvK1j0eb//B3dL6lcK2nKSCXnp24yuZzR9rn6xKABh3Lo/qHcb2Q06d0yUbctdfsAkB3PJeCDisCDfpZLEfZP+AZzTcT9Pl+BV52qUFENu0yiswmffo3gu0v0oxomYfYsHy18hipo3gwFGvUgc5oH+6/udMVwpNAGI2HPLHYfH6348xeqyxhN0fWHFF47rEqCSOlnyH/9cpmbAf/wJCVJAlQPH+cuiIqtRYnbm2Qw2/IVuIenPoahnTVut0GBQRfPXJ0eD/SlY7uLRKWHUNxHYAIBQP/K/zYDChFntH/LZ0ApWst57/PubWygooLqk6cFVxC9fNjRdFu99cgIm/bmsKS02GWY6ncxMermkP45l/WJHJUVcyjwZdKWT5ZwDpbqrhfZ5fN5WLDP6Du86W7fWHwYOkIRf8cTem5k5g7INZOTHFsmL+/h/shlbJp2GpElzlj0e5ZLWWXkloPnyLgooqldSi4n6EpbC7jsvBOyKqGAnFTZp3rUiM9jsM4X9rtuOdQHOwKRSlE1xacOFE9zVpGbr04skNTS9VC5uAD9Df4riTt4wV8VPl5GGTmk1R35hUHUOArXAsaTcGpHYCu8YubwStOGhPW1awEDhSsbagZkZcAzux+yXoCPbza6BWWyoQ8OaYR63oEs1UDojF0zErLZjJvRmaczuQZj3//GSQ/33yeMJd2Jf4uooqSvzc6gLmG0xMAqvgsb7mPdo1JSLU4oaB5kXm4MJTq/E0zSrjvU5wMWfAO10QJtFItc4VB7+jDh56lsNj9FPlMD/0sii57BoVWNScVhP0FOQlW1x3S5eVUcR3N+sXexQ1AoGcLHoM1/Zsn1fVYRznGPAD400BcazZeckewSYUSIP4bucsHR33SgFyZK33z3gXt+aDW3jHj9ygV49iaV5/e8jeaGemwLhua0GuVqDVM2eOhexdfVI8VjYtxiIKDpJI9+dyIzq4JMRXauVTW3EL0pYs5cdKrHN1S7oRSkpkS8a7q9EflBMdtHwaRzms+Yhw9/J4afazrIku6WxylcWpohX+Q45J5jqlSYQPSs6GRUrIMbaRFisrhQY8BPsJSJqXFYDl5Z4twkHcEaYZwzZIU2DZRNL2juIpJatmhdPl96ij5OYAlTqW1vcME3Ni8i3Rs3od8QTNfChshpoEjTdvLVg5ctmRXa7SOnIJ+Sp7Kpjgbx8S15ubKTctUsckXM3InG8rRMful/qbuI5VS7CH4VeiT X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d3d69ecd-3c1b-460e-ccf9-08da57e6a713 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:19.1970 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ROcgEIoYmJYquxKN9vC+pxFsk8iCHdY+TlTBx+lszb8IehJTNRMGgpbIibdwa5Ap4oCEJsa21ip8of1pggwnDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add the pinctrl driver and pinfunc header file to support iMX93 Signed-off-by: Peng Fan --- arch/arm/dts/imx93-pinfunc.h | 625 ++++++++++++++++++++++++++++ drivers/pinctrl/nxp/Kconfig | 13 + drivers/pinctrl/nxp/Makefile | 1 + drivers/pinctrl/nxp/pinctrl-imx93.c | 37 ++ 4 files changed, 676 insertions(+) create mode 100644 arch/arm/dts/imx93-pinfunc.h create mode 100644 drivers/pinctrl/nxp/pinctrl-imx93.c diff --git a/arch/arm/dts/imx93-pinfunc.h b/arch/arm/dts/imx93-pinfunc.h new file mode 100644 index 00000000000..7f0136c70b6 --- /dev/null +++ b/arch/arm/dts/imx93-pinfunc.h @@ -0,0 +1,625 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __DTS_IMX93_PINFUNC_H +#define __DTS_IMX93_PINFUNC_H + +/* + * The pin function ID is a tuple of + * + */ +#define MX93_PAD_DAP_TDI__JTAG_MUX_TDI 0x0000 0x01B0 0x03E0 0x0 0x0 +#define MX93_PAD_DAP_TDI__MQS2_LEFT 0x0000 0x01B0 0x0000 0x1 0x0 +#define MX93_PAD_DAP_TDI__CAN2_TX 0x0000 0x01B0 0x0000 0x3 0x0 +#define MX93_PAD_DAP_TDI__FLEXIO2_FLEXIO30 0x0000 0x01B0 0x0000 0x4 0x0 +#define MX93_PAD_DAP_TDI__GPIO3_IO28 0x0000 0x01B0 0x03CC 0x5 0x0 +#define MX93_PAD_DAP_TDI__LPUART5_RX 0x0000 0x01B0 0x0438 0x6 0x0 +#define MX93_PAD_DAP_TMS_SWDIO__JTAG_MUX_TMS 0x0004 0x01B4 0x03E4 0x0 0x0 +#define MX93_PAD_DAP_TMS_SWDIO__FLEXIO2_FLEXIO31 0x0004 0x01B4 0x0000 0x4 0x0 +#define MX93_PAD_DAP_TMS_SWDIO__GPIO3_IO29 0x0004 0x01B4 0x03D0 0x5 0x0 +#define MX93_PAD_DAP_TMS_SWDIO__LPUART5_RTS_B 0x0004 0x01B4 0x0000 0x6 0x0 +#define MX93_PAD_DAP_TCLK_SWCLK__JTAG_MUX_TCK 0x0008 0x01B8 0x03DC 0x0 0x0 +#define MX93_PAD_DAP_TCLK_SWCLK__FLEXIO1_FLEXIO30 0x0008 0x01B8 0x0000 0x4 0x0 +#define MX93_PAD_DAP_TCLK_SWCLK__GPIO3_IO30 0x0008 0x01B8 0x0000 0x5 0x0 +#define MX93_PAD_DAP_TCLK_SWCLK__LPUART5_CTS_B 0x0008 0x01B8 0x0434 0x6 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__JTAG_MUX_TDO 0x000C 0x01BC 0x0000 0x0 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__MQS2_RIGHT 0x000C 0x01BC 0x0000 0x1 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__CAN2_RX 0x000C 0x01BC 0x0364 0x3 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__FLEXIO1_FLEXIO31 0x000C 0x01BC 0x0000 0x4 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__GPIO3_IO31 0x000C 0x01BC 0x0000 0x5 0x0 +#define MX93_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x000C 0x01BC 0x043C 0x6 0x0 +#define MX93_PAD_GPIO_IO00__GPIO2_IO00 0x0010 0x01C0 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO00__LPI2C3_SDA 0x0010 0x01C0 0x03EC 0x1 0x0 +#define MX93_PAD_GPIO_IO00__MEDIAMIX_CAM_CLK 0x0010 0x01C0 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO00__MEDIAMIX_DISP_CLK 0x0010 0x01C0 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO00__LPSPI6_PCS0 0x0010 0x01C0 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO00__LPUART5_TX 0x0010 0x01C0 0x043C 0x5 0x1 +#define MX93_PAD_GPIO_IO00__LPI2C5_SDA 0x0010 0x01C0 0x03F4 0x6 0x0 +#define MX93_PAD_GPIO_IO00__FLEXIO1_FLEXIO00 0x0010 0x01C0 0x036C 0x7 0x0 +#define MX93_PAD_GPIO_IO01__GPIO2_IO01 0x0014 0x01C4 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO01__LPI2C3_SCL 0x0014 0x01C4 0x03E8 0x1 0x0 +#define MX93_PAD_GPIO_IO01__MEDIAMIX_CAM_DATA00 0x0014 0x01C4 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO01__MEDIAMIX_DISP_DE 0x0014 0x01C4 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO01__LPSPI6_SIN 0x0014 0x01C4 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO01__LPUART5_RX 0x0014 0x01C4 0x0438 0x5 0x1 +#define MX93_PAD_GPIO_IO01__LPI2C5_SCL 0x0014 0x01C4 0x03F0 0x6 0x0 +#define MX93_PAD_GPIO_IO01__FLEXIO1_FLEXIO01 0x0014 0x01C4 0x0370 0x7 0x0 +#define MX93_PAD_GPIO_IO02__GPIO2_IO02 0x0018 0x01C8 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO02__LPI2C4_SDA 0x0018 0x01C8 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO02__MEDIAMIX_CAM_VSYNC 0x0018 0x01C8 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO02__MEDIAMIX_DISP_VSYNC 0x0018 0x01C8 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO02__LPSPI6_SOUT 0x0018 0x01C8 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO02__LPUART5_CTS_B 0x0018 0x01C8 0x0434 0x5 0x1 +#define MX93_PAD_GPIO_IO02__LPI2C6_SDA 0x0018 0x01C8 0x03FC 0x6 0x0 +#define MX93_PAD_GPIO_IO02__FLEXIO1_FLEXIO02 0x0018 0x01C8 0x0374 0x7 0x0 +#define MX93_PAD_GPIO_IO03__GPIO2_IO03 0x001C 0x01CC 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO03__LPI2C4_SCL 0x001C 0x01CC 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO03__MEDIAMIX_CAM_HSYNC 0x001C 0x01CC 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO03__MEDIAMIX_DISP_HSYNC 0x001C 0x01CC 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO03__LPSPI6_SCK 0x001C 0x01CC 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO03__LPUART5_RTS_B 0x001C 0x01CC 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO03__LPI2C6_SCL 0x001C 0x01CC 0x03F8 0x6 0x0 +#define MX93_PAD_GPIO_IO03__FLEXIO1_FLEXIO03 0x001C 0x01CC 0x0378 0x7 0x0 +#define MX93_PAD_GPIO_IO04__GPIO2_IO04 0x0020 0x01D0 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO04__TPM3_CH0 0x0020 0x01D0 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO04__PDM_CLK 0x0020 0x01D0 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO04__MEDIAMIX_DISP_DATA00 0x0020 0x01D0 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO04__LPSPI7_PCS0 0x0020 0x01D0 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO04__LPUART6_TX 0x0020 0x01D0 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO04__LPI2C6_SDA 0x0020 0x01D0 0x03FC 0x6 0x1 +#define MX93_PAD_GPIO_IO04__FLEXIO1_FLEXIO04 0x0020 0x01D0 0x037C 0x7 0x0 +#define MX93_PAD_GPIO_IO05__GPIO2_IO05 0x0024 0x01D4 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO05__TPM4_CH0 0x0024 0x01D4 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO05__PDM_BIT_STREAM00 0x0024 0x01D4 0x0440 0x2 0x0 +#define MX93_PAD_GPIO_IO05__MEDIAMIX_DISP_DATA01 0x0024 0x01D4 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO05__LPSPI7_SIN 0x0024 0x01D4 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO05__LPUART6_RX 0x0024 0x01D4 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO05__LPI2C6_SCL 0x0024 0x01D4 0x03F8 0x6 0x1 +#define MX93_PAD_GPIO_IO05__FLEXIO1_FLEXIO05 0x0024 0x01D4 0x0380 0x7 0x0 +#define MX93_PAD_GPIO_IO06__GPIO2_IO06 0x0028 0x01D8 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO06__TPM5_CH0 0x0028 0x01D8 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO06__PDM_BIT_STREAM01 0x0028 0x01D8 0x0444 0x2 0x0 +#define MX93_PAD_GPIO_IO06__MEDIAMIX_DISP_DATA02 0x0028 0x01D8 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO06__LPSPI7_SOUT 0x0028 0x01D8 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO06__LPUART6_CTS_B 0x0028 0x01D8 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO06__LPI2C7_SDA 0x0028 0x01D8 0x0404 0x6 0x0 +#define MX93_PAD_GPIO_IO06__FLEXIO1_FLEXIO06 0x0028 0x01D8 0x0384 0x7 0x0 +#define MX93_PAD_GPIO_IO07__GPIO2_IO07 0x002C 0x01DC 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO07__LPSPI3_PCS1 0x002C 0x01DC 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO07__MEDIAMIX_CAM_DATA01 0x002C 0x01DC 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO07__MEDIAMIX_DISP_DATA03 0x002C 0x01DC 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO07__LPSPI7_SCK 0x002C 0x01DC 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO07__LPUART6_RTS_B 0x002C 0x01DC 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO07__LPI2C7_SCL 0x002C 0x01DC 0x0400 0x6 0x0 +#define MX93_PAD_GPIO_IO07__FLEXIO1_FLEXIO07 0x002C 0x01DC 0x0388 0x7 0x0 +#define MX93_PAD_GPIO_IO08__GPIO2_IO08 0x0030 0x01E0 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO08__LPSPI3_PCS0 0x0030 0x01E0 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO08__MEDIAMIX_CAM_DATA02 0x0030 0x01E0 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO08__MEDIAMIX_DISP_DATA04 0x0030 0x01E0 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO08__TPM6_CH0 0x0030 0x01E0 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO08__LPUART7_TX 0x0030 0x01E0 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO08__LPI2C7_SDA 0x0030 0x01E0 0x0404 0x6 0x1 +#define MX93_PAD_GPIO_IO08__FLEXIO1_FLEXIO08 0x0030 0x01E0 0x038C 0x7 0x0 +#define MX93_PAD_GPIO_IO09__GPIO2_IO09 0x0034 0x01E4 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO09__LPSPI3_SIN 0x0034 0x01E4 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO09__MEDIAMIX_CAM_DATA03 0x0034 0x01E4 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO09__MEDIAMIX_DISP_DATA05 0x0034 0x01E4 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO09__TPM3_EXTCLK 0x0034 0x01E4 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO09__LPUART7_RX 0x0034 0x01E4 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO09__LPI2C7_SCL 0x0034 0x01E4 0x0400 0x6 0x1 +#define MX93_PAD_GPIO_IO09__FLEXIO1_FLEXIO09 0x0034 0x01E4 0x0390 0x7 0x0 +#define MX93_PAD_GPIO_IO10__GPIO2_IO10 0x0038 0x01E8 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO10__LPSPI3_SOUT 0x0038 0x01E8 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO10__MEDIAMIX_CAM_DATA04 0x0038 0x01E8 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO10__MEDIAMIX_DISP_DATA06 0x0038 0x01E8 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO10__TPM4_EXTCLK 0x0038 0x01E8 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO10__LPUART7_CTS_B 0x0038 0x01E8 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO10__LPI2C8_SDA 0x0038 0x01E8 0x040C 0x6 0x0 +#define MX93_PAD_GPIO_IO10__FLEXIO1_FLEXIO10 0x0038 0x01E8 0x0394 0x7 0x0 +#define MX93_PAD_GPIO_IO11__GPIO2_IO11 0x003C 0x01EC 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO11__LPSPI3_SCK 0x003C 0x01EC 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO11__MEDIAMIX_CAM_DATA05 0x003C 0x01EC 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO11__MEDIAMIX_DISP_DATA07 0x003C 0x01EC 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO11__TPM5_EXTCLK 0x003C 0x01EC 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO11__LPUART7_RTS_B 0x003C 0x01EC 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO11__LPI2C8_SCL 0x003C 0x01EC 0x0408 0x6 0x0 +#define MX93_PAD_GPIO_IO11__FLEXIO1_FLEXIO11 0x003C 0x01EC 0x0398 0x7 0x0 +#define MX93_PAD_GPIO_IO12__GPIO2_IO12 0x0040 0x01F0 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO12__TPM3_CH2 0x0040 0x01F0 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO12__PDM_BIT_STREAM02 0x0040 0x01F0 0x0448 0x2 0x0 +#define MX93_PAD_GPIO_IO12__MEDIAMIX_DISP_DATA08 0x0040 0x01F0 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO12__LPSPI8_PCS0 0x0040 0x01F0 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO12__LPUART8_TX 0x0040 0x01F0 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO12__LPI2C8_SDA 0x0040 0x01F0 0x040C 0x6 0x1 +#define MX93_PAD_GPIO_IO12__SAI3_RX_SYNC 0x0040 0x01F0 0x0458 0x7 0x0 +#define MX93_PAD_GPIO_IO13__GPIO2_IO13 0x0044 0x01F4 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO13__TPM4_CH2 0x0044 0x01F4 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO13__PDM_BIT_STREAM03 0x0044 0x01F4 0x044C 0x2 0x0 +#define MX93_PAD_GPIO_IO13__MEDIAMIX_DISP_DATA09 0x0044 0x01F4 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO13__LPSPI8_SIN 0x0044 0x01F4 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO13__LPUART8_RX 0x0044 0x01F4 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO13__LPI2C8_SCL 0x0044 0x01F4 0x0408 0x6 0x1 +#define MX93_PAD_GPIO_IO13__FLEXIO1_FLEXIO13 0x0044 0x01F4 0x039C 0x7 0x0 +#define MX93_PAD_GPIO_IO14__GPIO2_IO14 0x0048 0x01F8 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO14__LPUART3_TX 0x0048 0x01F8 0x0424 0x1 0x0 +#define MX93_PAD_GPIO_IO14__MEDIAMIX_CAM_DATA06 0x0048 0x01F8 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO14__MEDIAMIX_DISP_DATA10 0x0048 0x01F8 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO14__LPSPI8_SOUT 0x0048 0x01F8 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO14__LPUART8_CTS_B 0x0048 0x01F8 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO14__LPUART4_TX 0x0048 0x01F8 0x0430 0x6 0x0 +#define MX93_PAD_GPIO_IO14__FLEXIO1_FLEXIO14 0x0048 0x01F8 0x03A0 0x7 0x0 +#define MX93_PAD_GPIO_IO15__GPIO2_IO15 0x004C 0x01FC 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO15__LPUART3_RX 0x004C 0x01FC 0x0420 0x1 0x0 +#define MX93_PAD_GPIO_IO15__MEDIAMIX_CAM_DATA07 0x004C 0x01FC 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO15__MEDIAMIX_DISP_DATA11 0x004C 0x01FC 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO15__LPSPI8_SCK 0x004C 0x01FC 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO15__LPUART8_RTS_B 0x004C 0x01FC 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO15__LPUART4_RX 0x004C 0x01FC 0x042C 0x6 0x0 +#define MX93_PAD_GPIO_IO15__FLEXIO1_FLEXIO15 0x004C 0x01FC 0x03A4 0x7 0x0 +#define MX93_PAD_GPIO_IO16__GPIO2_IO16 0x0050 0x0200 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO16__SAI3_TX_BCLK 0x0050 0x0200 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO16__PDM_BIT_STREAM02 0x0050 0x0200 0x0448 0x2 0x1 +#define MX93_PAD_GPIO_IO16__MEDIAMIX_DISP_DATA12 0x0050 0x0200 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO16__LPUART3_CTS_B 0x0050 0x0200 0x041C 0x4 0x0 +#define MX93_PAD_GPIO_IO16__LPSPI4_PCS2 0x0050 0x0200 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO16__LPUART4_CTS_B 0x0050 0x0200 0x0428 0x6 0x0 +#define MX93_PAD_GPIO_IO16__FLEXIO1_FLEXIO16 0x0050 0x0200 0x03A8 0x7 0x0 +#define MX93_PAD_GPIO_IO17__GPIO2_IO17 0x0054 0x0204 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO17__SAI3_MCLK 0x0054 0x0204 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO17__MEDIAMIX_CAM_DATA08 0x0054 0x0204 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO17__MEDIAMIX_DISP_DATA13 0x0054 0x0204 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO17__LPUART3_RTS_B 0x0054 0x0204 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO17__LPSPI4_PCS1 0x0054 0x0204 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO17__LPUART4_RTS_B 0x0054 0x0204 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO17__FLEXIO1_FLEXIO17 0x0054 0x0204 0x03AC 0x7 0x0 +#define MX93_PAD_GPIO_IO18__GPIO2_IO18 0x0058 0x0208 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO18__SAI3_RX_BCLK 0x0058 0x0208 0x0454 0x1 0x0 +#define MX93_PAD_GPIO_IO18__MEDIAMIX_CAM_DATA09 0x0058 0x0208 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO18__MEDIAMIX_DISP_DATA14 0x0058 0x0208 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO18__LPSPI5_PCS0 0x0058 0x0208 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO18__LPSPI4_PCS0 0x0058 0x0208 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO18__TPM5_CH2 0x0058 0x0208 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO18__FLEXIO1_FLEXIO18 0x0058 0x0208 0x03B0 0x7 0x0 +#define MX93_PAD_GPIO_IO19__GPIO2_IO19 0x005C 0x020C 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO19__SAI3_RX_SYNC 0x005C 0x020C 0x0458 0x1 0x1 +#define MX93_PAD_GPIO_IO19__PDM_BIT_STREAM03 0x005C 0x020C 0x044C 0x2 0x1 +#define MX93_PAD_GPIO_IO19__MEDIAMIX_DISP_DATA15 0x005C 0x020C 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO19__LPSPI5_SIN 0x005C 0x020C 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO19__LPSPI4_SIN 0x005C 0x020C 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO19__TPM6_CH2 0x005C 0x020C 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO19__SAI3_TX_DATA00 0x005C 0x020C 0x0000 0x7 0x0 +#define MX93_PAD_GPIO_IO20__GPIO2_IO20 0x0060 0x0210 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO20__SAI3_RX_DATA00 0x0060 0x0210 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO20__PDM_BIT_STREAM00 0x0060 0x0210 0x0440 0x2 0x1 +#define MX93_PAD_GPIO_IO20__MEDIAMIX_DISP_DATA16 0x0060 0x0210 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO20__LPSPI5_SOUT 0x0060 0x0210 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO20__LPSPI4_SOUT 0x0060 0x0210 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO20__TPM3_CH1 0x0060 0x0210 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO20__FLEXIO1_FLEXIO20 0x0060 0x0210 0x03B4 0x7 0x0 +#define MX93_PAD_GPIO_IO21__GPIO2_IO21 0x0064 0x0214 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO21__SAI3_TX_DATA00 0x0064 0x0214 0x0000 0x1 0x0 +#define MX93_PAD_GPIO_IO21__PDM_CLK 0x0064 0x0214 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO21__MEDIAMIX_DISP_DATA17 0x0064 0x0214 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO21__LPSPI5_SCK 0x0064 0x0214 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO21__LPSPI4_SCK 0x0064 0x0214 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO21__TPM4_CH1 0x0064 0x0214 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO21__SAI3_RX_BCLK 0x0064 0x0214 0x0454 0x7 0x1 +#define MX93_PAD_GPIO_IO22__GPIO2_IO22 0x0068 0x0218 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO22__USDHC3_CLK 0x0068 0x0218 0x0460 0x1 0x0 +#define MX93_PAD_GPIO_IO22__SPDIF_IN 0x0068 0x0218 0x045C 0x2 0x0 +#define MX93_PAD_GPIO_IO22__MEDIAMIX_DISP_DATA18 0x0068 0x0218 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO22__TPM5_CH1 0x0068 0x0218 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO22__TPM6_EXTCLK 0x0068 0x0218 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO22__LPI2C5_SDA 0x0068 0x0218 0x03F4 0x6 0x1 +#define MX93_PAD_GPIO_IO22__FLEXIO1_FLEXIO22 0x0068 0x0218 0x03B8 0x7 0x0 +#define MX93_PAD_GPIO_IO23__GPIO2_IO23 0x006C 0x021C 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO23__USDHC3_CMD 0x006C 0x021C 0x0464 0x1 0x0 +#define MX93_PAD_GPIO_IO23__SPDIF_OUT 0x006C 0x021C 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO23__MEDIAMIX_DISP_DATA19 0x006C 0x021C 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO23__TPM6_CH1 0x006C 0x021C 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO23__LPI2C5_SCL 0x006C 0x021C 0x03F0 0x6 0x1 +#define MX93_PAD_GPIO_IO23__FLEXIO1_FLEXIO23 0x006C 0x021C 0x03BC 0x7 0x0 +#define MX93_PAD_GPIO_IO24__GPIO2_IO24 0x0070 0x0220 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO24__USDHC3_DATA0 0x0070 0x0220 0x0468 0x1 0x0 +#define MX93_PAD_GPIO_IO24__MEDIAMIX_DISP_DATA20 0x0070 0x0220 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO24__TPM3_CH3 0x0070 0x0220 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO24__JTAG_MUX_TDO 0x0070 0x0220 0x0000 0x5 0x0 +#define MX93_PAD_GPIO_IO24__LPSPI6_PCS1 0x0070 0x0220 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO24__FLEXIO1_FLEXIO24 0x0070 0x0220 0x03C0 0x7 0x0 +#define MX93_PAD_GPIO_IO25__GPIO2_IO25 0x0074 0x0224 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO25__USDHC3_DATA1 0x0074 0x0224 0x046C 0x1 0x0 +#define MX93_PAD_GPIO_IO25__CAN2_TX 0x0074 0x0224 0x0000 0x2 0x0 +#define MX93_PAD_GPIO_IO25__MEDIAMIX_DISP_DATA21 0x0074 0x0224 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO25__TPM4_CH3 0x0074 0x0224 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO25__JTAG_MUX_TCK 0x0074 0x0224 0x03DC 0x5 0x1 +#define MX93_PAD_GPIO_IO25__LPSPI7_PCS1 0x0074 0x0224 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO25__FLEXIO1_FLEXIO25 0x0074 0x0224 0x03C4 0x7 0x0 +#define MX93_PAD_GPIO_IO26__GPIO2_IO26 0x0078 0x0228 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO26__USDHC3_DATA2 0x0078 0x0228 0x0470 0x1 0x0 +#define MX93_PAD_GPIO_IO26__PDM_BIT_STREAM01 0x0078 0x0228 0x0444 0x2 0x1 +#define MX93_PAD_GPIO_IO26__MEDIAMIX_DISP_DATA22 0x0078 0x0228 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO26__TPM5_CH3 0x0078 0x0228 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO26__JTAG_MUX_TDI 0x0078 0x0228 0x03E0 0x5 0x1 +#define MX93_PAD_GPIO_IO26__LPSPI8_PCS1 0x0078 0x0228 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO26__SAI3_TX_SYNC 0x0078 0x0228 0x0000 0x7 0x0 +#define MX93_PAD_GPIO_IO27__GPIO2_IO27 0x007C 0x022C 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO27__USDHC3_DATA3 0x007C 0x022C 0x0474 0x1 0x0 +#define MX93_PAD_GPIO_IO27__CAN2_RX 0x007C 0x022C 0x0364 0x2 0x1 +#define MX93_PAD_GPIO_IO27__MEDIAMIX_DISP_DATA23 0x007C 0x022C 0x0000 0x3 0x0 +#define MX93_PAD_GPIO_IO27__TPM6_CH3 0x007C 0x022C 0x0000 0x4 0x0 +#define MX93_PAD_GPIO_IO27__JTAG_MUX_TMS 0x007C 0x022C 0x03E4 0x5 0x1 +#define MX93_PAD_GPIO_IO27__LPSPI5_PCS1 0x007C 0x022C 0x0000 0x6 0x0 +#define MX93_PAD_GPIO_IO27__FLEXIO1_FLEXIO27 0x007C 0x022C 0x03C8 0x7 0x0 +#define MX93_PAD_GPIO_IO28__GPIO2_IO28 0x0080 0x0230 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO28__LPI2C3_SDA 0x0080 0x0230 0x03EC 0x1 0x1 +#define MX93_PAD_GPIO_IO28__FLEXIO1_FLEXIO28 0x0080 0x0230 0x0000 0x7 0x0 +#define MX93_PAD_GPIO_IO29__GPIO2_IO29 0x0084 0x0234 0x0000 0x0 0x0 +#define MX93_PAD_GPIO_IO29__LPI2C3_SCL 0x0084 0x0234 0x03E8 0x1 0x1 +#define MX93_PAD_GPIO_IO29__FLEXIO1_FLEXIO29 0x0084 0x0234 0x0000 0x7 0x0 +#define MX93_PAD_CCM_CLKO1__CCMSRCGPCMIX_CLKO1 0x0088 0x0238 0x0000 0x0 0x0 +#define MX93_PAD_CCM_CLKO1__FLEXIO1_FLEXIO26 0x0088 0x0238 0x0000 0x4 0x0 +#define MX93_PAD_CCM_CLKO1__GPIO3_IO26 0x0088 0x0238 0x0000 0x5 0x0 +#define MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x008C 0x023C 0x0000 0x5 0x0 +#define MX93_PAD_CCM_CLKO2__CCMSRCGPCMIX_CLKO2 0x008C 0x023C 0x0000 0x0 0x0 +#define MX93_PAD_CCM_CLKO2__FLEXIO1_FLEXIO27 0x008C 0x023C 0x03C8 0x4 0x1 +#define MX93_PAD_CCM_CLKO3__CCMSRCGPCMIX_CLKO3 0x0090 0x0240 0x0000 0x0 0x0 +#define MX93_PAD_CCM_CLKO3__FLEXIO2_FLEXIO28 0x0090 0x0240 0x0000 0x4 0x0 +#define MX93_PAD_CCM_CLKO3__GPIO3_IO28 0x0090 0x0240 0x03CC 0x5 0x1 +#define MX93_PAD_CCM_CLKO4__CCMSRCGPCMIX_CLKO4 0x0094 0x0244 0x0000 0x0 0x0 +#define MX93_PAD_CCM_CLKO4__FLEXIO2_FLEXIO29 0x0094 0x0244 0x0000 0x4 0x0 +#define MX93_PAD_CCM_CLKO4__GPIO3_IO29 0x0094 0x0244 0x03D0 0x5 0x1 +#define MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x0098 0x0248 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_MDC__LPUART3_DCB_B 0x0098 0x0248 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_MDC__I3C2_SCL 0x0098 0x0248 0x03D4 0x2 0x0 +#define MX93_PAD_ENET1_MDC__HSIOMIX_OTG_ID1 0x0098 0x0248 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_MDC__FLEXIO2_FLEXIO00 0x0098 0x0248 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_MDC__GPIO4_IO00 0x0098 0x0248 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_MDC__LPUART5_RTS_B 0x0098 0x0248 0x0000 0x6 0x0 +#define MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x009C 0x024C 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_MDIO__LPUART3_RIN_B 0x009C 0x024C 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_MDIO__I3C2_SDA 0x009C 0x024C 0x03D8 0x2 0x0 +#define MX93_PAD_ENET1_MDIO__HSIOMIX_OTG_PWR1 0x009C 0x024C 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_MDIO__FLEXIO2_FLEXIO01 0x009C 0x024C 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_MDIO__GPIO4_IO01 0x009C 0x024C 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x00A0 0x0250 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TD3__CAN2_TX 0x00A0 0x0250 0x0000 0x2 0x0 +#define MX93_PAD_ENET1_TD3__HSIOMIX_OTG_ID2 0x00A0 0x0250 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_TD3__FLEXIO2_FLEXIO02 0x00A0 0x0250 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TD3__GPIO4_IO02 0x00A0 0x0250 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x00A4 0x0254 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TD2__CCM_ENET_QOS_CLOCK_GENERATE_REF_CLK 0x00A4 0x0254 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_TD2__CAN2_RX 0x00A4 0x0254 0x0364 0x2 0x2 +#define MX93_PAD_ENET1_TD2__HSIOMIX_OTG_OC2 0x00A4 0x0254 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_TD2__FLEXIO2_FLEXIO03 0x00A4 0x0254 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TD2__GPIO4_IO03 0x00A4 0x0254 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x00A8 0x0258 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TD1__LPUART3_RTS_B 0x00A8 0x0258 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_TD1__I3C2_PUR 0x00A8 0x0258 0x0000 0x2 0x0 +#define MX93_PAD_ENET1_TD1__HSIOMIX_OTG_OC1 0x00A8 0x0258 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_TD1__FLEXIO2_FLEXIO04 0x00A8 0x0258 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TD1__GPIO4_IO04 0x00A8 0x0258 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TD1__I3C2_PUR_B 0x00A8 0x0258 0x0000 0x6 0x0 +#define MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x00AC 0x025C 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TD0__LPUART3_TX 0x00AC 0x025C 0x0424 0x1 0x1 +#define MX93_PAD_ENET1_TD0__FLEXIO2_FLEXIO05 0x00AC 0x025C 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TD0__GPIO4_IO05 0x00AC 0x025C 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x00B0 0x0260 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TX_CTL__LPUART3_DTR_B 0x00B0 0x0260 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_TX_CTL__FLEXIO2_FLEXIO06 0x00B0 0x0260 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TX_CTL__GPIO4_IO06 0x00B0 0x0260 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x00B4 0x0264 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_TXC__ENET_QOS_TX_ER 0x00B4 0x0264 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_TXC__FLEXIO2_FLEXIO07 0x00B4 0x0264 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_TXC__GPIO4_IO07 0x00B4 0x0264 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x00B8 0x0268 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RX_CTL__LPUART3_DSR_B 0x00B8 0x0268 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_RX_CTL__HSIOMIX_OTG_PWR2 0x00B8 0x0268 0x0000 0x3 0x0 +#define MX93_PAD_ENET1_RX_CTL__FLEXIO2_FLEXIO08 0x00B8 0x0268 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RX_CTL__GPIO4_IO08 0x00B8 0x0268 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x00BC 0x026C 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RXC__ENET_QOS_RX_ER 0x00BC 0x026C 0x0000 0x1 0x0 +#define MX93_PAD_ENET1_RXC__FLEXIO2_FLEXIO09 0x00BC 0x026C 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RXC__GPIO4_IO09 0x00BC 0x026C 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x00C0 0x0270 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RD0__LPUART3_RX 0x00C0 0x0270 0x0420 0x1 0x1 +#define MX93_PAD_ENET1_RD0__FLEXIO2_FLEXIO10 0x00C0 0x0270 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RD0__GPIO4_IO10 0x00C0 0x0270 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x00C4 0x0274 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RD1__LPUART3_CTS_B 0x00C4 0x0274 0x041C 0x1 0x1 +#define MX93_PAD_ENET1_RD1__LPTMR2_ALT1 0x00C4 0x0274 0x0410 0x3 0x0 +#define MX93_PAD_ENET1_RD1__FLEXIO2_FLEXIO11 0x00C4 0x0274 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RD1__GPIO4_IO11 0x00C4 0x0274 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x00C8 0x0278 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RD2__LPTMR2_ALT2 0x00C8 0x0278 0x0414 0x3 0x0 +#define MX93_PAD_ENET1_RD2__FLEXIO2_FLEXIO12 0x00C8 0x0278 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RD2__GPIO4_IO12 0x00C8 0x0278 0x0000 0x5 0x0 +#define MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x00CC 0x027C 0x0000 0x0 0x0 +#define MX93_PAD_ENET1_RD3__FLEXSPI1_TESTER_TRIGGER 0x00CC 0x027C 0x0000 0x2 0x0 +#define MX93_PAD_ENET1_RD3__LPTMR2_ALT3 0x00CC 0x027C 0x0418 0x3 0x0 +#define MX93_PAD_ENET1_RD3__FLEXIO2_FLEXIO13 0x00CC 0x027C 0x0000 0x4 0x0 +#define MX93_PAD_ENET1_RD3__GPIO4_IO13 0x00CC 0x027C 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_MDC__ENET1_MDC 0x00D0 0x0280 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_MDC__LPUART4_DCB_B 0x00D0 0x0280 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_MDC__SAI2_RX_SYNC 0x00D0 0x0280 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_MDC__FLEXIO2_FLEXIO14 0x00D0 0x0280 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_MDC__GPIO4_IO14 0x00D0 0x0280 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x00D4 0x0284 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_MDIO__LPUART4_RIN_B 0x00D4 0x0284 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_MDIO__SAI2_RX_BCLK 0x00D4 0x0284 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_MDIO__FLEXIO2_FLEXIO15 0x00D4 0x0284 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_MDIO__GPIO4_IO15 0x00D4 0x0284 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TD3__SAI2_RX_DATA00 0x00D8 0x0288 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TD3__FLEXIO2_FLEXIO16 0x00D8 0x0288 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TD3__GPIO4_IO16 0x00D8 0x0288 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x00D8 0x0288 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x00DC 0x028C 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TD2__ENET1_TX_CLK 0x00DC 0x028C 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_TD2__SAI2_RX_DATA01 0x00DC 0x028C 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TD2__FLEXIO2_FLEXIO17 0x00DC 0x028C 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TD2__GPIO4_IO17 0x00DC 0x028C 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x00E0 0x0290 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TD1__LPUART4_RTS_B 0x00E0 0x0290 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_TD1__SAI2_RX_DATA02 0x00E0 0x0290 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TD1__FLEXIO2_FLEXIO18 0x00E0 0x0290 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TD1__GPIO4_IO18 0x00E0 0x0290 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x00E4 0x0294 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TD0__LPUART4_TX 0x00E4 0x0294 0x0430 0x1 0x1 +#define MX93_PAD_ENET2_TD0__SAI2_RX_DATA03 0x00E4 0x0294 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TD0__FLEXIO2_FLEXIO19 0x00E4 0x0294 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TD0__GPIO4_IO19 0x00E4 0x0294 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x00E8 0x0298 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TX_CTL__LPUART4_DTR_B 0x00E8 0x0298 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_TX_CTL__SAI2_TX_SYNC 0x00E8 0x0298 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TX_CTL__FLEXIO2_FLEXIO20 0x00E8 0x0298 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TX_CTL__GPIO4_IO20 0x00E8 0x0298 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x00EC 0x029C 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_TXC__ENET1_TX_ER 0x00EC 0x029C 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_TXC__SAI2_TX_BCLK 0x00EC 0x029C 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_TXC__FLEXIO2_FLEXIO21 0x00EC 0x029C 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_TXC__GPIO4_IO21 0x00EC 0x029C 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x00F0 0x02A0 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RX_CTL__LPUART4_DSR_B 0x00F0 0x02A0 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_RX_CTL__SAI2_TX_DATA00 0x00F0 0x02A0 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_RX_CTL__FLEXIO2_FLEXIO22 0x00F0 0x02A0 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RX_CTL__GPIO4_IO22 0x00F0 0x02A0 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x00F4 0x02A4 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RXC__ENET1_RX_ER 0x00F4 0x02A4 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_RXC__SAI2_TX_DATA01 0x00F4 0x02A4 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_RXC__FLEXIO2_FLEXIO23 0x00F4 0x02A4 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RXC__GPIO4_IO23 0x00F4 0x02A4 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x00F8 0x02A8 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RD0__LPUART4_RX 0x00F8 0x02A8 0x042C 0x1 0x1 +#define MX93_PAD_ENET2_RD0__SAI2_TX_DATA02 0x00F8 0x02A8 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_RD0__FLEXIO2_FLEXIO24 0x00F8 0x02A8 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RD0__GPIO4_IO24 0x00F8 0x02A8 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x00FC 0x02AC 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RD1__SPDIF_IN 0x00FC 0x02AC 0x045C 0x1 0x1 +#define MX93_PAD_ENET2_RD1__SAI2_TX_DATA03 0x00FC 0x02AC 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_RD1__FLEXIO2_FLEXIO25 0x00FC 0x02AC 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RD1__GPIO4_IO25 0x00FC 0x02AC 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x0100 0x02B0 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RD2__LPUART4_CTS_B 0x0100 0x02B0 0x0428 0x1 0x1 +#define MX93_PAD_ENET2_RD2__SAI2_MCLK 0x0100 0x02B0 0x0000 0x2 0x0 +#define MX93_PAD_ENET2_RD2__MQS2_RIGHT 0x0100 0x02B0 0x0000 0x3 0x0 +#define MX93_PAD_ENET2_RD2__FLEXIO2_FLEXIO26 0x0100 0x02B0 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RD2__GPIO4_IO26 0x0100 0x02B0 0x0000 0x5 0x0 +#define MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x0104 0x02B4 0x0000 0x0 0x0 +#define MX93_PAD_ENET2_RD3__SPDIF_OUT 0x0104 0x02B4 0x0000 0x1 0x0 +#define MX93_PAD_ENET2_RD3__SPDIF_IN 0x0104 0x02B4 0x045C 0x2 0x2 +#define MX93_PAD_ENET2_RD3__MQS2_LEFT 0x0104 0x02B4 0x0000 0x3 0x0 +#define MX93_PAD_ENET2_RD3__FLEXIO2_FLEXIO27 0x0104 0x02B4 0x0000 0x4 0x0 +#define MX93_PAD_ENET2_RD3__GPIO4_IO27 0x0104 0x02B4 0x0000 0x5 0x0 +#define MX93_PAD_SD1_CLK__FLEXIO1_FLEXIO08 0x0108 0x02B8 0x038C 0x4 0x1 +#define MX93_PAD_SD1_CLK__GPIO3_IO08 0x0108 0x02B8 0x0000 0x5 0x0 +#define MX93_PAD_SD1_CLK__USDHC1_CLK 0x0108 0x02B8 0x0000 0x0 0x0 +#define MX93_PAD_SD1_CMD__USDHC1_CMD 0x010C 0x02BC 0x0000 0x0 0x0 +#define MX93_PAD_SD1_CMD__FLEXIO1_FLEXIO09 0x010C 0x02BC 0x0390 0x4 0x1 +#define MX93_PAD_SD1_CMD__GPIO3_IO09 0x010C 0x02BC 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x0110 0x02C0 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA0__FLEXIO1_FLEXIO10 0x0110 0x02C0 0x0394 0x4 0x1 +#define MX93_PAD_SD1_DATA0__GPIO3_IO10 0x0110 0x02C0 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x0114 0x02C4 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA1__FLEXIO1_FLEXIO11 0x0114 0x02C4 0x0398 0x4 0x1 +#define MX93_PAD_SD1_DATA1__GPIO3_IO11 0x0114 0x02C4 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA1__CCMSRCGPCMIX_INT_BOOT 0x0114 0x02C4 0x0000 0x6 0x0 +#define MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x0118 0x02C8 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA2__FLEXIO1_FLEXIO12 0x0118 0x02C8 0x0000 0x4 0x0 +#define MX93_PAD_SD1_DATA2__GPIO3_IO12 0x0118 0x02C8 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA2__CCMSRCGPCMIX_PMIC_READY 0x0118 0x02C8 0x0000 0x6 0x0 +#define MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x011C 0x02CC 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA3__FLEXSPI1_A_SS1_B 0x011C 0x02CC 0x0000 0x1 0x0 +#define MX93_PAD_SD1_DATA3__FLEXIO1_FLEXIO13 0x011C 0x02CC 0x039C 0x4 0x1 +#define MX93_PAD_SD1_DATA3__GPIO3_IO13 0x011C 0x02CC 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x0120 0x02D0 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA4__FLEXSPI1_A_DATA04 0x0120 0x02D0 0x0000 0x1 0x0 +#define MX93_PAD_SD1_DATA4__FLEXIO1_FLEXIO14 0x0120 0x02D0 0x03A0 0x4 0x1 +#define MX93_PAD_SD1_DATA4__GPIO3_IO14 0x0120 0x02D0 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x0124 0x02D4 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA5__FLEXSPI1_A_DATA05 0x0124 0x02D4 0x0000 0x1 0x0 +#define MX93_PAD_SD1_DATA5__USDHC1_RESET_B 0x0124 0x02D4 0x0000 0x2 0x0 +#define MX93_PAD_SD1_DATA5__FLEXIO1_FLEXIO15 0x0124 0x02D4 0x03A4 0x4 0x1 +#define MX93_PAD_SD1_DATA5__GPIO3_IO15 0x0124 0x02D4 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x0128 0x02D8 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA6__FLEXSPI1_A_DATA06 0x0128 0x02D8 0x0000 0x1 0x0 +#define MX93_PAD_SD1_DATA6__USDHC1_CD_B 0x0128 0x02D8 0x0000 0x2 0x0 +#define MX93_PAD_SD1_DATA6__FLEXIO1_FLEXIO16 0x0128 0x02D8 0x03A8 0x4 0x1 +#define MX93_PAD_SD1_DATA6__GPIO3_IO16 0x0128 0x02D8 0x0000 0x5 0x0 +#define MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x012C 0x02DC 0x0000 0x0 0x0 +#define MX93_PAD_SD1_DATA7__FLEXSPI1_A_DATA07 0x012C 0x02DC 0x0000 0x1 0x0 +#define MX93_PAD_SD1_DATA7__USDHC1_WP 0x012C 0x02DC 0x0000 0x2 0x0 +#define MX93_PAD_SD1_DATA7__FLEXIO1_FLEXIO17 0x012C 0x02DC 0x03AC 0x4 0x1 +#define MX93_PAD_SD1_DATA7__GPIO3_IO17 0x012C 0x02DC 0x0000 0x5 0x0 +#define MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x0130 0x02E0 0x0000 0x0 0x0 +#define MX93_PAD_SD1_STROBE__FLEXSPI1_A_DQS 0x0130 0x02E0 0x0000 0x1 0x0 +#define MX93_PAD_SD1_STROBE__FLEXIO1_FLEXIO18 0x0130 0x02E0 0x03B0 0x4 0x1 +#define MX93_PAD_SD1_STROBE__GPIO3_IO18 0x0130 0x02E0 0x0000 0x5 0x0 +#define MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x0134 0x02E4 0x0000 0x0 0x0 +#define MX93_PAD_SD2_VSELECT__USDHC2_WP 0x0134 0x02E4 0x0000 0x1 0x0 +#define MX93_PAD_SD2_VSELECT__LPTMR2_ALT3 0x0134 0x02E4 0x0418 0x2 0x1 +#define MX93_PAD_SD2_VSELECT__FLEXIO1_FLEXIO19 0x0134 0x02E4 0x0000 0x4 0x0 +#define MX93_PAD_SD2_VSELECT__GPIO3_IO19 0x0134 0x02E4 0x0000 0x5 0x0 +#define MX93_PAD_SD2_VSELECT__CCMSRCGPCMIX_EXT_CLK1 0x0134 0x02E4 0x0368 0x6 0x0 +#define MX93_PAD_SD3_CLK__USDHC3_CLK 0x0138 0x02E8 0x0460 0x0 0x1 +#define MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK 0x0138 0x02E8 0x0000 0x1 0x0 +#define MX93_PAD_SD3_CLK__FLEXIO1_FLEXIO20 0x0138 0x02E8 0x03B4 0x4 0x1 +#define MX93_PAD_SD3_CLK__GPIO3_IO20 0x0138 0x02E8 0x0000 0x5 0x0 +#define MX93_PAD_SD3_CMD__USDHC3_CMD 0x013C 0x02EC 0x0464 0x0 0x1 +#define MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B 0x013C 0x02EC 0x0000 0x1 0x0 +#define MX93_PAD_SD3_CMD__FLEXIO1_FLEXIO21 0x013C 0x02EC 0x0000 0x4 0x0 +#define MX93_PAD_SD3_CMD__GPIO3_IO21 0x013C 0x02EC 0x0000 0x5 0x0 +#define MX93_PAD_SD3_DATA0__USDHC3_DATA0 0x0140 0x02F0 0x0468 0x0 0x1 +#define MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00 0x0140 0x02F0 0x0000 0x1 0x0 +#define MX93_PAD_SD3_DATA0__FLEXIO1_FLEXIO22 0x0140 0x02F0 0x03B8 0x4 0x1 +#define MX93_PAD_SD3_DATA0__GPIO3_IO22 0x0140 0x02F0 0x0000 0x5 0x0 +#define MX93_PAD_SD3_DATA1__USDHC3_DATA1 0x0144 0x02F4 0x046C 0x0 0x1 +#define MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01 0x0144 0x02F4 0x0000 0x1 0x0 +#define MX93_PAD_SD3_DATA1__FLEXIO1_FLEXIO23 0x0144 0x02F4 0x03BC 0x4 0x1 +#define MX93_PAD_SD3_DATA1__GPIO3_IO23 0x0144 0x02F4 0x0000 0x5 0x0 +#define MX93_PAD_SD3_DATA2__USDHC3_DATA2 0x0148 0x02F8 0x0470 0x0 0x1 +#define MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02 0x0148 0x02F8 0x0000 0x1 0x0 +#define MX93_PAD_SD3_DATA2__FLEXIO1_FLEXIO24 0x0148 0x02F8 0x03C0 0x4 0x1 +#define MX93_PAD_SD3_DATA2__GPIO3_IO24 0x0148 0x02F8 0x0000 0x5 0x0 +#define MX93_PAD_SD3_DATA3__USDHC3_DATA3 0x014C 0x02FC 0x0474 0x0 0x1 +#define MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03 0x014C 0x02FC 0x0000 0x1 0x0 +#define MX93_PAD_SD3_DATA3__FLEXIO1_FLEXIO25 0x014C 0x02FC 0x03C4 0x4 0x1 +#define MX93_PAD_SD3_DATA3__GPIO3_IO25 0x014C 0x02FC 0x0000 0x5 0x0 +#define MX93_PAD_SD2_CD_B__USDHC2_CD_B 0x0150 0x0300 0x0000 0x0 0x0 +#define MX93_PAD_SD2_CD_B__ENET_QOS_1588_EVENT0_IN 0x0150 0x0300 0x0000 0x1 0x0 +#define MX93_PAD_SD2_CD_B__I3C2_SCL 0x0150 0x0300 0x03D4 0x2 0x1 +#define MX93_PAD_SD2_CD_B__FLEXIO1_FLEXIO00 0x0150 0x0300 0x036C 0x4 0x1 +#define MX93_PAD_SD2_CD_B__GPIO3_IO00 0x0150 0x0300 0x0000 0x5 0x0 +#define MX93_PAD_SD2_CD_B__CCMSRCGPCMIX_TESTER_ACK 0x0150 0x0300 0x0000 0x6 0x0 +#define MX93_PAD_SD2_CLK__USDHC2_CLK 0x0154 0x0304 0x0000 0x0 0x0 +#define MX93_PAD_SD2_CLK__ENET_QOS_1588_EVENT0_OUT 0x0154 0x0304 0x0000 0x1 0x0 +#define MX93_PAD_SD2_CLK__I3C2_SDA 0x0154 0x0304 0x03D8 0x2 0x1 +#define MX93_PAD_SD2_CLK__FLEXIO1_FLEXIO01 0x0154 0x0304 0x0370 0x4 0x1 +#define MX93_PAD_SD2_CLK__GPIO3_IO01 0x0154 0x0304 0x0000 0x5 0x0 +#define MX93_PAD_SD2_CLK__CCMSRCGPCMIX_OBSERVE0 0x0154 0x0304 0x0000 0x6 0x0 +#define MX93_PAD_SD2_CMD__USDHC2_CMD 0x0158 0x0308 0x0000 0x0 0x0 +#define MX93_PAD_SD2_CMD__ENET1_1588_EVENT0_IN 0x0158 0x0308 0x0000 0x1 0x0 +#define MX93_PAD_SD2_CMD__I3C2_PUR 0x0158 0x0308 0x0000 0x2 0x0 +#define MX93_PAD_SD2_CMD__I3C2_PUR_B 0x0158 0x0308 0x0000 0x3 0x0 +#define MX93_PAD_SD2_CMD__FLEXIO1_FLEXIO02 0x0158 0x0308 0x0374 0x4 0x1 +#define MX93_PAD_SD2_CMD__GPIO3_IO02 0x0158 0x0308 0x0000 0x5 0x0 +#define MX93_PAD_SD2_CMD__CCMSRCGPCMIX_OBSERVE1 0x0158 0x0308 0x0000 0x6 0x0 +#define MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x015C 0x030C 0x0000 0x0 0x0 +#define MX93_PAD_SD2_DATA0__ENET1_1588_EVENT0_OUT 0x015C 0x030C 0x0000 0x1 0x0 +#define MX93_PAD_SD2_DATA0__CAN2_TX 0x015C 0x030C 0x0000 0x2 0x0 +#define MX93_PAD_SD2_DATA0__FLEXIO1_FLEXIO03 0x015C 0x030C 0x0378 0x4 0x1 +#define MX93_PAD_SD2_DATA0__GPIO3_IO03 0x015C 0x030C 0x0000 0x5 0x0 +#define MX93_PAD_SD2_DATA0__CCMSRCGPCMIX_OBSERVE2 0x015C 0x030C 0x0000 0x6 0x0 +#define MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x0160 0x0310 0x0000 0x0 0x0 +#define MX93_PAD_SD2_DATA1__ENET1_1588_EVENT1_IN 0x0160 0x0310 0x0000 0x1 0x0 +#define MX93_PAD_SD2_DATA1__CAN2_RX 0x0160 0x0310 0x0364 0x2 0x3 +#define MX93_PAD_SD2_DATA1__FLEXIO1_FLEXIO04 0x0160 0x0310 0x037C 0x4 0x1 +#define MX93_PAD_SD2_DATA1__GPIO3_IO04 0x0160 0x0310 0x0000 0x5 0x0 +#define MX93_PAD_SD2_DATA1__CCMSRCGPCMIX_WAIT 0x0160 0x0310 0x0000 0x6 0x0 +#define MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x0164 0x0314 0x0000 0x0 0x0 +#define MX93_PAD_SD2_DATA2__ENET1_1588_EVENT1_OUT 0x0164 0x0314 0x0000 0x1 0x0 +#define MX93_PAD_SD2_DATA2__MQS2_RIGHT 0x0164 0x0314 0x0000 0x2 0x0 +#define MX93_PAD_SD2_DATA2__FLEXIO1_FLEXIO05 0x0164 0x0314 0x0380 0x4 0x1 +#define MX93_PAD_SD2_DATA2__GPIO3_IO05 0x0164 0x0314 0x0000 0x5 0x0 +#define MX93_PAD_SD2_DATA2__CCMSRCGPCMIX_STOP 0x0164 0x0314 0x0000 0x6 0x0 +#define MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x0168 0x0318 0x0000 0x0 0x0 +#define MX93_PAD_SD2_DATA3__LPTMR2_ALT1 0x0168 0x0318 0x0410 0x1 0x1 +#define MX93_PAD_SD2_DATA3__MQS2_LEFT 0x0168 0x0318 0x0000 0x2 0x0 +#define MX93_PAD_SD2_DATA3__FLEXIO1_FLEXIO06 0x0168 0x0318 0x0384 0x4 0x1 +#define MX93_PAD_SD2_DATA3__GPIO3_IO06 0x0168 0x0318 0x0000 0x5 0x0 +#define MX93_PAD_SD2_DATA3__CCMSRCGPCMIX_EARLY_RESET 0x0168 0x0318 0x0000 0x6 0x0 +#define MX93_PAD_SD2_RESET_B__USDHC2_RESET_B 0x016C 0x031C 0x0000 0x0 0x0 +#define MX93_PAD_SD2_RESET_B__LPTMR2_ALT2 0x016C 0x031C 0x0414 0x1 0x1 +#define MX93_PAD_SD2_RESET_B__FLEXIO1_FLEXIO07 0x016C 0x031C 0x0388 0x4 0x1 +#define MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x016C 0x031C 0x0000 0x5 0x0 +#define MX93_PAD_SD2_RESET_B__CCMSRCGPCMIX_SYSTEM_RESET 0x016C 0x031C 0x0000 0x6 0x0 +#define MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x0170 0x0320 0x0000 0x0 0x0 +#define MX93_PAD_I2C1_SCL__I3C1_SCL 0x0170 0x0320 0x0000 0x1 0x0 +#define MX93_PAD_I2C1_SCL__LPUART1_DCB_B 0x0170 0x0320 0x0000 0x2 0x0 +#define MX93_PAD_I2C1_SCL__TPM2_CH0 0x0170 0x0320 0x0000 0x3 0x0 +#define MX93_PAD_I2C1_SCL__GPIO1_IO00 0x0170 0x0320 0x0000 0x5 0x0 +#define MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x0174 0x0324 0x0000 0x0 0x0 +#define MX93_PAD_I2C1_SDA__I3C1_SDA 0x0174 0x0324 0x0000 0x1 0x0 +#define MX93_PAD_I2C1_SDA__LPUART1_RIN_B 0x0174 0x0324 0x0000 0x2 0x0 +#define MX93_PAD_I2C1_SDA__TPM2_CH1 0x0174 0x0324 0x0000 0x3 0x0 +#define MX93_PAD_I2C1_SDA__GPIO1_IO01 0x0174 0x0324 0x0000 0x5 0x0 +#define MX93_PAD_I2C2_SCL__LPI2C2_SCL 0x0178 0x0328 0x0000 0x0 0x0 +#define MX93_PAD_I2C2_SCL__I3C1_PUR 0x0178 0x0328 0x0000 0x1 0x0 +#define MX93_PAD_I2C2_SCL__LPUART2_DCB_B 0x0178 0x0328 0x0000 0x2 0x0 +#define MX93_PAD_I2C2_SCL__TPM2_CH2 0x0178 0x0328 0x0000 0x3 0x0 +#define MX93_PAD_I2C2_SCL__SAI1_RX_SYNC 0x0178 0x0328 0x0000 0x4 0x0 +#define MX93_PAD_I2C2_SCL__GPIO1_IO02 0x0178 0x0328 0x0000 0x5 0x0 +#define MX93_PAD_I2C2_SCL__I3C1_PUR_B 0x0178 0x0328 0x0000 0x6 0x0 +#define MX93_PAD_I2C2_SDA__LPI2C2_SDA 0x017C 0x032C 0x0000 0x0 0x0 +#define MX93_PAD_I2C2_SDA__LPUART2_RIN_B 0x017C 0x032C 0x0000 0x2 0x0 +#define MX93_PAD_I2C2_SDA__TPM2_CH3 0x017C 0x032C 0x0000 0x3 0x0 +#define MX93_PAD_I2C2_SDA__SAI1_RX_BCLK 0x017C 0x032C 0x0000 0x4 0x0 +#define MX93_PAD_I2C2_SDA__GPIO1_IO03 0x017C 0x032C 0x0000 0x5 0x0 +#define MX93_PAD_UART1_RXD__LPUART1_RX 0x0180 0x0330 0x0000 0x0 0x0 +#define MX93_PAD_UART1_RXD__S400_UART_RX 0x0180 0x0330 0x0000 0x1 0x0 +#define MX93_PAD_UART1_RXD__LPSPI2_SIN 0x0180 0x0330 0x0000 0x2 0x0 +#define MX93_PAD_UART1_RXD__TPM1_CH0 0x0180 0x0330 0x0000 0x3 0x0 +#define MX93_PAD_UART1_RXD__GPIO1_IO04 0x0180 0x0330 0x0000 0x5 0x0 +#define MX93_PAD_UART1_TXD__LPUART1_TX 0x0184 0x0334 0x0000 0x0 0x0 +#define MX93_PAD_UART1_TXD__S400_UART_TX 0x0184 0x0334 0x0000 0x1 0x0 +#define MX93_PAD_UART1_TXD__LPSPI2_PCS0 0x0184 0x0334 0x0000 0x2 0x0 +#define MX93_PAD_UART1_TXD__TPM1_CH1 0x0184 0x0334 0x0000 0x3 0x0 +#define MX93_PAD_UART1_TXD__GPIO1_IO05 0x0184 0x0334 0x0000 0x5 0x0 +#define MX93_PAD_UART2_RXD__LPUART2_RX 0x0188 0x0338 0x0000 0x0 0x0 +#define MX93_PAD_UART2_RXD__LPUART1_CTS_B 0x0188 0x0338 0x0000 0x1 0x0 +#define MX93_PAD_UART2_RXD__LPSPI2_SOUT 0x0188 0x0338 0x0000 0x2 0x0 +#define MX93_PAD_UART2_RXD__TPM1_CH2 0x0188 0x0338 0x0000 0x3 0x0 +#define MX93_PAD_UART2_RXD__SAI1_MCLK 0x0188 0x0338 0x0450 0x4 0x0 +#define MX93_PAD_UART2_RXD__GPIO1_IO06 0x0188 0x0338 0x0000 0x5 0x0 +#define MX93_PAD_UART2_TXD__LPUART2_TX 0x018C 0x033C 0x0000 0x0 0x0 +#define MX93_PAD_UART2_TXD__LPUART1_RTS_B 0x018C 0x033C 0x0000 0x1 0x0 +#define MX93_PAD_UART2_TXD__LPSPI2_SCK 0x018C 0x033C 0x0000 0x2 0x0 +#define MX93_PAD_UART2_TXD__TPM1_CH3 0x018C 0x033C 0x0000 0x3 0x0 +#define MX93_PAD_UART2_TXD__GPIO1_IO07 0x018C 0x033C 0x0000 0x5 0x0 +#define MX93_PAD_PDM_CLK__PDM_CLK 0x0190 0x0340 0x0000 0x0 0x0 +#define MX93_PAD_PDM_CLK__MQS1_LEFT 0x0190 0x0340 0x0000 0x1 0x0 +#define MX93_PAD_PDM_CLK__LPTMR1_ALT1 0x0190 0x0340 0x0000 0x4 0x0 +#define MX93_PAD_PDM_CLK__GPIO1_IO08 0x0190 0x0340 0x0000 0x5 0x0 +#define MX93_PAD_PDM_CLK__CAN1_TX 0x0190 0x0340 0x0000 0x6 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__PDM_BIT_STREAM00 0x0194 0x0344 0x0440 0x0 0x2 +#define MX93_PAD_PDM_BIT_STREAM0__MQS1_RIGHT 0x0194 0x0344 0x0000 0x1 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__LPSPI1_PCS1 0x0194 0x0344 0x0000 0x2 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__TPM1_EXTCLK 0x0194 0x0344 0x0000 0x3 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__LPTMR1_ALT2 0x0194 0x0344 0x0000 0x4 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__GPIO1_IO09 0x0194 0x0344 0x0000 0x5 0x0 +#define MX93_PAD_PDM_BIT_STREAM0__CAN1_RX 0x0194 0x0344 0x0360 0x6 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__PDM_BIT_STREAM01 0x0198 0x0348 0x0444 0x0 0x2 +#define MX93_PAD_PDM_BIT_STREAM1__NMI_GLUE_NMI 0x0198 0x0348 0x0000 0x1 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__LPSPI2_PCS1 0x0198 0x0348 0x0000 0x2 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__TPM2_EXTCLK 0x0198 0x0348 0x0000 0x3 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__LPTMR1_ALT3 0x0198 0x0348 0x0000 0x4 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10 0x0198 0x0348 0x0000 0x5 0x0 +#define MX93_PAD_PDM_BIT_STREAM1__CCMSRCGPCMIX_EXT_CLK1 0x0198 0x0348 0x0368 0x6 0x1 +#define MX93_PAD_SAI1_TXFS__SAI1_TX_SYNC 0x019C 0x034C 0x0000 0x0 0x0 +#define MX93_PAD_SAI1_TXFS__SAI1_TX_DATA01 0x019C 0x034C 0x0000 0x1 0x0 +#define MX93_PAD_SAI1_TXFS__LPSPI1_PCS0 0x019C 0x034C 0x0000 0x2 0x0 +#define MX93_PAD_SAI1_TXFS__LPUART2_DTR_B 0x019C 0x034C 0x0000 0x3 0x0 +#define MX93_PAD_SAI1_TXFS__MQS1_LEFT 0x019C 0x034C 0x0000 0x4 0x0 +#define MX93_PAD_SAI1_TXFS__GPIO1_IO11 0x019C 0x034C 0x0000 0x5 0x0 +#define MX93_PAD_SAI1_TXC__SAI1_TX_BCLK 0x01A0 0x0350 0x0000 0x0 0x0 +#define MX93_PAD_SAI1_TXC__LPUART2_CTS_B 0x01A0 0x0350 0x0000 0x1 0x0 +#define MX93_PAD_SAI1_TXC__LPSPI1_SIN 0x01A0 0x0350 0x0000 0x2 0x0 +#define MX93_PAD_SAI1_TXC__LPUART1_DSR_B 0x01A0 0x0350 0x0000 0x3 0x0 +#define MX93_PAD_SAI1_TXC__CAN1_RX 0x01A0 0x0350 0x0360 0x4 0x1 +#define MX93_PAD_SAI1_TXC__GPIO1_IO12 0x01A0 0x0350 0x0000 0x5 0x0 +#define MX93_PAD_SAI1_TXD0__SAI1_TX_DATA00 0x01A4 0x0354 0x0000 0x0 0x0 +#define MX93_PAD_SAI1_TXD0__LPUART2_RTS_B 0x01A4 0x0354 0x0000 0x1 0x0 +#define MX93_PAD_SAI1_TXD0__LPSPI1_SCK 0x01A4 0x0354 0x0000 0x2 0x0 +#define MX93_PAD_SAI1_TXD0__LPUART1_DTR_B 0x01A4 0x0354 0x0000 0x3 0x0 +#define MX93_PAD_SAI1_TXD0__CAN1_TX 0x01A4 0x0354 0x0000 0x4 0x0 +#define MX93_PAD_SAI1_TXD0__GPIO1_IO13 0x01A4 0x0354 0x0000 0x5 0x0 +#define MX93_PAD_SAI1_RXD0__SAI1_RX_DATA00 0x01A8 0x0358 0x0000 0x0 0x0 +#define MX93_PAD_SAI1_RXD0__SAI1_MCLK 0x01A8 0x0358 0x0450 0x1 0x1 +#define MX93_PAD_SAI1_RXD0__LPSPI1_SOUT 0x01A8 0x0358 0x0000 0x2 0x0 +#define MX93_PAD_SAI1_RXD0__LPUART2_DSR_B 0x01A8 0x0358 0x0000 0x3 0x0 +#define MX93_PAD_SAI1_RXD0__MQS1_RIGHT 0x01A8 0x0358 0x0000 0x4 0x0 +#define MX93_PAD_SAI1_RXD0__GPIO1_IO14 0x01A8 0x0358 0x0000 0x5 0x0 +#define MX93_PAD_WDOG_ANY__WDOG1_WDOG_ANY 0x01AC 0x035C 0x0000 0x0 0x0 +#define MX93_PAD_WDOG_ANY__GPIO1_IO15 0x01AC 0x035C 0x0000 0x5 0x0 + +#endif /* __DTS_IMX93_PINFUNC_H */ diff --git a/drivers/pinctrl/nxp/Kconfig b/drivers/pinctrl/nxp/Kconfig index 3657e9deb9e..06c26f156f6 100644 --- a/drivers/pinctrl/nxp/Kconfig +++ b/drivers/pinctrl/nxp/Kconfig @@ -102,6 +102,19 @@ config PINCTRL_IMX8M only parses the 'fsl,pins' property and configure related registers. +config PINCTRL_IMX93 + bool "IMX8M pinctrl driver" + depends on ARCH_IMX9 && PINCTRL_FULL + select PINCTRL_IMX + help + Say Y here to enable the imx8m pinctrl driver + + This provides a simple pinctrl driver for i.MX8M SoC familiy. + This feature depends on device tree configuration. This driver + is different from the linux one, this is a simple implementation, + only parses the 'fsl,pins' property and configure related + registers. + config PINCTRL_MXS bool "NXP MXS pinctrl driver" depends on ARCH_MX28 && PINCTRL_FULL diff --git a/drivers/pinctrl/nxp/Makefile b/drivers/pinctrl/nxp/Makefile index f2fe0d8efa6..f10aa6ef188 100644 --- a/drivers/pinctrl/nxp/Makefile +++ b/drivers/pinctrl/nxp/Makefile @@ -7,6 +7,7 @@ obj-$(CONFIG_PINCTRL_IMX8ULP) += pinctrl-imx8ulp.o obj-$(CONFIG_PINCTRL_IMX_SCU) += pinctrl-scu.o obj-$(CONFIG_PINCTRL_IMX8) += pinctrl-imx8.o obj-$(CONFIG_PINCTRL_IMX8M) += pinctrl-imx8m.o +obj-$(CONFIG_PINCTRL_IMX93) += pinctrl-imx93.o obj-$(CONFIG_PINCTRL_MXS) += pinctrl-mxs.o obj-$(CONFIG_PINCTRL_VYBRID) += pinctrl-vf610.o obj-$(CONFIG_PINCTRL_IMXRT) += pinctrl-imxrt.o diff --git a/drivers/pinctrl/nxp/pinctrl-imx93.c b/drivers/pinctrl/nxp/pinctrl-imx93.c new file mode 100644 index 00000000000..9a5b9de6d75 --- /dev/null +++ b/drivers/pinctrl/nxp/pinctrl-imx93.c @@ -0,0 +1,37 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include + +#include "pinctrl-imx.h" + +static struct imx_pinctrl_soc_info imx93_pinctrl_soc_info __section(".data") = { + .flags = ZERO_OFFSET_VALID, +}; + +static int imx93_pinctrl_probe(struct udevice *dev) +{ + struct imx_pinctrl_soc_info *info = + (struct imx_pinctrl_soc_info *)dev_get_driver_data(dev); + + return imx_pinctrl_probe(dev, info); +} + +static const struct udevice_id imx93_pinctrl_match[] = { + { .compatible = "fsl,imx93-iomuxc", .data = (ulong)&imx93_pinctrl_soc_info }, + { /* sentinel */ } +}; + +U_BOOT_DRIVER(imx93_pinctrl) = { + .name = "imx93-pinctrl", + .id = UCLASS_PINCTRL, + .of_match = of_match_ptr(imx93_pinctrl_match), + .probe = imx93_pinctrl_probe, + .remove = imx_pinctrl_remove, + .priv_auto = sizeof(struct imx_pinctrl_priv), + .ops = &imx_pinctrl_ops, + .flags = DM_FLAG_PRE_RELOC, +}; From patchwork Mon Jun 27 03:24:19 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648543 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=bpTGPGjw; 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 4LWXB35yMCz9sGp for ; Mon, 27 Jun 2022 12:44:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7BD63844AC; Mon, 27 Jun 2022 04:42:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="bpTGPGjw"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 905E984488; Mon, 27 Jun 2022 04:42:32 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2074.outbound.protection.outlook.com [40.107.21.74]) (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 8FAA48447E for ; Mon, 27 Jun 2022 04:42:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BUaXojsErRFIx/eVR06hGt0S6sk/3qBYFbABFSVthLPovh17WdMAj53YTzPPltsuEW2i6infSt5g5W8jYoXXOO+Ftzms/nhxRE4Uktgug0SBhWvfAn/OGxXHbUAIbq+vaCBgt15ylBW9xGjyVyhOVNkcHg6MgWdXaN36G1//wWm3dB3NpN7JKXsNhGlpELyYkNmsuEexjqOQnRaVbO6VGY/eVRCkhjg2INv6+qFwdcoWAfartRnKLXVcRbF3mtaJZEnURJZ8bgPDM5iSpt5cjLXsgCYr94ziNSoA0CZ0XcEcZZK28SQYKbLEhuHy76OKxfEgnss7r5FW10Q96OAfEQ== 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=o4oJhk3CmoV4EQMRKHk0PXpJKsz/jp3xS9bxtoMBfnU=; b=VRQo8bojhFbHUyo4+YxMCM8somPz1UP9aqsOMOxumFP45URxeuDPdBZlhRVaez/LJkJlgBO+wRuY4fKapI0AjcqgNLxO0dZhfC/AypJo72/jwrzTN8Px0KL3vNnUqq+iF9ja3t1Q/vDi+esyeNh3IgSYXhMDzsGrDIzfC/TRyDpD/0/1LuNOfT28rF4NIaZ6LEmaWzsrH16ULakqrpRuXYsLA7vksF+DZHP4/iUebVbYVT7wgmCYrG0gNtAIlVl/i/bx5gQUXgXNe8mrKfYMxB8L/Wrok99GFSqzngAxfTl0vKY0oYouvW6VTygLElR8DrQJ+Dr0LefjazrR3h3k1w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o4oJhk3CmoV4EQMRKHk0PXpJKsz/jp3xS9bxtoMBfnU=; b=bpTGPGjw/UbwaWhpZ7GVVWARbQLrDgGja3tOpEqGBJMOOLHklatBkpah1mcN8Ea99AkhljB7tbCkQfl4KONbEIpaLI5C22ewSf42Lfrk73n00aHS3OsNSXmwwi6BeR1ZxmzdIhNaQSuoosNud/kUxmcWnv5EY6FzTGTHO77PPfQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:23 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:23 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 13/49] imx: imx9: Add CCM and clock API support Date: Mon, 27 Jun 2022 11:24:19 +0800 Message-Id: <20220627032455.28280-14-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 225f3a56-f4aa-4d05-54ee-08da57e6a9b8 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QgkraoQJLOtKR4NSa96h0+AKDutWFUZ19Z2BQBmSduEmsREYdvVt0j58jH5locudx7b3oA/NHX+UVtQMdO4MHxDBCmf+27vzqUkc6s4McgLT/WATdJk1DwUo+pwkGhhCu5KK1AdSNHxJ0BB2RADuCugxw3gM3BmkToM1Yuu3GvDgK5oIU+k2eUiOnIw+zCNFC0qEeO2ErKy6QboTT3O5BAqWEXpHWzVKd2t4so1kLydy0z1bJUn9B3s0TAnoLLquq/Ho23GQzHIfPm0C1sP+2VrHFloBUaduelocDIeRv0ygsshlG3PIH3YKnE8EQDBdkBuFTCDMo5XbzIV0EVHMHMSaLMX9Xy7fPmo22+JTQaGtjetLh+hQA16YrEiUZKr/zT5h2kiEYsqI6MJBPXzci44yWiEZyD0pkerVm7YSdPxzQSWvAOhuDLqW2F492etX+LO3jQPxveef9dCB5s+qHn8/VyX437Yc6LYY3QtxL7YQ6mH9J/f4+iZDgAJmf6Og3TFcS9uEu3QJvyBg4W4tYPXJFg06mUAuoLOTset2sVQJv9NYpb9kutQDvj3TEUP4WRoF6begbYsLMIYR5m8R78SeHLTfHtO+67RgP4eZ9vQwom4eayza7q093BMqXQa2VKUFOf0tatxdCKXHCwGDxneJiir1UfPs90VA5SySExkzEbc1j5u67M+UHn6xk/eEZxdp4se1cItLNl0qjMzsw4dgyV8DpmdiDScNT6pvVuphxddOPCWn7VIkgmbUuX1w+kPjhYoIy8iMrwCxx216Klw1ypJqnmpHrOz2rkqf95I= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(30864003)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005)(579004); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IGxQXjGuNH7UzzCppS1MWI9LfsQT2w8oIQzn3SD7PuFFvYPKgtnoph6V85m0OCB/wwP9oWNw3Geq+cnBIRIgbDZUCD7JnB2owfveBrrfQhokKzmdYwMKnjkWE1EVlaGf17//udRlV4LElEQqrvpJIJMxklsapdRQUQKdYosh6XPd9N2YBpAyKOk2ZE25GaQIC8qw5sChcGub/d3KNhTBhWzkXTKOcxcMnGOhTtzGW/BnjPpBGVv/aQ0s62JsXZSYUkTP8MgeEMrk/0BTH1URO3TjRFdfQYZiXACUdC4b+Znk6XI8M20MQzEBlyZVGAk8c6fv8rWZp0Om6xIxSb2CUDUcP2SkNNfuZ/5Uf2CNfqsWVb+9LyYT2w0dpAFOUO4JkhAoE7MmC8JnC8dtAvsers/D5JiLBMNuiU+51rYUcnw3XNjqQUp4LhlF6L+SsyE71MsZab2GAPAA+E1nTemaJRFzEzbaVU3lgPTXCAIxNpXxCsjn/UTpD5Bd99cTH5Rr1Fhgy6FDM2FWCQ4ozfr4r4ccgkln57e4FFqJf1o5Q5lqxI1G8dmO+2bgjtbO1fqhbnCYbfsyH1ACdOM6r6ms3G6ruMkcjzxYo9B6zLfN/Yj87MeoEuY17FYG1pKz50ZU1mOtWxVEK+LhJhOY1dShDGG/xBLF1rs26sUdRtkv1+9xZaO+GDovsY/pzuqsjEUPucecF0zFYVFDFYLKBS+MQMo2nC+3t3T/Pb3ny5l50wJuu2Yt9L6Jyi1JM6zBP9mecb7Nw1pk51GQs5fnnoNbZTzxMNYSwSZnj66+FPV4PVmsbes9oAeHrwXr370uqzLSiMepex2L/ZmXFo8SGha8H9io/3XcWdarlbOkD5M2d4F20ESWu2hAZenWG65ZXAEL/1IEHvuqWGz2ax3t13/wZFewGBBNo0ZaBix+BN6iYQyTWLWTcAwYCKc7PT5s3r/XwJGx68xp9FVUC+eWeq44WUWbUgx0GcamT0xSu13vspa+22zQ+9fSlksGH1NQJcKfI4LTPHYq1Ry+qLUIii8fucLaydBfoZWftcr2ihg712iU5PCGCTUyl5tLdnjRFIwNSPCDM4Xykf5ZJ0hsULXV+7uB8fzg0Ryb2LZDhbkkYgVTIyHzh1MvZMW+wvsL64abV47avGlpeSbe8oK7bFVGTaU1IzgvlOS+rFYAJ0sAGD6l/sWdfBuKBXy0veMuuSscWil4XBFFv073D5W1sjUgod9yntZQGc6xPOEI4vf7PZiiQ0oTRrIM2zdoZBRjD2E86S4+/+4xmuDbPVa/0cHq8aGl8sZKQH3kGVCBPq8AVV+OkG9JxLY/TAhVGO/JBLqXJFn0vPpBwpLu1y1xvBpnn8f74M8lLyanEU7PqhJsof/8x7XjySYeGWh6d8xuV0ALuDAoIZDWT/7vCAM2oLoYTzpG39MWexMf3tGvyrC0HD4DiTcPpcf+ZeLUWzHXzL4ZnUwNy2mA5dO7noZMm1zXcs3WV1+H2reBGi4alfuwGcMbYBAL25scakEajokNzQEUOZ+B4dwmjBwnf+APYZuHhBYgvWi1Adb5vr6FtCZ+shOc+xcUlXcHyXZQ2uaKb9Vs X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 225f3a56-f4aa-4d05-54ee-08da57e6a9b8 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:23.4727 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: x19U6JdE/pYCNk4ays5ibHQvLeC8OXUv/j766l0RPO/G5+bc6jtOVEMQbW0+sDmQeBM6iHVqpWoblc/XvN/tAQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add clock API to support CCM root clock and LPCG setting Set the CCM AUTHEN register to allow non-secure world to set root clock and lpcg. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/ccm_regs.h | 266 ++++++++ arch/arm/include/asm/arch-imx9/clock.h | 239 +++++++ arch/arm/include/asm/arch-imx9/imx-regs.h | 6 +- arch/arm/mach-imx/imx9/Makefile | 2 +- arch/arm/mach-imx/imx9/clock.c | 769 +++++++++++++++++++++- arch/arm/mach-imx/imx9/clock_root.c | 438 ++++++++++++ arch/arm/mach-imx/imx9/soc.c | 3 + 7 files changed, 1720 insertions(+), 3 deletions(-) create mode 100644 arch/arm/include/asm/arch-imx9/ccm_regs.h create mode 100644 arch/arm/mach-imx/imx9/clock_root.c diff --git a/arch/arm/include/asm/arch-imx9/ccm_regs.h b/arch/arm/include/asm/arch-imx9/ccm_regs.h new file mode 100644 index 00000000000..d326a6ea516 --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/ccm_regs.h @@ -0,0 +1,266 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX9_CCM_REGS_H__ +#define __ASM_ARCH_IMX9_CCM_REGS_H__ +#define IMX93_CLK_ROOT_MAX 95 +#define IMX93_CLK_CCGR_MAX 127 + +#define ARM_A55_PERIPH_CLK_ROOT 0 +#define ARM_A55_MTR_BUS_CLK_ROOT 1 +#define ARM_A55_CLK_ROOT 2 +#define M33_CLK_ROOT 3 +#define SENTINEL_CLK_ROOT 4 +#define BUS_WAKEUP_CLK_ROOT 5 +#define BUS_AON_CLK_ROOT 6 +#define WAKEUP_AXI_CLK_ROOT 7 +#define SWO_TRACE_CLK_ROOT 8 +#define M33_SYSTICK_CLK_ROOT 9 +#define FLEXIO1_CLK_ROOT 10 +#define FLEXIO2_CLK_ROOT 11 +#define LPIT1_CLK_ROOT 12 +#define LPIT2_CLK_ROOT 13 +#define LPTMR1_CLK_ROOT 14 +#define LPTMR2_CLK_ROOT 15 +#define TPM1_CLK_ROOT 16 +#define TPM2_CLK_ROOT 17 +#define TPM3_CLK_ROOT 18 +#define TPM4_CLK_ROOT 19 +#define TPM5_CLK_ROOT 20 +#define TPM6_CLK_ROOT 21 +#define FLEXSPI1_CLK_ROOT 22 +#define CAN1_CLK_ROOT 23 +#define CAN2_CLK_ROOT 24 +#define LPUART1_CLK_ROOT 25 +#define LPUART2_CLK_ROOT 26 +#define LPUART3_CLK_ROOT 27 +#define LPUART4_CLK_ROOT 28 +#define LPUART5_CLK_ROOT 29 +#define LPUART6_CLK_ROOT 30 +#define LPUART7_CLK_ROOT 31 +#define LPUART8_CLK_ROOT 32 +#define LPI2C1_CLK_ROOT 33 +#define LPI2C2_CLK_ROOT 34 +#define LPI2C3_CLK_ROOT 35 +#define LPI2C4_CLK_ROOT 36 +#define LPI2C5_CLK_ROOT 37 +#define LPI2C6_CLK_ROOT 38 +#define LPI2C7_CLK_ROOT 39 +#define LPI2C8_CLK_ROOT 40 +#define LPSPI1_CLK_ROOT 41 +#define LPSPI2_CLK_ROOT 42 +#define LPSPI3_CLK_ROOT 43 +#define LPSPI4_CLK_ROOT 44 +#define LPSPI5_CLK_ROOT 45 +#define LPSPI6_CLK_ROOT 46 +#define LPSPI7_CLK_ROOT 47 +#define LPSPI8_CLK_ROOT 48 +#define I3C1_CLK_ROOT 49 +#define I3C2_CLK_ROOT 50 +#define USDHC1_CLK_ROOT 51 +#define USDHC2_CLK_ROOT 52 +#define USDHC3_CLK_ROOT 53 +#define SAI1_CLK_ROOT 54 +#define SAI2_CLK_ROOT 55 +#define SAI3_CLK_ROOT 56 +#define CCM_CKO1_CLK_ROOT 57 +#define CCM_CKO2_CLK_ROOT 58 +#define CCM_CKO3_CLK_ROOT 59 +#define CCM_CKO4_CLK_ROOT 60 +#define HSIO_CLK_ROOT 61 +#define HSIO_USB_TEST_60M_CLK_ROOT 62 +#define HSIO_ACSCAN_80M_CLK_ROOT 63 +#define HSIO_ACSCAN_480M_CLK_ROOT 64 +#define NIC_CLK_ROOT 65 +#define NIC_APB_CLK_ROOT 66 +#define ML_APB_CLK_ROOT 67 +#define ML_CLK_ROOT 68 +#define MEDIA_AXI_CLK_ROOT 69 +#define MEDIA_APB_CLK_ROOT 70 +#define MEDIA_LDB_CLK_ROOT 71 +#define MEDIA_DISP_PIX_CLK_ROOT 72 +#define CAM_PIX_CLK_ROOT 73 +#define MIPI_TEST_BYTE_CLK_ROOT 74 +#define MIPI_PHY_CFG_CLK_ROOT 75 +#define DRAM_ALT_CLK_ROOT 76 +#define DRAM_APB_CLK_ROOT 77 +#define ADC_CLK_ROOT 78 +#define PDM_CLK_ROOT 79 +#define TSTMR1_CLK_ROOT 80 +#define TSTMR2_CLK_ROOT 81 +#define MQS1_CLK_ROOT 82 +#define MQS2_CLK_ROOT 83 +#define AUDIO_XCVR_CLK_ROOT 84 +#define SPDIF_CLK_ROOT 85 +#define ENET_CLK_ROOT 86 +#define ENET_TIMER1_CLK_ROOT 87 +#define ENET_TIMER2_CLK_ROOT 88 +#define ENET_REF_CLK_ROOT 89 +#define ENET_REF_PHY_CLK_ROOT 90 +#define I3C1_SLOW_CLK_ROOT 91 +#define I3C2_SLOW_CLK_ROOT 92 +#define USB_PHY_BURUNIN_CLK_ROOT 93 +#define PAL_CAME_SCAN_CLK_ROOT 94 +#define CLK_ROOT_NUM 95 + +#define CCGR_A55 0 +#define CCGR_CM33 1 +#define CCGR_ARMTROUT 2 +#define CCGR_SENT 3 +#define CCGR_BUSM 4 +#define CCGR_BUS7 5 +#define CCGR_BUSD 6 +#define CCGR_ANAD 7 +#define CCGR_SRC 8 +#define CCGR_CCM 9 +#define CCGR_GPC 10 +#define CCGR_ADC 11 +#define CCGR_WDG1 12 +#define CCGR_WDG2 13 +#define CCGR_WDG3 14 +#define CCGR_WDG4 15 +#define CCGR_WDG5 16 +#define CCGR_SEM1 17 +#define CCGR_SEM2 18 +#define CCGR_MUA 19 +#define CCGR_MUB 20 +#define CCGR_DMA1 21 +#define CCGR_DMA2 22 +#define CCGR_ROMCA55 23 +#define CCGR_ROMCM33 24 +#define CCGR_QSP1 25 +#define CCGR_AONRDC 26 +#define CCGR_WKUPRDC 27 +#define CCGR_FUSE 28 +#define CCGR_SNVH 29 +#define CCGR_SNVS 30 +#define CCGR_TRAC 31 +#define CCGR_SWO 32 +#define CCGR_IOCG 33 +#define CCGR_PIO1 34 +#define CCGR_PIO2 35 +#define CCGR_PIO3 36 +#define CCGR_PIO4 37 +#define CCGR_FIO1 38 +#define CCGR_FIO2 39 +#define CCGR_PIT1 40 +#define CCGR_PIT2 41 +#define CCGR_GPT1 42 +#define CCGR_GPT2 43 +#define CCGR_TPM1 44 +#define CCGR_TPM2 45 +#define CCGR_TPM3 46 +#define CCGR_TPM4 47 +#define CCGR_TPM5 48 +#define CCGR_TPM6 49 +#define CCGR_CAN1 50 +#define CCGR_CAN2 51 +#define CCGR_URT1 52 +#define CCGR_URT2 53 +#define CCGR_URT3 54 +#define CCGR_URT4 55 +#define CCGR_URT5 56 +#define CCGR_URT6 57 +#define CCGR_URT7 58 +#define CCGR_URT8 59 +#define CCGR_I2C1 60 +#define CCGR_I2C2 61 +#define CCGR_I2C3 62 +#define CCGR_I2C4 63 +#define CCGR_I2C5 64 +#define CCGR_I2C6 65 +#define CCGR_I2C7 66 +#define CCGR_I2C8 67 +#define CCGR_SPI1 68 +#define CCGR_SPI2 69 +#define CCGR_SPI3 70 +#define CCGR_SPI4 71 +#define CCGR_SPI5 72 +#define CCGR_SPI6 73 +#define CCGR_SPI7 74 +#define CCGR_SPI8 75 +#define CCGR_I3C1 76 +#define CCGR_I3C2 77 +#define CCGR_USDHC1 78 +#define CCGR_USDHC2 79 +#define CCGR_USDHC3 80 +#define CCGR_SAI1 81 +#define CCGR_SAI2 82 +#define CCGR_SAI3 83 +#define CCGR_W2AO 84 +#define CCGR_AO2W 85 +#define CCGR_MIPIC 86 +#define CCGR_MIPID 87 +#define CCGR_LVDS 88 +#define CCGR_LCDIF 89 +#define CCGR_PXP 90 +#define CCGR_ISI 91 +#define CCGR_NMED 92 +#define CCGR_DFI 93 +#define CCGR_DDRC 94 +#define CCGR_DFIC 95 +#define CCGR_DSSI 96 +#define CCGR_DBYP 97 +#define CCGR_DAPB 98 +#define CCGR_DRAMP 99 +#define CCGR_DCLKC 100 +#define CCGR_NCTL 101 +#define CCGR_GIC 102 +#define CCGR_NICAPB 103 +#define CCGR_USBC 104 +#define CCGR_USBT 105 +#define CCGR_HSIO 106 +#define CCGR_PDM 107 +#define CCGR_MQS1 108 +#define CCGR_MQS2 109 +#define CCGR_AXCVR 110 +#define CCGR_MECC 111 +#define CCGR_SPDIF 112 +#define CCGR_ML2NIC 113 +#define CCGR_MED2NIC 114 +#define CCGR_HSIO2NIC 115 +#define CCGR_W2NIC 116 +#define CCGR_NIC2W 117 +#define CCGR_NIC2DDR 118 +#define CCGR_HSIO32K 119 +#define CCGR_ENET1 120 +#define CCGR_ENETQOS 121 +#define CCGR_SYSCNT 122 +#define CCGR_TSTMR1 123 +#define CCGR_TSTMR2 124 +#define CCGR_TMC 125 +#define CCGR_PMRO 126 +#define CCGR_NUM 127 + +#define SHARED_GPR_EXT_CLK 0 +#define SHARED_GPR_EXT_CLK_SEL_EXT1 0 +#define SHARED_GPR_EXT_CLK_SEL_EXT2 BIT(0) +#define SHARED_GPR_EXT_CLK_SEL_EXT3 BIT(1) +#define SHARED_GPR_EXT_CLK_SEL_EXT4 GENMASK(1, 0) + +#define SHARED_GPR_A55_CLK 1 +#define SHARED_GPR_A55_CLK_SEL_CCM 0 +#define SHARED_GPR_A55_CLK_SEL_PLL BIT(0) + +#define SHARED_GPR_DRAM_CLK 2 +#define SHARED_GPR_DRAM_CLK_SEL_PLL 0 +#define SHARED_GPR_DRAM_CLK_SEL_CCM BIT(0) + +#define SHARED_GPR_NUM 8 +#define PRIVATE_GPR_NUM 8 + +#define CLK_ROOT_STATUS_OFF BIT(24) +#define CLK_ROOT_STATUS_CHANGING BIT(31) +#define CLK_ROOT_MUX_MASK GENMASK(9, 8) +#define CLK_ROOT_MUX_SHIFT 8 +#define CLK_ROOT_DIV_MASK GENMASK(7, 0) + +#define CCM_AUTHEN_LOCK_TZ BIT(11) +#define CCM_AUTHEN_TZ_NS BIT(9) +#define CCM_AUTHEN_TZ_USER BIT(8) +#define CCM_AUTHEN_CPULPM_MODE BIT(2) +#define CCM_AUTHEN_AUTO_CTRL BIT(3) + +#endif diff --git a/arch/arm/include/asm/arch-imx9/clock.h b/arch/arm/include/asm/arch-imx9/clock.h index e69de29bb2d..fcf04d66f05 100644 --- a/arch/arm/include/asm/arch-imx9/clock.h +++ b/arch/arm/include/asm/arch-imx9/clock.h @@ -0,0 +1,239 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + * + * Peng Fan + */ + +#ifndef __CLOCK_IMX9__ +#define __CLOCK_IMX9__ + +#include + +#define MHZ(x) ((x) * 1000000UL) + +enum enet_freq { + ENET_25MHZ = 0, + ENET_50MHZ, + ENET_125MHZ, +}; + +enum ccm_clk_src { + OSC_24M_CLK, + ARM_PLL, + ARM_PLL_CLK, + SYS_PLL_PG, + SYS_PLL_PFD0_PG, + SYS_PLL_PFD0, + SYS_PLL_PFD0_DIV2, + SYS_PLL_PFD1_PG, + SYS_PLL_PFD1, + SYS_PLL_PFD1_DIV2, + SYS_PLL_PFD2_PG, + SYS_PLL_PFD2, + SYS_PLL_PFD2_DIV2, + AUDIO_PLL, + AUDIO_PLL_CLK, + DRAM_PLL, + DRAM_PLL_CLK, + VIDEO_PLL, + VIDEO_PLL_CLK, + OSCPLL_END, + EXT_CLK, +}; + +/* Mainly for compatible to imx common code. */ +enum mxc_clock { + MXC_ARM_CLK = 0, + MXC_IPG_CLK, + MXC_FLEXSPI_CLK, + MXC_CSPI_CLK, + MXC_ESDHC_CLK, + MXC_ESDHC2_CLK, + MXC_ESDHC3_CLK, + MXC_UART_CLK, + MXC_I2C_CLK, + MXC_FEC_CLK, +}; + +struct ccm_obs { + u32 direct; + u32 reserved[31]; +}; + +struct ccm_gpr { + u32 gpr; + u32 gpr_set; + u32 gpr_clr; + u32 gpr_tog; + u32 authen; + u32 authen_set; + u32 authen_clr; + u32 authen_tog; +}; + +struct ccm_lpcg_oscpll { + u32 direct; + u32 lpm_status0; + u32 lpm_status1; + u32 reserved0; + u32 lpm0; + u32 lpm1; + u32 reserved1; + u32 lpm_cur; + u32 status0; + u32 status1; + u32 reserved2[2]; + u32 authen; + u32 reserved3[3]; +}; + +struct ccm_root { + u32 control; + u32 control_set; + u32 control_clr; + u32 control_tog; + u32 reserved[4]; + u32 status0; + u32 reserved1[3]; + u32 authen; + u32 reserved2[19]; +}; + +struct ccm_reg { + struct ccm_root clk_roots[95]; /* 0x0 */ + u32 reserved_0[1312]; + struct ccm_obs clk_obs[6]; /* 0x4400 */ + u32 reserved_1[64]; + struct ccm_gpr clk_shared_gpr[8]; /* 0x4800 */ + u32 reserved_2[192]; + struct ccm_gpr clk_private_gpr[8]; /* 0x4C00 */ + u32 reserved_3[192]; + struct ccm_lpcg_oscpll clk_oscplls[19]; /* 0x5000 */ + u32 reserved_4[2768]; + struct ccm_lpcg_oscpll clk_lpcgs[122]; /* 0x8000 */ +}; + +struct ana_pll_reg_elem { + u32 reg; + u32 reg_set; + u32 reg_clr; + u32 reg_tog; +}; + +struct ana_pll_dfs { + struct ana_pll_reg_elem dfs_ctrl; + struct ana_pll_reg_elem dfs_div; +}; + +struct ana_pll_reg { + struct ana_pll_reg_elem ctrl; + struct ana_pll_reg_elem ana_prg; + struct ana_pll_reg_elem test; + struct ana_pll_reg_elem ss; /* Spread spectrum */ + struct ana_pll_reg_elem num; /* numerator */ + struct ana_pll_reg_elem denom; /* demoninator */ + struct ana_pll_reg_elem div; + struct ana_pll_dfs dfs[4]; + u32 pll_status; + u32 dfs_status; + u32 reserved[2]; +}; + +struct anatop_reg { + u32 osc_ctrl; + u32 osc_state; + u32 reserved_0[510]; + u32 chip_version; + u32 reserved_1[511]; + struct ana_pll_reg arm_pll; + struct ana_pll_reg sys_pll; + struct ana_pll_reg audio_pll; + struct ana_pll_reg dram_pll; + struct ana_pll_reg video_pll; +}; + +#define PLL_CTRL_HW_CTRL_SEL BIT(16) +#define PLL_CTRL_CLKMUX_BYPASS BIT(2) +#define PLL_CTRL_CLKMUX_EN BIT(1) +#define PLL_CTRL_POWERUP BIT(0) + +#define PLL_STATUS_PLL_LOCK BIT(0) +#define PLL_DFS_CTRL_ENABLE BIT(31) +#define PLL_DFS_CTRL_CLKOUT BIT(30) +#define PLL_DFS_CTRL_CLKOUT_DIV2 BIT(29) +#define PLL_DFS_CTRL_BYPASS BIT(23) + +#define PLL_SS_EN BIT(15) + +struct imx_intpll_rate_table { + u32 rate; /*khz*/ + int rdiv; + int mfi; + int odiv; +}; + +struct imx_fracpll_rate_table { + u32 rate; /*khz*/ + int rdiv; + int mfi; + int odiv; + int mfn; + int mfd; +}; + +#define INT_PLL_RATE(_rate, _r, _m, _o) \ + { \ + .rate = (_rate), \ + .rdiv = (_r), \ + .mfi = (_m), \ + .odiv = (_o), \ + } + +#define FRAC_PLL_RATE(_rate, _r, _m, _o, _n, _d) \ + { \ + .rate = (_rate), \ + .rdiv = (_r), \ + .mfi = (_m), \ + .odiv = (_o), \ + .mfn = (_n), \ + .mfd = (_d), \ + } + +struct clk_root_map { + u32 clk_root_id; + u32 mux_type; +}; + +int clock_init(void); +u32 get_clk_src_rate(enum ccm_clk_src source); +u32 get_lpuart_clk(void); +void init_uart_clk(u32 index); +void init_clk_usdhc(u32 index); +int enable_i2c_clk(unsigned char enable, u32 i2c_num); +u32 imx_get_i2cclk(u32 i2c_num); +u32 mxc_get_clock(enum mxc_clock clk); + +int ccm_clk_src_on(enum ccm_clk_src oscpll, bool enable); +int ccm_clk_src_auto(enum ccm_clk_src oscpll, bool enable); +int ccm_clk_src_lpm(enum ccm_clk_src oscpll, bool enable); +int ccm_clk_src_config_lpm(enum ccm_clk_src oscpll, u32 domain, u32 lpm_val); +bool ccm_clk_src_is_clk_on(enum ccm_clk_src oscpll); +int ccm_clk_src_tz_access(enum ccm_clk_src oscpll, bool non_secure, bool user_mode, bool lock_tz); +int ccm_clk_root_cfg(u32 clk_root_id, enum ccm_clk_src src, u32 div); +u32 ccm_clk_root_get_rate(u32 clk_root_id); +int ccm_clk_root_tz_access(u32 clk_root_id, bool non_secure, bool user_mode, bool lock_tz); +int ccm_lpcg_on(u32 lpcg, bool enable); +int ccm_lpcg_lpm(u32 lpcg, bool enable); +int ccm_lpcg_config_lpm(u32 lpcg, u32 domain, u32 lpm_val); +bool ccm_lpcg_is_clk_on(u32 lpcg); +int ccm_lpcg_tz_access(u32 lpcg, bool non_secure, bool user_mode, bool lock_tz); +int ccm_shared_gpr_set(u32 gpr, u32 val); +int ccm_shared_gpr_get(u32 gpr, u32 *val); +int ccm_shared_gpr_tz_access(u32 gpr, bool non_secure, bool user_mode, bool lock_tz); + +void enable_usboh3_clk(unsigned char enable); +int set_clk_enet(enum enet_freq type); +int set_clk_eqos(enum enet_freq type); + +#endif diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index 2adbdadf03c..50ec902987d 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -8,6 +8,10 @@ #define ARCH_MXC -#define IOMUXC_BASE_ADDR 0x443C0000UL +#define IOMUXC_BASE_ADDR 0x443C0000UL +#define CCM_BASE_ADDR 0x44450000UL +#define CCM_CCGR_BASE_ADDR 0x44458000UL + +#define ANATOP_BASE_ADDR 0x44480000UL #endif diff --git a/arch/arm/mach-imx/imx9/Makefile b/arch/arm/mach-imx/imx9/Makefile index 773b12ee129..7be0343d52e 100644 --- a/arch/arm/mach-imx/imx9/Makefile +++ b/arch/arm/mach-imx/imx9/Makefile @@ -3,4 +3,4 @@ # Copyright 2022 NXP obj-y += lowlevel_init.o -obj-y += soc.o clock.o +obj-y += soc.o clock.o clock_root.o diff --git a/arch/arm/mach-imx/imx9/clock.c b/arch/arm/mach-imx/imx9/clock.c index fe89dccb316..55cbb40f328 100644 --- a/arch/arm/mach-imx/imx9/clock.c +++ b/arch/arm/mach-imx/imx9/clock.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -20,8 +21,774 @@ DECLARE_GLOBAL_DATA_PTR; +static struct anatop_reg *ana_regs = (struct anatop_reg *)ANATOP_BASE_ADDR; + +static struct imx_intpll_rate_table imx9_intpll_tbl[] = { + INT_PLL_RATE(1800000000U, 1, 150, 2), /* 1.8Ghz */ + INT_PLL_RATE(1700000000U, 1, 141, 2), /* 1.7Ghz */ + INT_PLL_RATE(1400000000U, 1, 175, 3), /* 1.4Ghz */ + INT_PLL_RATE(1000000000U, 1, 166, 4), /* 1000Mhz */ + INT_PLL_RATE(900000000U, 1, 150, 4), /* 900Mhz */ +}; + +static struct imx_fracpll_rate_table imx9_fracpll_tbl[] = { + FRAC_PLL_RATE(1000000000U, 1, 166, 4, 2, 3), /* 1000Mhz */ + FRAC_PLL_RATE(933000000U, 1, 155, 4, 1, 2), /* 933Mhz */ + FRAC_PLL_RATE(700000000U, 1, 145, 5, 5, 6), /* 700Mhz */ + FRAC_PLL_RATE(466000000U, 1, 155, 8, 1, 3), /* 466Mhz */ + FRAC_PLL_RATE(400000000U, 1, 200, 12, 0, 1), /* 400Mhz */ +}; + +/* return in khz */ +static u32 decode_pll_vco(struct ana_pll_reg *reg, bool fracpll) +{ + u32 ctrl; + u32 pll_status; + u32 div; + int rdiv, mfi, mfn, mfd; + int clk = 24000; + + ctrl = readl(®->ctrl.reg); + pll_status = readl(®->pll_status); + div = readl(®->div.reg); + + if (!(ctrl & PLL_CTRL_POWERUP)) + return 0; + + if (!(pll_status & PLL_STATUS_PLL_LOCK)) + return 0; + + mfi = (div & GENMASK(24, 16)) >> 16; + rdiv = (div & GENMASK(15, 13)) >> 13; + + if (rdiv == 0) + rdiv = 1; + + if (fracpll) { + mfn = (int)readl(®->num.reg); + mfn >>= 2; + mfd = (int)(readl(®->denom.reg) & GENMASK(29, 0)); + + clk = clk * (mfi * mfd + mfn) / mfd / rdiv; + } else { + clk = clk * mfi / rdiv; + } + + return (u32)clk; +} + +/* return in khz */ +static u32 decode_pll_out(struct ana_pll_reg *reg, bool fracpll) +{ + u32 ctrl = readl(®->ctrl.reg); + u32 div; + + if (ctrl & PLL_CTRL_CLKMUX_BYPASS) + return 24000; + + if (!(ctrl & PLL_CTRL_CLKMUX_EN)) + return 0; + + div = readl(®->div.reg); + div &= 0xff; /* odiv */ + + if (div == 0) + div = 2; + else if (div == 1) + div = 3; + + return decode_pll_vco(reg, fracpll) / div; +} + +/* return in khz */ +static u32 decode_pll_pfd(struct ana_pll_reg *reg, struct ana_pll_dfs *dfs_reg, + bool div2, bool fracpll) +{ + u32 pllvco = decode_pll_vco(reg, fracpll); + u32 dfs_ctrl = readl(&dfs_reg->dfs_ctrl.reg); + u32 dfs_div = readl(&dfs_reg->dfs_div.reg); + u32 mfn, mfi; + u32 output; + + if (dfs_ctrl & PLL_DFS_CTRL_BYPASS) + return pllvco; + + if (!(dfs_ctrl & PLL_DFS_CTRL_ENABLE) || + (div2 && !(dfs_ctrl & PLL_DFS_CTRL_CLKOUT_DIV2)) || + (!div2 && !(dfs_ctrl & PLL_DFS_CTRL_CLKOUT))) + return 0; + + mfn = dfs_div & GENMASK(2, 0); + mfi = (dfs_div & GENMASK(15, 8)) >> 8; + + if (mfn > 3) + return 0; /* valid mfn 0-3 */ + + if (mfi == 0 || mfi == 1) + return 0; /* valid mfi 2-255 */ + + output = (pllvco * 5) / (mfi * 5 + mfn); + + if (div2) + return output >> 1; + + return output; +} + +static u32 decode_pll(enum ccm_clk_src pll) +{ + switch (pll) { + case ARM_PLL_CLK: + return decode_pll_out(&ana_regs->arm_pll, false); + case SYS_PLL_PG: + return decode_pll_out(&ana_regs->sys_pll, false); + case SYS_PLL_PFD0: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[0], false, true); + case SYS_PLL_PFD0_DIV2: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[0], true, true); + case SYS_PLL_PFD1: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[1], false, true); + case SYS_PLL_PFD1_DIV2: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[1], true, true); + case SYS_PLL_PFD2: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[2], false, true); + case SYS_PLL_PFD2_DIV2: + return decode_pll_pfd(&ana_regs->sys_pll, + &ana_regs->sys_pll.dfs[2], true, true); + case AUDIO_PLL_CLK: + return decode_pll_out(&ana_regs->audio_pll, true); + case DRAM_PLL_CLK: + return decode_pll_out(&ana_regs->dram_pll, true); + case VIDEO_PLL_CLK: + return decode_pll_out(&ana_regs->video_pll, true); + default: + printf("Invalid clock source to decode\n"); + break; + } + + return 0; +} + +int configure_intpll(enum ccm_clk_src pll, u32 freq) +{ + int i; + struct imx_intpll_rate_table *rate; + struct ana_pll_reg *reg; + u32 pll_status; + + for (i = 0; i < ARRAY_SIZE(imx9_intpll_tbl); i++) { + if (freq == imx9_intpll_tbl[i].rate) + break; + } + + if (i == ARRAY_SIZE(imx9_intpll_tbl)) { + debug("No matched freq table %u\n", freq); + return -EINVAL; + } + + rate = &imx9_intpll_tbl[i]; + + /* ROM has configured SYS PLL and PFD, no need for it */ + switch (pll) { + case ARM_PLL_CLK: + reg = &ana_regs->arm_pll; + break; + default: + return -EPERM; + } + + /* Bypass the PLL to ref */ + writel(PLL_CTRL_CLKMUX_BYPASS, ®->ctrl.reg_set); + + /* disable pll and output */ + writel(PLL_CTRL_CLKMUX_EN | PLL_CTRL_POWERUP, ®->ctrl.reg_clr); + + /* Program the ODIV, RDIV, MFI */ + writel((rate->odiv & GENMASK(7, 0)) | ((rate->rdiv << 13) & GENMASK(15, 13)) | + ((rate->mfi << 16) & GENMASK(24, 16)), ®->div.reg); + + /* wait 5us */ + udelay(5); + + /* power up the PLL and wait lock (max wait time 100 us) */ + writel(PLL_CTRL_POWERUP, ®->ctrl.reg_set); + + udelay(100); + + pll_status = readl(®->pll_status); + if (pll_status & PLL_STATUS_PLL_LOCK) { + writel(PLL_CTRL_CLKMUX_EN, ®->ctrl.reg_set); + + /* clear bypass */ + writel(PLL_CTRL_CLKMUX_BYPASS, ®->ctrl.reg_clr); + + } else { + debug("Fail to lock PLL %u\n", pll); + return -EIO; + } + + return 0; +} + +int configure_fracpll(enum ccm_clk_src pll, u32 freq) +{ + struct imx_fracpll_rate_table *rate; + struct ana_pll_reg *reg; + u32 pll_status; + int i; + + for (i = 0; i < ARRAY_SIZE(imx9_fracpll_tbl); i++) { + if (freq == imx9_fracpll_tbl[i].rate) + break; + } + + if (i == ARRAY_SIZE(imx9_fracpll_tbl)) { + debug("No matched freq table %u\n", freq); + return -EINVAL; + } + + rate = &imx9_fracpll_tbl[i]; + + switch (pll) { + case SYS_PLL_PG: + reg = &ana_regs->sys_pll; + break; + case DRAM_PLL_CLK: + reg = &ana_regs->dram_pll; + break; + case VIDEO_PLL_CLK: + reg = &ana_regs->video_pll; + break; + default: + return -EPERM; + } + + /* Bypass the PLL to ref */ + writel(PLL_CTRL_CLKMUX_BYPASS, ®->ctrl.reg_set); + + /* disable pll and output */ + writel(PLL_CTRL_CLKMUX_EN | PLL_CTRL_POWERUP, ®->ctrl.reg_clr); + + /* Program the ODIV, RDIV, MFI */ + writel((rate->odiv & GENMASK(7, 0)) | ((rate->rdiv << 13) & GENMASK(15, 13)) | + ((rate->mfi << 16) & GENMASK(24, 16)), ®->div.reg); + + /* Set SPREAD_SPECRUM enable to 0 */ + writel(PLL_SS_EN, ®->ss.reg_clr); + + /* Program NUMERATOR and DENOMINATOR */ + writel((rate->mfn << 2), ®->num.reg); + writel((rate->mfd & GENMASK(29, 0)), ®->denom.reg); + + /* wait 5us */ + udelay(5); + + /* power up the PLL and wait lock (max wait time 100 us) */ + writel(PLL_CTRL_POWERUP, ®->ctrl.reg_set); + + udelay(100); + + pll_status = readl(®->pll_status); + if (pll_status & PLL_STATUS_PLL_LOCK) { + writel(PLL_CTRL_CLKMUX_EN, ®->ctrl.reg_set); + + /* check the MFN is updated */ + pll_status = readl(®->pll_status); + if ((pll_status & ~0x3) != (rate->mfn << 2)) { + debug("MFN update not matched, pll_status 0x%x, mfn 0x%x\n", + pll_status, rate->mfn); + return -EIO; + } + + /* clear bypass */ + writel(PLL_CTRL_CLKMUX_BYPASS, ®->ctrl.reg_clr); + + } else { + debug("Fail to lock PLL %u\n", pll); + return -EIO; + } + + return 0; +} + +int configure_pll_pfd(enum ccm_clk_src pll_pfg, u32 mfi, u32 mfn, bool div2_en) +{ + struct ana_pll_dfs *dfs; + struct ana_pll_reg *reg; + u32 dfs_status; + u32 index; + + if (mfn > 3) + return -EINVAL; /* valid mfn 0-3 */ + + if (mfi < 2 || mfi > 255) + return -EINVAL; /* valid mfi 2-255 */ + + switch (pll_pfg) { + case SYS_PLL_PFD0: + reg = &ana_regs->sys_pll; + index = 0; + break; + case SYS_PLL_PFD1: + reg = &ana_regs->sys_pll; + index = 1; + break; + case SYS_PLL_PFD2: + reg = &ana_regs->sys_pll; + index = 2; + break; + default: + return -EPERM; + } + + dfs = ®->dfs[index]; + + /* Bypass the DFS to PLL VCO */ + writel(PLL_DFS_CTRL_BYPASS, &dfs->dfs_ctrl.reg_set); + + /* disable DFS and output */ + writel(PLL_DFS_CTRL_ENABLE | PLL_DFS_CTRL_CLKOUT | + PLL_DFS_CTRL_CLKOUT_DIV2, &dfs->dfs_ctrl.reg_clr); + + writel(((mfi << 8) & GENMASK(15, 8)) | (mfn & GENMASK(2, 0)), &dfs->dfs_div.reg); + + writel(PLL_DFS_CTRL_CLKOUT, &dfs->dfs_ctrl.reg_set); + if (div2_en) + writel(PLL_DFS_CTRL_CLKOUT_DIV2, &dfs->dfs_ctrl.reg_set); + writel(PLL_DFS_CTRL_ENABLE, &dfs->dfs_ctrl.reg_set); + + /* + * As HW expert said: after enabling the DFS, clock will start + * coming after 6 cycles output clock period. + * 5us is much bigger than expected, so it will be safe + */ + udelay(5); + + dfs_status = readl(®->dfs_status); + + if (!(dfs_status & (1 << index))) { + debug("DFS lock failed\n"); + return -EIO; + } + + /* Bypass the DFS to PLL VCO */ + writel(PLL_DFS_CTRL_BYPASS, &dfs->dfs_ctrl.reg_clr); + + return 0; +} + +int update_fracpll_mfn(enum ccm_clk_src pll, int mfn) +{ + struct ana_pll_reg *reg; + bool repoll = false; + u32 pll_status; + int count = 20; + + switch (pll) { + case AUDIO_PLL_CLK: + reg = &ana_regs->audio_pll; + break; + case DRAM_PLL_CLK: + reg = &ana_regs->dram_pll; + break; + case VIDEO_PLL_CLK: + reg = &ana_regs->video_pll; + break; + default: + printf("Invalid pll %u for update FRAC PLL MFN\n", pll); + return -EINVAL; + } + + if (readl(®->pll_status) & PLL_STATUS_PLL_LOCK) + repoll = true; + + mfn <<= 2; + writel(mfn, ®->num); + + if (repoll) { + do { + pll_status = readl(®->pll_status); + udelay(5); + count--; + } while (((pll_status & ~0x3) != (u32)mfn) && count > 0); + + if (count <= 0) { + printf("update MFN timeout, pll_status 0x%x, mfn 0x%x\n", pll_status, mfn); + return -EIO; + } + } + + return 0; +} + +int update_pll_pfd_mfn(enum ccm_clk_src pll_pfd, u32 mfn) +{ + struct ana_pll_dfs *dfs; + u32 val; + u32 index; + + switch (pll_pfd) { + case SYS_PLL_PFD0: + case SYS_PLL_PFD0_DIV2: + index = 0; + break; + case SYS_PLL_PFD1: + case SYS_PLL_PFD1_DIV2: + index = 1; + break; + case SYS_PLL_PFD2: + case SYS_PLL_PFD2_DIV2: + index = 2; + break; + default: + printf("Invalid pfd %u for update PLL PFD MFN\n", pll_pfd); + return -EINVAL; + } + + dfs = &ana_regs->sys_pll.dfs[index]; + + val = readl(&dfs->dfs_div.reg); + val &= ~0x3; + val |= mfn & 0x3; + writel(val, &dfs->dfs_div.reg); + + return 0; +} + +/* return in khz */ +u32 get_clk_src_rate(enum ccm_clk_src source) +{ + u32 ctrl; + bool clk_on; + + switch (source) { + case ARM_PLL_CLK: + ctrl = readl(&ana_regs->arm_pll.ctrl.reg); + case AUDIO_PLL_CLK: + ctrl = readl(&ana_regs->audio_pll.ctrl.reg); + break; + case DRAM_PLL_CLK: + ctrl = readl(&ana_regs->dram_pll.ctrl.reg); + break; + case VIDEO_PLL_CLK: + ctrl = readl(&ana_regs->video_pll.ctrl.reg); + break; + case SYS_PLL_PFD0: + case SYS_PLL_PFD0_DIV2: + ctrl = readl(&ana_regs->sys_pll.dfs[0].dfs_ctrl.reg); + break; + case SYS_PLL_PFD1: + case SYS_PLL_PFD1_DIV2: + ctrl = readl(&ana_regs->sys_pll.dfs[1].dfs_ctrl.reg); + break; + case SYS_PLL_PFD2: + case SYS_PLL_PFD2_DIV2: + ctrl = readl(&ana_regs->sys_pll.dfs[2].dfs_ctrl.reg); + break; + case OSC_24M_CLK: + return 24000; + default: + printf("Invalid clock source to get rate\n"); + return 0; + } + + if (ctrl & PLL_CTRL_HW_CTRL_SEL) { + /* When using HW ctrl, check OSCPLL */ + clk_on = ccm_clk_src_is_clk_on(source); + if (clk_on) + return decode_pll(source); + else + return 0; + } else { + /* controlled by pll registers */ + return decode_pll(source); + } +} + +u32 get_arm_core_clk(void) +{ + u32 val; + + ccm_shared_gpr_get(SHARED_GPR_A55_CLK, &val); + + if (val & SHARED_GPR_A55_CLK_SEL_PLL) + return decode_pll(ARM_PLL_CLK) * 1000; + + return ccm_clk_root_get_rate(ARM_A55_CLK_ROOT); +} + +unsigned int mxc_get_clock(enum mxc_clock clk) +{ + switch (clk) { + case MXC_ARM_CLK: + return get_arm_core_clk(); + case MXC_IPG_CLK: + return ccm_clk_root_get_rate(BUS_WAKEUP_CLK_ROOT); + case MXC_CSPI_CLK: + return ccm_clk_root_get_rate(LPSPI1_CLK_ROOT); + case MXC_ESDHC_CLK: + return ccm_clk_root_get_rate(USDHC1_CLK_ROOT); + case MXC_ESDHC2_CLK: + return ccm_clk_root_get_rate(USDHC2_CLK_ROOT); + case MXC_ESDHC3_CLK: + return ccm_clk_root_get_rate(USDHC3_CLK_ROOT); + case MXC_UART_CLK: + return ccm_clk_root_get_rate(LPUART1_CLK_ROOT); + case MXC_FLEXSPI_CLK: + return ccm_clk_root_get_rate(FLEXSPI1_CLK_ROOT); + default: + return -1; + }; + + return -1; +}; + +int enable_i2c_clk(unsigned char enable, u32 i2c_num) +{ + if (i2c_num > 7) + return -EINVAL; + + if (enable) { + /* 24M */ + ccm_lpcg_on(CCGR_I2C1 + i2c_num, false); + ccm_clk_root_cfg(LPI2C1_CLK_ROOT + i2c_num, OSC_24M_CLK, 1); + ccm_lpcg_on(CCGR_I2C1 + i2c_num, true); + } else { + ccm_lpcg_on(CCGR_I2C1 + i2c_num, false); + } + + return 0; +} + +u32 imx_get_i2cclk(u32 i2c_num) +{ + if (i2c_num > 7) + return -EINVAL; + + return ccm_clk_root_get_rate(LPUART1_CLK_ROOT + i2c_num); +} + u32 get_lpuart_clk(void) { - return 24000000; + return mxc_get_clock(MXC_UART_CLK); +} + +void init_uart_clk(u32 index) +{ + switch (index) { + case LPUART1_CLK_ROOT: + /* 24M */ + ccm_lpcg_on(CCGR_URT1, false); + ccm_clk_root_cfg(LPUART1_CLK_ROOT, OSC_24M_CLK, 1); + ccm_lpcg_on(CCGR_URT1, true); + break; + default: + break; + } +} + +void init_clk_usdhc(u32 index) +{ + /* 400 Mhz */ + switch (index) { + case 0: + ccm_lpcg_on(CCGR_USDHC1, 0); + ccm_clk_root_cfg(USDHC1_CLK_ROOT, SYS_PLL_PFD1, 2); + ccm_lpcg_on(CCGR_USDHC1, 1); + break; + case 1: + ccm_lpcg_on(CCGR_USDHC2, 0); + ccm_clk_root_cfg(USDHC2_CLK_ROOT, SYS_PLL_PFD1, 2); + ccm_lpcg_on(CCGR_USDHC2, 1); + break; + case 2: + ccm_lpcg_on(CCGR_USDHC3, 0); + ccm_clk_root_cfg(USDHC3_CLK_ROOT, SYS_PLL_PFD1, 2); + ccm_lpcg_on(CCGR_USDHC3, 1); + break; + default: + return; + }; } +void enable_usboh3_clk(unsigned char enable) +{ + if (enable) { + ccm_clk_root_cfg(HSIO_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + ccm_lpcg_on(CCGR_USBC, 1); + } else { + ccm_lpcg_on(CCGR_USBC, 0); + } +} + +int clock_init(void) +{ + int i; + + /* Set A55 periphal to 333M */ + ccm_clk_root_cfg(ARM_A55_PERIPH_CLK_ROOT, SYS_PLL_PFD0, 3); + /* Set A55 mtr bus to 133M */ + ccm_clk_root_cfg(ARM_A55_MTR_BUS_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + + /* Sentinel to 200M */ + ccm_clk_root_cfg(SENTINEL_CLK_ROOT, SYS_PLL_PFD1_DIV2, 2); + /* Bus_wakeup to 133M */ + ccm_clk_root_cfg(BUS_WAKEUP_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* Bus_AON to 133M */ + ccm_clk_root_cfg(BUS_AON_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* M33 to 200M */ + ccm_clk_root_cfg(M33_CLK_ROOT, SYS_PLL_PFD1_DIV2, 2); + /* + * WAKEUP_AXI to 312.5M, because of FEC only can support to 320M for + * generating MII clock at 2.5M + */ + ccm_clk_root_cfg(WAKEUP_AXI_CLK_ROOT, SYS_PLL_PFD2, 2); + /* SWO TRACE to 133M */ + ccm_clk_root_cfg(SWO_TRACE_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* M33 systetick to 133M */ + ccm_clk_root_cfg(M33_SYSTICK_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* NIC to 400M */ + ccm_clk_root_cfg(NIC_CLK_ROOT, SYS_PLL_PFD1, 2); + /* NIC_APB to 133M */ + ccm_clk_root_cfg(NIC_APB_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + + /* allow for non-secure access */ + for (i = 0; i < OSCPLL_END; i++) + ccm_clk_src_tz_access(i, true, false, false); + + for (i = 0; i < CLK_ROOT_NUM; i++) + ccm_clk_root_tz_access(i, true, false, false); + + for (i = 0; i < CCGR_NUM; i++) + ccm_lpcg_tz_access(i, true, false, false); + + for (i = 0; i < SHARED_GPR_NUM; i++) + ccm_shared_gpr_tz_access(i, true, false, false); + + return 0; +} + +int set_clk_eqos(enum enet_freq type) +{ + u32 eqos_post_div; + + switch (type) { + case ENET_125MHZ: + eqos_post_div = 2; /* 250M clock */ + break; + case ENET_50MHZ: + eqos_post_div = 5; /* 100M clock */ + break; + case ENET_25MHZ: + eqos_post_div = 10; /* 50M clock*/ + break; + default: + return -EINVAL; + } + + /* disable the clock first */ + ccm_lpcg_on(CCGR_ENETQOS, false); + + ccm_clk_root_cfg(ENET_CLK_ROOT, SYS_PLL_PFD0_DIV2, eqos_post_div); + ccm_clk_root_cfg(ENET_TIMER2_CLK_ROOT, SYS_PLL_PFD0_DIV2, 5); + + /* enable clock */ + ccm_lpcg_on(CCGR_ENETQOS, true); + + return 0; +} + +u32 imx_get_eqos_csr_clk(void) +{ + return ccm_clk_root_get_rate(WAKEUP_AXI_CLK_ROOT); +} + +u32 imx_get_fecclk(void) +{ + return ccm_clk_root_get_rate(WAKEUP_AXI_CLK_ROOT); +} + +int set_clk_enet(enum enet_freq type) +{ + u32 div; + + /* disable the clock first */ + ccm_lpcg_on(CCGR_ENET1, false); + + switch (type) { + case ENET_125MHZ: + div = 2; /* 250Mhz */ + break; + case ENET_50MHZ: + div = 5; /* 100Mhz */ + break; + case ENET_25MHZ: + div = 10; /* 50Mhz */ + break; + default: + return -EINVAL; + } + + ccm_clk_root_cfg(ENET_REF_CLK_ROOT, SYS_PLL_PFD0_DIV2, div); + ccm_clk_root_cfg(ENET_TIMER1_CLK_ROOT, SYS_PLL_PFD0_DIV2, 5); + +#ifdef CONFIG_FEC_MXC_25M_REF_CLK + ccm_clk_root_cfg(ENET_REF_PHY_CLK_ROOT, SYS_PLL_PFD0_DIV2, 20); +#endif + + /* enable clock */ + ccm_lpcg_on(CCGR_ENET1, true); + + return 0; +} + +/* + * Dump some clockes. + */ +#ifndef CONFIG_SPL_BUILD +int do_showclocks(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[]) +{ + u32 freq; + + freq = decode_pll(ARM_PLL_CLK); + printf("ARM_PLL %8d MHz\n", freq / 1000); + freq = decode_pll(DRAM_PLL_CLK); + printf("DRAM_PLL %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD0); + printf("SYS_PLL_PFD0 %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD0_DIV2); + printf("SYS_PLL_PFD0_DIV2 %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD1); + printf("SYS_PLL_PFD1 %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD1_DIV2); + printf("SYS_PLL_PFD1_DIV2 %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD2); + printf("SYS_PLL_PFD2 %8d MHz\n", freq / 1000); + freq = decode_pll(SYS_PLL_PFD2_DIV2); + printf("SYS_PLL_PFD2_DIV2 %8d MHz\n", freq / 1000); + freq = mxc_get_clock(MXC_ARM_CLK); + printf("ARM CORE %8d MHz\n", freq / 1000000); + freq = mxc_get_clock(MXC_IPG_CLK); + printf("IPG %8d MHz\n", freq / 1000000); + freq = mxc_get_clock(MXC_UART_CLK); + printf("UART3 %8d MHz\n", freq / 1000000); + freq = mxc_get_clock(MXC_ESDHC_CLK); + printf("USDHC1 %8d MHz\n", freq / 1000000); + freq = mxc_get_clock(MXC_FLEXSPI_CLK); + printf("FLEXSPI %8d MHz\n", freq / 1000000); + + return 0; +} + +U_BOOT_CMD( + clocks, CONFIG_SYS_MAXARGS, 1, do_showclocks, + "display clocks", + "" +); +#endif + diff --git a/arch/arm/mach-imx/imx9/clock_root.c b/arch/arm/mach-imx/imx9/clock_root.c new file mode 100644 index 00000000000..06b93f60996 --- /dev/null +++ b/arch/arm/mach-imx/imx9/clock_root.c @@ -0,0 +1,438 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + * + * Peng Fan + */ + +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +static struct ccm_reg *ccm_reg = (struct ccm_reg *)CCM_BASE_ADDR; + +static enum ccm_clk_src clk_root_mux[][4] = { + { OSC_24M_CLK, SYS_PLL_PFD0, SYS_PLL_PFD1, SYS_PLL_PFD2 }, /* bus */ + { OSC_24M_CLK, SYS_PLL_PFD0_DIV2, SYS_PLL_PFD1_DIV2, SYS_PLL_PFD2_DIV2 }, /* non-IO */ + { OSC_24M_CLK, SYS_PLL_PFD0_DIV2, SYS_PLL_PFD1_DIV2, VIDEO_PLL_CLK }, /* IO*/ + { OSC_24M_CLK, SYS_PLL_PFD0, AUDIO_PLL_CLK, EXT_CLK }, /* TPM */ + { OSC_24M_CLK, AUDIO_PLL_CLK, VIDEO_PLL_CLK, EXT_CLK }, /* Audio */ + { OSC_24M_CLK, AUDIO_PLL_CLK, VIDEO_PLL_CLK, SYS_PLL_PFD0 }, /* Video */ + { OSC_24M_CLK, SYS_PLL_PFD0, SYS_PLL_PFD1, AUDIO_PLL_CLK }, /* CKO1 */ + { OSC_24M_CLK, SYS_PLL_PFD0, SYS_PLL_PFD1, VIDEO_PLL_CLK }, /* CKO2 */ + { OSC_24M_CLK, AUDIO_PLL_CLK, VIDEO_PLL_CLK, SYS_PLL_PFD2 }, /* CAMSCAN */ +}; + +static struct clk_root_map clk_root_array[] = { + { ARM_A55_PERIPH_CLK_ROOT, 0 }, + { ARM_A55_MTR_BUS_CLK_ROOT, 2 }, + { ARM_A55_CLK_ROOT, 0 }, + { M33_CLK_ROOT, 2 }, + { SENTINEL_CLK_ROOT, 2 }, + { BUS_WAKEUP_CLK_ROOT, 2 }, + { BUS_AON_CLK_ROOT, 2 }, + { WAKEUP_AXI_CLK_ROOT, 0 }, + { SWO_TRACE_CLK_ROOT, 2 }, + { M33_SYSTICK_CLK_ROOT, 2 }, + { FLEXIO1_CLK_ROOT, 2 }, + { FLEXIO2_CLK_ROOT, 2 }, + { LPIT1_CLK_ROOT, 2 }, + { LPIT2_CLK_ROOT, 2 }, + { LPTMR1_CLK_ROOT, 2 }, + { LPTMR2_CLK_ROOT, 2 }, + { TPM1_CLK_ROOT, 3 }, + { TPM2_CLK_ROOT, 3 }, + { TPM3_CLK_ROOT, 3 }, + { TPM4_CLK_ROOT, 3 }, + { TPM5_CLK_ROOT, 3 }, + { TPM6_CLK_ROOT, 3 }, + { FLEXSPI1_CLK_ROOT, 0 }, + { CAN1_CLK_ROOT, 2 }, + { CAN2_CLK_ROOT, 2 }, + { LPUART1_CLK_ROOT, 2 }, + { LPUART2_CLK_ROOT, 2 }, + { LPUART3_CLK_ROOT, 2 }, + { LPUART4_CLK_ROOT, 2 }, + { LPUART5_CLK_ROOT, 2 }, + { LPUART6_CLK_ROOT, 2 }, + { LPUART7_CLK_ROOT, 2 }, + { LPUART8_CLK_ROOT, 2 }, + { LPI2C1_CLK_ROOT, 2 }, + { LPI2C2_CLK_ROOT, 2 }, + { LPI2C3_CLK_ROOT, 2 }, + { LPI2C4_CLK_ROOT, 2 }, + { LPI2C5_CLK_ROOT, 2 }, + { LPI2C6_CLK_ROOT, 2 }, + { LPI2C7_CLK_ROOT, 2 }, + { LPI2C8_CLK_ROOT, 2 }, + { LPSPI1_CLK_ROOT, 2 }, + { LPSPI2_CLK_ROOT, 2 }, + { LPSPI3_CLK_ROOT, 2 }, + { LPSPI4_CLK_ROOT, 2 }, + { LPSPI5_CLK_ROOT, 2 }, + { LPSPI6_CLK_ROOT, 2 }, + { LPSPI7_CLK_ROOT, 2 }, + { LPSPI8_CLK_ROOT, 2 }, + { I3C1_CLK_ROOT, 2 }, + { I3C2_CLK_ROOT, 2 }, + { USDHC1_CLK_ROOT, 0 }, + { USDHC2_CLK_ROOT, 0 }, + { USDHC3_CLK_ROOT, 0 }, + { SAI1_CLK_ROOT, 4 }, + { SAI2_CLK_ROOT, 4 }, + { SAI3_CLK_ROOT, 4 }, + { CCM_CKO1_CLK_ROOT, 6 }, + { CCM_CKO2_CLK_ROOT, 7 }, + { CCM_CKO3_CLK_ROOT, 6 }, + { CCM_CKO4_CLK_ROOT, 7 }, + { HSIO_CLK_ROOT, 2 }, + { HSIO_USB_TEST_60M_CLK_ROOT, 2 }, + { HSIO_ACSCAN_80M_CLK_ROOT, 2 }, + { HSIO_ACSCAN_480M_CLK_ROOT, 0 }, + { NIC_CLK_ROOT, 0 }, + { NIC_APB_CLK_ROOT, 2 }, + { ML_APB_CLK_ROOT, 2 }, + { ML_CLK_ROOT, 0 }, + { MEDIA_AXI_CLK_ROOT, 0 }, + { MEDIA_APB_CLK_ROOT, 2 }, + { MEDIA_LDB_CLK_ROOT, 5 }, + { MEDIA_DISP_PIX_CLK_ROOT, 5 }, + { CAM_PIX_CLK_ROOT, 5 }, + { MIPI_TEST_BYTE_CLK_ROOT, 5 }, + { MIPI_PHY_CFG_CLK_ROOT, 5 }, + { DRAM_ALT_CLK_ROOT, 0 }, + { DRAM_APB_CLK_ROOT, 1 }, + { ADC_CLK_ROOT, 2 }, + { PDM_CLK_ROOT, 4 }, + { TSTMR1_CLK_ROOT, 2 }, + { TSTMR2_CLK_ROOT, 2 }, + { MQS1_CLK_ROOT, 4 }, + { MQS2_CLK_ROOT, 4 }, + { AUDIO_XCVR_CLK_ROOT, 1 }, + { SPDIF_CLK_ROOT, 4 }, + { ENET_CLK_ROOT, 1 }, + { ENET_TIMER1_CLK_ROOT, 2 }, + { ENET_TIMER2_CLK_ROOT, 2 }, + { ENET_REF_CLK_ROOT, 1 }, + { ENET_REF_PHY_CLK_ROOT, 2 }, + { I3C1_SLOW_CLK_ROOT, 2 }, + { I3C2_SLOW_CLK_ROOT, 2 }, + { USB_PHY_BURUNIN_CLK_ROOT, 2 }, + { PAL_CAME_SCAN_CLK_ROOT, 8 }, +}; + +int ccm_clk_src_on(enum ccm_clk_src oscpll, bool enable) +{ + u32 authen; + + if (oscpll >= OSCPLL_END) + return -EINVAL; + + authen = readl(&ccm_reg->clk_oscplls[oscpll].authen); + + /* If using cpulpm, need disable it first */ + if (authen & CCM_AUTHEN_CPULPM_MODE) + return -EPERM; + + if (enable) + writel(1, &ccm_reg->clk_oscplls[oscpll].direct); + else + writel(0, &ccm_reg->clk_oscplls[oscpll].direct); + + return 0; +} + +/* auto mode, enable = DIRECT[ON] | STATUS0[IN_USE] */ +int ccm_clk_src_auto(enum ccm_clk_src oscpll, bool enable) +{ + u32 authen; + + if (oscpll >= OSCPLL_END) + return -EINVAL; + + authen = readl(&ccm_reg->clk_oscplls[oscpll].authen); + + /* AUTO CTRL and CPULPM are mutual exclusion, need disable CPULPM first */ + if (authen & CCM_AUTHEN_CPULPM_MODE) + return -EPERM; + + if (enable) + writel(authen | CCM_AUTHEN_AUTO_CTRL, &ccm_reg->clk_oscplls[oscpll].authen); + else + writel((authen & ~CCM_AUTHEN_AUTO_CTRL), &ccm_reg->clk_oscplls[oscpll].authen); + + return 0; +} + +int ccm_clk_src_lpm(enum ccm_clk_src oscpll, bool enable) +{ + u32 authen; + + if (oscpll >= OSCPLL_END) + return -EINVAL; + + authen = readl(&ccm_reg->clk_oscplls[oscpll].authen); + + /* AUTO CTRL and CPULPM are mutual exclusion, need disable AUTO CTRL first */ + if (authen & CCM_AUTHEN_AUTO_CTRL) + return -EPERM; + + if (enable) + writel(authen | CCM_AUTHEN_CPULPM_MODE, &ccm_reg->clk_oscplls[oscpll].authen); + else + writel((authen & ~CCM_AUTHEN_CPULPM_MODE), &ccm_reg->clk_oscplls[oscpll].authen); + + return 0; +} + +int ccm_clk_src_config_lpm(enum ccm_clk_src oscpll, u32 domain, u32 lpm_val) +{ + u32 lpm, authen; + + if (oscpll >= OSCPLL_END || domain >= 16) + return -EINVAL; + + authen = readl(&ccm_reg->clk_oscplls[oscpll].authen); + if (!(authen & CCM_AUTHEN_CPULPM_MODE)) + return -EPERM; + + if (domain > 7) { + lpm = readl(&ccm_reg->clk_oscplls[oscpll].lpm1); + lpm &= ~(0x3 << ((domain - 8) * 4)); + lpm |= (lpm_val & 0x3) << ((domain - 8) * 4); + writel(lpm, &ccm_reg->clk_oscplls[oscpll].lpm1); + } else { + lpm = readl(&ccm_reg->clk_oscplls[oscpll].lpm0); + lpm &= ~(0x3 << (domain * 4)); + lpm |= (lpm_val & 0x3) << (domain * 4); + writel(lpm, &ccm_reg->clk_oscplls[oscpll].lpm0); + } + + return 0; +} + +bool ccm_clk_src_is_clk_on(enum ccm_clk_src oscpll) +{ + return !!(readl(&ccm_reg->clk_oscplls[oscpll].status0) & 0x1); +} + +int ccm_clk_src_tz_access(enum ccm_clk_src oscpll, bool non_secure, bool user_mode, bool lock_tz) +{ + u32 authen; + + if (oscpll >= OSCPLL_END) + return -EINVAL; + + authen = readl(&ccm_reg->clk_oscplls[oscpll].authen); + + authen |= non_secure ? CCM_AUTHEN_TZ_NS : 0; + authen |= user_mode ? CCM_AUTHEN_TZ_USER : 0; + authen |= lock_tz ? CCM_AUTHEN_LOCK_TZ : 0; + + writel(authen, &ccm_reg->clk_oscplls[oscpll].authen); + + return 0; +} + +int ccm_clk_root_cfg(u32 clk_root_id, enum ccm_clk_src src, u32 div) +{ + int i; + int ret; + u32 mux, status; + + if (clk_root_id >= CLK_ROOT_NUM || div > 256 || div == 0) + return -EINVAL; + + mux = clk_root_array[clk_root_id].mux_type; + + for (i = 0; i < 4; i++) { + if (src == clk_root_mux[mux][i]) + break; + } + + if (i == 4) { + printf("Invalid source [%u] for this clk root\n", src); + return -EINVAL; + } + + writel((i << 8) | (div - 1), &ccm_reg->clk_roots[clk_root_id].control); + + ret = readl_poll_timeout(&ccm_reg->clk_roots[clk_root_id].status0, status, + !(status & CLK_ROOT_STATUS_CHANGING), 200000); + if (ret) + printf("%s: failed, status: 0x%x\n", __func__, + readl(&ccm_reg->clk_roots[clk_root_id].status0)); + + return ret; +}; + +u32 ccm_clk_root_get_rate(u32 clk_root_id) +{ + u32 mux, status, div, rate; + enum ccm_clk_src src; + + if (clk_root_id >= CLK_ROOT_NUM) + return 0; + + status = readl(&ccm_reg->clk_roots[clk_root_id].control); + + if (status & CLK_ROOT_STATUS_OFF) + return 0; /* clock is off */ + + mux = (status & CLK_ROOT_MUX_MASK) >> CLK_ROOT_MUX_SHIFT; + div = status & CLK_ROOT_DIV_MASK; + src = clk_root_mux[clk_root_array[clk_root_id].mux_type][mux]; + + rate = get_clk_src_rate(src) * 1000; + + return rate / (div + 1); /* return in hz */ +} + +int ccm_clk_root_tz_access(u32 clk_root_id, bool non_secure, bool user_mode, bool lock_tz) +{ + u32 authen; + + if (clk_root_id >= CLK_ROOT_NUM) + return -EINVAL; + + authen = readl(&ccm_reg->clk_roots[clk_root_id].authen); + + authen |= non_secure ? CCM_AUTHEN_TZ_NS : 0; + authen |= user_mode ? CCM_AUTHEN_TZ_USER : 0; + authen |= lock_tz ? CCM_AUTHEN_LOCK_TZ : 0; + + writel(authen, &ccm_reg->clk_roots[clk_root_id].authen); + + return 0; +} + +int ccm_lpcg_on(u32 lpcg, bool enable) +{ + u32 authen; + + if (lpcg >= CCGR_NUM) + return -EINVAL; + + authen = readl(&ccm_reg->clk_lpcgs[lpcg].authen); + + /* If using cpulpm, need disable it first */ + if (authen & CCM_AUTHEN_CPULPM_MODE) + return -EPERM; + + if (enable) + writel(1, &ccm_reg->clk_lpcgs[lpcg].direct); + else + writel(0, &ccm_reg->clk_lpcgs[lpcg].direct); + + return 0; +} + +int ccm_lpcg_lpm(u32 lpcg, bool enable) +{ + u32 authen; + + if (lpcg >= CCGR_NUM) + return -EINVAL; + + authen = readl(&ccm_reg->clk_lpcgs[lpcg].authen); + + if (enable) + writel(authen | CCM_AUTHEN_CPULPM_MODE, &ccm_reg->clk_lpcgs[lpcg].authen); + else + writel((authen & ~CCM_AUTHEN_CPULPM_MODE), &ccm_reg->clk_lpcgs[lpcg].authen); + + return 0; +} + +int ccm_lpcg_config_lpm(u32 lpcg, u32 domain, u32 lpm_val) +{ + u32 lpm, authen; + + if (lpcg >= CCGR_NUM || domain >= 16) + return -EINVAL; + + authen = readl(&ccm_reg->clk_lpcgs[lpcg].authen); + if (!(authen & CCM_AUTHEN_CPULPM_MODE)) + return -EPERM; + + if (domain > 7) { + lpm = readl(&ccm_reg->clk_lpcgs[lpcg].lpm1); + lpm &= ~(0x3 << ((domain - 8) * 4)); + lpm |= (lpm_val & 0x3) << ((domain - 8) * 4); + writel(lpm, &ccm_reg->clk_lpcgs[lpcg].lpm1); + } else { + lpm = readl(&ccm_reg->clk_lpcgs[lpcg].lpm0); + lpm &= ~(0x3 << (domain * 4)); + lpm |= (lpm_val & 0x3) << (domain * 4); + writel(lpm, &ccm_reg->clk_lpcgs[lpcg].lpm0); + } + + return 0; +} + +bool ccm_lpcg_is_clk_on(u32 lpcg) +{ + return !!(readl(&ccm_reg->clk_lpcgs[lpcg].status0) & 0x1); +} + +int ccm_lpcg_tz_access(u32 lpcg, bool non_secure, bool user_mode, bool lock_tz) +{ + u32 authen; + + if (lpcg >= CCGR_NUM) + return -EINVAL; + + authen = readl(&ccm_reg->clk_lpcgs[lpcg].authen); + + authen |= non_secure ? CCM_AUTHEN_TZ_NS : 0; + authen |= user_mode ? CCM_AUTHEN_TZ_USER : 0; + authen |= lock_tz ? CCM_AUTHEN_LOCK_TZ : 0; + + writel(authen, &ccm_reg->clk_lpcgs[lpcg].authen); + + return 0; +} + +int ccm_shared_gpr_set(u32 gpr, u32 val) +{ + if (gpr >= SHARED_GPR_NUM) + return -EINVAL; + + writel(val, &ccm_reg->clk_shared_gpr[gpr].gpr); + + return 0; +} + +int ccm_shared_gpr_get(u32 gpr, u32 *val) +{ + if (gpr >= SHARED_GPR_NUM || !val) + return -EINVAL; + + *val = readl(&ccm_reg->clk_shared_gpr[gpr].gpr); + + return 0; +} + +int ccm_shared_gpr_tz_access(u32 gpr, bool non_secure, bool user_mode, bool lock_tz) +{ + u32 authen; + + if (gpr >= SHARED_GPR_NUM) + return -EINVAL; + + authen = readl(&ccm_reg->clk_shared_gpr[gpr].authen); + + authen |= non_secure ? CCM_AUTHEN_TZ_NS : 0; + authen |= user_mode ? CCM_AUTHEN_TZ_USER : 0; + authen |= lock_tz ? CCM_AUTHEN_LOCK_TZ : 0; + + writel(authen, &ccm_reg->clk_shared_gpr[gpr].authen); + + return 0; +} diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index d905fe76c91..d4a97729c67 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -123,5 +123,8 @@ int ft_system_setup(void *blob, struct bd_info *bd) int arch_cpu_init(void) { + if (IS_ENABLED(CONFIG_SPL_BUILD)) + clock_init(); + return 0; } From patchwork Mon Jun 27 03:24:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648544 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=eqsvd4JG; 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 4LWXBH3QMBz9sGp for ; Mon, 27 Jun 2022 12:44:39 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 137AD844B8; Mon, 27 Jun 2022 04:42:40 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="eqsvd4JG"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 2F11D844A9; Mon, 27 Jun 2022 04:42:33 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2071.outbound.protection.outlook.com [40.107.104.71]) (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 77864844A4 for ; Mon, 27 Jun 2022 04:42:28 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LtbgdEhlhZsEK6VZBVmzzNifr6t0M4xA2Fd8SZSln/CsiRSQgtL8RQZ3BK5bSjmX7hmjSW30pfxa71XgAs7VHYoqTzkc0VQrr/u5aWZvdBMMCBIVwK2hm2h6/iR+3R5QZ/BBxWm0LVZYUf73tpmpyQrBb2yTn0ZXZOnaKywHPLvvWLI6QGARZZ90Zv/33Zwv4wupd1RK35U3pdHqXekr2ZKoN07rXaEqECJyr22YM5UidogGRq8xjcUkJ0sSimAOeOg8wnBBSoEpXImLh5cJJCjkohEv2dZdo/VAIf9YALNbDJrxiqQ3U8KqS/vKiqo3AKOmbK6JrWOeVIwVzpR77Q== 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=8AvoJTB3I9GcomY1Ry0kdaSE88WUQb2LqZiFqS2TsgE=; b=F81iJHxQNaxwTN3PHCCLpHzjSv/kIwEdv+8Uvr1F9qRqu3Kl8aYwZ+qNKTTNgtdIxUXRBf4yOZi84tfaSRlDscrbszVhXLJHXn9Exb6uvZB5DYeM7FPB9H2FPCwg6P/uylVdgL7V7EIl/qsdYaPyMbROQpBs3Rbk50egBF+DpZNkJ2VsSQmXO59OtYMCfN3YxrXylm15YGWURsE8t+JxmBXE4nUfzrU4xSXrbyPrUHDeUwQtm+hf3d/zXau4kpTEHFLPhLTTC4mszIGoMsMMAysJa8eBWupv3lq37qkYOt98yfD2z4AcNDeYMOpy0FMiSACD6EhELFfxIHHvT0LYFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8AvoJTB3I9GcomY1Ry0kdaSE88WUQb2LqZiFqS2TsgE=; b=eqsvd4JGbNGJ+5KCsCAg6n8EK5PgZVGUFcwEyWyRzc7C1TA1hqnt3PbZJYUUDxeFKW3NJTSrE5/xk2T07CrB0RDM72Xct1pkavdKDxrSJmPjiy8FnqZsEFBr4AH+Xht28yWRu+o0mNTNoFdBbiig9syrE1tn57N9Rb2lPuBE9hE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:26 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:26 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Peng Fan , Jaehoon Chung Cc: u-boot@lists.denx.de Subject: [PATCH V2 14/49] mmc: fsl_esdhc_imx: Support i.MX9 Date: Mon, 27 Jun 2022 11:24:20 +0800 Message-Id: <20220627032455.28280-15-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 95ec2bfc-277f-4153-5d25-08da57e6abb1 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oYwqEltSi4lzgUDg+On2B4PGYxoAocf2bp7tXZlzZ8v9EjAf673szn7Ca00EfS8yogOscSnCVH13+sizkbRKHFuU2OxioR9S6cwu0ciOe+G9bR9ePleVTG9yVyAt76YNxK9NpZC36G0+X85uE/STZCvH5lDhBwnQrv0fmYT0fhMbFfFLHGupp1DYOZ/FnodQ5FUlxbDx5pczA9oNrAs2t6ecFK/iwDzeMcuTJJah4xVdba1LibPp2ARj08o97K+qZ7WWcETqcBUZZJInx3Kgw8GoTUQFiquTm4LXZwmhZxA6fLjd6Ef8RrpRC/p6BVjFRImfIaJfMpHmq5nAY91yz2KTXV9rogfjvG2H4xgeJsRahINDuIOS5yqWn9itdH9Xzu19bQK0uP8TsYCWqA73uKutzKp8nvfGVGcQqTXQu7zaymqGHGODXWODCefTk/ZOek6WHbI6U8a3WTt9QbMITvboYwTr87jbmfa/kwkLd70zwsSuzTkAiT3yv5IIigmz9dG5448uE8MpOzLnVm7zlFPNqD62rnNdETA/Pz3+sMD2xM0K8/sR+4kvvV9HoXOjnpjGE4igeBRvuSOb4QD3Q2OPlbXjY27zWTNin6PBwFfVKcu4+H7ZjMtFHpNdRBiTSE7rwKbcwMnRi/Fl1NI77gMbwcoHFuBC7oYgx7gHwNWAE6TxtdFqRmgkgYza+snFqnNCrrZxWlGZlgiKF4ch7taquLNbKLR8gTzbJigkqpODz8Myq2I2D1+M8a39xxd6H6m5r8fm8g80GdCIouRqC66CQcWOozeAvYHVejwhLvc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(4744005)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(110136005)(38350700002)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8qbyG5FnPE3mDZlDlmqJA6Dr4l49sClw+IE6DKxb2A9MaRus1jgkSpxI9ZA/kwJC0+Ki5WxiA4+l9LlDdvyIsGG6p5pnN5ARmyp7nztP24s9p4hGl8PdIy+mPjAccUoHOm3IH/95mggRb07Clxd/Y0AwE9ezJcwblymi1RPrBFqwYRXp+AXunmmdluswC2yRulB5NpDWLPGCspeMB2mbgKcFKXnDRAqd6VLyZNlTF9bDS3XeLZ+EqaNWj0j05AM582sJTj5nie7xO2ofjc0Bi8lIVstU4Rvh14atXoRNdYUp+xlV7M6EUGNo7eVPB3bNqc/MHfZWYJJAB2p0QTXiNzg7+UVe/PyeBMRkkGaX2bUxjf18u8t+gQnWNkmtlPtKKwntMj/WkjQOpzrcDKxyP/N1Ny4BHva8dRm/PyM0A+tnufUNj8gPmarze+8nIDDZDChZIoTJzmlT3uNI/AginrtIXV/FkHsrfEPREef1ONhsESQ82hHiCm4JX1orryUKneeQmHBnmXTDmKBQzxx6bCLqjjEme9rpKTj6Hpr7LK48vLJXG2VWppFWpvNqncQGd5UN2iX2tw29E8bqW/M4Q4xmpDU2P5wlwu/jZgkKvCOw2io20//PClHtCzqXvNH6pEbNA1ZOe0PtobhON5mLr0DdhQNdFy/d5FtY2pjYw7Fxzx1gymxvI8seoUMLe99+JiH6JXbwKaYeaSJdPPylDx0L2AEiLkPTr3jIuEkXraxyoasl1ucaYlQ6+Qeul15EZveqTI4LRiGY/h0dBOxSILOcoOhngKPbuhph6QZqfNdBhfZOPtjE3aMen2R4FDtwAp0ZTq1B+bzJ8HfST02PKpiQv6SG7UugQJqtKbWpgW5aORU/EoIYzSD08YqAAspSW8tgDS+H4ARtrCIWAI6u+n+fqzc59zxr2MUMN02CyEtHyQlpKk1Q073EUT5eVCnTjGpnqb2zdbHm5XVSmqUbk/z2DatZItUGQz9jBXnDuVXHLy0l4MOBVomzoIEod4WtQgJU7ph48GUfYkhxqvHIrZWpnOSddaCO0ppW94rKB0W3ReAHgMSDN2+Ev7APobv3tjWEureBnSG5gZ82AkBV5VuwMz/4iYC7ZT8mgZJPIp/A+3IZU6NxF0q2O6JLmPmiu/IefRpw9vkI7YeyBeEDrlhW2KQzUqMnTnbeJBZMKh4RFmWibNSX6m9PjahO3vRrYpS3e9LR+Dt/hJ8FVoyTBity/XHzEqGlQUASldPYUGs2l6My95DzMpASyy+fSJ0wozPkoVbdCadHpd1fT3tvGalqJS6uADPAxyd75/Ro8ZOhn14ne46sZPix06AOeo/Hh5nRWvfN2t/rrBd4ed+2kxuN/A/j2lGy923eV92rXHygDOdHlfkUMwgX5qKRY98Mx1yX+40XJ9ytNHUUxc9lQc46cM6A2dqPbRqxyKTqWPyfiRH+yzFh657dC7IpZW6yw+npisOeUD/zcQix1fosq/plUr11CDqUHuB8ou5czUCmJ6RwJ3/H5pTeLZtIreJ+y5QJj7e/wDCgy1/vXaZgPDRIP+2Tg0ttfsmHsR0Xq8KMboajLgDxTQvK5k2zDioU X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95ec2bfc-277f-4153-5d25-08da57e6abb1 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:26.3948 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: iZlXPi8BiAHk2ZuG+29UikeHrZQCcRHfc8WW/QZ/qVPARrSAjWGTY51huPWfDz8gu4ciHh319wKvM/5orjfr0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Support i.MX9 for fsl_esdhc_imx driver Signed-off-by: Peng Fan --- drivers/mmc/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig index 5a87db6be08..4d31fbcd527 100644 --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig @@ -852,7 +852,7 @@ config FSL_ESDHC_IMX config FSL_USDHC bool "Freescale/NXP i.MX uSDHC controller support" - depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMXRT + depends on MX6 || MX7 ||ARCH_MX7ULP || IMX8 || IMX8M || IMX8ULP || IMX9 || IMXRT select FSL_ESDHC_IMX help This enables the Ultra Secured Digital Host Controller enhancements From patchwork Mon Jun 27 03:24:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648545 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=AAxjzmGS; 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 4LWXBT2kQmz9sGp for ; Mon, 27 Jun 2022 12:44:49 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A402A844A5; Mon, 27 Jun 2022 04:42:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="AAxjzmGS"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 53406844A9; Mon, 27 Jun 2022 04:42:34 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2041.outbound.protection.outlook.com [40.107.21.41]) (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 DCCAF8448F for ; Mon, 27 Jun 2022 04:42:30 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oFeQ5Flzo9SYIoUS2iBUzwRYHG8wLoZWZ1TziiUVkOJ2vjSHH/GR0iqSSBRz14yYSuCuE+nOr5l2x4MvTsNwrZgTqJ4egiEp5lTMLlDju5fbm1m49N7ZOHV4e1F1gFMG4FIaxgDwxczffhb0xBP2GVJdMpDWRtzDodjszMqwLuYkhZyZpv1RT6sMkChITbILdGK/CBK8WPx8GLBgB/BVGjqiLPDoNwltQBFowwF5ghbm/zSp/wN08V6DkFRis/xYehta87IqCNNYz1Mx+D4v8Y7gZap6W+jDGtDXuQVQZ0A7M90mFTlzJ/LhckRJnTzf30om/HT4n0Pwgl+C/y6jbw== 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=jXerpMmVl1UeJuyD5X+X8mgLzLKeEKNU38CFMPogvjg=; b=hu5P8tlBBT7orCXUU3tCHTmAszXqiGmorQdUn+EGyu/iJS/NQ2xdoxcBOOYc0+f6BCas3/XLgYseZarlvhQeKTGW52eklDuNvcRRTqQ/2Ek0Im4fd+56+jznyOa07aHPzdIaMZDHPswxN9kSJwxWc+82wfOtcOBbtfyINwEdYqnEWMF3YpJydxmnEGDs/oo61UENPNdPi9nOEy+9SM4/8x/u4GNJXHNTsf91Qoz8FG460Ppeftmj/zwAtE8tYhZUP3C84VUIA2hmIkSClr64YzMoVWvZyxHNjFlrdnBkm2GJD26kpqWhag8i9A64bOyuyj1rVlDwV9bglbGOfSHOWw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jXerpMmVl1UeJuyD5X+X8mgLzLKeEKNU38CFMPogvjg=; b=AAxjzmGSh46EHSfs6cMCVqC+6XHvZG0FUXBEZt41qXDb15fUwsQ+iLZuavu/4iAwb7jiQNAR28vb6k/7xDR5w4400DleYIvU9IVUnDOMWvaIPFtqIt81xwI4pFS6k10YH49wx7v0/6q2hjldYHJwtMd3kfY3jAp/9WckBldk+Ik= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:29 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:29 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 15/49] spl: Use SPL_FIT_IMAGE_TINY for iMX9 Date: Mon, 27 Jun 2022 11:24:21 +0800 Message-Id: <20220627032455.28280-16-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c2c4d880-9f7f-4330-65e1-08da57e6ad50 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SGFD2TN8OLBxq8fLDHlSscSvHrMh2+vUiFOrcOPMcay+ZM9Q6IlG1Zx7+Jx7SNFqMcat24jhrlyoSKFOiGQjDYv6VjkCCc3fANqQivmbwsAczxOy28Rt2+3PiVutv9zpweazmOaaHvqSBnox9P/tH4K+Rn+cueIDahkdYzp81p2X68d7LFbzerwEpOBT+U3O3ioqfTywXEib+Bw2OfGWhQkjUrwsMZDuvJPrWaKdhu1f7Dge/9FMXOmf7Cx6AfWJ4vmJbC96A/rHoVIn5xtyit382NSnY5PYZtKj28Pw2Oa8wP3jjz8tkfiCO0840zJwt8d6zDTclhBvhJK3sAI0MIhcABkAQV1/Dn0w5e6Chyb9nXFPvRRqzY20D412Ze2t4iDxzoX33m09pEslMNU/iwoaLEzRD2IMrB8sZsG0FruMkR0BT4pgQZKYvkB1eveNXX7bNgAS1z+N/qzVGXwcL9jZtKdVH+kuHb+C95nNKQYftNEYEth6VkHtfAoJSVFiQandJp6V+ZYPRXcm9XCG2/NkJTH/1zCNGUSTI7h/Kf13pUK5ivjQvHCSZNqQZJKvjvNVjRGrxEucygxFJxwAGq/v2EmwdHPmB+04ZbP8XaS/a71kzyEEE63HM+d9MwxwvfW3cX3ZbaNl/TArc5H6WcTCHur1kb8g1ejeeuA2KHYOe9KUKpRH5UoEC1b15/e3ZdtsncpkyKSst+wl3tShLx9gLOMwAB//Ud4rb+0jWrM1zM+0/Qk6gbhhJjbkuX5WpyY+/kN4dLjau0ak6ZGc9fpSHKU3L+CnuifjiL1iPZo= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(4744005)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 8m4ioW6wgRy2MC1GZhI2Y+kWnNfnnHJRpNG5U+dxkHjaRUmxGW/B2JaynfEBFUsN929yfNV461ypz0XkKYe6/9tVT/3UArP/rHD7SnT7HT6EB4tMtz0Qs0hKNjKthbSx/xbADgqB1Nm3oLzqVap6SwA3kkHsQoRWmeihexIZUPYN9fCkvVx9eGWJg4yXosz40gL6p44cELw6ebk9QhOBFczlbfe3dIFK74pYgPRamfLyuooXeZMEJLQa+zboM56u29VQZs4D/peXSRseLFvFTnHNornGEFAq2y0rz8lS/3kkuJKk1LKPQUC8yJ8Y8atVMrXRCQoIp7Gp1H2ucWVPeQ1+WHWssVo3w0wPSxTqW8CYZ0zU6mqHpydUT1XSnd3mrb7oLO88LtdoxckWcGmYq4ueO2hxglViGk6sfMxgsB2pBPomb42tppl3c5/uMGJpqJEYzP5y1ElcdcmDJEiRhGzEQulmOuIw+dRZ36PQOR2utEneXoYeKhaPHn8HWZVazp6eBbSt2UwNrHIx21kP7EscNrwGLKRkpKwcNMdoPFx6D1UYkMdwA/pioBxAuRHQHdhala2dAoY4EvsnCGp3fwpcJ7WBXBnyP8wxok3gLCK5WAM5Rc9U+EBJdXEAHVc7/x1mG8Vo3ZDb/+sL0l56fxVXCARRchzCYkD+Ahevz2E4JAh/3RypOh2GrNdsP9iOFL4CFOUFaqQFJPDtJ0QwJ8wkiwBq9KREU0VgXas+z5KHPMITIH8ntPAsXAjzsuR84M5i5I+K240YXIMnJd1rXGryjID9SOd54jtBmGBVTP3pj+eVy4J/GNXMHPsXQ2pPrFwkRG7S5OO4P0OzMULXTwwXJmARrLA4URIM8V3taiLvT+oa1i3wZht/JrbrjV34OSFYWBYEg5FAztzAeIgrcpzmCN8XHKPLzGQrSBCrcNEN2ObaxHVg9yLDF+gn3t5pn0BNcCvXHY2r6Pz34vrADWThPz4/qaKqgUa6cAUBu2Saz9Zkq2/9/WAXxJI69csTT1WRllak07VH02IGnFpZQKuASNe8Lop5aB4LPnSE4or5Y9cGQl1zqOMgfJYlUg+sdHJVQLysge9O2nBz/Wa73Uk1c3TSuqmD6f/Wus05+At6kaBBPj6ZuIJg/pQKIt6Oqo4+doOCsipyIdJRtWDuO3RUQDOXjjlH4NggQd6vk/9ohhLU7e/XvZy7w5F1FiOh4BhIpu19xldofLQ5W2aoxnW8ylAOgIoPTXF7xUcWqTXHv7V/5ZbNtpNyB1qiBFP50gSe1WYm1ksu3wrrH/QXwA/3d3q24C5rAMzrd9JGefW/WN6tUuOrATFijIVHoIEygPoADi5b3QWJdhmpzOTEhILCCue6zoGl8pN1CGitDP1k5Lwf1pSgkuVgQdJAE1DrnTCKtkI6z/ZFYv7YPE/WDm7fiown1lII+FpMFZbv7G/8cN3WZLDjzD/AcARM7xVHhuJQ0hGXyifLVYVWyQ+B11LNCy9JToJ3sFTcGpwJbdBSE97lW+MPQt/jIgjUeNrNceGcBEfFYd5noUsrF6lIt0niHBJcVUsxIbdOwDQkvg0R2/0rJAgUfJFsm34y7bTd X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2c4d880-9f7f-4330-65e1-08da57e6ad50 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:29.1136 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SGnaXZQTDoOoJ4wtDyH2YMIGb2Y1yh8iups72Ce+zz7cvwyCuXOJwBSn1IQWJqqgSXJSLBPsSAUcsjOe1A+QbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Select SPL_FIT_IMAGE_TINY for i.MX9 Signed-off-by: Peng Fan --- common/spl/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/spl/Kconfig b/common/spl/Kconfig index 848237c1e85..06cbad2ca85 100644 --- a/common/spl/Kconfig +++ b/common/spl/Kconfig @@ -537,7 +537,7 @@ config SPL_FIT_IMAGE_TINY bool "Remove functionality from SPL FIT loading to reduce size" depends on SPL_FIT default y if MACH_SUN50I || MACH_SUN50I_H5 || SUN50I_GEN_H6 - default y if ARCH_IMX8M + default y if ARCH_IMX8M || ARCH_IMX9 help Enable this to reduce the size of the FIT image loading code in SPL, if space for the SPL binary is very tight. From patchwork Mon Jun 27 03:24:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648546 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=BYpVtHKN; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXBg5LZ1z9sGp for ; Mon, 27 Jun 2022 12:44:59 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 39B55844C3; Mon, 27 Jun 2022 04:42:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="BYpVtHKN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5D5A0844AB; Mon, 27 Jun 2022 04:42:37 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2047.outbound.protection.outlook.com [40.107.104.47]) (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 7533A8448F for ; Mon, 27 Jun 2022 04:42:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OhLEx+3ztig9QKSbCoGu4b8IzoPQntpUi8+YANWvIX7+uc5PTT3t5X1gvQZ5Mi+03DRRfu+eO0vtm4RKUAAYK0n61Jlr8DzN/KDTegAHpRurYag4mUv5EcT3ct0lbEoYhx1xhQkRUsoXcSRHlBG9vvtRxUKIC6aFHQ7Ego+mgM6cFVVTzy3I5osjlKd1hLt9fHddhImoRkvegG6mLwDNRBS4OG/BMOcxbNuYdJOpLhQFwgzxcS90NxEkwwQjKBsKddRgKOytFnXJshmCQ8e/hoezAnmelNdPxbVX7e942usPeVXVFqOZ0dXnv1x8d5xIF62hC+GvOCBZlYYEUgpwgQ== 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=VM4Cpn7qjiR+Xaz1v3zGqetDssoG0Zy4ILLQHEGm4fY=; b=OCvvdXZZVjYYFAVPEBqC2D92N+x05mAaB2Wlg4k5FWVt/s4mJAye3JuEanMQjXE2pUBwU/kpSiByTgJ22auoO63gO18Pnn9h+KZowdkQsE45zhZNR0tRIk41zu4ptmIEdhKVBFyiFDJ+aq7UhlhQ2Y8heh2PZD8kaEhD3gg3rugpujGogTD9w1pdayZyDimA0NiXoCW6pQZoOcnyeZHXS9CYiBi7BJq5zagNGPemRAuDhuYNW+c3oN1hDxvvb4xskbgeoSyUAhsNJTqiSa/no65/XeJnO04y3GH8VSZsEWv/a6xiHA1JpV9LdTrVBs32kUi3MwFsusGZ7Td21wlSrg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VM4Cpn7qjiR+Xaz1v3zGqetDssoG0Zy4ILLQHEGm4fY=; b=BYpVtHKN+6CHo4nCLO0LuqmrEV5JZ6Ru4n1LZb4wlmpnEfO500eR8x2oIAoCklBl0K2HLUBlQuqyn73f/eYNel8Z1JewgPYVWDaygzsGlsTeHcrqgTn9IWRbgNb7U9J9rYQjkEUx0d7JirLvw4KS3b3YvfoVS0df/dcbotKtbNw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:32 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:32 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Jian Li Subject: [PATCH V2 16/49] imx: imx9: Add function to initialize timer Date: Mon, 27 Jun 2022 11:24:22 +0800 Message-Id: <20220627032455.28280-17-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 8dc2daed-1c22-4081-8aa9-08da57e6af47 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UXs+KUuQClhLu3RNr6V4fW3RxCIFCws6bkw4lMB9MWlTw/d4qTHOFLKrCpS2WoqHx4f8eNvEP1LpNvl+LaDoSFjHIdRdFN6GR0LGxEfUdWDbjTHCk8wse4NU+1nL+xDQz10kls6KdIROWVtzeVXEXFchzeKRNrUmUoEh5ZNoJIdQvsu4R7e/2GjaNIeskhIA4i/cxjSG6SS0TlCyV2ekoAPQeOUBLKemIbOOyWRmAJtAXbF63/wja6VfD+8+bXVLOGKd8id3rhSm6GTAx7A5YUh/HEyypakkA7G/10dvZKoBDBH2sfr2I0vQWLoIt9qAuxIpsop02Hgtl5lKLnTmOt8cjI78ozKunvGSAWuaLVO+nBxbJqPVxHlGXNgK4Ad45IoiTEQsCR/CE1KB6/v0C9bqsJgz+BPb7e97l6iNNrGcrQ2V6aSOZtmFumbqYkFUeaPwjzYpZ9zW23F8Rr7DLFl4/BU2oBuBi+PRnIsACbM+kO5dkzz5i1Wsi9/6cK1IQYTGbHbpWTR2dnnKZXGZr5HeTbD0LTojsnij2LI6Q5dGY6nGkBHj7eMFZKXDWCgETeR8tlVym+nUXSGB465Ut/mUy/DvngUv+SeJgd87dromwjJ1lF+rDmF4h38x4OEevSyeM4mLs2Pbiqz+RLJZzrIJ0vxlgvkpWk9OFv8zAWbz8iNcnm3GHNiP8NhhLqBrlLU3oFR30VIhVCc6ZLh8PR8n8ECjYkCqCIg58k6318zQgLM0J4n4EVY1rCcb7ebbuM7tIoj7sCo6G3fkr9Yz29M0rYlueOeX5GygsHRAWF4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Elt5AAu1vTq0C/0XPIe+aY1twqxO+GE9wffmZylkUZ+K7HIE3xZaxaKokPtOZqdlsCbqm7tYcU1qt9LzXvCcXFvmawFuRjLOzS/nhQJtbVLNTUPo7i85W+hbmNO7bqTVimUmU7XHGSHoY/08419THJ+VAl2Sp51OiyOApPZycT8BQ5R8FkuVUU/DIKzh4P0QLcbcOzKKvrzrHh9xo9nHBt5dsILhFA9cnWppqHtmmMW0R5mZs3i1JS1IGtJ/ZbcZ2/HCZyT4GAmh0xSPdZEql51myPTaoVZTcwRVX5rdaCTUIiHLt31dWEB5O7ZO9Q7nZX/EwAMwurH35VSCNTOHtahq2+8d4MwYiOnqVb0tHy7UjNK7Kc4hAIUhcpcZ7AX6entZfRwM1L539SI5TNZqv3Mg5qo50xlY37fjeqtF+cvIF/fcHtLqY2fg7KlIOh/p3hVILUSDXYgCDCrvMRTtyBv1oWeRKNecbKiYni0s0sCI4WrEiagQZnghTWSonqFItCgM5iXH6Nr/lvA8DeF+G5Fysq6tdHaZ/gOK/YIkyOusXINiBPKFtS2fZGlRwLPav4Hbf9M4zehbEoozH8NZMkf3ga5VBANDx9oe52RDJTOj6ZjRFdfdTLBOb2Xl4SAP2sQmv23JgHNqCG07rosQTswyCdgvLbDH9fTse+O+SNxjxzyQo6kONC/kBskGpujvyQhlq8/TbJA+TbIa3Mb0XsAktNwzPTnNntrQAA7HPXDQM6HjPX4BjXFelNEhSQBsl+ihXTIA26ntPA8nIDSSIScXQ8DGr/amrHHcVk91wpe95zr7QKtgJe5sgdV3V4utw95Z4FInPbujSB0VvkOmfrmnRAUgzNPtitXu4oujfAuKKuKujW+4+8CxC8J1om1h4Ulj+jrOCRG68mhGNBwmx9H9bX0tT2g6iexfou8rNoNqDM/S1qZrDMp1qJbX8WwJU2vykx3e3e2UeysRwyOc9/3slQsfUGDFRf+tYDYsfQTGCz/NJX4njtouK9uKCZKUTm0mFybA7JmjFG74IJivcuppaTwDZ+ISexE+q1tLC0tI/x6Po/xI9u5qACFd11TAdgwSy5gC5+8kRZf4dyXYIsovaV6erqyXKbxL4a/8plJgTrJXvy75OiYqQpIALbn6kLpCC48Fv46xfgJ39NgmPGxwdQn7RImcmNJs+dhmdmXq3g8aMO9L5pXESyazYk9v7cieQlaOPFe2vjcWw3047tpfs+0qGT/Ggdoef3/neKqRCKO5u5VIFcM9Y3Wy78AiJ3Yn35LNQ0j1XWFcJmvg1Tejw5ID6SVmXQgj/279RmYt660pBYpFi2/Mvf49tT7/aBI0d7SxIGKKiUXV7XVUgOXxETGfOszM5GMID660+H5WU6NZpvOg2uPEFyyXOdIWFSHkGaGDSXno8A0Ba+PQqRf0FLoTbJWK1KuueIcZm0hOq8kZGEC+UTANEJrQ2WVJM4EdsGEZ+Mlgj0lT8ySkcTDrh2wwC7MgEcehuYmzGohlnEkcDQw2XbnLDIPQRD3KAF2kHHPa/lUEpqYnyL9MWqT7BAk2ucVrYBleigItLzEbUWq6BYPTmxqYad9NeqV4 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8dc2daed-1c22-4081-8aa9-08da57e6af47 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:32.2893 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: LKN/6/iIqbi7aJm9NtiMzbwz6UGXgYjAN48LtShSANlcduTy12d7u+aHh/gCBpD/+Fu7/H17/DauJXK0oM9wzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Jian Li Add timer_init to update ARM arch timer with correct frequency from system counter and enable system counter. Signed-off-by: Jian Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 1 + arch/arm/mach-imx/imx9/soc.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index 50ec902987d..32c76ce9c3b 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -11,6 +11,7 @@ #define IOMUXC_BASE_ADDR 0x443C0000UL #define CCM_BASE_ADDR 0x44450000UL #define CCM_CCGR_BASE_ADDR 0x44458000UL +#define SYSCNT_CTRL_BASE_ADDR 0x44290000 #define ANATOP_BASE_ADDR 0x44480000UL diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index d4a97729c67..4b8f1ca30d5 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -128,3 +128,22 @@ int arch_cpu_init(void) return 0; } + +int timer_init(void) +{ +#ifdef CONFIG_SPL_BUILD + struct sctr_regs *sctr = (struct sctr_regs *)SYSCNT_CTRL_BASE_ADDR; + unsigned long freq = readl(&sctr->cntfid0); + + /* Update with accurate clock frequency */ + asm volatile("msr cntfrq_el0, %0" : : "r" (freq) : "memory"); + + clrsetbits_le32(&sctr->cntcr, SC_CNTCR_FREQ0 | SC_CNTCR_FREQ1, + SC_CNTCR_FREQ0 | SC_CNTCR_ENABLE | SC_CNTCR_HDBG); +#endif + + gd->arch.tbl = 0; + gd->arch.tbu = 0; + + return 0; +} From patchwork Mon Jun 27 03:24:23 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648547 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=KX5DSsM5; 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 4LWXBt5bfXz9sGp for ; Mon, 27 Jun 2022 12:45:10 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 0F870844B5; Mon, 27 Jun 2022 04:42:49 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="KX5DSsM5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C0A3683A0A; Mon, 27 Jun 2022 04:42:40 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2074.outbound.protection.outlook.com [40.107.104.74]) (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 1E26A844A2 for ; Mon, 27 Jun 2022 04:42:37 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cjmJW8Jd27nFL0G4NGxFtqo01LvAtI/dVVoLzawxvDeigtqab0ajLKG564+BVZZsXR1iDG9Ssoq+jq3Jf277mGk1Ftwhd+nMUk62/aQO037w3RHeKbnueiPtKA+HQR8LShtgxVanLZsHX7mPmhueUOtfv1ZFFYuvsCb6vthKodo+epKYUXYFcXh0NjGB2ry6nrH0SCGrE5AQifvBaUj2i98AX5alGbFVZ7PG9VlqJ3mVYFxRoMppujipxVdFx3mvXjPG9bh/NfxjQEVPCb+/JxQeQn1kftVol8oxeX9YFyLrL1ShoAXdTVzeEsxaWaRfxW2bGvbE+gltO0bbm7Toag== 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=6xGxOQJ4oM/0REewJuAqzZJfLA9T/jmejjrz9I3l/lg=; b=QaxJQfHIAj/XczovrN3zlbtgQMJlkQP8Gh9AYWUyEnTo7I3K/BscO6rPRQtR/v4RCHhIZpXzy2PlXvoN7w0U15J6Q1Gy1yj5e1k2KBVQz+epM1q6K3k3bKR0cIsHSCkwNgYxCbWwVvFaqTjFfV29nR3Tja05gckSH2wjFHhEpFggCtFPOYXbsPtP7kevWVzd82sCBRGrA51tIof6q0E6bso7LjHweqxYd1L8tpdIs6Luv+2zI//MjCOC2yG9Nv1JlvLWlRFRK9ondJY4mieWHT/qy7UfXcFcQw3t7eichQWJnGmBT7BajwM8XtChudWRYkEJsFgg3kmYAygUc00h/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6xGxOQJ4oM/0REewJuAqzZJfLA9T/jmejjrz9I3l/lg=; b=KX5DSsM5yRL5/l4uzboiC0N1YOrBLNBsC7D1SxCjXm0h/2Zs+jq9JXdwjOAuQHdUKHbMzoe2KDcSFCXm+O6tZ5dbhro4MN2+YH0gBkDu29wllrZY/+qA+FQAgD6+3anVoH+gsm8KE5wkVcoSSe3XujLo6/yiD1IunmiXj6FQniU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:35 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:35 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 17/49] imx: imx9: disable watchdog Date: Mon, 27 Jun 2022 11:24:23 +0800 Message-Id: <20220627032455.28280-18-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4047b29a-a581-45e5-fb5c-08da57e6b105 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nwd4TF2vcFnv3jq0KSt/qIxUfFvUGmPBT4zXI1tkbOjLACqnfs5ZVnmZ8jJpXmxPA0f2IzU/qCxChpbBYdnVTls3NvyrOjf3BNFN7r7R69EKswLR7n1dZDhduAl4yUdkcbqr/OWtkdnCgLxNEqyRAVNeLMo5urmpM7LMS6bIggG8m5asd96ChNNnGW7T6Q9CHnE356GBGI/1x8BGCuBLldV97zXBYeGrCygmH0Z1wCBRyfUQJMb+X0zqzudzE9Ou2CUTd7nyjECsenA+A5jeHBKE0LUjmqj9sHe/vbqELXb2TIWKXEwYAzhuV+zFmhVf96JMmFlj9VtqbtEmuZOzECJEoa7nH4Tb/YuD8yfWoYrF47QqfBIDYnbwcvDsDa0hsgpfXsh+3nE1by32r5O7caEa1955YoGsKUSiDrg+4orB1S1IOb12grUA7y/hwu1TDawIbD35nON72uq+DUzTQV22ugm1DZUFrCIGyRy1VhQL0tSMirvYY2lmqbf4JCOuk19akvNagsEOQviPzJRl7vjv0bC+pGz8Js429+LrPSvN7U7Vo+RqnEpEAz6AG4Va421x6oVIY221yBXZfZtJvXY6q1PUTBzcuDzMvI7jHgcbiR70CrSqwc5s79mqCGwVYwcqC1xf5VJANTdX4/h6tsPpndEEgedKF4cdt2f7OjdPwglpo2JuEt4Gi9H36/io6FSeohdnEStu2m0s1lhDMeZwrkvj4VwHCQ5WZmmw25Qhu43gKnGah48ETircEZX7aIWKCKn07m6ZozhmmCJ+0VJwDp99PYuU5qakXq+Fg30= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: nMRtmoeF51xG4dMnnoxJEW9Md22u298nOn+ZU3HdFnwjqyKNhAS5JZpYyg+Ic9ssPmQwj7RBCmfwmYIWRh7pT0Ee7ev340VH39+xpRyujHqVr4pnNWWlrgrrHAbzl30bCIMx1eSXEZGbb/4Qf1yLC151d1sp96QZvt/1x8Z4TndeA/km0UJYuKiugRIlYaRVPqr5RRNwnlKEAsu93AsOYqdTM1mPC2pa67Rk6/iEEuRBvFBCavKZoN3vtMChFWLPtXVyTHYaWwOR2CbL9cyaoxO2GGsVcZ1Yn91Ptca+xyfsdX78IFx69hDJzRphF4G1EJV4A0zsgdzSF07/sgxsnJLxaVtKFFHbcf1trVUMzw+MBos8YT0zXBIbTQ8ztjZ7Ibuu3EeqefGT4nwqV8kI8fYAK79FMPT6eUZvPDMLU0QsJDNMl1vBt+KJief9TEQfZWah/bnfxO40S5fyKrCBLLzdFpvkkLE7WOZWlYuGIceztCGcTNAI4OWlAofCfVlEjYUYxHCxuTsHs2r/fC4HMJz/Svq67vy3er20xxsBvUsjPROlQB+6msKtsiCmMMG4S7cmSG2vwU5UdSLVp743+a11mQ30JrInHiCTNeMqWgz2UGADAsVKWdCqVkWGTHo9Ssd/Qk47ITTkHpD48VUIIxz0r+5biDh3fJzs3hzChUSIJ+fA2MOEAlpSd9YBNKa5GUUKY1q8U5DaUPnK1RrStw6QBrE6YeyfMxl7z/llGE5WsbZMwFjK2Ii1GRJFsfJisf5uzlIm4DD/IGrjobaN1sEWGu6muJaKOj/JbfLZti6VIpPzW3UQBNeQ8LQhRE31OfK21DG6mlyEHVwnzB/mO+5TABMzyLwgPyFcKCbTrgGO45Pjz4JlwuD89z5GSQ75ugAct0nKxYAvQjxyZpiGuNFLH3Q+QzFlcTQuOHcMXfwZCgWSRK1P4NYB6W+ROkCXfRjlFptIx/rv+aCY/iMk+qcnGpKF5WPZdKIkbkbRNbTlXmatDj9n3stBH+9AcN9Kt2QtUw+KcIxnVLSWg/dexkLgSXFDlBZb9J9plmapEVLXQ8QMiZjhQKF1M4Km0lNw0GYTZIHsXRLjHX4GyKHEuPPCsGFXjF0hunMYqH1Vmv9MM4eloHM4IV/f5DNujXzq7h0BTpBp7VlhD7KLi4wJ9faTXGiOYFGs/l0q3sFCxcRxo3RJquKicNQ/QCPC8q3Bnb5SGdUxWd7hh6YM4z/Chur9132+6Q2JT7NZCwsTBoYAso7fGsUaWOTQLZ+xzV0oO4cK0/kfpzFEKApmMweJw7CLGTXkF27/0i+NuQrqJiseuJC63n6vVDcLAk4KVcyITvLl9xhjqiJDSnzajIhD4ShOEOAhpsfmEYNLeYd3oxHXT5laxuyZNJKCGjtBa/9QKnzM6xHu04mNN7xYsgsaMUdcdC+T/k0L0cu7jmRccJYoT+GmnaZDYr1fYKZcjgW2G80F/Q/80XisDcoTiTbj5YL2bomDfEEkuoV9qPyN5IWAjt8XMUZn8B+MRmBPLWWcbBtMtVuCc/8CeIO2xnQFuMDatWsSLnfiqeL1q2E3WmgUBwDWbQcPWTqoSpTDhT4J X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4047b29a-a581-45e5-fb5c-08da57e6b105 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:35.2118 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cqQbcOgpWMWnCzgunUOHpoomdLcf6QCETMzY7HvT33yE7cmklLds7K+CSCJdnjkceC4HfSwFZKWAzEJbfx1iPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Disable all 3 wdogs on AIPS2 and unmask SRC reset trigger for WDOG3-5 Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 4 ++ arch/arm/mach-imx/imx9/soc.c | 45 ++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index 32c76ce9c3b..e4babed40fc 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -15,4 +15,8 @@ #define ANATOP_BASE_ADDR 0x44480000UL +#define WDG3_BASE_ADDR 0x42490000UL +#define WDG4_BASE_ADDR 0x424a0000UL +#define WDG5_BASE_ADDR 0x424b0000UL + #endif diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 4b8f1ca30d5..8b620832b5d 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -34,6 +34,45 @@ u32 get_cpu_rev(void) return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0; } +#define UNLOCK_WORD 0xD928C520 /* unlock word */ +#define REFRESH_WORD 0xB480A602 /* refresh word */ + +static void disable_wdog(void __iomem *wdog_base) +{ + u32 val_cs = readl(wdog_base + 0x00); + + if (!(val_cs & 0x80)) + return; + + /* default is 32bits cmd */ + writel(REFRESH_WORD, (wdog_base + 0x04)); /* Refresh the CNT */ + + if (!(val_cs & 0x800)) { + writel(UNLOCK_WORD, (wdog_base + 0x04)); + while (!(readl(wdog_base + 0x00) & 0x800)) + ; + } + writel(0x0, (wdog_base + 0x0C)); /* Set WIN to 0 */ + writel(0x400, (wdog_base + 0x08)); /* Set timeout to default 0x400 */ + writel(0x2120, (wdog_base + 0x00)); /* Disable it and set update */ + + while (!(readl(wdog_base + 0x00) & 0x400)) + ; +} + +void init_wdog(void) +{ + u32 src_val; + + disable_wdog((void __iomem *)WDG3_BASE_ADDR); + disable_wdog((void __iomem *)WDG4_BASE_ADDR); + disable_wdog((void __iomem *)WDG5_BASE_ADDR); + + src_val = readl(0x54460018); /* reset mask */ + src_val &= ~0x1c; + writel(src_val, 0x54460018); +} + static struct mm_region imx93_mem_map[] = { { /* ROM */ @@ -123,8 +162,12 @@ int ft_system_setup(void *blob, struct bd_info *bd) int arch_cpu_init(void) { - if (IS_ENABLED(CONFIG_SPL_BUILD)) + if (IS_ENABLED(CONFIG_SPL_BUILD)) { + /* Disable wdog */ + init_wdog(); + clock_init(); + } return 0; } From patchwork Mon Jun 27 03:24:24 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648548 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=lxV4DHz0; 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 4LWXC50dYYz9sGp for ; Mon, 27 Jun 2022 12:45:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 4E5B6844BF; Mon, 27 Jun 2022 04:42:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="lxV4DHz0"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 740DB844B5; Mon, 27 Jun 2022 04:42:43 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2041.outbound.protection.outlook.com [40.107.21.41]) (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 00BF2844A1 for ; Mon, 27 Jun 2022 04:42:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CGDrty2jrj/o+T3yf/92ggau1rJOgqX1GRb9CpmfOZbR/q4P8KrAtWQ+kIQnUFx5GDztN8tXC7MHBfq1BMmxwKgKi6Xn1vjFxtU6YFg2jr8rDHZn7H8QZeaW2fclKAY4dIPhIsTG6vm90depZqWqMUjyheqif0lkKGLHIe+4aT3AmqHMtmmsvMMEpXOdj6G2yo0sVAR95GKy/6lEXZhHyh1GSLOEf+nzU8RaOnzOrZHzNW81KugujQGhhLy9u/jBeFe6uE758gNGmCwAGTUYPPtTJ3h2pxLi+KfklQm7hnXZMJsLiMT1Ecpd92NmxDR+cleVCF37R6JchuqbfOZbhA== 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=TRkiRUfeXI340zQjJOvT1dIiKdmtG4b74+R7WUHHZ9c=; b=mDnC1pAs1TShbgvCCfuW1HCxUg4xNT+acwy1Y3Y4eniAYEa05zepKqmTcETLBP4xlq2r2GSAvQvADy+YLdgzJczMVDXVKlIHF99MClXJWPo9i4DeHlyR4lUNNW3kv5BfTMMCD4JjLgxIyBvvmHwwkI0RcdPC/zuhqYYKrSzSGDZFc8mBAC6KePtlxC2gaBeGMs8iR6YSye8wQF2RXJZJsoTBZgapwCeDK4aIu+4PrY68TwYx9HugEEY83ZYBAoLdYt4Q/IIqZdNWj57EEtIaCm8LamvBQoUJstpAD8f8WbP1LeY9jPqbCFRT+J2vQHahfWj6/LcKSxApBW8h8N+YJA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TRkiRUfeXI340zQjJOvT1dIiKdmtG4b74+R7WUHHZ9c=; b=lxV4DHz0bMzvueWGAXQ2NEPLeasQzHVYyxsxCKkgbPFT0mxR78/7rmpaTBB2l5puWT+FRvseqY22hB5LiJbuUBh8tp9jlmB9qeiG5A/f9F2q2qA7EH2kJYuPC961erfnaJQKSHyW19z11/hD8GtuPsGJnhvu4YmYkP5JCI7uV7Q= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:38 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:38 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 18/49] imx: imx9: support romapi Date: Mon, 27 Jun 2022 11:24:24 +0800 Message-Id: <20220627032455.28280-19-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 42b6cfdd-6d6e-47bb-5e9b-08da57e6b2c1 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YRrxlxnwNgnUzrSLfe6WVKVleA17gXHJHMLmfaaQVsueWevcrq8ZMYuynyUhCyodDXdC1Fkyt0m+GFO4wMwQmxxSUmSe7EwJ9sysJHV1Lb6jaTz48MWNgOHCQXqAUyAx3ToeL0fvXBvW3eQvsRP9/y2wuD/QDfEsvNhl0ymPLYGDEYqD5y8XCCRGeTpXY3FFzxBymBgX32dpXzypk0qqN4BPX/btn2KkSL2baimjlLcD0D8kZce3rb3b3JfJg1/Z+jHll+h+/PdOszDRC2cAut1T1VfBTcHxc/gGE87hjhpyoiFwjz2Q/Y/O1Qm+lwNvDik5jbgIhL86gWfCgfUQeJhvpm1sr9HOC3a1KwoFCDxA5VCeTtMz+EtakeGgbXUfxCmmOh7RlBmllUWa3jaml0BqGPJ0PHapiyA2MA3+pVXDWz2eMR5+oGlPsYpXSpnNIK5bDuuGgef6GhTh9MLQCvBOjKx+XqJFTNH8nG+c6WHlUAb17F0bXKZw8FbZ5ypa9db1Ayeu4HMyTkiqgoQ4q3rufeY9nnk+7DTsdAoNJMIu5uZwGPhCQmaCwmf8YHEHqWt6/9SLLukE8yfrXNz9dEzh7oXhCD2ACyhSjyjSW9wbhIbpvWUtJUkabWjFJmSk3wddHAOJmiAXQ9YdclU0TfrIEDscFlGT0aA8NQxRRD6VnZBOxaNxzYtDk5ZBmC1rCQbavEtN0IS1k3Bh6/Iu8Ekmq7hgeIipd73qZZ7UEc8ytRDV4ilw4beGCvWz9UvAoifiZwVbN3UCcaIqKjqm0x2Hhhjc89WKOPzqWMna3Y8= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(38350700002)(6862004)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CuiDbq/9L9eAxvqEYauR1je8yfCw7Ehcf15UwV/0kLiTPAHp4ue36yoTCGnXB1cJIDF2c5NwnEnvFOnobpo0JRAULbHSeKHca/gAIK5b7HFcBr16sVbKFJqFJK6bUhVpJeRZV9y+tygeBcfUnSnbBzOHOc1D0zC4uu8m6pfWZiyBxcr+nJSvBHGK9mtgZ3GcBCbcGvhHT8hcaMX0gfTOok+EPKIsWT19dkkQ/wwj4nu8XLWGxIOqItVO3aUgOWTMaRv50C+3QrjkxDirMxD9GjUf1SHGmnGGiD7/sgEgJ5ZBHHpPH6De0oRuR6vSAvoj3HoXs63LSWfZ/kCkfixrlYrGTR2xkprk67wRAiZK92fNSu7IxViDk2ro5v/ysCBrv/9curXo0bARfbKMHpmA1ba6tLL9eESKzosXa5A7iSZ13g/8wcc96PlKLwMT+KNrH7plCfgqxH5RQ+EcJ9kmPeuvM05SpRkKeqqURGm7BLNUxWydoKC+V8h/fU/iPdc/jD1CsbqCVvluiD4LsPdlKUMYTe6A1WEp5FAB9DZcNlKC1N1v2uZ9XN+xeeUltbMZXZ0XhcGQcHHwi4AXcEMTSW0GsndlUq1sP7gEaNRp4dbl1OyhdCpD7JoUNVNJIAGLiN27cWeaAEeZbWKcotjKoTW8+a4uq47feq91zVvqy7lLQlg7DVlbN8wyYeJG83kTqrMP2APXdHjrCkK1CZz6SQfQsWazfn6NB7Wg7SP2xJiToSUW1WEeoI8mvN5yX1g7VHxdJgxqzouV3igENHI51tAgDkyt6ZnIxoLJ1y5MQJACktLFz85v7tcJXcIZRM7GZDM+FzCZbXigFb7dGSSf1Ee+Z1QF+71Av7aaeANVAyJPeg8BQumx3wCl+nb7xBFhBqQDkifIoZl68A403WDouPbQYEEP197y7S2WiuYRe6NvS1EqIoWNa0ES/67KWcgyKD8p2AVwDaDL1+1TmZrV0ip+b1rzHNSzl9U2d2Hiu1UNudtEgbfemU0rYjncxlxq4oo0OyA3KqX4GmKIvXYXrlkj4H3ECc2GXuzL2ovCq6S4rM292zmMV5V71PU+9Q6OZtKg7TAjxk6PqJhTfmm1YP8RL3hiNTNUQ7mzwWkPiZIcKNAbnl3rY0IEJgsCSfcOFw2vImCcoLkHZYJHhMyb1rgES6qt6dwDbIyaw55ERGDGRSCwprZFaXxvTo9DwGv8gmDWckFZiFpiZV2tuwFptju7xn7Y0bJjs7CJULLKZfr+rMBgPxYvTWFrDyNaJm3qDYC6EXV3f9/4sT4mTwhijdCIyAoAzir2CDOZEmICkvyqVtMgVEMr1fapU8Nkj6Qtqj1HgdEIwoxi6dgSGhGtkJCZnm0DOcg5O3uvpHDozgaoYtfaxm0RqZODvLkx7mKFNY8lBYE3DEGqebLRvsl3g/nlucq0Pq3bIsoO5erYk21uBDZEv0ZiOPiCzBFrPkEFXX5GIKuo3ehkmJb+H9Uv0SaWTskCpmIuBHiEQnxSncrjEo+QHKBdqXJbQq/ps5uCb0NC3RQmJmIBqU78glFkfFiZ02EdQ+GLtKY/VBkpUEkogJs4x8zeOXYt7X62QsLw X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42b6cfdd-6d6e-47bb-5e9b-08da57e6b2c1 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:38.1176 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: eUwjwGBIZx4ef0VwTPDKANFbWWoQe6ZmUbi+4ULYyaKZgOqpU9Iyk5gSO4H58nQtfDGecsQP6BbTm11bNpuxQQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan i.MX9 shares same ROM API with i.MX8ULP, so make the i.MX8ULP the function prototype common and usable by i.MX9. Also include mmc env functions that use ROM API. Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8ulp/sys_proto.h | 4 -- arch/arm/include/asm/mach-imx/sys_proto.h | 4 ++ arch/arm/mach-imx/imx9/soc.c | 37 +++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h index 05859dfc2aa..a7869fbb573 100644 --- a/arch/arm/include/asm/arch-imx8ulp/sys_proto.h +++ b/arch/arm/include/asm/arch-imx8ulp/sys_proto.h @@ -8,10 +8,6 @@ #include -extern unsigned long rom_pointer[]; - -ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf); -ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev); enum bt_mode get_boot_mode(void); int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm); int xrdc_config_pdac_openacc(u32 bridge, u32 index); diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index 05532ebea89..17c5f44b208 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -180,6 +180,10 @@ enum boot_dev_type_e { #define ROM_API_OKAY 0xF0 extern struct rom_api *g_rom_api; +extern unsigned long rom_pointer[]; + +ulong spl_romapi_raw_seekable_read(u32 offset, u32 size, void *buf); +ulong spl_romapi_get_uboot_base(u32 image_offset, u32 rom_bt_dev); /* For i.MX ULP */ #define BT0CFG_LPBOOT_MASK 0x1 diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 8b620832b5d..9ea2d51495b 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -29,6 +29,43 @@ DECLARE_GLOBAL_DATA_PTR; +struct rom_api *g_rom_api = (struct rom_api *)0x1980; + +#ifdef CONFIG_ENV_IS_IN_MMC +__weak int board_mmc_get_env_dev(int devno) +{ + return devno; } + +int mmc_get_env_dev(void) +{ + volatile gd_t *pgd = gd; + int ret; + u32 boot; + u16 boot_type; + u8 boot_instance; + + ret = g_rom_api->query_boot_infor(QUERY_BT_DEV, &boot, + ((uintptr_t)&boot) ^ QUERY_BT_DEV); + set_gd(pgd); + + if (ret != ROM_API_OKAY) { + puts("ROMAPI: failure at query_boot_info\n"); + return CONFIG_SYS_MMC_ENV_DEV; + } + + boot_type = boot >> 16; + boot_instance = (boot >> 8) & 0xff; + + debug("boot_type %d, instance %d\n", boot_type, boot_instance); + + /* If not boot from sd/mmc, use default value */ + if (boot_type != BOOT_TYPE_SD && boot_type != BOOT_TYPE_MMC) + return env_get_ulong("mmcdev", 10, CONFIG_SYS_MMC_ENV_DEV); + + return board_mmc_get_env_dev(boot_instance); +} +#endif + u32 get_cpu_rev(void) { return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0; From patchwork Mon Jun 27 03:24:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648549 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=VyP/E/r6; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXCH6DMyz9s0r for ; Mon, 27 Jun 2022 12:45:31 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 23E5484449; Mon, 27 Jun 2022 04:42:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="VyP/E/r6"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E473A844C8; Mon, 27 Jun 2022 04:42:48 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50088.outbound.protection.outlook.com [40.107.5.88]) (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 A2D9B844B4 for ; Mon, 27 Jun 2022 04:42:45 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SZLDt46aRcW2u9EBaXpiWVs8ASkoPkwCWWvHJidXVMDwie3aoNzf3oJGtfG2kqdo/0y4u9cjjJbvY40/PeMpF7mYAMrQBnmQrg+7dCU7/iBznQGO7rnnW1YTg+C3eavMFdXMFTV0xVNSTSlsuaovutLdO9bSIeozkcSsi0YJc4hiHJ4lYC4XO64szxQykYi11zEV4xIgdKo5aiMtbATf79hENdKzJAXcgkMe3/thhvMS1XX8MC6dLBM6ppBe8o3H97TBO9hiM4QR5v2i2oPEC3QpzeXgUizB1HivJdnrUhgZytJSrSdq7hEZXyXAVgRA9h7F1iYw81b7yGl8f8UU5w== 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=+Km7bup+jzNNzvyRTxI0BasHn8kpIhQObLocueDjGVM=; b=Db9T1sGIvk9zKwv4aFxUcszbRIBJjepYVAwspKkM5h9HK5mnJyTnD75X9jHfgmemUI64qnnFxxrpgpymsrD/QxND8aWs8EjacUcYmju48Sm6O7RuV4gbfmexH37Pq0K4bxsxVmye0v5/z2rQgtphfpyJ4wY+lhyJiAa1qFakosghT24qVKRuNVnKVi9dcoxdMecpO6TTGbaUMKGHKc7g5i9LDZlZ64RpSlpbnK8SdUO7cBBz5cnohFXwuREHY9Tez4uKdBJi9+VvU2MjQwQU/icb/7Ebvr6T1ejyhNWyVEuHDeHex9a0PpvWs3Ec/7CR/ILWhYWD8U3ts+GTjCvn8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+Km7bup+jzNNzvyRTxI0BasHn8kpIhQObLocueDjGVM=; b=VyP/E/r69nNGP0vgd4DtPTKOOWrRFxttpAQ0ZVCn3iQlIHFITLQE+cHe6rOsqySXtM5UlUXIRwdK53J91hZvOScuoPABslbDfqGeopVpEw+k0b52Rreqssq8WmYwvYia8iTz+pzReW0Lh8YQcl/AsOVABlTSCio/85Pi1kgGL20= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:43 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:43 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Bharat Gooty , Rayagonda Kokatanur , "NXP i.MX U-Boot Team" , Peng Fan Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 19/49] misc: imx: S400_API: Move S400 MU and API to a common place Date: Mon, 27 Jun 2022 11:24:25 +0800 Message-Id: <20220627032455.28280-20-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c0b6233a-2c99-4f38-142e-08da57e6b581 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 69Xyn+ZRkwnp1PtI9dXlzBoRDu923p1ILYs/Trr2QvIo+3k2OOEQzpHlcTCf0jX3Zmc1SsVgLSQLYLjjUTu+6o3XBGOxm0CpH03WWXLv3w3YG1sLue4fijq7TmF7kD4DF9ghPxt1ecqUVI1NPalQ2SFq+33JQLDyGIVzuHF3iaVu0OYS6Mak0n7ff4r0+nC4npDgNEHluXU5d9RBrLbVlzfqN8nFVVXaTdeK/RLCho8+N7zOgb+vVYUhesMhnjbsH/bZDO1mbczgw/MaeJmY6HRTysf/3VRXjlCCGUAuZaLMFOD0WHBkoDN9L7EQRwmocUFmkMPQC6692lgQxsGl61w9IudmX0I02pIamcAqsa7sLG3Yy2r9/6BNna/55Y647TuiLcYVvJ0lU1tH0wrgpXSFRFD+HwAd9dqlOC2NvN4ncrtgY9p0+94fr3ArBBf0X09lv9jITY2nfwMct+pjqW5xIS9s0cD+YTk6kSuHSRJaki8f5gioxEo15pFWkQgzUj/REKK50Ows95i9F4De46Jy8Avf2ZK6QOVJRnxtgigFezs2g5d23ZVdoa4PBetRhdWEwpV4VlCnmim9r3yibaHmqITGA7/UhUWRookMNz1/ko4BXo3RRBZoNX/V+Qmzp7sWPgpv07i7g0hIPbeYy0cTLdIMD2Nka/8cFD3q2cQKKfRRx5r870a+x7cBWPMSJ1Xph52gWnMMLMdGFEbCo8swzWT0+ykXeIW+3L4HrnfegEpWL6X1z1ozl9M2Mtx+mGmFsQcjJRYk8Kx3sWLu8J+6h2KdmepddaYDMULnsnU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(30864003)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(83380400001)(110136005)(38350700002)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ApftRGXLBLXASm4pCEV/QSVkUJU0q1nI815NNL9XISREL1VIqMyE+qtygxholrDtXlua5ObshV7PAKIav4TxTf8BE5LypcL/88FwudWk0nkwH/syxhcqq6DnUIT0op1x66Uhqj0LwSrcdk0g8/41Rd23pzseLO/RNgiI5JckmmI70fMoZ1SW3bqnKv82hF6Ef8Jn3V4LqK/FHqARO8WkjEzdUZ+qdTbz61zwBhMNzUKAI+UJd7MaQcIZLJlI4F9JYiDcxcloplkBoJeO9JSV+AT3d1tBx7aXdWJdOY7GPn4jD8Tan2Vp6kGokuIlyNmsfx/TDkWCuGFo3fgWbOxPOoJ6infa7ywyngUBf7oklPQK4YHSjQeF2ZQ9OBcVp5UoD2TXwTujFbi9fcweKG5SvsVGDvBQqPAi0yd91xB1UsCgwkxGhvxak+v4QsW9wfMTtm1G9sx6U3nw7agfNm53ZIPE5k8vOPOcWd+3n4Wbs25dGmUpHGbANovO3f79YOlV3BP8kJ464VSrvsa732D9mDT+T72HfgqVH1vHzfpE9bb6kIgXn0fR2Z6e68sx82nSpqnczNQJRgx+oRgYpHqu46yFeuZ3mc3JtD6IyE0S+ohTr001Mwyzs/ACdHovWDoMgGnOfXx8tFFxLpciMFO3GiMSgZmrhbMVppyylkH7/r0awTsCT0pv91kJ6msZ4jRq9j7Jt5usnNFuQWHWMMjgPlQENO7M4lhLKTwsfagH5fKlB0ZSKjc76kQ4iaJxUfm7sAtKxXXvgg2btG781lRGoWZHhb5K34nhtHE8YoCsapreYWdc8ey2oz6feg+NYBu4zbp/sc2GhQksR40vDS/yo0m6ZbrcNdsiqelHz+tC4cGNzok6C3VJmdyR3rq4YykrxSK1Ygkfo6UDwsqkjmNyKmWgthf4AMXtZnkdE1326iCQLk1dKB+c3rQN6IzDST/X+SBGEFP83cphe39r5PWqkcv1sUtVwQeFUQ/S6NOD6jovK+ZUF1nCKNVsyLFGQQUTk9ivIo2kBH0/9fyZyxE3XI/ABYbJ/jPNb+FgO/WgFIcki7KbHzeeaWqAgG9nmd8Gm58K8oufP8H+fUOkvutany/kDB/HJQ4mc7hThr6wdDqHaKr4CuX0wIjUhEby2R0+mF+qsJ/xK5aeE/3ne9kViAzBMRgCvwkmUVzJOLjl8SsP/rhBjmQO018uGg30lV5XsfpRZF9vvxguccattbAHRWEWDN4agKb5CjJkNZ0xSiR6n0lQJED1b21CpJkvr6KVKvUIhMZAgraA3kgldpHQ6Jb8p64VYZYcP8ZGwVRCDalfxBeAo9avbYW/QJ6soGhANv9f4CtOszGEnLKWhStrxU5EAVvP6WOLhyxjgdJLVrEoJ9tHEs/FDMtT7d3g095p9P8qXEg9i5BpER3miK2eIpvbOpjjJOdZesCVht3ETCmzOBPBN4p6n4cPFELbKbF4MoONzGH3c7GPdecwLHeM60NoQRlXNRJpK4/KuB4+q4V7c7ugc/RqzG26ForCxAsSBhyucRO795eb5032n2L+7NE47ZepeUtv5iJt8n3xvlRxl+iUndqTnylLoituI3/j X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c0b6233a-2c99-4f38-142e-08da57e6b581 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:43.0419 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PotdCRFQ/Wkq8c3xWKBWkRxcu0Tz4yGrlCqsKP7sVlZCzFKQCWA8uzek5weL4oMNQ9Y9aznkkTyA5xYoE9gy6A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Since iMX9 uses S401 which shares the API with iMX8ULP. So move S400 MU driver and API to a common place and selected by CONFIG_IMX_SENTINEL Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/Kconfig | 4 + arch/arm/include/asm/global_data.h | 2 +- .../asm/{arch-imx8ulp => mach-imx}/mu_hal.h | 4 +- .../asm/{arch-imx8ulp => mach-imx}/s400_api.h | 0 arch/arm/mach-imx/imx8ulp/ahab.c | 345 ++++++++++++++++++ arch/arm/mach-imx/imx8ulp/rdc.c | 4 +- arch/arm/mach-imx/imx8ulp/soc.c | 4 +- board/freescale/imx8ulp_evk/spl.c | 2 +- drivers/misc/Kconfig | 7 + drivers/misc/Makefile | 2 + drivers/misc/imx8ulp/Makefile | 1 - drivers/misc/imx8ulp/fuse.c | 2 +- drivers/misc/sentinel/Makefile | 3 + drivers/misc/{imx8ulp => sentinel}/s400_api.c | 6 +- .../{imx8ulp/imx8ulp_mu.c => sentinel/s4mu.c} | 4 +- 15 files changed, 375 insertions(+), 15 deletions(-) rename arch/arm/include/asm/{arch-imx8ulp => mach-imx}/mu_hal.h (79%) rename arch/arm/include/asm/{arch-imx8ulp => mach-imx}/s400_api.h (100%) create mode 100644 arch/arm/mach-imx/imx8ulp/ahab.c create mode 100644 drivers/misc/sentinel/Makefile rename drivers/misc/{imx8ulp => sentinel}/s400_api.c (98%) rename drivers/misc/{imx8ulp/imx8ulp_mu.c => sentinel/s4mu.c} (98%) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 12ec661ac3b..29b831422ff 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -922,6 +922,8 @@ config ARCH_IMX8ULP select OF_CONTROL select SUPPORT_SPL select GPIO_EXTRA_HEADER + select MISC + select IMX_SENTINEL imply CMD_DM imply DM_EVENT @@ -931,6 +933,8 @@ config ARCH_IMX9 select DM select MACH_IMX select SUPPORT_SPL + select MISC + select IMX_SENTINEL imply CMD_DM imply DM_EVENT diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index 085e12b5d4d..09f352269e5 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -90,7 +90,7 @@ struct arch_global_data { struct udevice *scu_dev; #endif -#ifdef CONFIG_ARCH_IMX8ULP +#ifdef CONFIG_IMX_SENTINEL struct udevice *s400_dev; #endif diff --git a/arch/arm/include/asm/arch-imx8ulp/mu_hal.h b/arch/arm/include/asm/mach-imx/mu_hal.h similarity index 79% rename from arch/arm/include/asm/arch-imx8ulp/mu_hal.h rename to arch/arm/include/asm/mach-imx/mu_hal.h index 10d966d5d43..5db559c1ac5 100644 --- a/arch/arm/include/asm/arch-imx8ulp/mu_hal.h +++ b/arch/arm/include/asm/mach-imx/mu_hal.h @@ -3,8 +3,8 @@ * Copyright 2021 NXP */ -#ifndef __IMX8ULP_MU_HAL_H__ -#define __IMX8ULP_MU_HAL_H__ +#ifndef __SNT_MU_HAL_H__ +#define __SNT_MU_HAL_H__ void mu_hal_init(ulong base); int mu_hal_sendmsg(ulong base, u32 reg_index, u32 msg); diff --git a/arch/arm/include/asm/arch-imx8ulp/s400_api.h b/arch/arm/include/asm/mach-imx/s400_api.h similarity index 100% rename from arch/arm/include/asm/arch-imx8ulp/s400_api.h rename to arch/arm/include/asm/mach-imx/s400_api.h diff --git a/arch/arm/mach-imx/imx8ulp/ahab.c b/arch/arm/mach-imx/imx8ulp/ahab.c new file mode 100644 index 00000000000..87c4c66a087 --- /dev/null +++ b/arch/arm/mach-imx/imx8ulp/ahab.c @@ -0,0 +1,345 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2020 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define IMG_CONTAINER_BASE (0x22010000UL) +#define IMG_CONTAINER_END_BASE (IMG_CONTAINER_BASE + 0xFFFFUL) + +#define AHAB_NO_AUTHENTICATION_IND 0xee +#define AHAB_BAD_KEY_HASH_IND 0xfa +#define AHAB_INVALID_KEY_IND 0xf9 +#define AHAB_BAD_SIGNATURE_IND 0xf0 +#define AHAB_BAD_HASH_IND 0xf1 + +static void display_ahab_auth_ind(u32 event) +{ + u8 resp_ind = (event >> 8) & 0xff; + + switch (resp_ind) { + case AHAB_NO_AUTHENTICATION_IND: + printf("AHAB_NO_AUTHENTICATION_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_KEY_HASH_IND: + printf("AHAB_BAD_KEY_HASH_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_INVALID_KEY_IND: + printf("AHAB_INVALID_KEY_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_SIGNATURE_IND: + printf("AHAB_BAD_SIGNATURE_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_HASH_IND: + printf("AHAB_BAD_HASH_IND (0x%02X)\n\n", resp_ind); + break; + default: + printf("Unknown Indicator (0x%02X)\n\n", resp_ind); + break; + } +} + +int ahab_auth_cntr_hdr(struct container_hdr *container, u16 length) +{ + int err; + u32 resp; + + memcpy((void *)IMG_CONTAINER_BASE, (const void *)container, + ALIGN(length, CONFIG_SYS_CACHELINE_SIZE)); + + flush_dcache_range(IMG_CONTAINER_BASE, + IMG_CONTAINER_BASE + ALIGN(length, CONFIG_SYS_CACHELINE_SIZE) - 1); + + err = ahab_auth_oem_ctnr(IMG_CONTAINER_BASE, &resp); + if (err) { + printf("Authenticate container hdr failed, return %d, resp 0x%x\n", + err, resp); + display_ahab_auth_ind(resp); + } + + return err; +} + +int ahab_auth_release(void) +{ + int err; + u32 resp; + + err = ahab_release_container(&resp); + if (err) { + printf("Error: release container failed, resp 0x%x!\n", resp); + display_ahab_auth_ind(resp); + } + + return err; +} + +int ahab_verify_cntr_image(struct boot_img_t *img, int image_index) +{ + int err; + u32 resp; + + err = ahab_verify_image(image_index, &resp); + if (err) { + printf("Authenticate img %d failed, return %d, resp 0x%x\n", + image_index, err, resp); + display_ahab_auth_ind(resp); + return -EIO; + } + + return 0; +} + +static inline bool check_in_dram(ulong addr) +{ + int i; + struct bd_info *bd = gd->bd; + + for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) { + if (bd->bi_dram[i].size) { + if (addr >= bd->bi_dram[i].start && + addr < (bd->bi_dram[i].start + bd->bi_dram[i].size)) + return true; + } + } + + return false; +} + +int authenticate_os_container(ulong addr) +{ + struct container_hdr *phdr; + int i, ret = 0; + int err; + u16 length; + struct boot_img_t *img; + unsigned long s, e; + + if (addr % 4) { + puts("Error: Image's address is not 4 byte aligned\n"); + return -EINVAL; + } + + if (!check_in_dram(addr)) { + puts("Error: Image's address is invalid\n"); + return -EINVAL; + } + + phdr = (struct container_hdr *)addr; + if (phdr->tag != 0x87 || phdr->version != 0x0) { + printf("Error: Wrong container header\n"); + return -EFAULT; + } + + if (!phdr->num_images) { + printf("Error: Wrong container, no image found\n"); + return -EFAULT; + } + + length = phdr->length_lsb + (phdr->length_msb << 8); + + debug("container length %u\n", length); + + err = ahab_auth_cntr_hdr(phdr, length); + if (err) { + ret = -EIO; + goto exit; + } + + debug("Verify images\n"); + + /* Copy images to dest address */ + for (i = 0; i < phdr->num_images; i++) { + img = (struct boot_img_t *)(addr + + sizeof(struct container_hdr) + + i * sizeof(struct boot_img_t)); + + debug("img %d, dst 0x%x, src 0x%lx, size 0x%x\n", + i, (uint32_t)img->dst, img->offset + addr, img->size); + + memcpy((void *)img->dst, (const void *)(img->offset + addr), img->size); + + s = img->dst & ~(CONFIG_SYS_CACHELINE_SIZE - 1); + e = ALIGN(img->dst + img->size, CONFIG_SYS_CACHELINE_SIZE) - 1; + + flush_dcache_range(s, e); + + ret = ahab_verify_cntr_image(img, i); + if (ret) + goto exit; + } + +exit: + debug("ahab_auth_release, 0x%x\n", ret); + ahab_auth_release(); + + return ret; +} + +static int do_authenticate(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + ulong addr; + + if (argc < 2) + return CMD_RET_USAGE; + + addr = simple_strtoul(argv[1], NULL, 16); + + printf("Authenticate OS container at 0x%lx\n", addr); + + if (authenticate_os_container(addr)) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} + +static void display_life_cycle(u32 lc) +{ + printf("Lifecycle: 0x%08X, ", lc); + switch (lc) { + case 0x1: + printf("BLANK\n\n"); + break; + case 0x2: + printf("FAB\n\n"); + break; + case 0x4: + printf("NXP Provisioned\n\n"); + break; + case 0x8: + printf("OEM Open\n\n"); + break; + case 0x10: + printf("OEM Secure World Closed\n\n"); + break; + case 0x20: + printf("OEM closed\n\n"); + break; + case 0x40: + printf("Field Return OEM\n\n"); + break; + case 0x80: + printf("Field Return NXP\n\n"); + break; + case 0x100: + printf("OEM Locked\n\n"); + break; + case 0x200: + printf("BRICKED\n\n"); + break; + default: + printf("Unknown\n\n"); + break; + } +} + +static int confirm_close(void) +{ + puts("Warning: Please ensure your sample is in NXP closed state, " + "OEM SRK hash has been fused, \n" + " and you are able to boot a signed image successfully " + "without any SECO events reported.\n" + " If not, your sample will be unrecoverable.\n" + "\nReally perform this operation? \n"); + + if (confirm_yesno()) + return 1; + + puts("Ahab close aborted\n"); + return 0; +} + +static int do_ahab_close(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + int err; + u32 resp; + + if (!confirm_close()) + return -EACCES; + + err = ahab_forward_lifecycle(8, &resp); + if (err != 0) { + printf("Error in forward lifecycle to OEM closed\n"); + return -EIO; + } + + printf("Change to OEM closed successfully\n"); + + return 0; +} + +int ahab_dump(void) +{ + u32 buffer[32]; + int ret, i = 0; + + do { + ret = ahab_dump_buffer(buffer, 32); + if (ret < 0) { + printf("Error in dump AHAB log\n"); + return -EIO; + } + + if (ret == 1) + break; + + for (i = 0; i < ret; i++) + printf("0x%x\n", buffer[i]); + } while (ret >= 21); + + return 0; +} + +static int do_ahab_dump(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + return ahab_dump(); +} + +static int do_ahab_status(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + u32 lc; + + lc = readl(FSB_BASE_ADDR + 0x41c); + lc &= 0x3f; + + display_life_cycle(lc); + return 0; +} + +U_BOOT_CMD(auth_cntr, CONFIG_SYS_MAXARGS, 1, do_authenticate, + "autenticate OS container via AHAB", + "addr\n" + "addr - OS container hex address\n" +); + +U_BOOT_CMD(ahab_close, CONFIG_SYS_MAXARGS, 1, do_ahab_close, + "Change AHAB lifecycle to OEM closed", + "" +); + +U_BOOT_CMD(ahab_dump, CONFIG_SYS_MAXARGS, 1, do_ahab_dump, + "Dump AHAB log for debug", + "" +); + +U_BOOT_CMD(ahab_status, CONFIG_SYS_MAXARGS, 1, do_ahab_status, + "display AHAB lifecycle only", + "" +); diff --git a/arch/arm/mach-imx/imx8ulp/rdc.c b/arch/arm/mach-imx/imx8ulp/rdc.c index e2eca0633e3..cc47079d8f5 100644 --- a/arch/arm/mach-imx/imx8ulp/rdc.c +++ b/arch/arm/mach-imx/imx8ulp/rdc.c @@ -8,8 +8,8 @@ #include #include #include -#include -#include +#include +#include #include #include diff --git a/arch/arm/mach-imx/imx8ulp/soc.c b/arch/arm/mach-imx/imx8ulp/soc.c index 529fda4594e..999fb1f301f 100644 --- a/arch/arm/mach-imx/imx8ulp/soc.c +++ b/arch/arm/mach-imx/imx8ulp/soc.c @@ -14,8 +14,8 @@ #include #include #include -#include -#include +#include +#include #include #include #include diff --git a/board/freescale/imx8ulp_evk/spl.c b/board/freescale/imx8ulp_evk/spl.c index ece9ff26e92..e672f6ee6cb 100644 --- a/board/freescale/imx8ulp_evk/spl.c +++ b/board/freescale/imx8ulp_evk/spl.c @@ -19,7 +19,7 @@ #include #include #include -#include +#include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig index 28d5da49ff1..4603b54f598 100644 --- a/drivers/misc/Kconfig +++ b/drivers/misc/Kconfig @@ -330,6 +330,13 @@ config NPCM_OTP To compile this driver as a module, choose M here: the module will be called npcm_otp. +config IMX_SENTINEL + bool "Enable i.MX Sentinel MU driver and API" + depends on MISC && (ARCH_IMX9 || ARCH_IMX8ULP) + help + If you say Y here to enable Message Unit driver to work with + Sentinel core on some NXP i.MX processors. + config NUVOTON_NCT6102D bool "Enable Nuvoton NCT6102D Super I/O driver" help diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index 0bf05ca05ef..dcba39a15fc 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -50,6 +50,8 @@ obj-$(CONFIG_$(SPL_)I2C_EEPROM) += i2c_eeprom.o obj-$(CONFIG_IHS_FPGA) += ihs_fpga.o obj-$(CONFIG_IMX8) += imx8/ obj-$(CONFIG_IMX8ULP) += imx8ulp/ +obj-$(CONFIG_IMX8ULP) += imx8ulp/ +obj-$(CONFIG_IMX_SENTINEL) += sentinel/ obj-$(CONFIG_LED_STATUS) += status_led.o obj-$(CONFIG_LED_STATUS_GPIO) += gpio_led.o obj-$(CONFIG_MPC83XX_SERDES) += mpc83xx_serdes.o diff --git a/drivers/misc/imx8ulp/Makefile b/drivers/misc/imx8ulp/Makefile index 927cc552163..450e615e645 100644 --- a/drivers/misc/imx8ulp/Makefile +++ b/drivers/misc/imx8ulp/Makefile @@ -1,4 +1,3 @@ # SPDX-License-Identifier: GPL-2.0+ -obj-y += s400_api.o imx8ulp_mu.o obj-$(CONFIG_CMD_FUSE) += fuse.o diff --git a/drivers/misc/imx8ulp/fuse.c b/drivers/misc/imx8ulp/fuse.c index 090e702d9f7..83d2c25731f 100644 --- a/drivers/misc/imx8ulp/fuse.c +++ b/drivers/misc/imx8ulp/fuse.c @@ -10,7 +10,7 @@ #include #include #include -#include +#include #include DECLARE_GLOBAL_DATA_PTR; diff --git a/drivers/misc/sentinel/Makefile b/drivers/misc/sentinel/Makefile new file mode 100644 index 00000000000..3e2f623b278 --- /dev/null +++ b/drivers/misc/sentinel/Makefile @@ -0,0 +1,3 @@ +# SPDX-License-Identifier: GPL-2.0+ + +obj-y += s400_api.o s4mu.o diff --git a/drivers/misc/imx8ulp/s400_api.c b/drivers/misc/sentinel/s400_api.c similarity index 98% rename from drivers/misc/imx8ulp/s400_api.c rename to drivers/misc/sentinel/s400_api.c index 87f5880ccb8..3d791bc868e 100644 --- a/drivers/misc/imx8ulp/s400_api.c +++ b/drivers/misc/sentinel/s400_api.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include DECLARE_GLOBAL_DATA_PTR; @@ -275,8 +275,8 @@ int ahab_release_caam(u32 core_did, u32 *response) int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { diff --git a/drivers/misc/imx8ulp/imx8ulp_mu.c b/drivers/misc/sentinel/s4mu.c similarity index 98% rename from drivers/misc/imx8ulp/imx8ulp_mu.c rename to drivers/misc/sentinel/s4mu.c index 333ebdf5765..121a81060a6 100644 --- a/drivers/misc/imx8ulp/imx8ulp_mu.c +++ b/drivers/misc/sentinel/s4mu.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* - * Copyright 2020 NXP + * Copyright 2020-2022 NXP */ #include @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include #include From patchwork Mon Jun 27 03:24:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648550 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=B58QfH3j; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXCV1gtKz9s0r for ; Mon, 27 Jun 2022 12:45:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6960C844C7; Mon, 27 Jun 2022 04:42:58 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="B58QfH3j"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DC899844CE; Mon, 27 Jun 2022 04:42:51 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2084.outbound.protection.outlook.com [40.107.104.84]) (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 A2D5A844C2 for ; Mon, 27 Jun 2022 04:42:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NI/+fpPEJodd0U5eIvwowv2Ll8r4NzqUxgFcTpzdG9uOjkdIkI7O2RM0betDNi2NkayNUjZsuUwH9LagrEToNmgmFZCak8K2xfsONsUF5nVvZvBF1p0dxzimWKTkZm0mIfUtoHUTZ7/4BpBjAtz1bg+dpYJJ+DzdZz1WaP2hLAM4frL98vdFsHFZuBSa8XN20OPVOShWoY53iEccdIlUCW2pCqILy6VOpro8YTBKNn1/31bBM2mxdxNx/1OSFiXvRHuEAFjiIGzBy8LxKoBFptaKNop3DhG+gsXd8i9wDG4j6svuNTEaFesp2GqP1DJRmgtjktoLzlVC1fmmN9yt+A== 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=TBvHWZXb7VKl29Lp5bGBnMB8o+HuWCbq1TmFb4VcrS0=; b=hVL6COLk9fztlViOQ8V2MTBvuFXrmnzVz05zWQwIm+y1ClzZpa2gp8YHdEfJ7gklUTQLYkk8cRoqUnq36XS+wMWLIKbvpfADXBsv+dt1y5Xnyopj8KMcSwhDQeMWvigc2U7gSoHU1fUPYKOVKJ4Nv8BSR6VX3iq9fCRpxgEtmS0qG/NRgJTGuGLJAbvuFO117v5oLNo+ld4voALv091FPS6HJtKx7rBWQ/1nccPIUsCNjvKGZUvO0OoWKNod1v2DMx2QGzwo8BiAlGCSY6IhBRcz9bNNgB2/AzZo9U9K+rkziI/vZr4t05Xpqb8uR3FOBRpPAxGmpmO7dmh7yu+nXg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TBvHWZXb7VKl29Lp5bGBnMB8o+HuWCbq1TmFb4VcrS0=; b=B58QfH3jdOJbmYe+OoLnfZRgiRZLXiEezvtFWmevRaLKDZtsOzbvbM3Vi2Jl6PALA1WWlrVtFlikHekgDc255Romnn8DnWnyRfxaOXFbrGGX9H/edBvlBL6lTyojuL+CBVH7V1UQOgJy8XDgKRps2m5sa1fqN6o8VvQefGnJbcc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM5PR0401MB2451.eurprd04.prod.outlook.com (2603:10a6:203:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:45 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:45 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 20/49] misc: s4mu: Support iMX93 with Sentinel MU Date: Mon, 27 Jun 2022 11:24:26 +0800 Message-Id: <20220627032455.28280-21-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 460f7f05-57ca-45e4-8deb-08da57e6b748 X-MS-TrafficTypeDiagnostic: AM5PR0401MB2451:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7QmB1kP1NzBtuk+lqrvVckEHXFdJx73XNJWSDQeTdHaQO6oho2pZwU7pop+MfpOa+QFcU/DrnqkUPKgCfoYwHSzsIYI8bQuVinAGF2/JphLOc2icGd3/RDv07dSEAc1w3k+Qf/uRWBZYV++j0I5Cni7FjQFJzqjyFEmI3M0AM5riTXvufvUs74e9z3OTaenDR/T6yfM9RBOeo1dsH/9QiXc0fB8QyhgyPwIGZEVRoz6IByJRZ6EvAKvqXptB/3nzop8agc5hk6pSVU0RraV1yW13fkJNX3sy1ScIEcQpI8JQI0RmZyqTKQ8TL1CrXQ110hUha45gdFkuIP/BCal+xKH/lKW8yvj7pjA2MW/cUZ/oskvYoToGsdZrdjlEgeS8+Z21/DlcngoaIX7SvYreqc/pKSAC6a2G6rKU8cpgbMjKJe+0GJ+62QyS7sONKxAChUd6qHYVfh/zt3FbJW+WS1QQkiylgemcN6Kz6+K5JpV6UffjWBbb2KNhzufYOOyfijXSXcbaTBNPWQX9GJNzp9elBkZket4hUn/pazOrK7AZuhKrK1Wqjf33nR2hZjlSsKEU+zDLLxX1COJukxQscWH8un4t+oMqWle89vLkHahE0XQGlGwhTIsAllnjqAqptHydTGm272KXlHBHea/p8oTb46TZNcJJlLNjaksVx/bnPVn+peS56+wbLUhefHU5uCYpEZpdmRiuSVxlRaNjS4tUChPlM/gXOiYxJkLB8Kb1v+9147SFwW6i1K8in/NlWKcm/y89iOmuLWxiF12wzX1E4HUtIbMk/iXSazmrua7VtyWjtEuqTT96nGwE2IhZAXP1XjCqsYvJQ+zPevUTLA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(366004)(346002)(39860400002)(136003)(376002)(6512007)(5660300002)(2616005)(66556008)(66476007)(1076003)(186003)(86362001)(38100700002)(316002)(41300700001)(66946007)(478600001)(8936002)(4326008)(8676002)(2906002)(52116002)(6486002)(6506007)(38350700002)(6666004)(26005)(32563001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: zhVWsUPXEV7RbnPRnJZn7Qw8nK4S4YlnTsSUExGOjIQVS1fkDxNmIT3GjAnnXu3gdgmZBGtIDthBj5/UpEm+xQxYua+pYHcObNG7cdTBzvkmdFTtK/KL9YUXWM130Fqb2ST3iCW0slQs9x3ZbICMTCEMN5DLikEbW2QWpQZ4FKPDj48QW+v6p9gugLYZvnTtklnrNElFJFeiI9qvV7/5LomDGFjrcO16CCe4PL+B6qQ7KozetnkwSPuus3iaYPxEU1ZiN4H5xyxUtlDjRTugvasB1mSD8f5Uz+R2xlucJcgnENDqicnm1AkV09WTPz5l4Ubn86lZNW3cHFxc/yNUrlyNpMBwQQ0qLxqx7U4X9qkJW9UdYByyRNsazoy1M69Tfz8Mtb4zotQkzA8cVUQtLTz71v8mfbD/x/OAkXjDiBt1tfMbI2JF4hIDK14jp0GueWLqQxqggbg1rKCMoX66ZEzcrI08GfcOZ+JUUVZkuvliYKvdXhrnm6n+u1x0IiZvpcqv0Bzi7YLT8w5x04IByPJcNUAL+ziCxn4vFM04zgzKPHoWyH8yzEJEpQYbjy9HLCE8PdhSct3Dzi61OG1n9/CowAhi8Pfw33t2YQ6f6nQIr6+rrVWOIHrwt/Z3AZ804LA8mvk1j9A05U3DL00cJ4+AiAPsjR5CVRLYHC1GdJFdlj4fIw7Wqt+4FlpVAUm+qbh4/34VtkdXONvZno/vPKaYN6GgRy9d5d9qNED75pVJHK9ZWdldqutSt1wCXMMIBrZsPiyNtyds1Gthe6msnqQSM4VDU1bsSc9CT0ohZLt89bZWure3t/3kn7dMMdB7PYIUmJMobKByOrvKwvPxL/SuEviXmFTDyj60olv2KDbFrSbNgXOB402IUbd0Fij9PeTgGr0Wl84T5huzJP/70zmbIsmgIMBrZaiA+XF0lETuRttRBruBopktJb5UpB8KLLUlpRBvFvr+ShePB7KrTLBuWXWYMcXIbRRFXZOr6JHsRTmUA7bg/40ZnU8ZaSjiTKCibV5cMjzt1UJKSNzwgZ2WnsyW96HG6P0hbymX1yPtcHMJbXMvVeGqX79SIFAsLSbsVBCt0DfvE3EGFOJfXrgsazg9Ingbkenrqf1fOsuKr6G7RM1218VUEsF0BkqTmr4kfcvRVIGh4DMfmOepfbYLincJC1bWqrFqzPw/EZDK3YxxqnxhYqu4Nbcmq/Io6EjqEarjz1NE/u3RmokP+S9saSJ7hPzURUBvUAqVMf/hFffcoaNMWLSMi4iHGOYg7pJVhg3pudQrk08Y43Mfdj4xZTXcxXkPzObDM0chnfkYUl3qG+T+IoRzkyThLbrcKkS8Qazp7uTbA0iJVrRVBmmHpoqfkrRfv7drl0oTLrnCPSeEwT717WN3Uc0Nr+Czrt1a6R3V1mCjZ9dnP2JkbAbtJGj9wdi3zAv/a8u5hkt8excAWjO5S1o8UkgZTWHZHPsKQYAbD90XtbDI6DNtEhYHbAaAG2HL+8Lo4AIP01JsymJLtv0BiokMW/jQgEv37uybl0XxbRiVGg5i6W3edzXPVHI28XMk8K/1xlYOL7vI1sfNJkdMRHwElucffB2V X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 460f7f05-57ca-45e4-8deb-08da57e6b748 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:45.7769 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Zd9qzZ5JF64en4b9vy1RCR9+jhwJOJIuMHdfY9IaEJrbmf8W5ZtnvcncgLjl3yolb2E7OTGH30kPEHvMIhmAQA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0401MB2451 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Support iMX93 communicate with Sentinel Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 30 +++++++++++++++++++++++ drivers/misc/sentinel/s4mu.c | 1 + 2 files changed, 31 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index e4babed40fc..7b84b970b75 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -19,4 +19,34 @@ #define WDG4_BASE_ADDR 0x424a0000UL #define WDG5_BASE_ADDR 0x424b0000UL +#if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) +#include +#include + +struct mu_type { + u32 ver; + u32 par; + u32 cr; + u32 sr; + u32 reserved0[60]; + u32 fcr; + u32 fsr; + u32 reserved1[2]; + u32 gier; + u32 gcr; + u32 gsr; + u32 reserved2; + u32 tcr; + u32 tsr; + u32 rcr; + u32 rsr; + u32 reserved3[52]; + u32 tr[16]; + u32 reserved4[16]; + u32 rr[16]; + u32 reserved5[14]; + u32 mu_attr; +}; +#endif + #endif diff --git a/drivers/misc/sentinel/s4mu.c b/drivers/misc/sentinel/s4mu.c index 121a81060a6..18aea27105e 100644 --- a/drivers/misc/sentinel/s4mu.c +++ b/drivers/misc/sentinel/s4mu.c @@ -219,6 +219,7 @@ static struct misc_ops imx8ulp_mu_ops = { static const struct udevice_id imx8ulp_mu_ids[] = { { .compatible = "fsl,imx8ulp-mu" }, + { .compatible = "fsl,imx93-mu-s4" }, { } }; From patchwork Mon Jun 27 03:24:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648551 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=ev+a/YDU; 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 4LWXCh2pxBz9s0r for ; Mon, 27 Jun 2022 12:45:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 157E5844DB; Mon, 27 Jun 2022 04:43:01 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ev+a/YDU"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 49249844BE; Mon, 27 Jun 2022 04:42:54 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50057.outbound.protection.outlook.com [40.107.5.57]) (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 D95B78210A for ; Mon, 27 Jun 2022 04:42:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cZl1SAUpNXjPtn/lWg51OFwVAC3p6oLjybXqq7BpcHI7YVecsIwdu3W+mVrfWu3r/o2BIfNN0ANnzPftuV44xLEne4O9Y5JUDnW9+LG4HgTWDr2+RwR6nailQ+T+Dbj31wQ4SWX2R1m5nwu9G9u7O50Ja6uq17N4RKVfs/1HOguf0cabjIfMkFx9sLFyC8xPbBZGcEQ0eUeYwFuHjr5HOSKC1w1iK2MlguGBjWo/oFPfLvL2f4zwzHsU3JahpyknbM0t9WIKGZfs3k6vfpkxrOZtyCAyiPnURXS9Qwvjrdb/2pFGFRA2Rikz8yGGkUraJXrQpsedZcBzSm2AZLC/Qw== 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=E6LdbN/dNf5OzZNOf/LZvFLDyhh+5/81btIC9xW7LIM=; b=S6PUJ0x3usDGEPYUMim6+uYa9zPSKCOZjjgNteAU3H1WmkjTmW7oHxp/vFoNNCHaVJQzcwlMx6SNDnveNZqluTbDDSn5XBeQv63HziUFD52y/JiZKoDwfYgqkAAaszCK0/N3v5TkJe+H/KBarfP8iEJfN8nafWFamngtotn2xy9Z00Lg7LOlPIwh5QMfSIMCY4wFLW+pNsTlWLSy7eF0luLHaLBZ5Iq7b8UVVAdv/+TibZ3ePzkpuUFNrjNYHaoPTPYlp98bO3oe3IASqnKj297wXLZxQ5eqCONM/OCokCtAC3pjuq6hiAlvOLqMemjLRZTILpZDQx5Gm+aCuWAmzg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=E6LdbN/dNf5OzZNOf/LZvFLDyhh+5/81btIC9xW7LIM=; b=ev+a/YDUwcBDdBuBD4bjuf9bpgOWakr69i/tm2ZlvCoFsVFLFIqJ+OZ8v+PlmCMCoN8pKg7eXMeER39OnyO5pap8NsSlYA7TbQXvjUjymLdE2+ja243ArDleXvgx0A4BTQFDal1jxMDDsCVt4HxMtXKJjhHxvLNNcJ39SlVnG5s= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:49 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:48 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 21/49] misc: S400_API: Update release RDC API Date: Mon, 27 Jun 2022 11:24:27 +0800 Message-Id: <20220627032455.28280-22-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 39aae519-2a9d-4fdf-0553-08da57e6b91d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tIQp6Rg1PHDB4Jbx1Lmd44ji8LhNZU33zIouh6UJwa1Ft9tHtBTCH8/5/0v0aIdUZLJk+4r8/ADUcrf0904WQPI/LweVbsvYi3lzc7IblS+atUgCq53io0aLs8OSOXcNC/ai1SZ/LQsvZC6Hm+ShMEOBn+daN8wIG3IUkZ5D6MZjvjsxFeOMjgUT0dQEXl+5JtUQLX6XW3/yHt8iQkY1brRAIYFWPfSOUO3l2iwflYa6TFOG9Wjo6IeiEoZn3fh/ePWnOnCsHPl/zFA7kAII1ssaJPCFMIKAqL3GGv+SJXxN1YszhnKuK/xc6SFfYEd9e0fDFE7qXJs2idHKh+HmWYBv3bxjVDRYXNVsWzlZ1evo+3ZTOxCl31slxtBAn6FT6S7WiEjSKgE6ZZikDX6x7+d1CzQMeAMvLLl+FCNfIAmKzH230Q6wqazZUPnaGfRVEwZfQsf1Y6MfypIPwjicygWjFRrwo574/Db52GtlUCPvVlXyKryL5SjICVehYHoucT1iiaWfurSdMfyOwMyhvtWce3aU+A8CFRV/UPAakNSDFGL+g2E51GNrHViZX1aWgLjh2uXSr/JIqYWDmnnsovBK0DAXZtlULwfPP13S2WaFlFNQZIaFqsaIc5u3C8tPp26XuNkyGCoEqzWdX/wMOp2oTweSZ+SWzr1nLLC1W4OK+q7qRGcfTVAlLLq955oqn2xFsm387eqzVbCFb4Q+YEqRvcD4ankd4qCbuRUpQ0sTq92LDx62BNERaoeIUAKMwizEv8VSXsqODd9k3+W2tYvxRMlaYjDoTZNekxa4og0= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(15650500001)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: EIBY2S+jJRyAW7EzgPgiKOkS3y/bS5DAQkTLXDXiNJq/ZbNpGBVlgb/vVrr8RgGJpl5gpCHu15HVj8mgSQIS52zuFrOEATv5z3fc/zMiKsos1LNPK5fBVn+rhiQT8fu2UabQezdFHAH/4RfcPz+Hzwx9VJXuzLVDOPt56EVtUd4/gjSbo446YZ4xM3idkCfgEgxyV1B7ySZho4x6ti+q5RKSmGDiizsk+DdOtM12CEfyB34wMOsp0EmsHecRWS5KdFzjMRs3Yi6MYkufF+xTslTrjKeCNAZGmOrCH3z0zwMiqZOahbDPOdDJYOXks7DCGHmGQIMVJL6bcaO7V1DxGKXytt2mCEQ2q4ZAuBDPNlOX8Hwpm6gJPxwleBOY6PyoiFjuXCZ5PFGaMUoPxNZ25EdyNI8xfBWN4Vq2iu8vnqgXqItpH1ebpd9NmmNK65rMINxnMnXlpvTCkaz6nIW0VpXO1xvRid+VMDalTFXknJe5KdamXht5KhyIZthQXSYRGdz68MouJGA8kvsKDkkAvFcjdd47FKDNBTUhkye40gI5l6pdPJIl8Y6sz05aZdNb+kj+iaIrQQ8v4jGPG/mm2zAaITvs9O59QMtNAuqgbALETPmXtyK2PDp+/WquNHWKuGPD27nSMkJhvGH50wHdR9/BUlnfGbpxVTyhuf5TUqstpmWkg4e5Y6goxn4tBcy/68CSIhYVuNQmR1MQQcrNmp7zcOFRQy+Mx8ls8IK8B6VgjGQ5dkByklmkD9Musnlul7WphhRqWVwg+P0nMBAIDG1rpo2fM694AZ4nAFDkW8xat1bzalCvISCw9odCnnMkKojIqHaqcOxyV/+ZheIyw+2O8Th5Wq6+ZJwZ9fwbuNqw1up6Zs/v7wT/apWox1aB3/sw95IKv3uNB/fHS1Q9+TqjyD4y5fBNICiCBCfxTqRdLbxuB1jXIj8OnTiZxzwaEovbJIT4PoC0GvAbx4krJIjKJrx4rkCE6h8yqpQxBQjpfvELRfKpj3jsXCsKc/8kiE7zWsCmJwHNgRRev3HqASNJo9o+yFgARSbKhdJkmXW4Y9qpy4ND/suhvv/v1tFumS0ADcGrUH9nKdAiXp7oDIeDs11vOj0Vz+83OLfREC3uwIsfrMZcF10leIjlR5fxhOSRA4cFXPKM5IaTLobu6ETkUn1Vfr5zxukFPNIGMi3VbptRzgvrVRNdm4ZDnsghj6LhIGDypXjayLdw6yvoldbAdF8NWdUmE/dBBA08sJpEw1MlyapynC5TBioudloLohph2X5Vi95JsfgO0chvLzFG5hbci0Kfce8svryD+xEn39dFipijb3YKl3o+v15s4SIpM++follYls70drfDei8vg4yjSkxfOj4qKQwbRa7H0YtGJlrfw9CtO5xtA26l2m+XETR/3KEffJu9LV0diKOopAjGCmv8Xtp3G/SXdg5mcH2A+kmMhSAtxMCEdZvWXIEiEFvAXS2kJIEL64Il2zVXftpqpqATQJShMV58KyCmYGyYwC8CToAqqCC4sXYl2GbS263DNyfslytl0WLCKSbBbBiJ0tfcpjQZStY6Tyfa0vk9129OX/aBTKpW9m6Y X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 39aae519-2a9d-4fdf-0553-08da57e6b91d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:48.8002 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wlo35zAvUdqiuqdl3lW8pKYI9u+gxvrVqU/1aZWS1tXuOrZD8Qb6hqBj3Fnpm8bp1mJz7XlO0HrjxWJv26+1GQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li To support more RDC instances on i.MX93, update API to latest definition. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/s400_api.h | 2 +- drivers/misc/sentinel/s400_api.c | 21 +++++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/arch/arm/include/asm/mach-imx/s400_api.h b/arch/arm/include/asm/mach-imx/s400_api.h index b3e6b3fa45d..d09c078df01 100644 --- a/arch/arm/include/asm/mach-imx/s400_api.h +++ b/arch/arm/include/asm/mach-imx/s400_api.h @@ -32,7 +32,7 @@ struct imx8ulp_s400_msg { u32 data[(S400_MAX_MSG - 1U)]; }; -int ahab_release_rdc(u8 core_id, bool xrdc, u32 *response); +int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response); int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response); int ahab_release_container(u32 *response); int ahab_verify_image(u32 img_id, u32 *response); diff --git a/drivers/misc/sentinel/s400_api.c b/drivers/misc/sentinel/s400_api.c index 3d791bc868e..4e90171420f 100644 --- a/drivers/misc/sentinel/s400_api.c +++ b/drivers/misc/sentinel/s400_api.c @@ -14,7 +14,7 @@ DECLARE_GLOBAL_DATA_PTR; -int ahab_release_rdc(u8 core_id, bool xrdc, u32 *response) +int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response) { struct udevice *dev = gd->arch.s400_dev; int size = sizeof(struct imx8ulp_s400_msg); @@ -30,10 +30,23 @@ int ahab_release_rdc(u8 core_id, bool xrdc, u32 *response) msg.tag = AHAB_CMD_TAG; msg.size = 2; msg.command = AHAB_RELEASE_RDC_REQ_CID; - if (xrdc) - msg.data[0] = (0x78 << 8) | core_id; - else + switch (xrdc) { + case 0: msg.data[0] = (0x74 << 8) | core_id; + break; + case 1: + msg.data[0] = (0x78 << 8) | core_id; + break; + case 2: + msg.data[0] = (0x82 << 8) | core_id; + break; + case 3: + msg.data[0] = (0x86 << 8) | core_id; + break; + default: + printf("Error: wrong xrdc index %u\n", xrdc); + return -EINVAL; + } ret = misc_call(dev, false, &msg, size, &msg, size); if (ret) From patchwork Mon Jun 27 03:24:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648552 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=MwqsFtGM; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXCs5GJGz9s0r for ; Mon, 27 Jun 2022 12:46:01 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id E076C844E8; Mon, 27 Jun 2022 04:43:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="MwqsFtGM"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E68DE844D6; Mon, 27 Jun 2022 04:42:56 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50081.outbound.protection.outlook.com [40.107.5.81]) (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 AD03F844D3 for ; Mon, 27 Jun 2022 04:42:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cjavJgdum/UzntuuU4dUxGUAMr90Klzkb8YZ2vsYTjyuJTuQP2310lZLCcz2lzOvIJ0VWT7LPrXxrmpppd60nThAyf1WNO6aKZsAhz/AnOI9uoY/kULX196nWxKyBdZpzJrQyn7sKjgqlQHzupmFV1Qa4K5aKjCpI+pvSIG6giaRrvABiD97ubhJ+g9Aqlgn0XacTU2nZevPTEu+aoXkpOeGNeMR/8D9v/HFawwvSHIBlMYlqyBehR2sSQwzuPqFLDZ7jw3ISf8V0kIlnwTsBA01X3m1f5Xvfo29eNmfdp2Y8cwxEXZVbdUiJR9pRkC/Sfi+m5o0b4G0ihgPvNtHaw== 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=XQGvmalEWClGOFYx74o2/ytiQlZQIvnZrO6Wg+a+hU8=; b=Q324cagTn7x4yByJY8ofB76sk3BlCAA2CbDBGPfbep8MLbj4p2+BgeMj89JHg5tZVoCzpOTcijLFxWiWw2KkIQscClLhej6y1ZLpb4q+o7MJtVTyNj4q6A6kr/thdytM6ymuuLQwPQvza142PU5JWz1MAkvYwEsTFs3bKDOUC4shVXSmWEYJXLsLxMHfnPlvLhXXw+FA4e4VVRG3UBRugPki5X+MMOesD2FhgwlsUJDkLNj/XdQyzXCeJYaB0ppHjrrAk3TlRxOFh/oeRyElWTFxkLEjGpTPZx5svn1N/+Hs2EogB+fPayT2nO5qqkiB9wbIYpF1KRatWy+Of99aZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XQGvmalEWClGOFYx74o2/ytiQlZQIvnZrO6Wg+a+hU8=; b=MwqsFtGM0uGPon3OgSmk2SrzAOHjHYfcB/yOOcVKFSrdy/8IZ93inItyZ2MRa9maXxgDyEDjWQwMMK8uvxeeai6+pwwDAYBolEKrfvF8nVm/p47xhcrkF7FJUIm8VJHovzeZoFDJUwaYtXNcPph2ZyZsz7cvORQhTiXxhFkVg9Y= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:51 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:51 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 22/49] misc: S400_API: New API for FW status and chip info Date: Mon, 27 Jun 2022 11:24:28 +0800 Message-Id: <20220627032455.28280-23-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 6a7d62d1-e954-41e0-4eeb-08da57e6bae9 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qPBwGzBzI9AedrUYOukso6e3dKecMbCNv0icxjI5Qo+A5nHGtPt9SsM9pOGoq9+cjuflQ1pAPw0iDa33LxYIGFypkyhHVsPZHehAn5+w4qAAznSJEjhbNPXEjW84MyWOTqVe+Bfxy0FBcxNjVKna3gFlpkrgqvA3lzVc5GiRk8xVl/hdUW2SpgG6kYRjTnv2h4VBbU+sFWRlDrF4ZxkwoR0rXEDW2w4DZpdifJz0ZsQqQgKFpIp3VWAkWC5Rdb+ejSJ/kaqnJsCcKBlzPXXkpc2+PikFqwiUbMVtXrUiw9inW2cheAMXXZFBzIHoqPL5s2h3jpNkZeaXcoYQzSsEQt/Axb6lkKCjiszRnpM79YoY74bwSeaIi+uH+EB4vcnQ+HgGpYmhzySKx/PCWmFeDj2g113MiKUe9Y+eOkwZRglJCXkTYN40+zcyQGDpF0ofWUV0sdKccCzH2oUnr2NVU5MgB8s5RoKy2HlM6N48C+en6wbQtw/ADVZKEzG1PQVs74K1qKHyaSmh+VxFq7+zzh/IDuUbuBGn5HmHUY9GwXMDV85/nZ5fyp4LvqnsKQ1/b5Re90xOiHC40rYzEqYjYn74vRxz4l4KgqHnBih5OmzxBhjha34mSGN9UtXqXkvlyUrjo9855cb/MWRZgh+gjxYEMlV+vhpfRXN6xm8UJ5C8CoUHh4zX3xgm6hEDBIACnYxawENrit41V62r3IZsRjmpnrWLtkcCwM5mM+54yeMkocAFPV15fnh3EpZidQ5Pz4Mh+b/glbhdcayuWjSbyffzaY0WJ6+bWbrlBWRk+Pc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: gxmAbVyIhQSzosU+MDg3y2IdYkolrSDiZk2J8z609grdoynmmXhKcRv2WIEHD0EuMmRXmbwHoE0YfnK/ecNlYoqZUoW2Yf3uoHQvJoc++0OXKtaeNOeF8G26J1wZxiVMts0FcF2WZm7+sk9uacTG4HgVIdxosPTsSaQuCo00RPqR6Pv81z2V3NKVJ3hMXTDARpiqPeI3qcEEdsHqRRLW1imOKuwmyooKSK7eNfXRh5HuHG0ocihH48XHUsrMxZaXkxvwhs70/O0KwjLjqjzPnSnFYMatz8Mk59m1m6D6/C+vOaLF7sfcMCvsHrBsC5XFA/uQ+KZLwCYfKsOBgMjpB9tfsGAoRp+FdM96Q794v7IKofvK8Okjj8IwiTRjKMax5ck1eBQoo6HuIHldUMJBs8WxnK+7xtpe15QmJsEI9xQMJYaW/pP8ZlfSnkrvqAiGcYQH4uOH7qU68miC4OIAxZnltzs1mcaFx93Z/wHP3PJS8+rmkVumb3BWUTjDfFahjZUGcYV90/4jr9+jUhRAFo1rC3Y4KEFq0h1TK2uE6gs34eAd/rdmsk2yjiK0Dc2HPnIU9UIl1xBeEPsIG8dC4AiLS0m1Nr8/2q++NGTL9siAywfUSj0L4SnwVJe1KCqScFVTfro6j1nmVqSO3KpyNYtXYjC/dQxyvpGULTeLmgnjdXxrQi2eTzbSHmVW5uYTAUS20wM1k/R5wQSj2K+FYUaa0mxlDTgSKymvIvFKW8L4cC20tiyjMVsJX2T4WjmpgQTAG3xnbKp1Sd0ApO9Be8M2o1rnMIoATwdW4Qed/in5jdYB7oJdGEG8OZOQqsbMrRzQ+0T4t2kq/il7m+KFimmGaYrW+7zvhClF2YZMScc+rbQ3Oc/S8u4xcUJBXWqG78/4JtgO24kykuINwjsFAE+fTOK4Q9Fq1BcqMAwLj0n5Ya1OS809U2kYUcESQcRuxARIA8+Ltk2gxcKHyjQe3tdKbR7eETWYoBtRDar2lSYPuCeGUOvTd4jgtOOidaCJc3S7nNqICEkX3RCam7LRMJCBAWAjbRFnDhKls/GZKL5tRicTEi42JyTfZO7jxqrv8CdrTeMEL4DV4Y03tKilt55Ko5k3MiZBYHbA3KnR0/tNG9kLsPFBQ/An4Xl3uic9qAel2ycGs/s6li2wYieU9trmBN2DkJznPcYpNIp1VlSJMNogmsLT6sVmwJxSorY8ql0EGMXVZgVMX6UTXf3+Fqc/Ekgr6KTD2d7xsiGVLQmVWhDKquswcz++FG9hQeJc10+90NIY0ffF5PmIe8HrgoyG/zXPEl6VM+1z8ICwPf6M4m2I4NO235Zf8sIUm7hlcnoFMuu8+E5aSiJ52f5ZAFUrcR+taF09X6XTLYXv3IzgKYRSZotN3no+yWdYYUGG6N14o0qOWjqQdkWy3azPhnmiiCJfBigY2qzmD2zrSF2GJn5odBUtoHYBu3ls4xJr2+jZBU3NBV5GEaVmBU5Gn11nLrsIaWrswkZljZDMphRAzBHd7EVOLSQLJFc9KJFcEglk93us77IBQ/+VQ2EueveOX7eR5pCEiXza8JXvxCajo0b/IA6EUEsRveTZ7l8B X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a7d62d1-e954-41e0-4eeb-08da57e6bae9 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:51.8011 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: c1XCC16OJ+ROa99IaZSidhH4XUKyG8poJDO/oX0zDucgqmx6YYpm83zk4dnj6ubUcXZ0DGfEgr0bf3HqeHV2kQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add new API to get sentinel FW status and SoC chip info Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/s400_api.h | 13 +++++ drivers/misc/sentinel/s400_api.c | 61 ++++++++++++++++++++++++ 2 files changed, 74 insertions(+) diff --git a/arch/arm/include/asm/mach-imx/s400_api.h b/arch/arm/include/asm/mach-imx/s400_api.h index d09c078df01..d95f8227b29 100644 --- a/arch/arm/include/asm/mach-imx/s400_api.h +++ b/arch/arm/include/asm/mach-imx/s400_api.h @@ -19,8 +19,10 @@ #define AHAB_READ_FUSE_REQ_CID 0x97 #define AHAB_GET_FW_VERSION_CID 0x9D #define AHAB_RELEASE_RDC_REQ_CID 0xC4 +#define AHAB_GET_FW_STATUS_CID 0xC5 #define AHAB_WRITE_FUSE_REQ_CID 0xD6 #define AHAB_CAAM_RELEASE_CID 0xD7 +#define AHAB_GET_INFO_CID 0xDA #define S400_MAX_MSG 255U @@ -32,6 +34,15 @@ struct imx8ulp_s400_msg { u32 data[(S400_MAX_MSG - 1U)]; }; +struct sentinel_get_info_data { + u32 hdr; + u32 soc; + u32 lc; + u32 uid[4]; + u32 sha256_rom_patch[8]; + u32 sha_fw[8]; +}; + int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response); int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response); int ahab_release_container(u32 *response); @@ -42,5 +53,7 @@ int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *respo int ahab_release_caam(u32 core_did, u32 *response); int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response); int ahab_dump_buffer(u32 *buffer, u32 buffer_length); +int ahab_get_info(struct sentinel_get_info_data *info, u32 *response); +int ahab_get_fw_status(u32 *status, u32 *response); #endif diff --git a/drivers/misc/sentinel/s400_api.c b/drivers/misc/sentinel/s400_api.c index 4e90171420f..ca7903670ed 100644 --- a/drivers/misc/sentinel/s400_api.c +++ b/drivers/misc/sentinel/s400_api.c @@ -359,3 +359,64 @@ int ahab_dump_buffer(u32 *buffer, u32 buffer_length) return i; } + +int ahab_get_info(struct sentinel_get_info_data *info, u32 *response) +{ + struct udevice *dev = gd->arch.s400_dev; + int size = sizeof(struct imx8ulp_s400_msg); + struct imx8ulp_s400_msg msg; + int ret; + + if (!dev) { + printf("s400 dev is not initialized\n"); + return -ENODEV; + } + + msg.version = AHAB_VERSION; + msg.tag = AHAB_CMD_TAG; + msg.size = 4; + msg.command = AHAB_GET_INFO_CID; + msg.data[0] = upper_32_bits((ulong)info); + msg.data[1] = lower_32_bits((ulong)info); + msg.data[2] = sizeof(struct sentinel_get_info_data); + + ret = misc_call(dev, false, &msg, size, &msg, size); + if (ret) + printf("Error: %s: ret %d, response 0x%x\n", + __func__, ret, msg.data[0]); + + if (response) + *response = msg.data[0]; + + return ret; +} + +int ahab_get_fw_status(u32 *status, u32 *response) +{ + struct udevice *dev = gd->arch.s400_dev; + int size = sizeof(struct imx8ulp_s400_msg); + struct imx8ulp_s400_msg msg; + int ret; + + if (!dev) { + printf("s400 dev is not initialized\n"); + return -ENODEV; + } + + msg.version = AHAB_VERSION; + msg.tag = AHAB_CMD_TAG; + msg.size = 1; + msg.command = AHAB_GET_FW_STATUS_CID; + + ret = misc_call(dev, false, &msg, size, &msg, size); + if (ret) + printf("Error: %s: ret %d, response 0x%x\n", + __func__, ret, msg.data[0]); + + if (response) + *response = msg.data[0]; + + *status = msg.data[1] & 0xF; + + return ret; +} From patchwork Mon Jun 27 03:24:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648553 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=OZaCEP5W; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXD34KkDz9s0r for ; Mon, 27 Jun 2022 12:46:11 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 69FC5844DA; Mon, 27 Jun 2022 04:43:08 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="OZaCEP5W"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3459E844DA; Mon, 27 Jun 2022 04:42:59 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50089.outbound.protection.outlook.com [40.107.5.89]) (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 DEC30844D4 for ; Mon, 27 Jun 2022 04:42:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L29eW5xrUPsj7l4hVZiGmeyibmConG1t305Kw05M5im4SjH1L4h5wr1z6m34yLOSyLSy9MeRZ24a17o1crc+NO12bDU7X34unfD9MWaD4cVXbHC5QrfcgmEoXtXdiq8/nu/DDQ6YRDHOmwQQjxdAE5wm6WTFF6qguWvhXGMJHH4v5sc8z17dZaiMPqhnSsOdw/YlI4vRyqhR7IJDJwHuB6/7Mo3YOycg2nugwWd6G+knTCZkfm+HtgEKAd2ALRHzVhF/3mM81DOJ7XGSfFdHahmyDpy4fV942FbIEnuqN9+2x+kX2uX1lVQRRBmhttUi1WJAlA9RAnfbhAaY26TUcw== 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=AES0XdIIlatBoVH00chrHoyuEzel6zb6rvZfAMmnLRE=; b=AXnuHicIp01lZR/V6DbskSD5nSCXutYgF6BiIgdFPO07qRwZcck1qLsNhmgOn44PJRgmEXcBisSKwm9PebksaFngX4hRTvfuodhqeRCmxIIfKgXUN21OTT2QDUh3rg6PYR5jIETLXsfPKw618KHoKVLiVGjelw9A3ckip0a+X7QqTA9/3FMmzuPhaevJC5ccmBUffbQGUVScrSbYZhNzOdpHFigTN5UxngCfLpR3WFAmZ/BSJu4Y/Q06UvcN8RLX0ZIBvbs7blIx/WUKdKYTtZ+BuClceOB3KtNUdmZOlikRsbP2fZ/XUEjwmXWc1EFogToaRPFnW9hi8DreuM02ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AES0XdIIlatBoVH00chrHoyuEzel6zb6rvZfAMmnLRE=; b=OZaCEP5WLO7k1hkOHEyX9Dwbrg/o7CyiR73kT0VtgpbL6bi8eivoLPjnAs6f66vIikV6xvb0QeWQrxGFVC8n4UZpn7xpdBFINApiikb+Ci0842HAl8qv+OGoC/mzBRrAumjvlcIxVxKe91Iah+RI3mKBSjX+T2tQbuNSmoExMCw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:55 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:55 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 23/49] misc: s400_api: introduce ahab_release_m33_trout Date: Mon, 27 Jun 2022 11:24:29 +0800 Message-Id: <20220627032455.28280-24-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4922a073-4486-439d-9445-08da57e6bcd3 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2SW8zl1xfgxAe3V/us2Oj1adMhxkNWdn1oycMJaRfLoN8a9TqQ+WpmTxaokJlB7fF0hTC3oGQq6DMJ/EE2pylc1k5s4UYHbvYk//7E+OsBGqMdZuRMuX8ruc4FVo7Lus8xgmbpJTT4y2A34+XiYOQrsiEEadaoMQdtBDv7zYEEY6lsIMaANB5OfMbno9OX0dhlnSfwCsU2tS7wDcLKSfdu+V2ZLlccL0EsUGr4eMMF06BsfiLSZ5g0YQHJvie6T28qIhADp1NdLLTI2hZHvGT9ajaim0j3zo6k1knJhxaiEXWLHoLuaa8M9WG+zuWMeRU4rMcrmqW62m8679kb2kxZEwuGz1x+ykwGiarRvQV0lIOaVPzkCfyurofUE174CIqmOts1D5R15j5SbYm0ML+YmARXdCkiCjt6j4f7/n66+Xs68YjjVTAMirl5SkLpnpZihtv7pRD0pt4LDk2ryUTMS+vLIRruUrxnn2QISn6vx4355PxhN66i/LP0tYyRtm+hYROhI8lIqa8/LLXbWDC7u2Hjct6yThd689+q+EH8sqYAG+gu3WTHycoxLhcPmEztbK1Fm/rtM+5ALmxwXR8R3c9Sx+d2mbaDDk+wiFUn5eBKUlUW/5RnioTvImvNCl3UtVbF69NRmWDF1g6fZwgLhew2AdpqG0fvu4POJdMiST6CuHMVkuF7w394eb3CXfaFwZfl98bwvt3KwvLicxXh0CnzkkO4b++KoHUxsFq6k/j8vioQNKdWZ05E6C+LdCywywjE9/MNE1apjkHOqYNsPPw4TQnFZjv0UMwuPLfvM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Rns1O0tMxynhGyYisyJ5GH8//cTlZ6JdZrUr0xzcHe6Dao6hJW8aNR32UVl21u7SQUDRvX69taP4R2ostwe+JyMJHKDqG+x+tOLAXb5rsKgqVLPz+hcHwhlUMMOyumHtJGkd0R8BAwAd+932ipNDgWT0Gu+6Cm0FToNbbQoOfSxeaSt5avgqI2BAlqe0XTJSTEiLrz3rr8sRJhNnKCTVruFLD5+RZ7gqrs5Frg5PYyxNTq2cU1T0z+J27xCyVPNRwYbsuhD4067n2jahrZMwn6alSUxEwTirWHt/rLZwK0uNnxPA06KSIBWWn1VrUiR0VgFoNQs9GhPZr0Qm5WGeSNgduyQ/bKIZfGhFrMhv64/nA06eToCRsdvc41LvjHZ4QhxPwbxjrNrjxGmqsyC5Mzn81uhl7BjKL2a0weDNQOmX19RQIcxsppmWLoUkl4ElgEG2k+OnXd+WBgYxtdBpp6lO55Ae2MGu+pMCzX2jhJ617JjopCR2wq4qNtYo9pnIdQLwcMNadreF7rGPDp5disnLsJ64Hyj+PbpeqkRmVd7+1Q8ZXaoLl3w+M673xC+NSLlNBlCtEgmFiV3hBGvhUz7KYfMbp7QRVHItwbAhGknILPoWTeXVuoeyG9VQc1vnsJUS8cs6ewhmE9ry+0RDjG9kVE7b2zAV0DpS7A7V3fijIzCVTKdRxwA5bVBbU1e1WSZ4ZQcRfqz7Yf4ZPmgte1wqG/3wJfCCbOgMBf7yXSX6w09DYrt00Pj88uPjmCbOM/aCPIGpSEIxwUX+56bbePK63LYrrSENQzvILof8HvHpO3g2w9hz9jB8RzvicK54WBGQ7JWcuW36sxtSsI5MAk0hO+iA927s3ECJbTSKBTocmBNb9mcYOQ5RRFC7laUuz9owIA8tZtme5KFmiF1Nj6FohtJ6watcC4HhW/yItDgJJORvNgzvn1GBJ3XBGNI50SV+AfMXQmoXQFIJhj07Z6mkIoy7Q+w6Z1Kryli5gnr/oxN8GwSBeeJABQMYyLuUZVHFvov0P+uV5ixnysPOYj+pD/Hp3LhbrNT3LHH/F3LxfFDsEBZWapozyC1YWMn6ji00MeVepo6lYXmaom3olgACMM2Mr1RFc63FIl/Fiw1/UGNFycNSyEnvXpbkv0LFfm9Gkf6firq+cKra3GgdBa5FD7AQ8iy8n004VkFSPiOXZ3E8QRZL/GQOwM8Z0NEBdT4IGtgDi+NO5EaT6EZfF5OUVICB/PFWUuYwTjYIW+5NqsR707WZFkLbXdVZrkROqaJRJxZaPZbdIYAV4Xx+pbNcIY/i3xmobpRcFihyM+zhNRKl9FdhNG5TuylPDtMSDvg7eLd1RFWUJMjKJFyPIzSsXx7AGy+354GVbxEpSexLh9oQWa3nYmWLCrVY77Uy7nwxELyoJcd3dQsf8hOkhRioIwFUkQii94pwNCu0VCHdYekFgpQIFtHosXVXZ6rmDhCk+iJUonDzCdp5KI4gfv6ng+2HuUQH15PJnVNOC1NW+LiZhmSO2W4mv5IHxHxYP6vmOW9+6hqX/y6J1cb4hlmI4XfZux0gAY0b5r98nUioI+T5TygpGTRuIYmZq+i3 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4922a073-4486-439d-9445-08da57e6bcd3 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:55.0142 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EFw1aARU4L6hhb7GHRuP2IRhAdTlM8MSDDopKp7Q9tsJED1Q4cgpUnNdOkSOFq0iLJrP7PJyx7+wZ1fV++qyvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Introduce Sentinel API ahab_release_m33_trout to make sure sentinel release M33 trout and make sure M33 could boot. Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/s400_api.h | 1 + drivers/misc/sentinel/s400_api.c | 25 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/arch/arm/include/asm/mach-imx/s400_api.h b/arch/arm/include/asm/mach-imx/s400_api.h index d95f8227b29..dc176e1f619 100644 --- a/arch/arm/include/asm/mach-imx/s400_api.h +++ b/arch/arm/include/asm/mach-imx/s400_api.h @@ -55,5 +55,6 @@ int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response); int ahab_dump_buffer(u32 *buffer, u32 buffer_length); int ahab_get_info(struct sentinel_get_info_data *info, u32 *response); int ahab_get_fw_status(u32 *status, u32 *response); +int ahab_release_m33_trout(void); #endif diff --git a/drivers/misc/sentinel/s400_api.c b/drivers/misc/sentinel/s400_api.c index ca7903670ed..01a673e5e13 100644 --- a/drivers/misc/sentinel/s400_api.c +++ b/drivers/misc/sentinel/s400_api.c @@ -420,3 +420,28 @@ int ahab_get_fw_status(u32 *status, u32 *response) return ret; } + +int ahab_release_m33_trout(void) +{ + struct udevice *dev = gd->arch.s400_dev; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; + int ret; + + if (!dev) { + printf("s400 dev is not initialized\n"); + return -ENODEV; + } + + msg.version = AHAB_VERSION; + msg.tag = AHAB_CMD_TAG; + msg.size = 1; + msg.command = 0xd3; + + ret = misc_call(dev, false, &msg, size, &msg, size); + if (ret) + printf("Error: %s: ret %d, response 0x%x\n", + __func__, ret, msg.data[0]); + + return ret; +} From patchwork Mon Jun 27 03:24:30 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648554 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=EzRVTLCN; 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 4LWXDF5bF0z9s0r for ; Mon, 27 Jun 2022 12:46:21 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B03C084458; Mon, 27 Jun 2022 04:43:13 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="EzRVTLCN"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 4788E844DE; Mon, 27 Jun 2022 04:43:08 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50062.outbound.protection.outlook.com [40.107.5.62]) (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 EBC6E844DA for ; Mon, 27 Jun 2022 04:43:00 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zf6hd1vxrjDWmkdl0fSa9m0HiiDfGBULv03r/McPnisIh/W1FgjmexKRqg0LoYT8PmfcU9zhk9Ea16Rf7TuNR7SU0bKh81zffFgjaxIVaCqB4WU2l6C0lcvukniuXOzniIl3BnZIZ7eCiOU+L9LrOe9TtZ6dHFrj72M9FeJtXarsEexFPAkZqAxvh+1iCQto2//rGat8pLxoJnXYC7EFIFtcveG8UYya4w59FJ3JjLo/RzykFUnGQfA54kxB3fbm7cft2IQ47YD3K57qYBL2+JPXCAtkI/xzJZt+VNHzpejwJrHfBJJwPvUdgJXW1T9E7DJHmOluvtNWjb88+vLAtQ== 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=c4/NiHlbkIN56oB/VFtySJkKcf+pvJZZaY/KUNhSpSU=; b=B8TW3YYdK/dBv9Wgc9MF4YUOoBbHa7CtqnqnjNBJMQtl/GtpyTlFMTX/gUsYkQi421u5XvGdk0e1tkeA/o6FhNALxOsp2fVfhwJ5/9cvF9qbrtJ9LMWCVgTctMvzK2MPepxfId08avWcL4vUV/qzNOcgouhpukWxpMDzX2+MsoqgRbTANUHMTJHjaU6itDwvXr5m/BaeD+W72uqBkUtvbyPToyqOTOc+dMHkMz8nqG0lwYTID9Pptav/xf6y/Uk6EIlMI9Yxpu244wm5ukIkpCtR96Epnwd6x90sBgn6zLz1XqYMv/c+AuYtjIs8VY4C8FqH6txkt/rT18DrIxncjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c4/NiHlbkIN56oB/VFtySJkKcf+pvJZZaY/KUNhSpSU=; b=EzRVTLCNIvGHafJp3qVoy4KzWPQmTfKTNdcxFyY319QlQYxUakaOk/ATD0ENsg8k2NIcT7HOFch658otIQC7z27uwLTwNVtEMfHB6s1tfvcN/9mCPkYZYglq7wHlZmeijFOVxsE0uxO9EmQ/tp+C6wBRkhsHsrf3lvLrWFSg7Nc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:42:58 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:42:58 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 24/49] imx: imx9: Add TRDC driver for TRDC init Date: Mon, 27 Jun 2022 11:24:30 +0800 Message-Id: <20220627032455.28280-25-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c46f3461-a24a-437b-1fc1-08da57e6beda X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: F3o+OCzO3Q4sPLlVNCOv35apI2PfNROE8FQE6zinWv0uxccdJ4443QW+Iwd9ud89wxihhAXraRZO/GG23deen8riNrpAEx1//Lc8Y5X0cB6fnDqPCyBKt5olyO2rPXIlruH33JYj7cramn9mzAb2PHGNxM4ZRg20Szzicat1KUiUMEOGtCn3mVHU9O/akI3FUox7p099GQ37kiuNPSScWLDSQ6s90vWLxRfhvNEluohmKb9tggjpJb+abWBlS/jADzpyw19fJ6WUc9jSWDgiWW0Js8lW/hA9DdBpyLVIzAFqNubkqr3yEPkgT0ZEPZ0lDEAA9ioeIyATTOrQwsba6mf+0F1Un2jYdBpZ7g0crV7seDgEDWhLTmdEst6Jz5UWQ+4Ea2+0NHOg2IzEskYi6HKfUDt9iZMfkU26ZLzJyO8e6uTHUnCR+yhs4hYY6kzAQ4MI5vuktFeAPBVZivSxF0zzRwIeqkpsaJOkXEftrfGzPjWkU28d0byr9bM4Qmrg8EXGSzXJvCnPMu9LvXGahD7oAMcgXqzC9jcAeZs1FH9dIGz+9roDm2Gt9GQsbwctE+r9tqfDwYCugt69p+wPj/2iEFV4RRD6MCU58xViDZpVWrBwBKneaWLtaEfv9NPrVM43K7s8BSC4kcqo0JA8DrGzFqL5X32CRaVK+mp+5BzHqaG1TRFXRzwih/MlqrXSNSpSUwLxHzUW0+r6p+MGcbse+SiOnfTU0UUrKUxSQJuSwBdIGFu4fTBpesiecE87lX44kX84g4lItKk9QeWfIwy0C8VcWPG9ucQg97rDnzM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(30864003)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7dF81tNHICo5bGhxcJ2tAOHXCAfANS7AiwbRLrMv5a4DfF/l2bS4UPIb4HmUFatb3T7FT2eYs4/l51ljOPkxtwHvygAqcLsFIAbZD/Z+eIlCKuGZM7Jrph+FVgjEZQ7H3Dt+StTMoih/O1iLD34Hf8Hbu6O0hiPSSPmMyaIG4YhE/muc/gKonF0KM/1hkxOxt8fEgUfEJpwjrc58SRm6YJ587KGt9ynlQtawbkvSMrkNNSjyqo5GArGZ36VYCK46kV5dhTJFEQZ/Hdxlt4EbseGtmoW5sew/0IFVTxO+7MxjTDSSrl+ikDNH43wojJaz7bP6S4txRqTla+Y5fGBCA5gcuQNqcodyzh+400GGxvV6aD4FRpAqztYA9iNcOkTcJ9cQTVPVCrwtTcRIazml3NbOzSijT/scDaReXQpo/HJ1OAUhyN/FzQdpr+dniXeB4TUIuDkvYyKkJCbz74PzQCFGPl9kaVveiayjFYeYm6CtrXmUBFTY/3Z0xdRTXsLQAoqGNxOm9z/WINdNV2uRLrGIzd4Uw6RDbu3dL7NclHlztTFJukRYtGS/zKrnS0FNqzUE8rTQlcTCCe5+LQa8mymSMvqiDX4PnUYF5uju8nb7g9LrwhYAWmheRlZ2/CvmZF5i6h4TmgeIf9vKZZb/3R11F7e20Ji/hIAZml5Y+iCWweiU92DDBXB9x8nSLBdYJBpWgDniAHTiVqzd9HJCf2mqJO65/y5ouQyW13X6SniPldW0FURae0HUIoFHuMbclF8F0U39cAQwp6uSj+NCmmp7XrlQ2z7PJBYTtKlIEI75zunrZDSpcd+siwBn/V6JQ663HCccRLJzbk80YSNbpK+Su1Fof4GcxMnmx8u9vsOh4TVUtggU/008TlD10MLKexcT6V35ySc/tI63O3QSM0ACr8LRYDFGBHlSBLf7faDckFIFT+K/Z1O6u2IWpHXjjQ6cGwVtzlUozQAZb4v569b5RqU8EBLJrqNynZc+IRB97OUm9hiP1+HvNALuD+CQE8ZCzGoc31EB+xIQtYtOHpF7432QGPfF1uu5bzQRro1zgEs9sBrase3orJL8lrBNnHVD/J0Xirw3C8d1S0Fq3rJRd9PLSBo5nS9XEHnYDwATBGpvID6XhCEH6pOCfiEvn71Dn9gSPa4ElwoSSrvOOxdLj2OzV7LIaBZVadyRAJfPt1bqY2u4G8CC/silaJY9yyL4g7wSQCH7g69zLzlh6oOgu5UTQ+F4fTeV2zga7D59gsAa95YHkeah2NQKgamlStHku28hVmZL/qXVoF2Qtc1W12DHSKBSBJyH3cGLNPB0o3OTlrnvmasEypYnd+yVFtHzw62ggv7VAGPCRSyQKlzu3wkAY4CfeuYikhWsd22aALNloOxaRLbTJ0UDK6r1RId3Ct/SM8AZfEuOFw5ssiySrNp3nRDMD+4x/SouuPmLl3HBBaGyiQvAgM7PQXqvV+kEgvv5vgg5Zrym5f6VD08CLfCANwzRBAIgjfeIOb3qjCRMPuIqQg3WZlM9DLOgAA2FftQf1ZmWwKkVFhuKus6O8r9FJN4Qttrr6N17MQw4UZA4cspsiTjjP+HkcuXe X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: c46f3461-a24a-437b-1fc1-08da57e6beda X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:42:58.5531 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: p+hom614Y+/IhlJCpEw0B/9BwVzgijblNjjyW9uJB/pDJwO0vQkac9lZ/EIcyTzbDPShdd1RSJGHrbZw0J62Jg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Add TRDC driver to iMX9. The TRDC init splits to two phases: 1. Early init phase will release TRDC from Sentinel and open write permission to the memory where SPL image runs. Sentinel will set the memory to RX only after ROM authentication for the OEM closed part. 2. Init phase will configure TRDC to allow non-secure master to access DDR. So the peripherals can work in u-boot. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/trdc.h | 19 + arch/arm/mach-imx/imx9/Makefile | 2 +- arch/arm/mach-imx/imx9/soc.c | 3 + arch/arm/mach-imx/imx9/trdc.c | 581 ++++++++++++++++++++++++++ 4 files changed, 604 insertions(+), 1 deletion(-) create mode 100644 arch/arm/include/asm/arch-imx9/trdc.h create mode 100644 arch/arm/mach-imx/imx9/trdc.c diff --git a/arch/arm/include/asm/arch-imx9/trdc.h b/arch/arm/include/asm/arch-imx9/trdc.h new file mode 100644 index 00000000000..1481ee375b7 --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/trdc.h @@ -0,0 +1,19 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX9_TRDC_H +#define __ASM_ARCH_IMX9_TRDC_H + +int trdc_mbc_set_control(ulong trdc_reg, u32 mbc_x, u32 glbac_id, u32 glbac_val); +int trdc_mbc_blk_config(ulong trdc_reg, u32 mbc_x, u32 dom_x, u32 mem_x, u32 blk_x, + bool sec_access, u32 glbac_id); +int trdc_mrc_set_control(ulong trdc_reg, u32 mrc_x, u32 glbac_id, u32 glbac_val); +int trdc_mrc_region_config(ulong trdc_reg, u32 mrc_x, u32 dom_x, u32 addr_start, + u32 addr_end, bool sec_access, u32 glbac_id); + +void trdc_early_init(void); +void trdc_init(void); + +#endif diff --git a/arch/arm/mach-imx/imx9/Makefile b/arch/arm/mach-imx/imx9/Makefile index 7be0343d52e..0124212f266 100644 --- a/arch/arm/mach-imx/imx9/Makefile +++ b/arch/arm/mach-imx/imx9/Makefile @@ -3,4 +3,4 @@ # Copyright 2022 NXP obj-y += lowlevel_init.o -obj-y += soc.o clock.o clock_root.o +obj-y += soc.o clock.o clock_root.o trdc.o diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 9ea2d51495b..7c71cbdd55a 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -204,6 +205,8 @@ int arch_cpu_init(void) init_wdog(); clock_init(); + + trdc_early_init(); } return 0; diff --git a/arch/arm/mach-imx/imx9/trdc.c b/arch/arm/mach-imx/imx9/trdc.c new file mode 100644 index 00000000000..b0881697a10 --- /dev/null +++ b/arch/arm/mach-imx/imx9/trdc.c @@ -0,0 +1,581 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DID_NUM 16 +#define MBC_MAX_NUM 4 +#define MRC_MAX_NUM 2 +#define MBC_NUM(HWCFG) (((HWCFG) >> 16) & 0xF) +#define MRC_NUM(HWCFG) (((HWCFG) >> 24) & 0x1F) + +struct mbc_mem_dom { + u32 mem_glbcfg[4]; + u32 nse_blk_index; + u32 nse_blk_set; + u32 nse_blk_clr; + u32 nsr_blk_clr_all; + u32 memn_glbac[8]; + /* The upper only existed in the beginning of each MBC */ + u32 mem0_blk_cfg_w[64]; + u32 mem0_blk_nse_w[16]; + u32 mem1_blk_cfg_w[8]; + u32 mem1_blk_nse_w[2]; + u32 mem2_blk_cfg_w[8]; + u32 mem2_blk_nse_w[2]; + u32 mem3_blk_cfg_w[8]; + u32 mem3_blk_nse_w[2];/*0x1F0, 0x1F4 */ + u32 reserved[2]; +}; + +struct mrc_rgn_dom { + u32 mrc_glbcfg[4]; + u32 nse_rgn_indirect; + u32 nse_rgn_set; + u32 nse_rgn_clr; + u32 nse_rgn_clr_all; + u32 memn_glbac[8]; + /* The upper only existed in the beginning of each MRC */ + u32 rgn_desc_words[16][2]; /* 16 regions at max, 2 words per region */ + u32 rgn_nse; + u32 reserved2[15]; +}; + +struct mda_inst { + u32 mda_w[8]; +}; + +struct trdc_mgr { + u32 trdc_cr; + u32 res0[59]; + u32 trdc_hwcfg0; + u32 trdc_hwcfg1; + u32 res1[450]; + struct mda_inst mda[8]; + u32 res2[15808]; +}; + +struct trdc_mbc { + struct mbc_mem_dom mem_dom[DID_NUM]; +}; + +struct trdc_mrc { + struct mrc_rgn_dom mrc_dom[DID_NUM]; +}; + +int trdc_mda_set_cpu(ulong trdc_reg, u32 mda_inst, u32 mda_reg, u8 sa, u8 dids, + u8 did, u8 pe, u8 pidm, u8 pid) +{ + struct trdc_mgr *trdc_base = (struct trdc_mgr *)trdc_reg; + u32 *mda_w = &trdc_base->mda[mda_inst].mda_w[mda_reg]; + u32 val = readl(mda_w); + + if (val & BIT(29)) /* non-cpu */ + return -EINVAL; + + val = BIT(31) | ((pid & 0x3f) << 16) | ((pidm & 0x3f) << 8) | + ((pe & 0x3) << 6) | ((sa & 0x3) << 14) | ((dids & 0x3) << 4) | + (did & 0xf); + + writel(val, mda_w); + + return 0; +} + +int trdc_mda_set_noncpu(ulong trdc_reg, u32 mda_inst, u32 mda_reg, + bool did_bypass, u8 sa, u8 pa, u8 did) +{ + struct trdc_mgr *trdc_base = (struct trdc_mgr *)trdc_reg; + u32 *mda_w = &trdc_base->mda[mda_inst].mda_w[mda_reg]; + u32 val = readl(mda_w); + + if (!(val & BIT(29))) /* cpu */ + return -EINVAL; + + val = BIT(31) | ((sa & 0x3) << 6) | ((pa & 0x3) << 4) | (did & 0xf); + if (did_bypass) + val |= BIT(8); + + writel(val, mda_w); + + return 0; +} + +static ulong trdc_get_mbc_base(ulong trdc_reg, u32 mbc_x) +{ + struct trdc_mgr *trdc_base = (struct trdc_mgr *)trdc_reg; + u32 mbc_num = MBC_NUM(trdc_base->trdc_hwcfg0); + + if (mbc_x >= mbc_num) + return 0; + + return trdc_reg + 0x10000 + 0x2000 * mbc_x; +} + +static ulong trdc_get_mrc_base(ulong trdc_reg, u32 mrc_x) +{ + struct trdc_mgr *trdc_base = (struct trdc_mgr *)trdc_reg; + u32 mbc_num = MBC_NUM(trdc_base->trdc_hwcfg0); + u32 mrc_num = MRC_NUM(trdc_base->trdc_hwcfg0); + + if (mrc_x >= mrc_num) + return 0; + + return trdc_reg + 0x10000 + 0x2000 * mbc_num + 0x1000 * mrc_x; +} + +int trdc_mbc_set_control(ulong trdc_reg, u32 mbc_x, u32 glbac_id, u32 glbac_val) +{ + struct trdc_mbc *mbc_base = (struct trdc_mbc *)trdc_get_mbc_base(trdc_reg, mbc_x); + struct mbc_mem_dom *mbc_dom; + + if (mbc_base == 0 || glbac_id >= 8) + return -EINVAL; + + /* only first dom has the glbac */ + mbc_dom = &mbc_base->mem_dom[0]; + + debug("mbc 0x%lx\n", (ulong)mbc_dom); + + writel(glbac_val, &mbc_dom->memn_glbac[glbac_id]); + + return 0; +} + +int trdc_mbc_blk_config(ulong trdc_reg, u32 mbc_x, u32 dom_x, u32 mem_x, + u32 blk_x, bool sec_access, u32 glbac_id) +{ + struct trdc_mbc *mbc_base = (struct trdc_mbc *)trdc_get_mbc_base(trdc_reg, mbc_x); + struct mbc_mem_dom *mbc_dom; + u32 *cfg_w, *nse_w; + u32 index, offset, val; + + if (mbc_base == 0 || glbac_id >= 8) + return -EINVAL; + + mbc_dom = &mbc_base->mem_dom[dom_x]; + + debug("mbc 0x%lx\n", (ulong)mbc_dom); + + switch (mem_x) { + case 0: + cfg_w = &mbc_dom->mem0_blk_cfg_w[blk_x / 8]; + nse_w = &mbc_dom->mem0_blk_nse_w[blk_x / 32]; + break; + case 1: + cfg_w = &mbc_dom->mem1_blk_cfg_w[blk_x / 8]; + nse_w = &mbc_dom->mem1_blk_nse_w[blk_x / 32]; + break; + case 2: + cfg_w = &mbc_dom->mem2_blk_cfg_w[blk_x / 8]; + nse_w = &mbc_dom->mem2_blk_nse_w[blk_x / 32]; + break; + case 3: + cfg_w = &mbc_dom->mem3_blk_cfg_w[blk_x / 8]; + nse_w = &mbc_dom->mem3_blk_nse_w[blk_x / 32]; + break; + default: + return -EINVAL; + }; + + index = blk_x % 8; + offset = index * 4; + + val = readl((void __iomem *)cfg_w); + + val &= ~(0xFU << offset); + + /* MBC0-3 + * Global 0, 0x7777 secure pri/user read/write/execute, S400 has already set it. + * So select MBC0_MEMN_GLBAC0 + */ + if (sec_access) { + val |= ((0x0 | (glbac_id & 0x7)) << offset); + writel(val, (void __iomem *)cfg_w); + } else { + val |= ((0x8 | (glbac_id & 0x7)) << offset); /* nse bit set */ + writel(val, (void __iomem *)cfg_w); + } + + return 0; +} + +int trdc_mrc_set_control(ulong trdc_reg, u32 mrc_x, u32 glbac_id, u32 glbac_val) +{ + struct trdc_mrc *mrc_base = (struct trdc_mrc *)trdc_get_mrc_base(trdc_reg, mrc_x); + struct mrc_rgn_dom *mrc_dom; + + if (mrc_base == 0 || glbac_id >= 8) + return -EINVAL; + + /* only first dom has the glbac */ + mrc_dom = &mrc_base->mrc_dom[0]; + + debug("mrc_dom 0x%lx\n", (ulong)mrc_dom); + + writel(glbac_val, &mrc_dom->memn_glbac[glbac_id]); + + return 0; +} + +int trdc_mrc_region_config(ulong trdc_reg, u32 mrc_x, u32 dom_x, u32 addr_start, + u32 addr_end, bool sec_access, u32 glbac_id) +{ + struct trdc_mrc *mrc_base = (struct trdc_mrc *)trdc_get_mrc_base(trdc_reg, mrc_x); + struct mrc_rgn_dom *mrc_dom; + u32 *desc_w; + u32 start, end; + u32 i, free = 8; + bool vld, hit = false; + + if (mrc_base == 0 || glbac_id >= 8) + return -EINVAL; + + mrc_dom = &mrc_base->mrc_dom[dom_x]; + + addr_start &= ~0x3fff; + addr_end &= ~0x3fff; + + debug("mrc_dom 0x%lx\n", (ulong)mrc_dom); + + for (i = 0; i < 8; i++) { + desc_w = &mrc_dom->rgn_desc_words[i][0]; + + debug("desc_w 0x%lx\n", (ulong)desc_w); + + start = readl((void __iomem *)desc_w) & (~0x3fff); + end = readl((void __iomem *)(desc_w + 1)); + vld = end & 0x1; + end = end & (~0x3fff); + + if (start == 0 && end == 0 && !vld && free >= 8) + free = i; + + /* Check all the region descriptors, even overlap */ + if (addr_start >= end || addr_end <= start || !vld) + continue; + + /* MRC0,1 + * Global 0, 0x7777 secure pri/user read/write/execute, S400 has already set it. + * So select MRCx_MEMN_GLBAC0 + */ + if (sec_access) { + writel(start | (glbac_id & 0x7), (void __iomem *)desc_w); + writel(end | 0x1, (void __iomem *)(desc_w + 1)); + } else { + writel(start | (glbac_id & 0x7), (void __iomem *)desc_w); + writel(end | 0x1 | 0x10, (void __iomem *)(desc_w + 1)); + } + + if (addr_start >= start && addr_end <= end) + hit = true; + } + + if (!hit) { + if (free >= 8) + return -EFAULT; + + desc_w = &mrc_dom->rgn_desc_words[free][0]; + + debug("free desc_w 0x%lx\n", (ulong)desc_w); + debug("[0x%x] [0x%x]\n", addr_start | (glbac_id & 0x7), addr_end | 0x1); + + if (sec_access) { + writel(addr_start | (glbac_id & 0x7), (void __iomem *)desc_w); + writel(addr_end | 0x1, (void __iomem *)(desc_w + 1)); + } else { + writel(addr_start | (glbac_id & 0x7), (void __iomem *)desc_w); + writel((addr_end | 0x1 | 0x10), (void __iomem *)(desc_w + 1)); + } + } + + return 0; +} + +bool trdc_mrc_enabled(ulong trdc_base) +{ + return (!!(readl((void __iomem *)trdc_base) & 0x8000)); +} + +bool trdc_mbc_enabled(ulong trdc_base) +{ + return (!!(readl((void __iomem *)trdc_base) & 0x4000)); +} + +int release_rdc(u8 xrdc) +{ + ulong s_mu_base = 0x47520000UL; + struct imx8ulp_s400_msg msg; + int ret; + u32 rdc_id; + + switch (xrdc) { + case 0: + rdc_id = 0x74; + break; + case 1: + rdc_id = 0x78; + break; + case 2: + rdc_id = 0x82; + break; + case 3: + rdc_id = 0x86; + break; + default: + return -EINVAL; + } + + msg.version = AHAB_VERSION; + msg.tag = AHAB_CMD_TAG; + msg.size = 2; + msg.command = AHAB_RELEASE_RDC_REQ_CID; + msg.data[0] = (rdc_id << 8) | 0x2; /* A55 */ + + mu_hal_init(s_mu_base); + mu_hal_sendmsg(s_mu_base, 0, *((u32 *)&msg)); + mu_hal_sendmsg(s_mu_base, 1, msg.data[0]); + + ret = mu_hal_receivemsg(s_mu_base, 0, (u32 *)&msg); + if (!ret) { + ret = mu_hal_receivemsg(s_mu_base, 1, &msg.data[0]); + if (!ret) { + if ((msg.data[0] & 0xff) == 0xd6) + return 0; + } + + return -EIO; + } + + return ret; +} + +void trdc_early_init(void) +{ + int ret = 0, i; + + ret |= release_rdc(0); + ret |= release_rdc(2); + ret |= release_rdc(1); + ret |= release_rdc(3); + + if (!ret) { + /* Set OCRAM to RWX for secure, when OEM_CLOSE, the image is RX only */ + trdc_mbc_set_control(0x49010000, 3, 0, 0x7700); + + for (i = 0; i < 40; i++) + trdc_mbc_blk_config(0x49010000, 3, 3, 0, i, true, 0); + + for (i = 0; i < 40; i++) + trdc_mbc_blk_config(0x49010000, 3, 3, 1, i, true, 0); + + for (i = 0; i < 40; i++) + trdc_mbc_blk_config(0x49010000, 3, 0, 0, i, true, 0); + + for (i = 0; i < 40; i++) + trdc_mbc_blk_config(0x49010000, 3, 0, 1, i, true, 0); + } +} + +void trdc_init(void) +{ + /* TRDC mega */ + if (trdc_mrc_enabled(0x49010000)) { + /* DDR */ + trdc_mrc_set_control(0x49010000, 0, 0, 0x7777); + + /* S400*/ + trdc_mrc_region_config(0x49010000, 0, 0, 0x80000000, 0xFFFFFFFF, false, 0); + + /* MTR */ + trdc_mrc_region_config(0x49010000, 0, 1, 0x80000000, 0xFFFFFFFF, false, 0); + + /* M33 */ + trdc_mrc_region_config(0x49010000, 0, 2, 0x80000000, 0xFFFFFFFF, false, 0); + + /* A55*/ + trdc_mrc_region_config(0x49010000, 0, 3, 0x80000000, 0xFFFFFFFF, false, 0); + + /* For USDHC1 to DDR, USDHC1 is default force to non-secure */ + trdc_mrc_region_config(0x49010000, 0, 5, 0x80000000, 0xFFFFFFFF, false, 0); + + /* For USDHC2 to DDR, USDHC2 is default force to non-secure */ + trdc_mrc_region_config(0x49010000, 0, 6, 0x80000000, 0xFFFFFFFF, false, 0); + + /* eDMA */ + trdc_mrc_region_config(0x49010000, 0, 7, 0x80000000, 0xFFFFFFFF, false, 0); + + /*CoreSight, TestPort*/ + trdc_mrc_region_config(0x49010000, 0, 8, 0x80000000, 0xFFFFFFFF, false, 0); + + /* DAP */ + trdc_mrc_region_config(0x49010000, 0, 9, 0x80000000, 0xFFFFFFFF, false, 0); + + /*SoC masters */ + trdc_mrc_region_config(0x49010000, 0, 10, 0x80000000, 0xFFFFFFFF, false, 0); + + /*USB*/ + trdc_mrc_region_config(0x49010000, 0, 11, 0x80000000, 0xFFFFFFFF, false, 0); + } +} + +#if DEBUG +int trdc_mbc_control_dump(ulong trdc_reg, u32 mbc_x, u32 glbac_id) +{ + struct trdc_mbc *mbc_base = (struct trdc_mbc *)trdc_get_mbc_base(trdc_reg, mbc_x); + struct mbc_mem_dom *mbc_dom; + + if (mbc_base == 0 || glbac_id >= 8) + return -EINVAL; + + /* only first dom has the glbac */ + mbc_dom = &mbc_base->mem_dom[0]; + + printf("mbc_dom %u glbac %u: 0x%x\n", + mbc_x, glbac_id, readl(&mbc_dom->memn_glbac[glbac_id])); + + return 0; +} + +int trdc_mbc_mem_dump(ulong trdc_reg, u32 mbc_x, u32 dom_x, u32 mem_x, u32 word) +{ + struct trdc_mbc *mbc_base = (struct trdc_mbc *)trdc_get_mbc_base(trdc_reg, mbc_x); + struct mbc_mem_dom *mbc_dom; + u32 *cfg_w; + + if (mbc_base == 0) + return -EINVAL; + + mbc_dom = &mbc_base->mem_dom[dom_x]; + + switch (mem_x) { + case 0: + cfg_w = &mbc_dom->mem0_blk_cfg_w[word]; + break; + case 1: + cfg_w = &mbc_dom->mem1_blk_cfg_w[word]; + break; + case 2: + cfg_w = &mbc_dom->mem2_blk_cfg_w[word]; + break; + case 3: + cfg_w = &mbc_dom->mem3_blk_cfg_w[word]; + break; + default: + return -EINVAL; + }; + + printf("mbc_dom %u dom %u mem %u word %u: 0x%x\n", + mbc_x, dom_x, mem_x, word, readl((void __iomem *)cfg_w)); + + return 0; +} + +int trdc_mrc_control_dump(ulong trdc_reg, u32 mrc_x, u32 glbac_id) +{ + struct trdc_mrc *mrc_base = (struct trdc_mrc *)trdc_get_mrc_base(trdc_reg, mrc_x); + struct mrc_rgn_dom *mrc_dom; + + if (mrc_base == 0 || glbac_id >= 8) + return -EINVAL; + + /* only first dom has the glbac */ + mrc_dom = &mrc_base->mrc_dom[0]; + + printf("mrc_dom %u glbac %u: 0x%x\n", + mrc_x, glbac_id, readl(&mrc_dom->memn_glbac[glbac_id])); + + return 0; +} + +void trdc_dump(void) +{ + u32 i; + + printf("TRDC AONMIX MBC\n"); + + trdc_mbc_control_dump(0x44270000, 0, 0); + trdc_mbc_control_dump(0x44270000, 1, 0); + + for (i = 0; i < 11; i++) + trdc_mbc_mem_dump(0x44270000, 0, 3, 0, i); + for (i = 0; i < 1; i++) + trdc_mbc_mem_dump(0x44270000, 0, 3, 1, i); + + for (i = 0; i < 4; i++) + trdc_mbc_mem_dump(0x44270000, 1, 3, 0, i); + for (i = 0; i < 4; i++) + trdc_mbc_mem_dump(0x44270000, 1, 3, 1, i); + + printf("TRDC WAKEUP MBC\n"); + + trdc_mbc_control_dump(0x42460000, 0, 0); + trdc_mbc_control_dump(0x42460000, 1, 0); + + for (i = 0; i < 15; i++) + trdc_mbc_mem_dump(0x42460000, 0, 3, 0, i); + + trdc_mbc_mem_dump(0x42460000, 0, 3, 1, 0); + trdc_mbc_mem_dump(0x42460000, 0, 3, 2, 0); + + for (i = 0; i < 2; i++) + trdc_mbc_mem_dump(0x42460000, 1, 3, 0, i); + + trdc_mbc_mem_dump(0x42460000, 1, 3, 1, 0); + trdc_mbc_mem_dump(0x42460000, 1, 3, 2, 0); + trdc_mbc_mem_dump(0x42460000, 1, 3, 3, 0); + + printf("TRDC NICMIX MBC\n"); + + trdc_mbc_control_dump(0x49010000, 0, 0); + trdc_mbc_control_dump(0x49010000, 1, 0); + trdc_mbc_control_dump(0x49010000, 2, 0); + trdc_mbc_control_dump(0x49010000, 3, 0); + + for (i = 0; i < 7; i++) + trdc_mbc_mem_dump(0x49010000, 0, 3, 0, i); + + for (i = 0; i < 2; i++) + trdc_mbc_mem_dump(0x49010000, 0, 3, 1, i); + + for (i = 0; i < 5; i++) + trdc_mbc_mem_dump(0x49010000, 0, 3, 2, i); + + for (i = 0; i < 6; i++) + trdc_mbc_mem_dump(0x49010000, 0, 3, 3, i); + + for (i = 0; i < 1; i++) + trdc_mbc_mem_dump(0x49010000, 1, 3, 0, i); + + for (i = 0; i < 1; i++) + trdc_mbc_mem_dump(0x49010000, 1, 3, 1, i); + + for (i = 0; i < 3; i++) + trdc_mbc_mem_dump(0x49010000, 1, 3, 2, i); + + for (i = 0; i < 3; i++) + trdc_mbc_mem_dump(0x49010000, 1, 3, 3, i); + + for (i = 0; i < 2; i++) + trdc_mbc_mem_dump(0x49010000, 2, 3, 0, i); + + for (i = 0; i < 2; i++) + trdc_mbc_mem_dump(0x49010000, 2, 3, 1, i); + + for (i = 0; i < 5; i++) + trdc_mbc_mem_dump(0x49010000, 3, 3, 0, i); + + for (i = 0; i < 5; i++) + trdc_mbc_mem_dump(0x49010000, 3, 3, 1, i); +} +#endif From patchwork Mon Jun 27 03:24:31 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648555 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=kxNv3hn7; 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 4LWXDS3j7Mz9s0r for ; Mon, 27 Jun 2022 12:46:32 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2947C844E6; Mon, 27 Jun 2022 04:43:16 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kxNv3hn7"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8D8BD844ED; Mon, 27 Jun 2022 04:43:10 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50064.outbound.protection.outlook.com [40.107.5.64]) (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 CE65C844BE for ; Mon, 27 Jun 2022 04:43:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZiuoiYRyH0mpa/lCmMqvRA0AxR5jg+v6bj0TlylbQ3uy78s2yrmeRgan/CfOYHZc71HQ92N45rzTGhHvHS9KPV0Oj9DtWHuFUyWK/+St9zz7WeqXeRm9/fpF/tLeoqzMw/LlNA4eV0JthP8twC9ZOIC7/aWvKoyof4hOn6U013XtUgqQ7NhMakViAlkbCBTnv4iVL2njR7tQlZS8gN1D7yfGwJzV6U4PCu+mFrTXixtr8hwtieFpDGSkN+bTHPwADr3uSfNRElnDYTRKtUJ2BgzSfzHE2KURz6rHhIhDysaVGy6l+TI0dKSwQH5zzfZcaCmV9bqwE28/k0yw9zNXiQ== 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=5Yzsf6zcJR/kaNrHvL8GZBZHLzodqqUgkXiv7I2VMCM=; b=T/NxoX58IfDeIgr9wbjrESLcyqo6lcUcrPXUKAH9FNIOfOT/xAO1sZV+uw7SyKinm0UeMeGOwIAEMdyEQw/cZnww75VpGrjanBVjfg8x3r0HzgZSumYRzpF38J3pdLvjbptJd59d/4+TR2mTB5UKA+2V54RBxJsrTMl4kqbbHppgMS4Kxg/I74YL7KuUM1sTdvFaO9Xoa4vA/bQ+St5/3TXt87g8c5EC+ob1D47SUbJxKQQ5ZS3MguxglqMfVMLgqmHnVzC0LcrQvsTwFwGHEBoMTY6DT/dfcnbQoybv6k6XA41GYJEN6oanSLkVK2yk54jgEXuJsP4EcwI+WX9edA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5Yzsf6zcJR/kaNrHvL8GZBZHLzodqqUgkXiv7I2VMCM=; b=kxNv3hn7kvCt86wqgVHEoxMXioofpPpsAuFWh36wvzBD3AgxKdHD6a8FrWFQCUy4qj+M9qPeNBhP/ZnvmgT8EgHNzTAZju4/VykfEdT9jdw/g1NwoGEpObgodnqKiziFkmZRV/B4FoYxOPq+RlZizyx6xGCkXXshr/CObVCCU0E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:01 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:01 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 25/49] imx: imx9: Add AHAB boot support Date: Mon, 27 Jun 2022 11:24:31 +0800 Message-Id: <20220627032455.28280-26-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 331b41ad-2ab1-468d-0635-08da57e6c09d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: AflwygsUyiusVShD6HlwRcIeZWUrFjYdcxhGRgW7w+RU0jq8RUC/YToc4V6rdn5RthKaUFZ6BXV4zRpLsLPd7FbAXXowPS/HaFiBXpvHUgNYRzC2tSGvynuPocP1Dqeb5hq4cEjmg3ea5EGZ1wKORQd7kJKfG64ZiWOssdubCGfKkueVjbgX7V9R/Pjsx6p+yhHM1PanN3ZLXthN/5XqnrdBdcikH2zaWbwl+iL2dBaN8Sj+6n3Ie/eec6iAZEPyuBKJAwk7VMXlA0nY87yQM1WNXZccRpCgWTi5Hzdfxe0YR7FBc5p8kGABvA4uhYF4zvtregQSamdZ5nY4cAgH2rH+8t2nHiL7ooVLTwCnWcywMt7JeXSXw6ZtfsEP3Lrgeo0sUMOG9KZHA8abDLuXbOvkCydLktrTsuy1NwR8cF8A6sI/fCw45a6dFl8R45QL+Bws1gJ6oZ93m28C2RbbtnjkDtQ8t99YyO40bwFY44pSkRZ9ODEFh8uZhd6Mxxa1p4Ca+Fx8EbBXRsfdd840kugHcWlTfCZOA4Ejeex8y5Scna4r/cf0Z9BWz4C30nL1zYulZOyDTuTaK0nmJyd8yBaMYjZX/g17JLx9liQvTI2/8QFUoW0temGn7a74UHR51e2qrojqrc6WM4irSbQRbeyp/S8/UIM19j2GztEw60tPSZLjf1/soHgm348aQlzsgHHNpnntR5sqKg4vEasMj/Rq/TCzFxBDxfd+f0Ktrw8yCnMebp3LW+adP9WVKFhengSPLohoPsKgP6U1gqLmeEHtXWPp9wy9Wlws17Xn5kA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: E+Lrz94exRfiC9l+Fj17MIv1dJp87RGHZKKqR2rzHtl1qkWZvSqHadCTtoO/KUQH5rPiWmJurwZJHnE7yeIC/q4Rt2wwUHPigjIYN09eWZjR6QfAUz8U/FOiTsDSrgvwypnQwcGI6dwwgxj7uwrWxOLSQc1WDnlmaMv7NlGycbmF22Wiq781nh0xjIuxfQTjrr+n/rNQhlKgmWBvJAhhJScUU5M96bUBHyMhkbLTTVxuuEkoauCEU0tUyyKDxXlIvBx79aCxhn5U2A5iV4ltwo2pqZy5VgrYXwdqHrzlvWPrMMFtNr3VK8VueeyDpNGvfFx+1jY8J+s1PZLYFXEV8NNHRMKTcBao3buDGit1040GOstrgBvtq1dnYo57W3SmYtROYEzbSF2mMSVMIri3SVqN/zXDC2NMbfZwWmL5Ue3R9MsQqzZsJ/clPw44PBtommoLk66untcCXtcMQNO3LlXwBsvFBwrK56ic+z/UpgOCjgEwnMVLTpEw5cxqDdJaGZ86fUpbuhhhXTgB8Mz3tgr0rkWb3tgwBk3gXYRkjZgHf2gxgQlpTIKvy2fqLQh7lX3oOrSA15nATHk05nesqE1DEioV6LZfYOgcj4isDeI7g1agaw2cDWYypfvZa39OUI72hQBPLEHHDJbueXreZAlHhnvLSAdZtLI0vPeB5SKijX5sfcd08wKx61qw1XMbYY2o0TbpwHMay1zSmNdhYC4Tp0sIYcH2sTAAFbeGwhb5XmZB2ZEDdh5Jubql3VAG/O/KFQ+mIfgxgDCNazfOIqwQgfGpHo+s1d0YaRSrRfdBvKxlC3nQOTBvhP17EEluvDrOMt/yY2q5inusp8sRAu31u1qnfSWKRCrFcjuOsxCNJEOjVbftO8KRZjyWLVyxlsjY8E/cxiQ7hs3c3/U93S6JsBylEkL1OtHPC+gJ1PmtF7tyFXNWB5+gmmxfHNmXP/gtQVogMDTDHZfpFpWzy4DulkEBpgKI8w5gdZPqZZFqBP6yJDzj8zz1KWY0noETj4Fy3SxWdCD+EEfvomalZ9HRlcLUCyK9CDxZxNrsIMRwyuoMnVKaKzhRaSusKyL9PTe+/rJoCRFtummH3n7WBOn0XuoqZLWbRaQiG6m3DiEbg7aUZx6pZUZ7s9pxO5748Y0YI7weQ1rePWfEmPLY2xMB92SLs5MT0mGa74cShkXTMnRlh6vP01hyFjQs+WA4CE8W3FKPupprIO5YXN/Xk2VXQ08VJYIHXxqkykIn6Lf7ynNfOr7MX3QNg1EPoCKa4EO30INvW1qFC7CVJF+0TsnsxNvMYfMINwb+rxOrzfDKPEKOhvFTFOtkc8rVu4jNxBxSbivfq41owfZyLkuHIN1urjj8T73mfoNtsb9YIHivx4k8co6HaJpzuBnZe/VkpNbgFbmnh+GNkGQUzwfh+/p2tQ4En7AEGlV88TOUNmWU/SROqsTqWM4vjKFfG2XQN3Jly274I3+fsxA+N+s0+0vOUtgdok4Mhwp1tmfOXthlESIfKsD+EqRZ+SX5nP8NAUzaCJfoF3XRZo8jDBsUut8QTN2l0J1g/7opeW7ui1ljOVtHekYexwCpRDR7iI1b X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 331b41ad-2ab1-468d-0635-08da57e6c09d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:01.5237 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PJIMt0+8d/Ceoo/jCcyJdQh1Qtm3ctALRCbbLmCXFtNACagwiHZf9jys0oOm/xE9UIkV6So5rBjVRJalBHIlJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Add AHAB driver for iMX9 to do authentication by calling sentinel API Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/mach-imx/imx9/Kconfig | 5 + arch/arm/mach-imx/imx9/Makefile | 1 + arch/arm/mach-imx/imx9/ahab.c | 346 ++++++++++++++++++++++++++++++++ 3 files changed, 352 insertions(+) create mode 100644 arch/arm/mach-imx/imx9/ahab.c diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig index ce58e41428f..dae9f658e65 100644 --- a/arch/arm/mach-imx/imx9/Kconfig +++ b/arch/arm/mach-imx/imx9/Kconfig @@ -1,5 +1,10 @@ if ARCH_IMX9 +config AHAB_BOOT + bool "Support i.MX9 AHAB features" + help + This option enables the support for AHAB secure boot. + config IMX9 bool select HAS_CAAM diff --git a/arch/arm/mach-imx/imx9/Makefile b/arch/arm/mach-imx/imx9/Makefile index 0124212f266..41a22500c95 100644 --- a/arch/arm/mach-imx/imx9/Makefile +++ b/arch/arm/mach-imx/imx9/Makefile @@ -4,3 +4,4 @@ obj-y += lowlevel_init.o obj-y += soc.o clock.o clock_root.o trdc.o +obj-$(CONFIG_AHAB_BOOT) += ahab.o diff --git a/arch/arm/mach-imx/imx9/ahab.c b/arch/arm/mach-imx/imx9/ahab.c new file mode 100644 index 00000000000..6aa949619b5 --- /dev/null +++ b/arch/arm/mach-imx/imx9/ahab.c @@ -0,0 +1,346 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define IMG_CONTAINER_BASE (0x80000000UL) +#define IMG_CONTAINER_END_BASE (IMG_CONTAINER_BASE + 0xFFFFUL) + +#define AHAB_NO_AUTHENTICATION_IND 0xee +#define AHAB_BAD_KEY_HASH_IND 0xfa +#define AHAB_INVALID_KEY_IND 0xf9 +#define AHAB_BAD_SIGNATURE_IND 0xf0 +#define AHAB_BAD_HASH_IND 0xf1 + +static void display_ahab_auth_ind(u32 event) +{ + u8 resp_ind = (event >> 8) & 0xff; + + switch (resp_ind) { + case AHAB_NO_AUTHENTICATION_IND: + printf("AHAB_NO_AUTHENTICATION_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_KEY_HASH_IND: + printf("AHAB_BAD_KEY_HASH_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_INVALID_KEY_IND: + printf("AHAB_INVALID_KEY_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_SIGNATURE_IND: + printf("AHAB_BAD_SIGNATURE_IND (0x%02X)\n\n", resp_ind); + break; + case AHAB_BAD_HASH_IND: + printf("AHAB_BAD_HASH_IND (0x%02X)\n\n", resp_ind); + break; + default: + printf("Unknown Indicator (0x%02X)\n\n", resp_ind); + break; + } +} + +int ahab_auth_cntr_hdr(struct container_hdr *container, u16 length) +{ + int err; + u32 resp; + + memcpy((void *)IMG_CONTAINER_BASE, (const void *)container, + ALIGN(length, CONFIG_SYS_CACHELINE_SIZE)); + + flush_dcache_range(IMG_CONTAINER_BASE, + IMG_CONTAINER_BASE + ALIGN(length, CONFIG_SYS_CACHELINE_SIZE) - 1); + + err = ahab_auth_oem_ctnr(IMG_CONTAINER_BASE, &resp); + if (err) { + printf("Authenticate container hdr failed, return %d, resp 0x%x\n", + err, resp); + display_ahab_auth_ind(resp); + } + + return err; +} + +int ahab_auth_release(void) +{ + int err; + u32 resp; + + err = ahab_release_container(&resp); + if (err) { + printf("Error: release container failed, resp 0x%x!\n", resp); + display_ahab_auth_ind(resp); + } + + return err; +} + +int ahab_verify_cntr_image(struct boot_img_t *img, int image_index) +{ + int err; + u32 resp; + + err = ahab_verify_image(image_index, &resp); + if (err) { + printf("Authenticate img %d failed, return %d, resp 0x%x\n", + image_index, err, resp); + display_ahab_auth_ind(resp); + + return -EIO; + } + + return 0; +} + +static inline bool check_in_dram(ulong addr) +{ + int i; + struct bd_info *bd = gd->bd; + + for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) { + if (bd->bi_dram[i].size) { + if (addr >= bd->bi_dram[i].start && + addr < (bd->bi_dram[i].start + bd->bi_dram[i].size)) + return true; + } + } + + return false; +} + +int authenticate_os_container(ulong addr) +{ + struct container_hdr *phdr; + int i, ret = 0; + int err; + u16 length; + struct boot_img_t *img; + unsigned long s, e; + + if (addr % 4) { + puts("Error: Image's address is not 4 byte aligned\n"); + return -EINVAL; + } + + if (!check_in_dram(addr)) { + puts("Error: Image's address is invalid\n"); + return -EINVAL; + } + + phdr = (struct container_hdr *)addr; + if (phdr->tag != 0x87 || phdr->version != 0x0) { + printf("Error: Wrong container header\n"); + return -EFAULT; + } + + if (!phdr->num_images) { + printf("Error: Wrong container, no image found\n"); + return -EFAULT; + } + + length = phdr->length_lsb + (phdr->length_msb << 8); + + debug("container length %u\n", length); + + err = ahab_auth_cntr_hdr(phdr, length); + if (err) { + ret = -EIO; + goto exit; + } + + debug("Verify images\n"); + + /* Copy images to dest address */ + for (i = 0; i < phdr->num_images; i++) { + img = (struct boot_img_t *)(addr + + sizeof(struct container_hdr) + + i * sizeof(struct boot_img_t)); + + debug("img %d, dst 0x%x, src 0x%lx, size 0x%x\n", + i, (uint32_t)img->dst, img->offset + addr, img->size); + + memcpy((void *)img->dst, (const void *)(img->offset + addr), + img->size); + + s = img->dst & ~(CONFIG_SYS_CACHELINE_SIZE - 1); + e = ALIGN(img->dst + img->size, CONFIG_SYS_CACHELINE_SIZE) - 1; + + flush_dcache_range(s, e); + + ret = ahab_verify_cntr_image(img, i); + if (ret) + goto exit; + } + +exit: + debug("ahab_auth_release, 0x%x\n", ret); + ahab_auth_release(); + + return ret; +} + +static int do_authenticate(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + ulong addr; + + if (argc < 2) + return CMD_RET_USAGE; + + addr = simple_strtoul(argv[1], NULL, 16); + + printf("Authenticate OS container at 0x%lx\n", addr); + + if (authenticate_os_container(addr)) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} + +static void display_life_cycle(u32 lc) +{ + printf("Lifecycle: 0x%08X, ", lc); + switch (lc) { + case 0x1: + printf("BLANK\n\n"); + break; + case 0x2: + printf("FAB\n\n"); + break; + case 0x4: + printf("NXP Provisioned\n\n"); + break; + case 0x8: + printf("OEM Open\n\n"); + break; + case 0x10: + printf("OEM Secure World Closed\n\n"); + break; + case 0x20: + printf("OEM closed\n\n"); + break; + case 0x40: + printf("Field Return OEM\n\n"); + break; + case 0x80: + printf("Field Return NXP\n\n"); + break; + case 0x100: + printf("OEM Locked\n\n"); + break; + case 0x200: + printf("BRICKED\n\n"); + break; + default: + printf("Unknown\n\n"); + break; + } +} + +static int confirm_close(void) +{ + puts("Warning: Please ensure your sample is in NXP closed state, " + "OEM SRK hash has been fused, \n" + " and you are able to boot a signed image successfully " + "without any SECO events reported.\n" + " If not, your sample will be unrecoverable.\n" + "\nReally perform this operation? \n"); + + if (confirm_yesno()) + return 1; + + puts("Ahab close aborted\n"); + return 0; +} + +static int do_ahab_close(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + int err; + u32 resp; + + if (!confirm_close()) + return -EACCES; + + err = ahab_forward_lifecycle(8, &resp); + if (err != 0) { + printf("Error in forward lifecycle to OEM closed\n"); + return -EIO; + } + + printf("Change to OEM closed successfully\n"); + + return 0; +} + +int ahab_dump(void) +{ + u32 buffer[32]; + int ret, i = 0; + + do { + ret = ahab_dump_buffer(buffer, 32); + if (ret < 0) { + printf("Error in dump AHAB log\n"); + return -EIO; + } + + if (ret == 1) + break; + for (i = 0; i < ret; i++) + printf("0x%x\n", buffer[i]); + } while (ret >= 21); + + return 0; +} + +static int do_ahab_dump(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + return ahab_dump(); +} + +static int do_ahab_status(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[]) +{ + u32 lc; + + lc = readl(FSB_BASE_ADDR + 0x41c); + lc &= 0x3ff; + + display_life_cycle(lc); + return 0; +} + +U_BOOT_CMD(auth_cntr, CONFIG_SYS_MAXARGS, 1, do_authenticate, + "autenticate OS container via AHAB", + "addr\n" + "addr - OS container hex address\n" +); + +U_BOOT_CMD(ahab_close, CONFIG_SYS_MAXARGS, 1, do_ahab_close, + "Change AHAB lifecycle to OEM closed", + "" +); + +U_BOOT_CMD(ahab_dump, CONFIG_SYS_MAXARGS, 1, do_ahab_dump, + "Dump AHAB log for debug", + "" +); + +U_BOOT_CMD(ahab_status, CONFIG_SYS_MAXARGS, 1, do_ahab_status, + "display AHAB lifecycle only", + "" +); From patchwork Mon Jun 27 03:24:32 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648556 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=ej0x/qwW; 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 4LWXDf47mxz9s0r for ; Mon, 27 Jun 2022 12:46:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5286C844F7; Mon, 27 Jun 2022 04:43:18 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="ej0x/qwW"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C98CB84415; Mon, 27 Jun 2022 04:43:11 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50079.outbound.protection.outlook.com [40.107.5.79]) (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 4282B844D9 for ; Mon, 27 Jun 2022 04:43:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R1GbzphRbw0IgO0lZVKTe/33zEIsFUQgQYRikV3T/c0VJD+jPWgEO1I157dJOzi9gsDFqlOG3xX21JAJ4DBy5dXr3hUShOtlIkjWjBOdLiaT2tg4hIRvNQx8Ba0DFUkCX1wkIPdMG6rqcRtYtqMjKOZILcaBCV9LKUUEsurVAW54OkmnCMpalmolnm6KBFgVV0MoN0Jmly1ghUmgpPKZBuYzGHhc1oBg9O4bUa3LamBPZpvgL82Vx+2IUXOdtD2EEfFW2COf11yGBXmf5H8O8t1h01pK+iKbYkHzMDVDoQg0shrwr2JCaYfa2j4KRoeWpYEs1vhdhKerxpFUDAOk5A== 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=mu7pJUIceHTpFiOnMtDDC/X4im+xW8N6CcAko4m0F6Y=; b=HCggJ3mx3GPCP3tZGDsIjvgsMOq2sXDYuOuz9TBWqUbf4IDSyrG9O4BRDvWCNl5gLErGETelkxLdHODPl7noUs0ohjl09RXJ6bIbw7Dfn0CQPItz/pAvmCa4Dz0vKSYVt1BFYAZ3UMbv2T+QZ1p4VuGjIPrefYX+PEHufv8AJbiJobO9o2YVrUJgXhs1HYInQKgaag77VPV7f39cJxYPCOBciLMJ0Sdv4M3fEd8Bp+C+RhLeF8775fDdmfN8wlBJZUtcujmAAyDcBrpIpl2CcQooOytps7xlk9tDxkv7Ap9n/0eUNKtQTSRx+zFZL3x/sQllG9L4ni//L9xJvYESPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mu7pJUIceHTpFiOnMtDDC/X4im+xW8N6CcAko4m0F6Y=; b=ej0x/qwWlKTC5w0yVmE1E7e3RJcp3v8d8EKgYiF4f+Ji60DilmYHy1Q2rxIl084QpbvZaHS6AtYDVu2KskRABgBErPDIMIUDixhqFts25vX29rfSlF/ITfAiph9vrIWa9eamoGAXexgtklUxXCWDoAV0HXKbdXOLDr+NZJX9o68= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:04 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:04 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 26/49] imx: imx9: Get the chip revision through S400 API Date: Mon, 27 Jun 2022 11:24:32 +0800 Message-Id: <20220627032455.28280-27-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bd99680a-415c-456a-a270-08da57e6c26b X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ntpYk5RnRWGKXgnyUGRb77ZgMozAMbK5w2tqPwsJLRlkkniDyf4d9vNyaNbB+eKwVWHLKVgJTGY5bsmSi/MQp70fLck1J/8kORqdnVh6pDeWc1O1KcaOcsxlbJGkfZXiPAkZpWL0utQJ7zhqKQgqdBed2gIPJREBlRP3Jo9ruf3zLpITeRWWNg9vOBexXvOyGYu3zOsqgLvJkapHp/W1/2pzKBz9LqKgPkOp63C4AHV+8+I+ecAu8SZm3z9bv1k0U2jI7+zOHlIoy507D0NqFzMHxNIE+qN49yhq0wwA9u3yD7zn+coAgloBaI2x82kR9z3QKAqZBQwZHnESHS/7dEs81VKhYOp+cu+eDM0pqpayVClTuxiPMDwmeNVeHtcn3CBtO/3CAxFwzE1RjxZVmzibpu1F/mna7VSL37t4PBWh80pkFZTYRNEtY4M98doWt6ZMfbz0u9Yyy/CBZaLdtSKn2PxgYXGi33BaUGk7rX8UDJJpaGZnK9nnHnylx2+2IomZ/cARiZsp40Mt1zZ2LjpuHRNKBaAG0ecTu2q+5OkJIBYH5quPI57XxUQMkvPRHtY3MzNsMcUoDgSJg+AgxP8Z2Lo6l+NXfMUNRW5yCc95cJ7yeoIFsUn3jAMPSE6wFv7jSuMb5WJKxXFttfMq3tLzgH9XQV4gaNz+4MXJEvFlB5iUK+lDRd3YCCITL3oK4PljANpStjVvdqLuWCGW3FOOYJLveAWL5lZKyrR7okbiFq2Wo8DeQXR06EwGZGfw/eUaqcBk+nQ1nti57Zxftj7UW8PWvvmyjcnAaOJaVqqKZz5PZEmqPT29SurwyWZmzsXeVxx2KnOsFZugXByGKA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007)(15583001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fDjBbYExv8asrHhWRAl+VIDQ25fORA8k2m/3EXejiLpkMo7XCnK1jsEkmwAWHs8tIWVp8+rzOqoJ1JiU4LxSYjHQ+CooaQZiuTHFIBmw5gyjAOsa5XVZZa7Q3dm/T929/vuhlNllsbqKM3VR1aaYVEc/laOXH0zJ73Iov/nbLKXb6W4VPaDwp6mu08vur9SssoNaMVidq+PhNkEV4CWK1YPqmZo9Kc7nKzs9ICt/uIcSOMKOXFDyRxY+kohnaYg8VGetbBuw11+p5UuVqxgJg9QtwQUDqDt4FBByw7Sr7v4fwpedkXjla9jLfs9D39i5VyZlUS1kP5fXFwNlaGCozMnuT2KT/SnHx6Of+d95Uy6nMag+zqn5brcsEAPXyAosTxg2K5QC1N7r6aZmylcoezT57VElTT3f3BIFnoNOUI/zYkC4e+Y4mKXlU7tPcFoEyPQ8qc0uv+A9lZDrKPCu06jpCJGm7Rt01L5lA2zxpemDK3/okw5DCh3NkEHI08XsIaKEFXwyX05ap75xsdaFCRDtwbMrUzZZ01qK8jA2o9f89x9K6/3ArdwpFrP634BdwPcGBwvwiFZQsQ5f/0j7jsWXlgAN0hx4rzVjIb1bId6bxWqtrZCSUJd38tnohIaG5AbJFWFeUIMiqFRJACg0eECamTgZcQ5Shiud+9vb8NZwkayMEOdAnkXPjSl+HK0gRPBbEYdplTaKdycIauY/jI6JfNtGU7mU7Y1+MsSDYKxFzGxcZXx78YrY9lNuW9B41iQQZ0ivTvWS4ju3wBKWkXcX7bYwTfoBFTNzUBSVIYq6fcFcZjGkUYLGeecMPa7A/YgHPGOVZBPnxHvT0NSgs7tXKt3o8PJLMGX9cu68iJF+/W+IydZq5d8SzOClj6eg7MoLLOB+LLI0JaPE1LoGfnVvSEwc+Rb3SLxGtTnda58bd3c0H+w2q2mC795LxVP8B+5NZKwzLrvhgFfPSWzQDxljhoBxPB2KzIkNynCJvi9d60612KBicjCEQ9RMc06bh5dC5kGuhGqeN03HSe4X32rqrCOczC317SbdKozSnkP6TsuoJPvSTm5DViK+SMY4mN9bz9Xnz4vKVXk+x/c1v8is68OUUo0tkWwK3UrAOShCNk8TDnUSlHvZ1x2fnRFMCoK9hdY4KwOwwervzRA7VKfaJnXcOGzdaRW+0N1cChp7qI2en3IH2zjUK5180whyJqiUp95LefKh3if4QhTrutpmNpYJ1C0HKx++4NYvN6lQhegi6wMkozLvZv8jNlcWFtgLgTXgYzPU0zC+8h9v2TOCs8KtnUXnoIlDLFbjEDL9gh8d7a+Ks2TQwp2VunM6HrY3RNOXDSMP/+sEyjZ0pNe2XVNa96JBaE+vxFZBTMWh9mDW6owuEzObD1JGRucgpqVogF8mvaN9SS7hfXSCxGFK6fJa5BAigYqvgyH6hQKWKj3NFJF8ggmTn26zvL/sfOOto4SpIOZydXJY5imkfhAqD7j4iOuKgPw8P2XJzmOghlMc4iU0uiAu+deOLbXl4FXwEyDwsJsosHyROl6i963GJCHl8QHfc6zJLIiB+ugRQ9O9GG+58pO9JdpF50jH X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bd99680a-415c-456a-a270-08da57e6c26b X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:04.4149 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: aq0KF6NaHu25Y0sRSwjyjbq0Z5dZp62xh3GByIWA0k8Daqz6aH/F9P9yXtHUGIAd3RCguFwwCaM4SbbVdG8QZw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Update the get chip revision methond to use S400 API, also record other information like lifecycle and UID to global data. Signed-off-by: Peng Fan --- arch/arm/include/asm/global_data.h | 3 ++ arch/arm/mach-imx/imx9/soc.c | 49 +++++++++++++++++++++++++++++- 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/global_data.h b/arch/arm/include/asm/global_data.h index 09f352269e5..6ee2a767615 100644 --- a/arch/arm/include/asm/global_data.h +++ b/arch/arm/include/asm/global_data.h @@ -92,6 +92,9 @@ struct arch_global_data { #ifdef CONFIG_IMX_SENTINEL struct udevice *s400_dev; + u32 soc_rev; + u32 lifecycle; + u32 uid[4]; #endif }; diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 7c71cbdd55a..c71a5a92504 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -27,6 +27,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -67,9 +68,18 @@ int mmc_get_env_dev(void) } #endif +static void set_cpu_info(struct sentinel_get_info_data *info) +{ + gd->arch.soc_rev = info->soc; + gd->arch.lifecycle = info->lc; + memcpy((void *)&gd->arch.uid, &info->uid, 4 * sizeof(u32)); +} + u32 get_cpu_rev(void) { - return (MXC_CPU_IMX93 << 12) | CHIP_REV_1_0; + u32 rev = (gd->arch.soc_rev >> 24) - 0xa0; + + return (MXC_CPU_IMX93 << 12) | (CHIP_REV_1_0 + rev); } #define UNLOCK_WORD 0xD928C520 /* unlock word */ @@ -198,6 +208,17 @@ int ft_system_setup(void *blob, struct bd_info *bd) return 0; } +#if defined(CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG) +void get_board_serial(struct tag_serialnr *serialnr) +{ + printf("UID: 0x%x 0x%x 0x%x 0x%x\n", + gd->arch.uid[0], gd->arch.uid[1], gd->arch.uid[2], gd->arch.uid[3]); + + serialnr->low = gd->arch.uid[0]; + serialnr->high = gd->arch.uid[3]; +} +#endif + int arch_cpu_init(void) { if (IS_ENABLED(CONFIG_SPL_BUILD)) { @@ -212,6 +233,32 @@ int arch_cpu_init(void) return 0; } +int imx9_probe_mu(void *ctx, struct event *event) +{ + struct udevice *devp; + int node, ret; + u32 res; + struct sentinel_get_info_data info; + + node = fdt_node_offset_by_compatible(gd->fdt_blob, -1, "fsl,imx93-mu-s4"); + + ret = uclass_get_device_by_of_offset(UCLASS_MISC, node, &devp); + if (ret) + return ret; + + if (gd->flags & GD_FLG_RELOC) + return 0; + + ret = ahab_get_info(&info, &res); + if (ret) + return ret; + + set_cpu_info(&info); + + return 0; +} +EVENT_SPY(EVT_DM_POST_INIT, imx9_probe_mu); + int timer_init(void) { #ifdef CONFIG_SPL_BUILD From patchwork Mon Jun 27 03:24:33 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648557 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=cvMx5dDC; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXDr3YkJz9s0r for ; Mon, 27 Jun 2022 12:46:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8DD21844F9; Mon, 27 Jun 2022 04:43:20 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="cvMx5dDC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 6A9E5844E3; Mon, 27 Jun 2022 04:43:12 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50067.outbound.protection.outlook.com [40.107.5.67]) (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 8AF8D844D4 for ; Mon, 27 Jun 2022 04:43:09 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RteF83il6ipKvpmPrJ71PtbwhIHOSbM2DhEv/H4tNA1JCMMOmHLfclq126gRMWxYkReFjaUor/O/l4zL/ED5FrcMuqhCGdmYWDIWetrz5okYtG5xPEjMFypEZLERBWVl7ltFeHfabG7xl/KvoIRqQcKJMvaQO0vazicsPA0lmhgb0YLYtE5/gjZfeWXybYlrCDsEpe3h4J8Ff6o294YGKdjibXQO+2/TzFKpEZfEhUtc0EZAN4p8GBj7xpeDEZpDn+iTBUMDlBwD7C+NuXskitP3DyDUpK933mLpaNjuAgbcbopL6+6GgA70bCDUc2gkzadiK3QhLKU4nUkSo3951w== 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=iVg9xP+NBg1N8P+x7j0anmQNEK4puSqY2+MCCZCQ478=; b=d4E6acf+Af8x5f9G4vT+mZNKXBsd4WHyO39KvYCGXK+WngzfFQE2+/iyNkhvQT7SWAKQD56o1RPLyD3nQSYFaKd6lP8w7SNWH6Wpi/f/2A/9mR1qAnfsyrp10b0FcPT7oOw0YxIHCACwFZ/OtrxU6Ao/A2q/6vMxAkY6zIkHxK7WnLYkYGHP5UJAsplKYt/A0IKs5Ffk+l95bEB8ukKZO2ddMf3OU7ltY54qwWfpDfjAwz+DfsEdu7zvYoLbtcnG43j5jXmmT0xIX/FEX2B84H9BXRPnUkTT90fU1VKNeBZpjPsGRg9VKgo2CjvzIcGoibGsyrQHp+T9+TK2y2oijQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iVg9xP+NBg1N8P+x7j0anmQNEK4puSqY2+MCCZCQ478=; b=cvMx5dDCyQDKZEaWjE5ofcD0dkHWQSFgvywwBZuDt31vGQQeVFJLeSFkJ/yIVkKGzILK5+ctG7H+8tJVncnM+rmDj7ZOSxhE++wwoFmRvZbEhLfzJJIIfTLW7Xxgm9UTTGrlDl7OI30z7HZjdGHF6yfX5FiWnioP2GrJyFL3Qtk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:07 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:07 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 27/49] misc: S400_API: Rename imx8ulp_s400_msg to sentinel_msg Date: Mon, 27 Jun 2022 11:24:33 +0800 Message-Id: <20220627032455.28280-28-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 275b3b3e-12c1-4558-daef-08da57e6c43e X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: C+q8WrBOdkWpDtidocK8CY00066E6QnYLBRbF4Xx0RPz9I/XhcSqt3jp52hYvCJRF5rvMl2kD1/+Sr9mnVbs2e20GBfqlWvmOkNnT8QI+5lhzTyn7N50BnmS7GYS9KHNLrpfw22P0GqLkh/P2IjoS/magmoPrXCjEkj5XIpG9H/Xny/wIelwKu8gqzYwyMxBkjZJWlXETb9Y3FKuRLz2ekjvtQ20L0Eox4oH2ZgIhXLR4wK/JoGIYuJOszrXwG9lV/wjWnLdUjiOkmmQvCkhgzB/h0WnF1X2DxtOWPspRNME2RlT0o8hoXYxG9rKE2n4rxbskWfEVTwKBCBEoL6jzGfNuzEt36IQkWiao+QN5e1iEkM/O6oICGTFmRjNKMn2cN80DnjC/0Z2jSBCdpk7l4WofbflUr3jDNPXck6OmehUoYhVb6O20rwEO6iYK1kp1lu7VHlI/q+Jo7sAkyt0R72pZriqWBqGYBqcjOtWwfQSu5+DEV2090SnDqWlmdIsYJgkK5wy36v18t1WYY8gIgkUa88XMmLnwnom3mziFECxcTAzVXixAEutPLCp84wdEEbMyR8IsxX6uzjPIhbY8c4K2XtoxH7Pp3IS00VaQ8A7hHT96Qv5DPXYKBL3XoAfUq80xlfE6CUkaFJaSSWdFIBWpzweF4LL1Pj9R2/Q9qPg15iuy2fzrZH9A/cruEMIlj/7pT0OExFfqxsHq2Fb6AUyjBMAbL+LS5khBCm5Bv9ANCLQ06PYFpdHw6oGX6gsJ0o8hBdQdmO6AVKudsgrWspA8SOyGbUkXd4U27esEy4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: tP9o/q3Jgisja5HIykEPgOLbvgP1ntOdirDrfNBXDKx/Khx80g0VU+adBus+h+ZjNK8sTd2B2ZqJy3QEeIwGGpP5yM33PVKZvO+UUm88C8jBovQ1eVxO+5uLjfym+fd0ti/tmW82LJuboe+V8IymlLvI1O3dQn30du8nizfGE6bvWPhoUdEAIWcK6duOKbjPuXmTBrXDhRddWFBUoQoiuFue3J5uCKsdHdRSUm5TIqlnvBvTwGD1pFJYEC019zMJd5l+0YQGBA+ZHnjKf+/j/XilvqojsM7o8Xuwdid8uhkT2DB6PslWo4z4fz4PhV3FwEwjM0cLNJGdlyQ72dRHdCSFJ8TAj+nTttCRCRS4z7ClEzReBb4rGuOghTcOjZoCxboChPflLO8oVBcGx7h6l7huT41M5dzl1O5QKZB34tZH1dW008yXPAG/yqYRAnE1HfRUAmdUsJImuWAd/JSfdtn35uaiK6MZY4mdg8T/GGlxGyvcmNrjxkeyfq5A/WLI2P3hIusNrinTGpO4OAwdpPfx/rhR8OI5SXQIGFWcE9rICJRNk1cxiPDnNWBqX13ecrrIyqlhoQr9kUO7eARbGiO4onFcZzqSuYhml67UdyoUHpTnkUIPXYwHpuyE/EpAsj7brm4nZblFL4xEXIfhk6rzssab/3pxZ87CYAr/ojQQc7ckqobbfktylAvAHnKVqAb7BOIBa3Rkn1ICWXjJHyyonvezqUPwhpPs8/LkHOsyn6VDfBR5i3U7svre9G3ODzesP2tijeOzn+R6s2b0r6ZjuJR1yMxcmZIDJ7svdv0WowAaJLdZH0xrzxHRQZNOzoTJQMEn2yKFPdhKYITYk0j8RJtYGKpBclTTH5p/heCFYUCgZ4ZH36VQT6p6xk3JSS1fv0cNYw6QZmuiVAf0lliSiQI5PspgMXImHYIyOEqgEyIgSzVSVEvCOsnMDXl8YPZN/PGNCPLXqz1J8TFAnWbla+1vDct/Lb8wpLO/4/HDjn3D/R2rFFXEShq0+xggg9TXTsENIG6pCiIUG30ew0SxiHO5AWGYqcMuH6LOeqFTN5lFw8OXlJjF6GWgR6ggkzjanypMOAbzSm5Eu2a9ULWINE+MTjCQybMLAje3k4hCDWQYDTH0GLAdVcL6oLM0e/5YPxUAHyHrD0nrKO6duFdtu+nbk7tHmh03hNpgZRsMojVmH5Pplq1fKxRyQhNjH9Od13G3syrAIZLmJUg6HQQc96jq4fbLPIaf5e8t35ajQ/zrX7S2ExSx/mFBWsviYBDbC/jG2A2eejVGhfowg2R0+HMIHlhAZ7WsAFSwuN5dpdoSdy6S/CTa3TZ0O1vhIayXejynOFAGktI3LmOXiR6n4vbVvByJaiythwFDZHqai1vagHbpCRVMNBYeufFWb+gWVX4TVZ0RJfmxb3CiMTDWPuG54m6HHuKLFzmyLyKhOxzo9HCDMdA8qCG6YCBiEjy3aeXsEHOqcUm53n83jqe1z3dFEpruvh0Gjlk55Hpp2JTh6BiAvQGWDf/2ag6MWO9cyjFxx5wmZBrutJox+BL1aKZrO9L+u5iMKFKLOrj3kzDxMIOeswyKNePttsVg X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 275b3b3e-12c1-4558-daef-08da57e6c43e X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:07.4769 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jdqxWTMx9Miyzm9uz2llomwPUoMoqo31S6OzjIpBLZvar/NVvLdfN/CxO0SIw4JNDmVuwPrOkqv7S4EUaiW2kg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Use more generic name for S40x msg structure Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/mach-imx/s400_api.h | 2 +- arch/arm/mach-imx/imx8ulp/rdc.c | 2 +- arch/arm/mach-imx/imx9/trdc.c | 2 +- drivers/misc/sentinel/s400_api.c | 44 ++++++++++++------------ drivers/misc/sentinel/s4mu.c | 6 ++-- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/arch/arm/include/asm/mach-imx/s400_api.h b/arch/arm/include/asm/mach-imx/s400_api.h index dc176e1f619..89fa373d06f 100644 --- a/arch/arm/include/asm/mach-imx/s400_api.h +++ b/arch/arm/include/asm/mach-imx/s400_api.h @@ -26,7 +26,7 @@ #define S400_MAX_MSG 255U -struct imx8ulp_s400_msg { +struct sentinel_msg { u8 version; u8 size; u8 command; diff --git a/arch/arm/mach-imx/imx8ulp/rdc.c b/arch/arm/mach-imx/imx8ulp/rdc.c index cc47079d8f5..e24eeff8a20 100644 --- a/arch/arm/mach-imx/imx8ulp/rdc.c +++ b/arch/arm/mach-imx/imx8ulp/rdc.c @@ -184,7 +184,7 @@ int xrdc_config_pdac(u32 bridge, u32 index, u32 dom, u32 perm) int release_rdc(enum rdc_type type) { ulong s_mu_base = 0x27020000UL; - struct imx8ulp_s400_msg msg; + struct sentinel_msg msg; int ret; u32 rdc_id = (type == RDC_XRDC) ? 0x78 : 0x74; diff --git a/arch/arm/mach-imx/imx9/trdc.c b/arch/arm/mach-imx/imx9/trdc.c index b0881697a10..3f37ce712c0 100644 --- a/arch/arm/mach-imx/imx9/trdc.c +++ b/arch/arm/mach-imx/imx9/trdc.c @@ -315,7 +315,7 @@ bool trdc_mbc_enabled(ulong trdc_base) int release_rdc(u8 xrdc) { ulong s_mu_base = 0x47520000UL; - struct imx8ulp_s400_msg msg; + struct sentinel_msg msg; int ret; u32 rdc_id; diff --git a/drivers/misc/sentinel/s400_api.c b/drivers/misc/sentinel/s400_api.c index 01a673e5e13..65032f77362 100644 --- a/drivers/misc/sentinel/s400_api.c +++ b/drivers/misc/sentinel/s400_api.c @@ -17,8 +17,8 @@ DECLARE_GLOBAL_DATA_PTR; int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -62,8 +62,8 @@ int ahab_release_rdc(u8 core_id, u8 xrdc, u32 *response) int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -92,8 +92,8 @@ int ahab_auth_oem_ctnr(ulong ctnr_addr, u32 *response) int ahab_release_container(u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -120,8 +120,8 @@ int ahab_release_container(u32 *response) int ahab_verify_image(u32 img_id, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -149,8 +149,8 @@ int ahab_verify_image(u32 img_id, u32 *response) int ahab_forward_lifecycle(u16 life_cycle, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -178,8 +178,8 @@ int ahab_forward_lifecycle(u16 life_cycle, u32 *response) int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -226,8 +226,8 @@ int ahab_read_common_fuse(u16 fuse_id, u32 *fuse_words, u32 fuse_num, u32 *respo int ahab_write_fuse(u16 fuse_id, u32 fuse_val, bool lock, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -259,8 +259,8 @@ int ahab_write_fuse(u16 fuse_id, u32 fuse_val, bool lock, u32 *response) int ahab_release_caam(u32 core_did, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -329,8 +329,8 @@ int ahab_get_fw_version(u32 *fw_version, u32 *sha1, u32 *response) int ahab_dump_buffer(u32 *buffer, u32 buffer_length) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret, i = 0; if (!dev) { @@ -363,8 +363,8 @@ int ahab_dump_buffer(u32 *buffer, u32 buffer_length) int ahab_get_info(struct sentinel_get_info_data *info, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { @@ -394,8 +394,8 @@ int ahab_get_info(struct sentinel_get_info_data *info, u32 *response) int ahab_get_fw_status(u32 *status, u32 *response) { struct udevice *dev = gd->arch.s400_dev; - int size = sizeof(struct imx8ulp_s400_msg); - struct imx8ulp_s400_msg msg; + int size = sizeof(struct sentinel_msg); + struct sentinel_msg msg; int ret; if (!dev) { diff --git a/drivers/misc/sentinel/s4mu.c b/drivers/misc/sentinel/s4mu.c index 18aea27105e..794fc40c620 100644 --- a/drivers/misc/sentinel/s4mu.c +++ b/drivers/misc/sentinel/s4mu.c @@ -85,7 +85,7 @@ int mu_hal_receivemsg(ulong base, u32 reg_index, u32 *msg) static int imx8ulp_mu_read(struct mu_type *base, void *data) { - struct imx8ulp_s400_msg *msg = (struct imx8ulp_s400_msg *)data; + struct sentinel_msg *msg = (struct sentinel_msg *)data; int ret; u8 count = 0; @@ -118,7 +118,7 @@ static int imx8ulp_mu_read(struct mu_type *base, void *data) static int imx8ulp_mu_write(struct mu_type *base, void *data) { - struct imx8ulp_s400_msg *msg = (struct imx8ulp_s400_msg *)data; + struct sentinel_msg *msg = (struct sentinel_msg *)data; int ret; u8 count = 0; @@ -171,7 +171,7 @@ static int imx8ulp_mu_call(struct udevice *dev, int no_resp, void *tx_msg, return ret; } - result = ((struct imx8ulp_s400_msg *)rx_msg)->data[0]; + result = ((struct sentinel_msg *)rx_msg)->data[0]; if ((result & 0xff) == 0xd6) return 0; From patchwork Mon Jun 27 03:24:34 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648558 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=VkFg6ury; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXF24Zd1z9s0r for ; Mon, 27 Jun 2022 12:47:02 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 73E71844EF; Mon, 27 Jun 2022 04:43:26 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="VkFg6ury"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BFBA1844E2; Mon, 27 Jun 2022 04:43:14 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50059.outbound.protection.outlook.com [40.107.5.59]) (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 18B28844D9 for ; Mon, 27 Jun 2022 04:43:12 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nh5mysXFGsdCI/dHW/hYYG/MzWZFIiMe5gMplByP+WD7bFz0Q/bK3dSDUgoW9zE6I4cOF5oArUGCwU5X2gK9GCSvSypZrgKfHa5arJ1XLGPLD2c23gQH4EVOAPXc7Usk9nwz2nHwNqrpATMLhOZ+ZGsL4aTy9wpvqC5C02HbhtA/S+oWtgije7uNZMqeljoLj71aOsu32/DjiUd0vdMT07UFmT2oalFib/qpueuGN+B3xNlnYU2Es9R7VTmbGY88VphTrVXFfE0oLDLRaekuC/JvKSgReZse2ZEGUQAQXBo+oKkusPiBjAYelTaRY8MkExwQaGz/nTPL76PQiiuTzw== 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=Yrw1dXZ87onu2OEPVZvRn4/QfSalB0cd77+U3gDHBQo=; b=K6Ff7ZW3yG2TepM2BTIM7E525hTEOTj1hw4QnBwGObUTdO51Vj16TawpRzUnij7DXy+YLPhAXWH122qElgMiTaIdg+JiE/MqIA6z3EQnEIN1d2lth/jgt52PieIgbppVIrSZmoogM23g4rjwb9JVF5X1hOQ23SNDkWm0AydojA4J88bFc039LXYwZ8oN1rxUTy38LcGMs4jcT7Td1ZwEYsgUXzz5rmaI96usqUheZXmYSWpWXSFE2yCRim467b6o+m0DiNxZY9ew1c8RPeFAQp+fO1aRX+w6w6l57dcrqNecakzXjgEoOhBhhoCwbthPFME7On0Fs7BGcuF2l7ZB3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Yrw1dXZ87onu2OEPVZvRn4/QfSalB0cd77+U3gDHBQo=; b=VkFg6uryHWp5c8WjLvqvDYlwicMUou+77fRRxEZa3Lw+iMnSXL5xgopoMIupLlktgunG3IsdA2t9yYCI+QEKjiwMtjLJ8fQOOjLqppNExAlOlxF86RBuiJdj7h+xZioBj6vVcuQwSxULtghkyvH2M/4YoVrw+w6GC20TpAPBWgA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:10 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:10 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Alice Guo Subject: [PATCH V2 28/49] misc: imx8ulp: move fuse.c from imx8ulp to sentinel Date: Mon, 27 Jun 2022 11:24:34 +0800 Message-Id: <20220627032455.28280-29-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 029ca9d2-e7a4-46a3-6ec1-08da57e6c5db X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4BrXDVaMqRnDBiy8rvsSn4GX7MSq1aM/VC9Ybq/+JtD+UB0xQYON6JlhASF+Sk09Io4UNsFNy4RODvtrTNZOqmigjzRnld4wWaWreAUMb3+0YlWn9UIoMO2xLLwPJhG4Lu4YPp4HrQXOl2TBQ1fK2FEN0aEQ/AUoqOeCPbxLfp1Y3NfEs3ZaAPp1R4XIHyDt7SBpQNTb9W4CDZ/in1ynJ3w6R+aABPj2X3bE0cDgsibHeO/pegculEs5TBNqy/9yrp1MR+VdTH2u0uHlM//nbbtZ+JgobfqcPoHb4ZWvGu4XgfcfVvNlnuxn+6qv6XcgjODbFz+R0/EShPDfU85LjdXl5Lbmfg5htVlkKSCVOjyv9aL2w4kh2AbWCb8eHLbRKBL+Qtbm8pNSwABsFU24ggMWcDdkL096Mi8h3apJ/GSpEt64seQqpMZ/fcF+PzKtizwTwyPz6VCAnSTohTjWpmHLNOdUvYa07uL4/2kqadojw4MHPYV+bPec7WW9lwwqkU34oJoq+tLjzMY69gdCLCMtNAXJHYMl+rsrhhcdi7h8rvL5EWJVGD45ilnGGG+6n0wqruwnrosrpeIyrELGpu1jMwe5R5EvNqdBrKn8c1eo3I9TxvQxJPJ5FT/Nq1JCuSULyqniAv/xLv4UP1zoLQnAM63+qkXgZkHhE2VKaY+tmSLuxVcGTTGq24VghLKozgrhm/ja/hhZXZY4sOVdXjTEpdivfSa0kgW5ETkaq14he11zY53xWvz9a/sqrw4AoftA5HPfB4R4uEKaY+XOiA1GCJSIf0uk1NZ90Ae0x5uNSGCNF1NyjVMe8phMQHJ1QqYsqCrj4xkX7Yfe1ybD8w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007)(32563001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: jrd0eSrB/uYsu2rvviT5IvbZNg5A9fgty80RJk3QQUttU2XiwuT7M097mM4YP0+ISORVA1RL1v8D01rCSxf25Upp9OzVcFOy6t6RvBeIQk3RJ+sq5fzqMF7W5qYWnoJULPSwBlt7OKelcQR1myYWQF7zKXLiPrd+CpLMIENJHXBKl92RuCBFHGyj3ZREryPM3VOs9bodJ0EdlyONTExO/EvCe2O7+gzdRYwgZclk5nRmllYMqCd2XpVEGgdNAoeAkv9r7OGFTi8eOoxkGoY5aMawKSg0Q1Fn2cvLXHp+YtPM7MvCl40zFmQg/n6FPF/Azf/iA0sSkEOILhK/3tFG5MiCfwtK3QjP41T75wdA9uFXL7N8F/L5Cc9GPHcAqesOSRJfHyWXQ2SIuxXhevDmX1HodH2rhS9fkCEQKpK5dVDU9Ls08RjDs2BRmf74XuOgVjXDfBc0aaVRIS2R6hCvKoy45fUUCHfi3FfYg8x/9HyG97FpAqWFwUvloYIlydM047TrJjbH1lt6rkyWyoJYTEFY57onwb9cZemlzQpNKXL4Vp76hnZaxGdBNHa8JopyEfV33eiLbcO85mrh+h6VRfTCsB0DUiQwWr/CpThCbgoG/eIj/bkSbnzFvGzu3zDa4jcxJKqOaFU9Xxvtb5JZWJGqWdP3FuKSqR/FDj4d1HyNXAqWZv2ZVOg/7Mv8nFBMdpZPg0QxM3d/OucX5J1LMB1TCf+d5WqLMZHT2uUwLqqsxU0ntDQGmvfzhsq/LXmFYLzu+OGjLhtkhsT5o2WdpNPa/21dgtH1k5nn7jVv+0gozKm8mdiOQjfE5NImuoZS9Qzyba/ay1krKyAKwN3Kgu+WjHwaJq+FcX1a0uZVFUqgAZi++Wnj+SvBtS3oTHD/q5f1WFT2yJqpJ/G/PzokTQaUbP7mFwMm51t7iOoxsVVPyXLmqvS1fsitcUlTQnxjLxkIFu/AgrP0DJFrEntoDaf0WLt45G56ili5XRpSvCpToS4ESZ2SBS/pMSJgQwFD4E1WTTevtHBbvdMlMHm0BzCvJ794cvgZDcuxnRi6wtkinIYlK1+RkOwn8ciG6ZwatAGaJcU1KrhoRfvyC1/4rP7j2sR2dPiif/MWvo10btn79vpfLVOSv7gF8AdKy/TUYyoRCmd+yUHBvzaDB11r2yvEPcqDPYF6d9YCd6eX2JcPNvl7SiA50D4aiTuw5ossbxYoXiEGzqgd85nDiw5ZiBMJlV9zXZTh1+FAWf43Kskl9S3xZp3TDryJ4hglrtKtwGm6T85Bdv5mY1ND35tKucvUtc4EEkaRvsSCzb+ATZ47H2esy283ibDGhXf7v/aKX64SJTNjAmHHS+TRTu8wlot3g17YTDYRIMCkzuQKirHj2DPkdefROSMkYqSwV0A6GJ5Pvw+DLFYCDAcRaxhzitLM1efIJbrY7N0054YUtAjs0RobK8hSursVperO+/ajVymo5ymd9BfLc+LQKLlFCaRaocI7JIW7UVpgs9YWUX7B3KmOQ3i8p5Nf/jXtgraQK3EhouTn/EB3WsrJHQLq3hWiRg63L0ZYg5SPKxheG2CtInBG5y90oBLBthwsEYfB X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 029ca9d2-e7a4-46a3-6ec1-08da57e6c5db X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:10.3226 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0VWIPEtOWQzsn0NXMWPuFT+mCpAP9U/LjEzwGfycWNUDBNUBbm15vVn8RbPnsJbZlCKLWK9qRJmjQKy0j3su3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Alice Guo The i.MX93 platform wants to reuse drivers/misc/imx8ulp/fuse.c. Moving fuse.c from the folder imx8ulp to sentinel makes it can be used by other platforms. Signed-off-by: Alice Guo Signed-off-by: Peng Fan --- drivers/misc/Makefile | 2 -- drivers/misc/imx8ulp/Makefile | 3 --- drivers/misc/sentinel/Makefile | 1 + drivers/misc/{imx8ulp => sentinel}/fuse.c | 0 4 files changed, 1 insertion(+), 5 deletions(-) delete mode 100644 drivers/misc/imx8ulp/Makefile rename drivers/misc/{imx8ulp => sentinel}/fuse.c (100%) diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile index dcba39a15fc..33ccaf04f6a 100644 --- a/drivers/misc/Makefile +++ b/drivers/misc/Makefile @@ -49,8 +49,6 @@ obj-$(CONFIG_SANDBOX) += irq_sandbox.o irq_sandbox_test.o obj-$(CONFIG_$(SPL_)I2C_EEPROM) += i2c_eeprom.o obj-$(CONFIG_IHS_FPGA) += ihs_fpga.o obj-$(CONFIG_IMX8) += imx8/ -obj-$(CONFIG_IMX8ULP) += imx8ulp/ -obj-$(CONFIG_IMX8ULP) += imx8ulp/ obj-$(CONFIG_IMX_SENTINEL) += sentinel/ obj-$(CONFIG_LED_STATUS) += status_led.o obj-$(CONFIG_LED_STATUS_GPIO) += gpio_led.o diff --git a/drivers/misc/imx8ulp/Makefile b/drivers/misc/imx8ulp/Makefile deleted file mode 100644 index 450e615e645..00000000000 --- a/drivers/misc/imx8ulp/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0+ - -obj-$(CONFIG_CMD_FUSE) += fuse.o diff --git a/drivers/misc/sentinel/Makefile b/drivers/misc/sentinel/Makefile index 3e2f623b278..446154cb201 100644 --- a/drivers/misc/sentinel/Makefile +++ b/drivers/misc/sentinel/Makefile @@ -1,3 +1,4 @@ # SPDX-License-Identifier: GPL-2.0+ obj-y += s400_api.o s4mu.o +obj-$(CONFIG_CMD_FUSE) += fuse.o diff --git a/drivers/misc/imx8ulp/fuse.c b/drivers/misc/sentinel/fuse.c similarity index 100% rename from drivers/misc/imx8ulp/fuse.c rename to drivers/misc/sentinel/fuse.c From patchwork Mon Jun 27 03:24:35 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648559 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=e6dRSFIJ; 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 4LWXFK6NT7z9s0r for ; Mon, 27 Jun 2022 12:47:17 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 721C6844FC; Mon, 27 Jun 2022 04:43:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="e6dRSFIJ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id B5138844F5; Mon, 27 Jun 2022 04:43:18 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50072.outbound.protection.outlook.com [40.107.5.72]) (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 E6BD6844D9 for ; Mon, 27 Jun 2022 04:43:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ivfPdHYZwTJH3JbPx3XW3TpuLH+eMllCzulFahwimZ5BQkQnAgMCNeBPTxObE5nYCtnNAOMtO2gtjsVvGrtVH9pFSsA9kRMS0Xq+veL9M963WlbUOkq6uKjfjNwKPel2dv8w4a8fmzBGqZPjHv/i8mQ7EnX7xftQ/c3sdS7s8G/bGWiY4Ptqdml3uvzWOgCj8a90LbWW6FfqlXBdE5OHJHWnqLSEP+WY2IGhWI2aoAD4DYe4WVLdIL8rp2/2eSLSKI1TNr9AW3ZNo9OwbEejqaJwY01eBmV9qLMtsCF7KZc7B5lCGfaJMK06i3O5KxPLoR0Q1/oZzXmdKmxbwM6gsA== 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=bdDddiG/0JZzkjOR45c6zYZCPSCWL/GzXK/Tj9zWsOI=; b=cRulLr2TGCrSn7Ik8ZFVDBBQ0EuY4bPJaL4HFFCoBiX3RfO1SLDHAxJQ3Ui9wLUjxX5tugdChyj7wTBNl//eoWP+ir8nuNWJyWUEQewa0tzFcWolB7WVZjQI4St5QvYeNsijEw29Mbv4Ois2nQb+tacciOKKVj8dAfdKR+dFKTeFpWknRuDEgfBBG0M1LufzQNuDJnYZBHgaEFo2ysATsXCec796Ce21K18VBEL8jtWMWAXWV9cLcxiIED44MAfOQjsiy91YX3+HXlWo3dYSVE8QpjLN+7TbPySakHrdpp8OpP/lSJVwsY/l9rIa7C13zYHppDpBmAHjRAGB8guaoQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bdDddiG/0JZzkjOR45c6zYZCPSCWL/GzXK/Tj9zWsOI=; b=e6dRSFIJhVkkfCQVnCNfXfktHNi/35U8W97HXlmtLTaaxYgDj0KAYEO5RP5e/np5PZefuMC1f7OlD23uKny4tFNzjTyGvaOVeX8PNWI5Z9ctnekI1R+Mdic1gIeVJUhCyrMb65uSlxuJBhF2B0ceH9RBsPIpLV57EdY73BCPYJ4= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:13 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:13 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Alice Guo Subject: [PATCH V2 29/49] misc: fuse: support to access fuse on i.MX93 Date: Mon, 27 Jun 2022 11:24:35 +0800 Message-Id: <20220627032455.28280-30-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7e740fab-fc3b-4993-f8ba-08da57e6c78f X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nAl6V89WlMh87WDZ1KthuAFV4jIGNNC6I8WJTqK3F1owMezf6Zj+GUV99wwFj9VPFM5ae5kprDKK1WD3yOQhsUee0/wtSLsoBH1cUU6eDIyF3ErzJizcxmvTlMm8dfEmsWY9hm2eu+T4foT7PeR6vJgqvCW8TuvfaDZu13RlNCJ3We1pLTBWmHeLKzszbRQ/oqPEhD+J+JDULms2O/CY2BTQb609Kalc3DhhtQjXBg7ef+Mw41KaLM3DRCgA85MMRJlu5jhJo3geuDOS9/v2acwPlk3TLD0GYXXIUP9s0HJHY8USi+NpQ1sjmlpao9cE6CNprE4e0Ndk25JWQmTJlvdMMUtKi79jPaLoEtwxlyN0IYmz1AIIqA2CRtgAWJATPvzLEXIBWuHn6ivgQXMygrv4Igu4PKhdPiWpzrU64LOJgQF7tuGLSrywesZi4XJ5DZwvkNh1U/q6nstPHuWCY0TOQ1Cw4Gxon4ZPOLD4p1v561dc0iTsHDuF/ag9/hgXvZf/59J2q5x7UqIV5of5CvUpvtHnNOmfq1eTwLgT6P5LkUtJw+gHAo3QNOhDQ5jN+8AbIHnoAfohEY8gV+k+M3rL+La2aeBnKUZ+19ruQy5HweU4aq+OmoPFgkE0WBqDXUjMdScmC/yfnVCuEmctbz0ypBWJrWKdeeIYdU4Kt3Bl0rEui6iFzUskF2DMTvJOQrcQ74hLL7i0YT3X+62ubdZn5bQuGRJ7CsBzy96SNM5Aagfp8YP0flmeuhs3CEAaGiecIpPljZ6zhQlamdjmYH05XgGk+WyE5bNgrl3FUto= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7b6CnjFI9UVxm3nerWv4Rmymxn3ENAh7I7fmbs2P9n2oHPWTZ8JUz42526cnkNrJW9X5/83cIwoafzdvEikd0/gEPhfGod8yaO6ClAdyMYwnZNzIc2S/vHtBm4V9rZFVxTf3evl8ZDzlM+gE47hHw87v2mUN+71jmN8fmQ2RTOcOX5mtnVjEvDP9CtY8UDNDo0CS+Nl9P/Wzjugz8Mw7DqzaHWETEJqE1SOuIeJwX6aNYPwSY0yT2Mj9SAxDi5TeMe/+SmkDAfp5V+8EQChsbbXYTrvoVQbqhxG3CIBD/JhR24em4RLUR6CnwR2/H2xkl0Syb7SPC3DPuMzJJSQ8PQzpGhPKrvmVO964pvSiy6ig36umpn79DsRsKO+xdyGc43WKGhdUAB+K3E6e7fQSCgpMFTjCL76y+ZSMYsMhqgkJJesfKfYqrfLIQOee0tTIwrqmCNte5MbcmGyi6pjec4Gg3nFox+OaRjzaY3eiZPSWP0x5z5xFhmmyH8ich0/VlwC2sK3QD1KS2yw9wj7Fr5xRI3vyxnv9lm2BrFIUda0surh3AmIZop9oQKA9DU55PmF7Xqph1hR3RI5KKTueO/UJqgV/Z7pDiq2gqkPzgeJelUbx9ipRwNaCRh6YLHIFNQ9/mao2yDwC5M4db+1tqzQv0eNxN3j+fGJ9z42LlPd61gKDOTgf0bdfkg+Pp7TlOCGWnMI64IMoW3AWLBySykleIzKKaLMbb8ryjGu6OpabJAMtiuLwUvRS3YrxlOfw8SWK4sETDMhwhGJ72ytCfUGv1xUS++i243VOcpknZwTJdZtznyfR/SrVpTboCgOiSbHj+2j9Obewv59HGexHQqDXP7uoX6TJSrqcqXAvkDRqvlYj4vCe8jc+rRKLNBPmYrNovzATPf/y6UTYNYBj1iLGkb/uGahLVX4Di4GxAj0rzdWOv57qTH5wZdIMsi9Svs3xKTZ1tD8jMom6VftUTyf9v8Zjix0biANmJBvOwWMqABQnJVC2ysE2ZL06bTv8x2ZANnoeI4H8aqImP94krxSRnVYaQjljRDM6hKGs4xwr6rtUlUVQGQCuVfyHysV8FqzVma5npQhKpdJFferGRLUpL4EiH/2Oa5RSbRHSNd7qQxnTW94+zbCQCsm6/uj2IF2szwiiVyAbmFouZonyQYysql4Vwa19b0UgeNlg1cxQ5erPZiV12IGwuAVjQBkhcZ+zIKos10OI8qjV//LYPO9L0FahC/Abhydf3YxMTwd+bIao63uAIOuReXv7zqw6L2KzbTxFrIwDx3bfT9D3EKWCDIcQQAXqjNpokcOOrUszTmFCpbRJ8mbsWOfZN1V4UfLNhsC0tPzCZ6SF8XILiC9EbqwUPMMj/4a5UiMh4WAogVc7qbPkLPJyh4Ma52t+cSg6al7nEZd4EXfqRjafR42DpisKB6gjX3zmmc0e1n5jx/XSyoBCT0zUc1R83bOnNjGMqQ5z/q9HdoRVSz+q6vnKS8NveoSasdxPwwIWQYY1UUs0hDCbMVyH794i0PIEiYq3UpNz1ENfpnVtY7oYQXFlE5fb7Wli8v2hzBe90pNAhY5bAd9UkDXZor1n0AvS X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7e740fab-fc3b-4993-f8ba-08da57e6c78f X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:13.1041 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qLhcViQG6YP1a1Yxzm96O8+Za3Q7WF4N7EW+2K/coelsazsgyjdLvFo66xVoGKcrHgBFsxbTfQuVukuSGFhxrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Alice Guo i.MX93 fuse can be accessed through FSB and s400-api. Add mapping tables for i.MX93. The offset address of FSB accessing OTP shadow registers is different between i.MX8ULP and i.MX93, so use macro to define the offset address instead of hardcode. Signed-off-by: Alice Guo Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 2 ++ drivers/misc/sentinel/fuse.c | 30 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index 7b84b970b75..fa6951ebbe8 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -19,6 +19,8 @@ #define WDG4_BASE_ADDR 0x424a0000UL #define WDG5_BASE_ADDR 0x424b0000UL +#define FSB_BASE_ADDR 0x47510000UL + #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) #include #include diff --git a/drivers/misc/sentinel/fuse.c b/drivers/misc/sentinel/fuse.c index 83d2c25731f..abb4c072f9b 100644 --- a/drivers/misc/sentinel/fuse.c +++ b/drivers/misc/sentinel/fuse.c @@ -31,6 +31,9 @@ struct s400_map_entry { u32 s400_index; }; +#if defined(CONFIG_IMX8ULP) +#define FSB_OTP_SHADOW 0x800 + struct fsb_map_entry fsb_mapping_table[] = { { 3, 8 }, { 4, 8 }, @@ -65,6 +68,31 @@ struct s400_map_entry s400_api_mapping_table[] = { { 23, 1, 4, 2 }, /* OTFAD */ { 25, 8 }, /* Test config2 */ }; +#elif defined(CONFIG_ARCH_IMX9) +#define FSB_OTP_SHADOW 0x8000 + +struct fsb_map_entry fsb_mapping_table[] = { + { 0, 8 }, + { 1, 8 }, + { 2, 8 }, + { -1, 8 }, + { 4, 8 }, + { 5, 8 }, + { 6, 8 }, /* UID */ + { -1, 8 }, + { 8, 8 }, + { 9, 8 }, + { 10, 8 }, +}; + +struct s400_map_entry s400_api_mapping_table[] = { + { 3, 11 }, /* 24 .. 34 */ + { 7, 8 }, + { 16, 11 }, /* 128 .. 143 */ + { 22, 8 }, + { 23, 8 }, +}; +#endif static s32 map_fsb_fuse_index(u32 bank, u32 word, bool *redundancy) { @@ -128,7 +156,7 @@ int fuse_sense(u32 bank, u32 word, u32 *val) word_index = map_fsb_fuse_index(bank, word, &redundancy); if (word_index >= 0) { - *val = readl((ulong)FSB_BASE_ADDR + 0x800 + (word_index << 2)); + *val = readl((ulong)FSB_BASE_ADDR + FSB_OTP_SHADOW + (word_index << 2)); if (redundancy) *val = (*val >> ((word % 2) * 16)) & 0xFFFF; From patchwork Mon Jun 27 03:24:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648560 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=QzzxUX/T; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXFR421Rz9s0r for ; Mon, 27 Jun 2022 12:47:23 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5C1BE84506; Mon, 27 Jun 2022 04:43:31 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="QzzxUX/T"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BC854844E3; Mon, 27 Jun 2022 04:43:20 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50077.outbound.protection.outlook.com [40.107.5.77]) (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 B6DD0844F4 for ; Mon, 27 Jun 2022 04:43:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CiDV92+Ke4QDV/P9XqWLJDJStBZ43TCsgZKX5eW4EhM7HlAjq71YMmcJoAQofz0TZ/hWMeXX35co5zXJQpG9cj9KSnlkb23SQ2iqh5LMlEwrP69+Bsed122PyWrn+PiIOl4omd65jIX/NBYTOthIivWjjXfFT5Q2fJW9MBErxj7IkZuRCwCRhzIs7lBcDwiOL9HmBuew6W9Gt5zvIH1ax6pPYL1w1FCfkCKeeq06CtZ/lkpGIcmJCbxVKw5hMfXZoSd2DDTM4+qtbOPDXaE2g/QAcHxoiRs8HXvhXQ/WC4NmX6D6mHhILoyNsabF6RB83n+OSubod7EFDulMI1klFA== 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=o361Ya3kDSSSHe0beYPBmixJyRYnq75VkDQ8RYEx4Nw=; b=ZgEijxYkcibRMTVoTz8kQ8o+1nF44/aeGVYN9Yk76YCjoXC8/c2VCXtRM9bBAlYfhwhqN0NVYW8lH1fI02pY8q3xo+fqwZLIqq/uNyr/2j5OydT0ETGFqwIQOjXOpjaKXQ3WdvwBqGQtdqiNidtfPBNQxYVvxqJ7z4NglWworLmbniIzY89ddDUG1m0IIvJwSSCtPqGm6CmS1n5vrcty926QHf/bh4llqGwu6gVuG1CyXFkeqaJduPjDOjdS6mXwYpyTYhCDV4MDZmvqAIZLw2lcDvBOXbHR+ACO/COfEjWo2kr+kFLDzFA0+Lr1Ajc68RCDXNmydYrF56A42lGWlg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=o361Ya3kDSSSHe0beYPBmixJyRYnq75VkDQ8RYEx4Nw=; b=QzzxUX/TB/E+8AQNJNWcHwAgW0D2PsXy6nGCxBdeIlEtRdbyWVW9TgjgiRXpQgzSW/IlOLLRf7u0uVyfmkbH+4MeQ7WYAIECF8tkhM+pOuy/D/Jgju04QuXxmkT4HMBMTQACsuVPhOCQyKp5zjEAK1R6rCAH8Oe1i1fomlTbWnQ= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:16 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:16 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Alice Guo , Ye Li Subject: [PATCH V2 30/49] misc: fuse: update the code for accessing fuse of i.MX93 Date: Mon, 27 Jun 2022 11:24:36 +0800 Message-Id: <20220627032455.28280-31-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: e987b7e8-6931-4e59-eb36-08da57e6c94d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cpxqJh4UP4atvzfzNXypyy0BugDun97yy2pYPoM4hAbr7nqKOYGOG4tMjah1uiupuRQRX/VtRY7BzYyzAvwJxcBkmEpoAtOyKjV16Rrb8+tU4PRahSNmXu6y++LJpGrHhfCuRIPvTzINc40lYR46wkrjuUPZowEvyHjFcE8opNNxtLWiN+LTExqDVYLjwmwJVpMP8kmto+voNC4gEY0ir7ipJvXeFWodnDIEE6e1sKsKy4KOQ7M86JTMEHxQpwnzWp6DGepX9aPekBCcc6Ok69T7Tn9BsZCjDw0vKdqHPj60bu/ByTpqWREvSXLFa1/KCqfojytbIcsGHL9b/tTlMwvb3BKxReFgJj06h7qQo6RPfj13Z1znzhIT7WSHNxMNg5+ZeOrSEis8EUCJNqiF9gRkvHZyhRbWvpcD10WKTu5NAbQBqeImwaYnhnNBj/Wz5NmbpQ9KK7htS6S0sQ8+WaZwMYZENseoiRJvI3LjQXor63xvoqxZGrPJxj1nbwhhZZi1+uF+E+ZGubbur9JvTELYeCxOh4piPdg++MMQPxLoQOCLCAkdN3MAeUAOuPAn6pewX8ZEmO1bFZuPdcbyKg3no1ipnGTDsY+Dj9tPJuvV9/ofgU4U/xj32g7g3Sla8soFB6vaRT5FFFMYHznVzKVRW20zn/q317ManCAXNZkWfunV8C0s4EKqTpUCPX3G7D03vFmMJ86xSlXNHgMVGI6gwQh8V/RU3qQOF6N4aESgAkYDy6jhIr6VHXS+7uSh6XIgMt3jDja8Sj695DsnZpmsKuM6ogBYUVquR9Ay1WQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(15650500001)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007)(54906003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +07AQAbFir8wjp0Dcvo1kqp76eNU3DoUD4INHZOiHm4Lt94vrN3v11MRddeN2fXI9MM3w5Ilr0mq2TbFwM/sTzTASjVgX7676qbXZ2pJ2aXudnmJfwM1Y/Pq1ahW+OjnDU7Y4M6IRKY32VuBhqNWgJ7rOeYbt0AKF3OTROjaDnfJnHSMc3A3jgW3wB8EJGphlQymb8Tu225/mkDlSR7JHcN1hemeE5jk0wlWasWHxVhzoYd7PWipXBqQMlu0Ul4x/4VxbcAahvNrur84/o+Vjk4dszhJWP9uD1fmCw2RQyUp2CFccCMnum0OHonrszcSIDFjQz18fYm/mmL3B40IT5qjpKjeGschUkcQwcKTgnxhvavEIcEGCxLHGJ422Wby9RrhN5HMYYBu5mQzRwydZRqaHQGPH1L0ZE5qhHXOVAahgITfVXeCL2HyNNmkqVLUqrYOZpB5LrxoCuGAljQh7yoxEDa80MU5so3/30AiCQ96zwdmkUgq49IHSYgiGiNX3uEfcuCfPqOq3GjEml+oB1Ug5CbouNqwu35xlyI5qMjj04feiuH1an6/oSOZdas7m9dEWSoeQjSiLSUHjDK8DGrY1m/bOprX2JgWjDjnGv6f18IA1/TxewXVnz3xHykBuaJfMM7FKaV/iL208znS8MqFSxlAgTZQdNXegcdOVR56nEY/9aB6PW/y6bP6Vo2JOs8jm7YujLveO8BgIDSGBVO7jD7HT7M3tEH5tBBecGjILfmoR0DC8736T7EvMUeWmf+sSM8tPh0dBpVBjZOtxckDp2hEmKsCmXPGdCGxiJ/wajp5m2WYEADg65b85HqwzCCPdXlGmnaWQbZmkqmqBJnvgGmcNSizxO63JqRKVxIzSDuQMjrQ2dpSDjdFX5ijldyPRKKWHDiba8mQg8Dtj4jqDSdQP18lAJ27eAFUQGT913v71djzuPTz8y1TiiPYH8BCwQ5dDTXbLDuVs1pIi5vCkCHnrcZ89v+jWXA33mPOqWcQ3qCX5JHtKuV1JqxKwQDDSR5m1jGloFdBbTmOtKT0d/McxXdG1IHu4lj154TIaALOcWbgtyWaHURrrffYMsiSqBvUxBUVoYBYVy69Lu79iLMnFbG6JxN5dZsrZCqVi7Ly6OdK/k6LDy042ttgxWxc6a/hK0Hc2F18Xdwodsd291z8p7HxDfuLahLeliAIhYeXD8VOPvTRybpxp91gJJlyuqjx1pHgrEqp6tnDN2kNaqHDJ3sp6B9hJXCtGd37GJg564BCIFGX9sNYSlwoi9cnwLD3+il4SPUnEPQdDKaoK3+kL2AmSWOe9oUeIxff7f/hsO7LzxNdfoa+Gz7H1mPmweWIakFsRKuyGPpDKT8yhw5TSGNn7Hfhqgb+1PmonyT+a2aw9xGEb8chELKn6brOJNKIOmX+Yr5t7cmmZZwfyDRKRWlG0gCAje7VcDUto0ulM6ajreB5pRWV/N44Ke58oMtGD/SmZKwIl6+nX7mAX/CaA49a4AkdaZ/E7x5cWt2Gi+3T5mULHlzexQ9NmqPGm7EK3xytPx/b5zW1LQ0zXwDoNtn785EFh0T+zJuofuIZ7HC+HC7FGeAS3pLF X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e987b7e8-6931-4e59-eb36-08da57e6c94d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:15.9486 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 969eeQqe+98NmAqp6G+K4Vr0xdribWNfaI5WKwBI5MqRu2UiuyIleQoDQsRljE4/6jSX1XsVXlPXDRhrG0GOKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Alice Guo Sentinel have read access of OTP shadow register 0-511, and fsb have read access of shadow 0-51/312-511. Reviewed-by: Ye Li Signed-off-by: Alice Guo Signed-off-by: Peng Fan --- drivers/misc/sentinel/fuse.c | 86 +++++++++++++++++++++++++++++++----- 1 file changed, 74 insertions(+), 12 deletions(-) diff --git a/drivers/misc/sentinel/fuse.c b/drivers/misc/sentinel/fuse.c index abb4c072f9b..e2b68757664 100644 --- a/drivers/misc/sentinel/fuse.c +++ b/drivers/misc/sentinel/fuse.c @@ -75,22 +75,44 @@ struct fsb_map_entry fsb_mapping_table[] = { { 0, 8 }, { 1, 8 }, { 2, 8 }, - { -1, 8 }, + { 3, 8 }, { 4, 8 }, { 5, 8 }, - { 6, 8 }, /* UID */ - { -1, 8 }, - { 8, 8 }, - { 9, 8 }, - { 10, 8 }, + { 6, 4 }, + { -1, 260 }, + { 39, 8 }, + { 40, 8 }, + { 41, 8 }, + { 42, 8 }, + { 43, 8 }, + { 44, 8 }, + { 45, 8 }, + { 46, 8 }, + { 47, 8 }, + { 48, 8 }, + { 49, 8 }, + { 50, 8 }, + { 51, 8 }, + { 52, 8 }, + { 53, 8 }, + { 54, 8 }, + { 55, 8 }, + { 56, 8 }, + { 57, 8 }, + { 58, 8 }, + { 59, 8 }, + { 60, 8 }, + { 61, 8 }, + { 62, 8 }, + { 63, 8 }, }; struct s400_map_entry s400_api_mapping_table[] = { - { 3, 11 }, /* 24 .. 34 */ - { 7, 8 }, - { 16, 11 }, /* 128 .. 143 */ - { 22, 8 }, - { 23, 8 }, + { 7, 1, 7, 63 }, + { 16, 8, }, + { 17, 8, }, + { 22, 1, 6 }, + { 23, 1, 4 }, }; #endif @@ -102,7 +124,8 @@ static s32 map_fsb_fuse_index(u32 bank, u32 word, bool *redundancy) /* map the fuse from ocotp fuse map to FSB*/ for (i = 0; i < size; i++) { if (fsb_mapping_table[i].fuse_bank != -1 && - fsb_mapping_table[i].fuse_bank == bank) { + fsb_mapping_table[i].fuse_bank == bank && + fsb_mapping_table[i].fuse_words > word) { break; } @@ -146,6 +169,7 @@ static s32 map_s400_fuse_index(u32 bank, u32 word) return s400_api_mapping_table[i].fuse_bank * 8 + word; } +#if defined(CONFIG_IMX8ULP) int fuse_sense(u32 bank, u32 word, u32 *val) { s32 word_index; @@ -198,6 +222,44 @@ int fuse_sense(u32 bank, u32 word, u32 *val) return -ENOENT; } +#elif defined(CONFIG_ARCH_IMX9) +int fuse_sense(u32 bank, u32 word, u32 *val) +{ + s32 word_index; + bool redundancy; + + if (bank >= FUSE_BANKS || word >= WORDS_PER_BANKS || !val) + return -EINVAL; + + word_index = map_fsb_fuse_index(bank, word, &redundancy); + if (word_index >= 0) { + *val = readl((ulong)FSB_BASE_ADDR + FSB_OTP_SHADOW + (word_index << 2)); + if (redundancy) + *val = (*val >> ((word % 2) * 16)) & 0xFFFF; + + return 0; + } + + word_index = map_s400_fuse_index(bank, word); + if (word_index >= 0) { + u32 data; + u32 res, size = 1; + int ret; + + ret = ahab_read_common_fuse(word_index, &data, size, &res); + if (ret) { + printf("ahab read fuse failed %d, 0x%x\n", ret, res); + return ret; + } + + *val = data; + + return 0; + } + + return -ENOENT; +} +#endif int fuse_read(u32 bank, u32 word, u32 *val) { From patchwork Mon Jun 27 03:24:37 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648561 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=Qfor9g03; 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 4LWXFd4ZCVz9s0r for ; Mon, 27 Jun 2022 12:47:33 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 5BD2C8450F; Mon, 27 Jun 2022 04:43:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Qfor9g03"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 9954C84500; Mon, 27 Jun 2022 04:43:23 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50083.outbound.protection.outlook.com [40.107.5.83]) (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 5DC0A844F2 for ; Mon, 27 Jun 2022 04:43:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cicO5Y6QECHXhAI8QwKCfctAhtFPNWoq/RzxA1nonBS+Frv1xPRyF3qtVhIM1hOt+H+Ln2XyddLt7p+wiHwlDsW0bjVMqfut8wAw8cOlNCLVQiZAz3Lkuxk1yabpQCD4UxAdDw8D1rs4Ak1PeYzBr3vupvBz3syVUzL90LnFeuUQRGmVyHHgdNFyAwlxnvVQ90eqTu7qM05naUW5K/tnEBO5eBAZXayy/qviCWWRz+5Pug9an0Pdo5vIlcR8J3BJD2eikH0ihFrAbQCrYuIsdtiGKy7nvRJpA8HkvsfJYayqLbUQM8J+EK1m56X/ZqjvVchcEalO42Ejy8hXgPvd3g== 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=y4sVCM0lu22UnWEJRRKsCVrvZBqIwULJ8OXRmRGt4Zk=; b=m4zsMsM2RI1e7ZmrTQvxsFbclFusl8N6OYSTpmkmk+nVPNXoQpoEOubzDXG1yi/n9qdZ3V/1bvtIQ1D3jw49oFauAw35AuTC3jAyBTj0VmpgPVH4Yyap3AUEoq594bVitlOC7j2B5WEnXERLaWnA+r1erFFV9uszmazCisnTWtb+28lfbSQVWnHy8quou6pbt6fhfHidQWpdKAn42UTU/NetygWDGqA92I3zuAOH8VDy9NgGkMF6JH6VjzgR4l5VDBteDgfZPebTnPD4RfD3QL0fxY6LueivIFATvaf6pSLNR5AuA5O+lwg35+60bAXO9ykukuqckBlw70+2g8EgQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=y4sVCM0lu22UnWEJRRKsCVrvZBqIwULJ8OXRmRGt4Zk=; b=Qfor9g03yBDxn4lWZsbvVG5rYK0y/iJT1iXjoah+UEL53nNXkv2OQdLGV2QuyjsXk629WFELPOEaSopktgT+GPCskA7wCt5626BnDuF23WMD0C8dV3nurrSlDN6IuAE7Wq7U4TCQqeOLkPJxEvRN6N58Rtrwyj3ojDGGz1HYzyU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:19 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:19 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Bharat Gooty , Rayagonda Kokatanur Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 31/49] imx: imx9: Add gpio registers structure Date: Mon, 27 Jun 2022 11:24:37 +0800 Message-Id: <20220627032455.28280-32-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 259828ee-2bf4-45fc-b3d2-08da57e6cb48 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T2yUbvsbrbSaA0jc6FA8LpVH+B9CgfE46J2QszlTRs3HvFSGQ2Pk+oscO557gr77b3IpBpdFseX4qOKhbSBXa0yfCfmAKxr2flZZE7EG29UNu/zFKfhT/OOdZLwG6FpRlxoZ9g4KLGDFzSoQKTxU3J6ZJ24jkIXFfnAq6x+ANuthX35/5XcAB+kaza9GKYbXX4uFWdswWEAfKnsbXBuk1+ydJ0OVTWmK1MpZ6UDDNpvADpmlLq2FYuTDA1M1Q5v4AbezZDhIRlWnU/Ye/xoTl4j5xeYePARoNe5glPfwB36usUxRVI86kx66o8KjRh71O9ETx1rHUvx9hm5sw24Y8X0ZbrN9eY/lWQZPta9EftwK1UaRY6kyibFAMkk+YqOfvd2XBHonH2D4V+rsVqjiHn4iBN3xKzZxAPWUGBsUHtVuSjhhRQvK8Y87zFYrYR3cl1A9stzMiunR9pX/rVxAVWzwzP2P/N/dmsA0SCKFfOwOVt5mq6a+Bxaco0i8u5WQx+yW1xxuVdTIGpl9D8OiNwbNC9faS+taN8uX6370A/T4GTA9RcLp5FDOWablAGidS8Bhu4Rt0MRUgomsHItbz8nKNLTwKUTeiJ9RU6GkH0bS0T4xD2JsurjOPTOCKSSRNuvWjccnjSNeYxMwH8hAG9ODPcg+UOKgZpFZD8Bq28wj6NZtzGcMekX3B1eq+TdUV/oIs7TgcovckTJh2rPKQ4L4lhbK9SilQVUvi7E+QKTrj8/qatmNkfLroJnCn7iB/hwNBK2CSKWj3qMpiX1Y+R1BwTh3HQo/cq5OCgKF2bc= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(110136005)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ta7iROM/EbQOLVehQ4y1H8bajNspSpQcR6vL76MVrHv9cwRjKnGZ3lajoEEIiLg03ikDx898KoI5YokEUE0O79/Hv+5ZgQvp5d+R4r6OrIi578K44oiERzFq3fwvhtQu8bqCEtQotDtWJXvg7UoirYmFcNJPiV0EdmnAz8UobMcz1W2AAVZEsjkOOoKfONaGxQx3cczrgv8kS/H/s4jvjIzt0oFsQcsy2D6Zt26459shEXaz0gVqQnVOLb3j453FFKwtoxYrwixmW696TGC8Rh3FpBzU5a6iTWKl6Idp18Xd2p/GMFQPyBMVNIDXKkzlyxvTMQahFi6vzQtWVxN4CU+O2h/aDYfzPnPr3T8xqxZtUIkF82w1fLX/+7YjSrpns843d1AKpXKVCLWj2PGA1hMJhDQe29C53OX7s4aaHIEEjBRjGT1liNUssGC2xInMsCjVFHVxtnz3XDry6vvlkI+sXd88y870T3O3aSoDcn011/m3gw3b7WqBm7dEuaBZs60ZBX3kjeSc7R9ricsjsB3KQ8diK+RvtHbt9Zf9bxMKEks0zwG3Q7kWNXB3WMhX9+BWiClsf/XkoDgzoFfLlPs9UwQufIrKBTLNE7uhxFfHezw/tu860REOL1PYtBPT1Zpn+nIh1E47q9cM122TgB2rVLlQocjpJuIjXrAi8Ne4NImVA0Va+srYpJtp7nV1skJSWfNmZhvslRACBAOZ3qbphiUUDxKUyTD7vmVZSs0nu4bGTAjCr7uSugJlQWphWomFhHdnBbDiSRZ+T+GEVDmVWALAYfxZ2oI5+oTILwsVSER3yYPVHpEIe3vTq4QT4/qKmMsKYPuXUa9jCFO8DXcKxWTn5qMtHLkFZ9Odh4vLkGeRkwwDYoVzEfQoHPA5x/mt/LUNQXx+9T2N3Ejmlr9NgA1lHocIXE8ZkVBFAD5UhLDnYuaOKQSbExWxkEGIBFF97iIqmU1b/iJGGtKsx2k0wgGIeyNy3VozaRm5Hzc0CGmn1seVACzEgKy3NGblIAsMajDsKzd5dmomeVdGAxCq99CFM/I6SBCEDW6kRF8Y3hrLzFaj5izbkKpkApkaCMxyjeQPF8xQeF0msy2TVlvkFya4CNbsRVa8ewao5KoG2VwHc6OMWohLuXicsUuKH7onBXF53opYSLZqG0DhiJwn9k0NlpBcvswHt3Bt9cIBjtcGQm9AVjhGfB09CO3YBMqkNtEn6lAWkuEfSNUQNj0wkWRaOH0+UcG8RCedw+DrTpO963VAlpEXKuIBmA2FgjpVI58CjqAHIz6U25HMVPRi8a424iIMveZA6rOw3dSngRaVHF2O7AQacU406aIGD46mfJc4HcB0/wc3K2ElQoVgAzW5Zel/JDzN/gxHPvLn1wgloU0V6DmeBXmB5uydemOGlGMXUwt107ewx0sRuouhH92py+oKOWjsKociM2vrVfv6JkADb0mCI75Vua5OQqawM3Wu8zKGrhNl9jRH0yqiBv7fFgPerXQS8CyVM6OgjsKHuiOqtZ4bIEjFl2iLxyuWcztZB5XLKbaQoPQ+CyUyIpVhUxyP+m2PcerymnqZJzZyCA7ycOX9iegGJrJm X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 259828ee-2bf4-45fc-b3d2-08da57e6cb48 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:19.4104 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JnZeQtWDegekHq0RIbnzke54n2TijFjeT6LKYJV6HnUKh7hB3uDbKowpa/uVrunFeQLCKo955rn8kvNAtOlxNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Add GPIO registers structure for iMX93, so that we can enable lpgpio driver Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/Kconfig | 1 + arch/arm/include/asm/arch-imx9/gpio.h | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 29b831422ff..7dcf5614e9b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -933,6 +933,7 @@ config ARCH_IMX9 select DM select MACH_IMX select SUPPORT_SPL + select GPIO_EXTRA_HEADER select MISC select IMX_SENTINEL imply CMD_DM diff --git a/arch/arm/include/asm/arch-imx9/gpio.h b/arch/arm/include/asm/arch-imx9/gpio.h index e69de29bb2d..40732022e7e 100644 --- a/arch/arm/include/asm/arch-imx9/gpio.h +++ b/arch/arm/include/asm/arch-imx9/gpio.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX9_GPIO_H +#define __ASM_ARCH_IMX9_GPIO_H + +struct gpio_regs { + u32 gpio_pdor; + u32 gpio_psor; + u32 gpio_pcor; + u32 gpio_ptor; + u32 gpio_pdir; + u32 gpio_pddr; + u32 gpio_pidr; + u8 gpio_pxdr[32]; +}; + +#endif From patchwork Mon Jun 27 03:24:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648562 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=GBZGC6Mo; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXFp71GNz9s0r for ; Mon, 27 Jun 2022 12:47:42 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C4F8284502; Mon, 27 Jun 2022 04:43:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="GBZGC6Mo"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id BD01D844FC; Mon, 27 Jun 2022 04:43:27 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50041.outbound.protection.outlook.com [40.107.5.41]) (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 937EC844FA for ; Mon, 27 Jun 2022 04:43:24 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JA35Ykd2Za7Bw5rs+gVxHnFGmG9IxuXMoAsfPiL10oQQ5Xz3VOXRJHzClJMxzx0KJAY8bovRMAkXB9vvxAsMmTD85Y6xc1xQD12PGZhz0wnqeQ2DdKjdG+Nxj4EFkAPGBn68KHeSimRi5oXRXuaahxCRezCbLJgGt+jPtxbLsm+Mkw2eDu8QviULSYKMmd/3B1Dm8qsliIsoTPU52BXs+t1j/UENVCOQTSOX21VJ1LxFNu69P0QRXe4YBt+j2c9isgjXim933oq6BHGviRJ4mL7GSt2LJXxTTTuv/FwC4iITaK+DqhQGcpB5dGWToC/RA44ulsjtRHPrddcROvj5EQ== 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=P+TW6RTALAhW7AlbPY4uMitCWXPgwV/0tJMMAL8dYGM=; b=gCvXqGnGzr2mKYWkCjQ3mhVMU0OTQ8K9/35JYtsbJDYsg/ctN7y1/k6YU2Q70KVYq75swz6pjv++4EV+q2zrk8fQcu6tHfvmUWV1Isn00YLrkezubgNAgnRkiQIYmv8s95GgK9OyKGGWhXqPbi378/4SRZeQ1mcjln5dQNAJgOVXSHiu8ZXJXSNg2MbZH8GKUJuYcW/EMYFIah0MVBnTHbtQrexiVCOljYqF9kbpsiBSLdpraVJQ1jbnghtnYn2bloI5420C1vuPRllpGQwcQjDsmE7YKtt0vAfd2qyhOn3kkhzYiy3zbFl9Skj5NIfTjubfkZiIHt8Fk4j2TIMIag== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=P+TW6RTALAhW7AlbPY4uMitCWXPgwV/0tJMMAL8dYGM=; b=GBZGC6MooCqvDIeyVG9TLQX8DG957Kffa9a9M9FIqh2Hxg+5fkFzvvitvh4oS/ZlDzJWkX8J37ixPwJaUVPpI728p7vgibiiwAXEfrX8E6vDUh/u5p1T1ZlSLvOq5B0FFCPyMkQov/RYuVp3bz5EecP1WVjSk+uqquI7SkFBl9E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:22 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:22 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 32/49] imx: imx9: Add MIX power init Date: Mon, 27 Jun 2022 11:24:38 +0800 Message-Id: <20220627032455.28280-33-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a09bacfb-f6c0-4f56-e2ac-08da57e6cd01 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RQfD/A1+PCv1GkxZlcmO/8ElHgBduIecYtci5n1MY8+OFKHxAvMLny8MUhPJs7HNFczlpDFLOTGom32b4cUYxfiiVGMkWfc+UFBHbJa2UsOv2gJojLpO10FwV8Ps6d5UZR4czRmMdCbQKxozmh6dmN2ppv8Jt1yLNWZKLlTqQkqLllf5/MlrWmDcuChMw75qkTolmp/FddpkxFZ9wM+jt0kQa1B3v6bkTTVry56BhfHtZR26pdoHaoZC3HNopmW1p49pjr0RqPc7mhhu0Kqff6tQ/vL2/b9hLzQa2EMjHIe+n2B7dq+BWtKkeFj+Jj5iAtmUZTRJOxDcLQ77bD0tO/GIdyMVnUtyJ6M87OM4bRmdhBPTW4gUwR0K5iP96l4GGEXioaisV37ROnx/Q8ZCKwEWa+7hlN5YXHyUYniYJSrgML372k13a+gjPDl2DuS6v6kx7TMsmikpdwLSC6xYCNPHfM3JUvpKpmMDFi5PvDdcEQs6xaTG+uAglNT3DGJmanIkv/lAUaaHcaUp+TAkLawcJNa/+4OKxajk4HnYXRKiV5rkNqraylbjJLVyYjXfPVqNSf2C7U394TP90/g51sPmVoKMQFmswjGUXmYj1LZFDJ6zQmUUzQLFioRgw1M7WvZw35DyZPETeQn0frOCB3Yzwi+sFDTbgAotQV59n081f9LLU+QLYFzmskMKsCeE2SVlnG0VRBt+wGV0x3M8oHf6rGnSKkwN1gSvao0Lomb5X1npMHhm/QtgFZJKTKO4jwIC9i/SsHFVKekHO0iexrnkLhu8BoikryllSsHN+LE= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 29BFHcbvKDYjqfMm1l/oHJqWPqWsJiqw5Ljwxf683SH3PntpNFQSbSCxEfEW7Elwj25TYsl4JiCiD2mhLxSbxpmlZcbdSvO6z23GpkJ1yNSR5faIQLbLC3PdH1n6cJ4DQFC9ktgllHanBqPUA+gEsDqvXoOaeMYYtLCVzLPsOEbb4ItFI6z7hMl9mQjNFntD7jYVn9vwE5a5rOQMalgWVKhp4Uc7qR3GPOeENGtjF+PwLcicgNKmktP7Vql/rFDFU4I1BPPIxVvpVGXw4Xt0Nrw4SYbuwhbG5fc1oZdr1l+jV37/XFBmVByGMbx3WL2vcBV1Un70XjprAWpag6yQRufMd93k0DxXfW2jD7nXHftZtIl0seci7k2cRkRQ4u2cl0NcmQkLwHIRip7fyTQfXLQcqpmX3Q6QD49hKxxDIK6N1eHzSRb6uVQKp2mEBMPnvs3WUbdIINNoKjRY/FPVd8tYOYN9fbJDuKXWBfzFShFwE5AmElTcHI9WclyOCdDWoxDxZkFzbP+acQ5WT2kS6adUse9ZYR++yso21F3/KQowGgNLmFANvuw3Gf7zG6nFcFbzUd6ym89lTXVy/82wvglHkbO4QPiHsCsN4BYt3VKaKXCgx2g8qRvtbUryIBPyW0x9gwO07W74vyZ5Jsb1sF+4nDRj3f4wRTo03L6gyvJaEkQSUb2Ld22Ne2QIsuaqQ12UDLocIyTB58yW1XczUxZCua2GACOZQH/DeGCg8e11KVCbXetG/6dxtReAw4z188TCtBfrl6BLz3NjZJkBA0dRuZczNZW7jZy4nSgKHZXha2CtFAjT3J94vtQqMe9/Ml1rZ3qdQaLGVGPHpJjQEgIRRTWXiaW7MNqru5nU/VIWt6UwGDevPmBDDtkmBxBfsjxWGkQitkCHpUnSy+L0WCmNbYx0ACDX6l7d6aREnKxRzgcvtROfv8ILQR9fo/tGobV+dzKJzIlf2Do3nPGraq7bfUx0cm9CF2jerUchyV4Bt8UO6ipNO0uumLfr53SwdJBEmx/4xKuyrU3GiS3TJaWcrUcLGVtarBRvPIWZxou4Np7DrN4x29zaQumlKv7VWCxjfut3O3zmSIwgG5ATi8mpPE4KwE5/yVHPmhH5DZsTsC+A430m69Xse2BU4gcBqzQC9OSX4VY8UkQj88bleG1WzfG3gupGI2RE3A/MqnQ5Yk+7SyG51L1/AW9r/LOIAkXk/6F6r+lZdVgiMIzwNPXzoCVXgJlH9GwwgY0OjLSmz/Wy76QScPSTYS0SKmBhT/EC2KJHX16UayFbxaM2XDTFTaF7Mv1M+CQPF3P+OVLOZ+VRdH2jzldpZ6/2NulFhP6fTtMT11fbxooLY/aPdzlQdCxQStAayGJI+kz/D+5zfx/z2Q/Ta2hyNtHJ3WPCkdCSACRpqQClzHFSkIyUAmqcmgVtt7iLTL1fJfxmAUncoFHS497NBazIENZiq+3d/f1RawP/VyvHU1+GjR7l9tyn6CN6bddzygTHHbXdFID86bNrBv4KMbtNZv4uIiINxYJYQ9w6WJGiNYRr1F3xIO8hcyeUAYZPuSBLcoEY95U+2INi0MqNYddjIU/fd2Gf X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a09bacfb-f6c0-4f56-e2ac-08da57e6cd01 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:22.2550 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1roI0tFrdVydL2rW8XTMSbgfUfIfidXpWaDKw6d+QPraAo9RnSm47aHayUf/zgGAkYGNBQvtaKpnWz/mcjxhgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add power init of MEDIAMIX, MLMIX and DDRMIX. And clear isolation of MIPI DSI/CSI, USBPHY after the power up. SPL should call the power init in its boot sequence before accessing above three MIX and USB. Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 173 +++++++++++++++++++++ arch/arm/include/asm/arch-imx9/sys_proto.h | 1 + arch/arm/mach-imx/imx9/soc.c | 101 ++++++++++++ 3 files changed, 275 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index fa6951ebbe8..049eca4f3a7 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -21,6 +21,24 @@ #define FSB_BASE_ADDR 0x47510000UL +#define ANATOP_BASE_ADDR 0x44480000UL + +#define BLK_CTRL_WAKEUPMIX_BASE_ADDR 0x42420000 +#define BLK_CTRL_S_ANOMIX_BASE_ADDR 0x444f0000 + +#define SRC_IPS_BASE_ADDR (0x44460000) +#define SRC_GLOBAL_RBASE (SRC_IPS_BASE_ADDR + 0x0000) + +#define SRC_DDR_RBASE (SRC_IPS_BASE_ADDR + 0x1000) +#define SRC_ML_RBASE (SRC_IPS_BASE_ADDR + 0x1800) +#define SRC_MEDIA_RBASE (SRC_IPS_BASE_ADDR + 0x2400) +#define SRC_M33P_RBASE (SRC_IPS_BASE_ADDR + 0x2800) + +#define SRC_MIX_SLICE_FUNC_STAT_PSW_STAT BIT(0) +#define SRC_MIX_SLICE_FUNC_STAT_RST_STAT BIT(2) +#define SRC_MIX_SLICE_FUNC_STAT_ISO_STAT BIT(4) +#define SRC_MIX_SLICE_FUNC_STAT_MEM_STAT BIT(12) + #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) #include #include @@ -49,6 +67,161 @@ struct mu_type { u32 reserved5[14]; u32 mu_attr; }; + +enum mix_power_domain { + MIX_PD_MEDIAMIX, + MIX_PD_MLMIX, + MIX_PD_DDRMIX, +}; + +enum src_mix_slice_id { + SRC_MIX_EDGELOCK = 0, + SRC_MIX_AONMIX = 1, + SRC_MIX_WAKEUPMIX = 2, + SRC_MIX_DDRMIX = 3, + SRC_MIX_DDRPHY = 4, + SRC_MIX_ML = 5, + SRC_MIX_NIC = 6, + SRC_MIX_HSIO = 7, + SRC_MIX_MEDIA = 8, + SRC_MIX_CM33 = 9, + SRC_MIX_CA55C0 = 10, + SRC_MIX_CA55C1 = 11, + SRC_MIX_CA55CLUSTER = 12, +}; + +enum src_mem_slice_id { + SRC_MEM_AONMIX = 0, + SRC_MEM_WAKEUPMIX = 1, + SRC_MEM_DDRMIX = 2, + SRC_MEM_DDRPHY = 3, + SRC_MEM_ML = 4, + SRC_MEM_NIC = 5, + SRC_MEM_OCRAM = 6, + SRC_MEM_HSIO = 7, + SRC_MEM_MEDIA = 8, + SRC_MEM_CA55C0 = 9, + SRC_MEM_CA55C1 = 10, + SRC_MEM_CA55CLUSTER = 11, + SRC_MEM_L3 = 12, +}; + +struct blk_ctrl_s_aonmix_regs { + u32 cm33_irq_mask[7]; + u32 initnsvtor; + u32 reserved1[8]; + u32 ca55_irq_mask[7]; + u32 initsvtor; + u32 m33_cfg; + u32 reserved2[11]; + u32 axbs_aon_ctrl; + u32 reserved3[27]; + u32 dap_access_stkybit; + u32 reserved4[3]; + u32 lp_handshake[2]; + u32 ca55_cpuwait; + u32 ca55_rvbaraddr0_l; + u32 ca55_rvbaraddr0_h; + u32 ca55_rvbaraddr1_l; + u32 ca55_rvbaraddr1_h; + u32 s401_irq_mask; + u32 s401_reset_req_mask; + u32 s401_halt_st; + u32 ca55_mode; + u32 nmi_mask; + u32 nmi_clr; + u32 wdog_any_mask; + u32 s4v1_ipi_noclk_ref1; +}; + +struct blk_ctrl_wakeupmix_regs { + u32 upper_addr; + u32 ipg_debug_cm33; + u32 reserved[2]; + u32 qch_dis; + u32 ssi; + u32 reserved1[1]; + u32 dexsc_err; + u32 mqs_setting; + u32 sai_clk_sel; + u32 eqos_gpr; + u32 enet_clk_sel; + u32 reserved2[1]; + u32 volt_detect; + u32 i3c2_wakeup; + u32 ipg_debug_ca55c0; + u32 ipg_debug_ca55c1; + u32 axi_attr_cfg; + u32 i3c2_sda_irq; +}; + +struct src_general_regs { + u32 reserved[1]; + u32 authen_ctrl; + u32 reserved1[2]; + u32 scr; + u32 srtmr; + u32 srmask; + u32 reserved2[1]; + u32 srmr[6]; + u32 reserved3[2]; + u32 sbmr[2]; + u32 reserved4[2]; + u32 srsr; + u32 gpr[19]; + u32 reserved5[24]; + u32 gpr20; + u32 cm_quiesce; + u32 cold_reset_ssar_ack_ctrl; + u32 sp_iso_ctrl; + u32 rom_lp_ctrl; + u32 a55_deny_stat; +}; + +struct src_mem_slice_regs { + u32 reserved[1]; + u32 mem_ctrl; + u32 memlp_ctrl_0; + u32 reserved1[1]; + u32 memlp_ctrl_1; + u32 memlp_ctrl_2; + u32 mem_stat; +}; + +struct src_mix_slice_regs { + u32 reserved[1]; + u32 authen_ctrl; + u32 reserved1[2]; + u32 lpm_setting[3]; + u32 reserved2[1]; + u32 slice_sw_ctrl; + u32 single_reset_sw_ctrl; + u32 reserved3[6]; + u32 a55_hdsk_ack_ctrl; + u32 a55_hdsk_ack_stat; + u32 reserved4[2]; + u32 ssar_ack_ctrl; + u32 ssar_ack_stat; + u32 reserved5[1]; + u32 iso_off_dly_por; + u32 iso_on_dly; + u32 iso_off_dly; + u32 psw_off_lf_dly; + u32 reserved6[1]; + u32 psw_off_hf_dly; + u32 psw_on_lf_dly; + u32 psw_on_hf_dly; + u32 reserved7[1]; + u32 psw_ack_ctrl[2]; + u32 psw_ack_stat; + u32 reserved8[1]; + u32 mtr_ack_ctrl; + u32 mtr_ack_stat; + u32 reserved9[2]; + u32 upi_stat[4]; + u32 fsm_stat; + u32 func_stat; +}; #endif #endif diff --git a/arch/arm/include/asm/arch-imx9/sys_proto.h b/arch/arm/include/asm/arch-imx9/sys_proto.h index 513aa0b9581..5ae7a043398 100644 --- a/arch/arm/include/asm/arch-imx9/sys_proto.h +++ b/arch/arm/include/asm/arch-imx9/sys_proto.h @@ -8,4 +8,5 @@ #include +void soc_power_init(void); #endif diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index c71a5a92504..68f3ddd4287 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -28,6 +28,7 @@ #include #include #include +#include DECLARE_GLOBAL_DATA_PTR; @@ -277,3 +278,103 @@ int timer_init(void) return 0; } + +static int mix_power_init(enum mix_power_domain pd) +{ + enum src_mix_slice_id mix_id; + enum src_mem_slice_id mem_id; + struct src_mix_slice_regs *mix_regs; + struct src_mem_slice_regs *mem_regs; + struct src_general_regs *global_regs; + u32 scr, val; + + switch (pd) { + case MIX_PD_MEDIAMIX: + mix_id = SRC_MIX_MEDIA; + mem_id = SRC_MEM_MEDIA; + scr = BIT(5); + + /* Enable S400 handshake */ + struct blk_ctrl_s_aonmix_regs *s_regs = + (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; + + setbits_le32(&s_regs->lp_handshake[0], BIT(13)); + break; + case MIX_PD_MLMIX: + mix_id = SRC_MIX_ML; + mem_id = SRC_MEM_ML; + scr = BIT(4); + break; + case MIX_PD_DDRMIX: + mix_id = SRC_MIX_DDRMIX; + mem_id = SRC_MEM_DDRMIX; + scr = BIT(6); + break; + default: + return -EINVAL; + } + + mix_regs = (struct src_mix_slice_regs *)(ulong)(SRC_IPS_BASE_ADDR + 0x400 * (mix_id + 1)); + mem_regs = + (struct src_mem_slice_regs *)(ulong)(SRC_IPS_BASE_ADDR + 0x3800 + 0x400 * mem_id); + global_regs = (struct src_general_regs *)(ulong)SRC_GLOBAL_RBASE; + + /* Allow NS to set it */ + setbits_le32(&mix_regs->authen_ctrl, BIT(9)); + + clrsetbits_le32(&mix_regs->psw_ack_ctrl[0], BIT(28), BIT(29)); + + /* mix reset will be held until boot core write this bit to 1 */ + setbits_le32(&global_regs->scr, scr); + + /* Enable mem in Low power auto sequence */ + setbits_le32(&mem_regs->mem_ctrl, BIT(2)); + + /* Set the power down state */ + val = readl(&mix_regs->func_stat); + if (val & SRC_MIX_SLICE_FUNC_STAT_PSW_STAT) { + /* The mix is default power off, power down it to make PDN_SFT bit + * aligned with FUNC STAT + */ + setbits_le32(&mix_regs->slice_sw_ctrl, BIT(31)); + val = readl(&mix_regs->func_stat); + + /* Since PSW_STAT is 1, can't be used for power off status (SW_CTRL BIT31 set)) */ + /* Check the MEM STAT change to ensure SSAR is completed */ + while (!(val & SRC_MIX_SLICE_FUNC_STAT_MEM_STAT)) + val = readl(&mix_regs->func_stat); + + /* wait few ipg clock cycles to ensure FSM done and power off status is correct */ + /* About 5 cycles at 24Mhz, 1us is enough */ + udelay(1); + } else { + /* The mix is default power on, Do mix power cycle */ + setbits_le32(&mix_regs->slice_sw_ctrl, BIT(31)); + val = readl(&mix_regs->func_stat); + while (!(val & SRC_MIX_SLICE_FUNC_STAT_PSW_STAT)) + val = readl(&mix_regs->func_stat); + } + + /* power on */ + clrbits_le32(&mix_regs->slice_sw_ctrl, BIT(31)); + val = readl(&mix_regs->func_stat); + while (val & SRC_MIX_SLICE_FUNC_STAT_ISO_STAT) + val = readl(&mix_regs->func_stat); + + return 0; +} + +void disable_isolation(void) +{ + struct src_general_regs *global_regs = (struct src_general_regs *)(ulong)SRC_GLOBAL_RBASE; + /* clear isolation for usbphy, dsi, csi*/ + writel(0x0, &global_regs->sp_iso_ctrl); +} + +void soc_power_init(void) +{ + mix_power_init(MIX_PD_MEDIAMIX); + mix_power_init(MIX_PD_MLMIX); + + disable_isolation(); +} From patchwork Mon Jun 27 03:24:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648563 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=Ypb2ZIWR; 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 4LWXG10GPfz9s0r for ; Mon, 27 Jun 2022 12:47:52 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2DBA584519; Mon, 27 Jun 2022 04:43:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Ypb2ZIWR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 3269C844F2; Mon, 27 Jun 2022 04:43:30 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20065.outbound.protection.outlook.com [40.107.2.65]) (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 63041844F6 for ; Mon, 27 Jun 2022 04:43:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cw8J8QOlxlqKQtiWbkwLwGPCgguJlsDXSDShJ9XKAVpOIDash4D7LsGAm8DONRXgHKw41fliZ/+mCw752vuKjpjsCpyrYseynl02Bww8VaUKoHvOabtQXukuio5bFehlZN6Vme/5JRfkbhsbpS2UV2Ls5n1wp6+9dtZvFfDgCRMWEnkjwtkR+hbjZrxR8lkzp/SkGH5UoyNL7vSSCmZsm2NWz+ZB1BJ8/2eHpxP7fMBnUwh75+QQWA1u0MQwqMMeqiygqPwp949X64y8vaHzG18KpYQatThR9jBWLAWbdnVJjyTAcsLg+DgJ0Ut9p8n5Zn/kn7i0sAy0Yh4nMKxSBQ== 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=sHWvLqoQK9HyJk0/AQHFfIob45dfvkAWTshFwDAtC0Y=; b=K8fxeKz/C/fLj4wVOeZPYn9ajhplkoZU0RfwVYxlcGjkP/XMfNwUU5zB+Eqo/n3KzTd82Drs39FeF3EofQV4WE6/nKrgt4oAhLkODoWsUj9iVohiOk367GwipcnqYS59nln2NZdLM7H+9L+7jfST5AnhroocQ5exQCYZbj3d5SZNanS14+sHRxdfzM1HkKrBq9+ys2sHorAQPyrAFBe+T+0fsC9xqG7QN9vJG1ulUx0Na+MDjj9JpbpRTyFmepxQf3UCkmQiAQhHc9Jdf25zA2OCt2EtLRCue2IJr7bOtV8HmFq+/Uv8CgiJ5Tdm9cOIcW7+MEw0xUwJ9qOKFRVB7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sHWvLqoQK9HyJk0/AQHFfIob45dfvkAWTshFwDAtC0Y=; b=Ypb2ZIWRx5N/v/ZAZ9a1C2uoE9ccFTm6mAZkWOmHEstrce/JRwe8wluJ9zPkkqekeUsuCZN583mcMD4w7eTibXw+kmNXCZCtBxIe6qDRi6WJL8pHdVAsF2hHYTEsIjzOUI/I15yuKD0PpzWpMvigyulP0Zy3p/vfsJ9tCiobqzA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:25 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:25 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 33/49] imx: imx9: Add M33 release prepare function Date: Mon, 27 Jun 2022 11:24:39 +0800 Message-Id: <20220627032455.28280-34-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9efd75c5-ecdd-495a-2544-08da57e6ceed X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: r6gPDoZAtba2JT0vzMVJSS86YKdQQjr9y7Sp+oikLULwg5ah/PGffd7JGh2OEyzurAxut6ru62u8yVDE3oxbp2KH6DR7o+pYYpyMojTlm7QkZkXrTk5LAlGpjsDU7urRQH6F1F8R8ZSogbhGy3BrF0CdmM11+490G4475QEzl0rRR5GBIgVdeFHC2HkK1m0bq7WmQsHjx2YmjOOFGOmxrE35VSLqhB8N+wkiPCIEFBuMiv+OiRTaqiIGHzza1cnIRVjg11fyH4X5ylsMX+raOIDmTZCvbnips9AgzUKZMtU6OtEd5GO/H+wdTp3OgWKGqLOYjJe+z0vyPdZaA7zB+apTuoJ8+ORkbiKBoxAaZXthlHkjvnjv/sY6tYeHrm0QagLMrKixjofSoKswoaTc7YaLDJFth/ylKGq1apMP9mxRsVYEqXgMDLaHWE+oVBzuk3SV6CJqVa0Yjl5BVe0ueAMQss0K9K+vFD9pELgk1y47nZMYQR9KTzyYSos0ZW9vasb99b2S/hl9zI06BeXwFc/Tew3cln22dZ3U19aqpXWQlEuDyAkMJrQQMWweoYxPG7KfKrDAz9kpj5ifQm7GPtWic48O1s2Zx4INJEGKc+Dq/2O33KnqOSZSo9AO5QU+clQzMaLPjFlRSEnl1tqrdqiLuin7ZLqucxNUeq0tkTOTs1QsfTj/ao0nUd1UMgf1Z9Ge6un7FKYZCTQXy54tVTWHNrv41MWd1hcwMPALWj9ldA8/1U5cfod8imZDVNHnrxfhIBtHHFT2HrJC2tPdv0pcJJNDJ5HlQ6G8dbRQW+8= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VU1x2ARXhBiYjhylVmWfJqv9d/rPE4m83qdXcmA80iWhDeAq2ABQ8raxrGNDWUkF7QtRbZvxn4byVqnpG7RcG6jO3r8bdzS7GpUXkrpwd/k4VpPn5mAzto/IrtRIeumpcYJxG9gvLds1v5iO9Qt6kgTkW8yK6YAGrRrcShQV8c+WKtj5Ww4qz146bDABkYbQ+Ye6/nGRXuFxoWj5elfKz0uBWdk1YO4vuBIE1v50GagPUJv+26hvDvF3wnziHohfkygWpjihBDQTC94tRPFlKzDuaUbO+k16TmkdJ4+MElG1KNTAuIppwJZZ8qWb4HAt7veowzIroRJKB51U5eNg124rg28UZwo2FcT5oniTJl9Hx4BVYE/k+boyG5d1AaxzW8E1rtvJbsoM8ct7bLft2H9ZHbjFFCqFyCAvvSI1cVMb+t07G9ItheoBvlWB7/7UNJBjjyEeMEwMM9Ydy8KtHcBAV+pMl6VwoetnPS2+DjYvKrmX3ICLtih11bjjBl0Sz7wPojUVJ6h3VxaZMSOwCvMFKYG9BFb6qaT/9AIPGs79V5/C2JvZVRUbB8QFO5ry1com385oLexn84Iyq6wc+aIfiQi88pPkIIw4lCaG8GESvSkAE/ieZdoUfuHIN2ULxeUjrhexfrl798Mtr5vBoObrBmtm/MYoNfwP2zBz9ZOGx+r9gIqggKzQD+AeSQpoPVS3NzRLmTbgWt36vDmjmXpSOBCJxhkMFk87fGcfSsCpGKPoqIs2kqqPj3o+xOUchbfDrhQB7TFhBOEcYz+avwoBIifPbDtvPV4iyx9vzvuYE19C2ixXdXqB9T7vkg/L3ssgRR6o1CUa3iqXNeyd/BRKvcCqp2oUR1xyANEigzOGv1j88RWxDFb2VAlilNhbSQo16AXgdLStMqar0oj9imocLjBSRoVW0J0LEOkcSn0qkmUqDyfFA71MtVu4eNNAKDK4re3K2zwrz0w13ZI03d1Gk3nvybIycQ4IIrHDWeyhc9aHFoa9fcu8QIE0eDMvEoCbSDL+3yQ4ZfwxpSY/P3BlQVw+ejOWujNCGQhV7dxDK58FKo1OdtR7LiiTfgyt25waG7ykMgUO14HWKG/F7YJYq6Bt4W1v/KMeVNoQbweDRykeUwVV5sCEZvntilKJc/gGxa5nMbrno3f38IxJN8MMdKsG04mQb7T5w0HuiU6vNYV0n+rJXHfT2DJyGdQw5QZ/FNQwzOnYMzm41A3FWFltcW7zA+gUxHgEshIQamJBSQrjZEv1ABwT1yaM9LSUZRyfcibY0dZSpyO9vBy5hNgk/5tmxRpegIquxCuXIShoBoCato2YJv+maMM5f8XTSlrggtk8kidjpQLV9/9yrKgZFvIg0rWXr4gFQRxAQz5C8HZ2OMeW85FGyi9iQ3W/NSqEvAcMOw5FJsy/QD/C2Nm+0h39z8ULwvZieiw/TwhS0AD8jHgxDl4QuL1qX/ZmA0u2OIp24cmVNJQW5tWutkjIUhjASo4dfl9dhsZF6V+LKfH87oc8IeDYgHUs34BLLOXtP2c2BGZHZyu8f4G3QX3DS6LKDEOz6ufZJL5CkPzGR7ysXrZD6kGV+OkBEQ0L X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9efd75c5-ecdd-495a-2544-08da57e6ceed X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:25.3807 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0ZXU1Fyen/gO7G8hUIbIWU+AEhQeuw3ASsabbHe505IY96vLCDDRoaXYWB+X4Nvfnroq/N2qUJgxSGbAy9slfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan To support on-demand booting M33 image from A core. SPL needs to follow M33 kick up sequence to release M33 firstly, then set M33 CPUWAIT signal. ATF will clear CPUWAIT to kick M33 to run. The prepare function also works around the M33 TCM ECC issue by clean the TCM. Also enable sentinel handshake and WDOG1 clock for M33 stop and reset. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/sys_proto.h | 2 + arch/arm/mach-imx/imx9/soc.c | 51 ++++++++++++++++++++++ 2 files changed, 53 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/sys_proto.h b/arch/arm/include/asm/arch-imx9/sys_proto.h index 5ae7a043398..ba97f92f5ae 100644 --- a/arch/arm/include/asm/arch-imx9/sys_proto.h +++ b/arch/arm/include/asm/arch-imx9/sys_proto.h @@ -9,4 +9,6 @@ #include void soc_power_init(void); +bool m33_is_rom_kicked(void); +int m33_prepare(void); #endif diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 68f3ddd4287..2a29454d1eb 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -378,3 +379,53 @@ void soc_power_init(void) disable_isolation(); } + +static bool m33_is_rom_kicked(void) +{ + struct blk_ctrl_s_aonmix_regs *s_regs = + (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; + + if (!(readl(&s_regs->m33_cfg) & BIT(2))) + return true; + + return false; +} + +int m33_prepare(void) +{ + struct src_mix_slice_regs *mix_regs = + (struct src_mix_slice_regs *)(ulong)(SRC_IPS_BASE_ADDR + 0x400 * (SRC_MIX_CM33 + 1)); + struct src_general_regs *global_regs = + (struct src_general_regs *)(ulong)SRC_GLOBAL_RBASE; + struct blk_ctrl_s_aonmix_regs *s_regs = + (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; + u32 val; + + if (m33_is_rom_kicked()) + return -EPERM; + + /* Release reset of M33 */ + setbits_le32(&global_regs->scr, BIT(0)); + + /* Check the reset released in M33 MIX func stat */ + val = readl(&mix_regs->func_stat); + while (!(val & SRC_MIX_SLICE_FUNC_STAT_RST_STAT)) + val = readl(&mix_regs->func_stat); + + /* Release Sentinel TROUT */ + ahab_release_m33_trout(); + + /* Mask WDOG1 IRQ from A55, we use it for M33 reset */ + setbits_le32(&s_regs->ca55_irq_mask[1], BIT(6)); + + /* Turn on WDOG1 clock */ + ccm_lpcg_on(CCGR_WDG1, 1); + + /* Set sentinel LP handshake for M33 reset */ + setbits_le32(&s_regs->lp_handshake[0], BIT(6)); + + /* Clear M33 TCM for ECC */ + memset((void *)(ulong)0x201e0000, 0, 0x40000); + + return 0; +} From patchwork Mon Jun 27 03:24:40 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648564 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=H4IxLqFd; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXGC1LYVz9s0r for ; Mon, 27 Jun 2022 12:48:03 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B760B8450D; Mon, 27 Jun 2022 04:43:39 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="H4IxLqFd"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7C6DE8450F; Mon, 27 Jun 2022 04:43:33 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50085.outbound.protection.outlook.com [40.107.5.85]) (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 3EA81844F4 for ; Mon, 27 Jun 2022 04:43:30 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ethFeGPkAvCr40MLwxMaNrbc1NSh6/m8xhgU47Znn4EHyX2ugsD2OOE6/lSHFTdyYOOndKe2CyvyOp2ZlmWa1f0cZEbZU7Ug6EVl3WZ5mhYh7f4jwS7t2GV4Jwp0W3WTtFrbtHSWvWL/NzH/ccyNikCWzPhyjcB4bFNQ/euibg8WhGpMdXn4/FdgirSqTXkwtvPNXWUIqxONiopcDkBzP3zbqwjjM3vTRiyrbHlTmHxsOpg4FeVXU58sGB8dx6fZxmJ2wPZtVWNj5E93on+m3ErLjY0VZtei5+ob4ERX4hwhM7TMdeeCh8AzyKF2/hQM2WDk0JW3eijgJ+OTk5mCYg== 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=HArM5udVl9IRjtFL5izhFb6K3B10EyfFglTAJRl35jM=; b=lHaSA/YfMZfGz35k3l6FsHdmKNHmOw8COE9euazE5iov7CMruio6hpyNfj/rp+un5KIvSCkYxvyhVuQUlCJVouMpm1lN4LDtQg+gMehVc02fTBJiOjc0C2+ylZ5x+rNd71aZl8AlqnPJRr8WIV96C7LMaUod4W1bC6/QKysYtQG1X9jhE7PICZ5SwmiEgebI9g9m9LPmXC68ihW/48aoEDUaBcAOJ5sgyJagrtJ48a2Ntk9KPJmZpGKXiDtCNfucVCXWW9r9SswNrx/NjZjRRfTYH/ZcEDTy8iaLKdREUEIW2DFmBQMjIyMNg8c0jYHC/NrsaIvv0Vz6iUSVBOHHhg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HArM5udVl9IRjtFL5izhFb6K3B10EyfFglTAJRl35jM=; b=H4IxLqFdZgfttc/1mVdRphrdEDI1xk4sxniS8iMFax1rfJEo0E8GVM/uCqtuK3NLemEzK3HvJ6Fc86VzXqBahV2TliGZY9C8v5r0hnOgA+/i+Wc51z2PIUhVfGoKWybYzYcft7ZuAECiA1CdckDhja42NYXhQFF8/uVMIZNlxfo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:28 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:28 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 34/49] imx: imx9: Support booting m33 from Acore Date: Mon, 27 Jun 2022 11:24:40 +0800 Message-Id: <20220627032455.28280-35-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f60734cd-f865-488d-ec19-08da57e6d0aa X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Bjm7EPG/L1JQGmiklPAPVH9IRzzFSETqrOsy3ZhiVbpDrTGkp+/2dimm7jO+CFXBeuXI3P7/eEOdhEWcih5etArbz7UiAFyw6RF3xD4TfS/nRrIDpKJtvSWPJg7L0fCM1zdAa3TxWF0ntGUONax8IIuk55knncv7zQt0TLuKsfbdA68cfKQVZkCG83aSDXmSUYeIMFiNDi0sSRZ/mObFxqilsEiogkEsCkr4GmJAP8h4Ph2AT75a6mK7wsTR0tKDQFro3zDz8ws52tMMeSC58goP1cDtFtiu8YI+kjIiNXsG/yK6B0mcKCIrM2etZ36ci1puUzqB0bduP7lczhIEw/wgvD1+ki7niuiWNL9W6gP35i/t69C3+CwyKgDcsywmZUATVY5bmWFYlX9MPxPFTgwhx58Ky2kzpHKMR3ajnSRv4h9sE94OeZMoSyClUx4rebztZ8Tp7MRs9BLs0UHh3GZFoZ82o8TsLGVQgN4zjKZcSmMbfim3XkYAzUHoWcvILAyepOQMDNhkhyrwiZiAn9p24J6yUciz429REzdeviTAYxwqHebc1CamxGJGhFjrkq5WD9gTEM0vr3JnIw7SaWAR24MmBGYjYucT16wP4lfLctXmI6fuKcrSnyxj98kShXKnTHUfZ1cE400CE4B/TWc+XZsrtiNy0W0lDvau5YkBkYEOtOsc7rWxHQqjfjLVEEdQvQoWq9bCdAsfl61FRpfvRat8Rb4AdT9qv2ICH3bzTL8jRcRgxZZbUVsxZei1C56HPgFwc4hBDtSpqVkHesa6bSqTB4kkDFzx2m1NWTE= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: QUBsKHfLk+BNBznDkX2gnq986AKFpbyhXK6ciizsY+R6z9PLSRimvS8kkbQ4MBBGKTIuBEJJZIRDO4vkAOMym9CqwMlrnqcQk0w9oR42OI1gna0U9JbPKwKzeEJrH7s8v2dHVfAntZXdthkIRr4Md1nbLIAfTjAuuW6AoDXBxXEodDdQG/X41U5jGjMCWYmahiIqVMkrl9fiMpVloTsaxYsF4XlDiD9vDAxm0GnMAAK57JbzefzGN85c/8XpAm+4BO7CvGRyxCoPJ6/sV7X0iAlW28ENIoIg9/ay10LD3lrof0qXqmdARpkLSycgk29Dmr7mPLcORr621iVRZGa31jsGPEVcq60Md2Fw8SU9CB/34qyqztAv5yS7vneAilZg8dT3Cif6pltZghNIyteMqxa9id31aNeGx67cUGVjS7zM/bAwtRhxj60ks9j6emXgvdvfg6AxCzQIp3250oR4OuWh3D6pMvubgVr1y7cK4xDihuWb6OUiQhIipuLDOu2jBc7WEUeViNdbWei1AycKicyi1kUEQL6xvSfy9gw0KpXVRR5GBUXXtDFuzi5BdUT/KnHM10AE6GtIvNwyXDoY21UjiskmAazqwUDga23InQrKnhbpebHhimdNTUeJwo8A3l+XBAw2VPCAiTK6l0m0izbxmZRRUGUNttZ1uWW8YT92GRRFPc81JsCoAcq4GtdA+6V0vJwbePGMyMVmIoTnJygvP43R27lgMMCVLL75A0uooivUvZvX398X2vh228cw5IFPXLdGXBrT9boM3CRJXKV27R9iWvA8KmNMadnpWiB1CxYoWxLddM9a8ohKSj2XGI2LJdVGWLg+sBrA+Y9T9WLR/mo1glUJJNui014nzfrbKYJ3EMtsaZNrRgPvuAaoHOwB7C/0SGw3ODFVKH3S09QcOUKwjNRSN0DVGCvuLe2/g/twxClpStU1rc+I71UnOWtgd6vIqcfLfpgRaG3SMYR5K/Nbyj0WeBGa8gt0vlcXtEt4X4JpJ2fBlUQBqcv15PXyU7aGwVVkeCVbX1zaXLNT6DEMY8we4F0Uko3to2VpqQKuzZIM4cjaTifHFnG47pBOCnzgf8Hgg1nJ63VQ7xaRTAZsUBrTKyhPbiZCRuJC6kdEq6BU2IP3jaXofS9tlWvc+WJe5C4UhPC0rjHtmyH/rED4SuyL7tEyTGtbxyMw9hHz/w/z16CQpYwlzMi3OoDsv/LnQb8/3hc1dackcKp5TED7spW7d271gj+cBPkBSSOrf9EY+9JfI4JT2QpSMVWiYa3W9yk4c1os28/sSlTH9CpnI54gkHagfJVV9d5g6W2IMmlpSfBTGO/87T5uNBTE1pIUUjU9VEX8W61o/dO4JxUFrO1s+JWxmz+1I4d6M72BwHyMGSblY3Jc0EQKGKda8N20I+GXAg1Ax3O/TD5+JA+a23e9cmDahmYjMEyDuyi9eF127tDbBdpCzZtslmLsN0EA2YLLrZaT4vooCKf+IVrWwFEE0LxQM84s8ow8xY8UMkY8/xrrwbPB9o3kb1Ryv6N3SlNsZeu3lgwYc2pjuogBjd8E+3PthbC9UZkYH+61uzSxoVH3JKLCBRAP X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f60734cd-f865-488d-ec19-08da57e6d0aa X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:28.3190 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oj6tzgJ7Y6M/wZpnIK7C+ohe1PCExHrspVqe1uf6DMtzKDAkg/X62DlflruInStDkCjw5UoNYasLHh/KGA3TeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add bootaux command to support on-demand booting M33 from u-boot. It kicks M33 via ATF by "bootaux 0x201e0000 0" Signed-off-by: Peng Fan --- arch/arm/mach-imx/imx9/Makefile | 4 + arch/arm/mach-imx/imx9/imx_bootaux.c | 133 +++++++++++++++++++++++++++ arch/arm/mach-imx/imx9/soc.c | 10 +- include/imx_sip.h | 1 + 4 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 arch/arm/mach-imx/imx9/imx_bootaux.c diff --git a/arch/arm/mach-imx/imx9/Makefile b/arch/arm/mach-imx/imx9/Makefile index 41a22500c95..6d038a60c67 100644 --- a/arch/arm/mach-imx/imx9/Makefile +++ b/arch/arm/mach-imx/imx9/Makefile @@ -5,3 +5,7 @@ obj-y += lowlevel_init.o obj-y += soc.o clock.o clock_root.o trdc.o obj-$(CONFIG_AHAB_BOOT) += ahab.o + +#ifndef CONFIG_SPL_BUILD +obj-y += imx_bootaux.o +#endif diff --git a/arch/arm/mach-imx/imx9/imx_bootaux.c b/arch/arm/mach-imx/imx9/imx_bootaux.c new file mode 100644 index 00000000000..3b6662aeb81 --- /dev/null +++ b/arch/arm/mach-imx/imx9/imx_bootaux.c @@ -0,0 +1,133 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include + +int arch_auxiliary_core_check_up(u32 core_id) +{ + struct arm_smccc_res res; + + arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_STARTED, 0, 0, + 0, 0, 0, 0, &res); + + return res.a0; +} + +int arch_auxiliary_core_down(u32 core_id) +{ + struct arm_smccc_res res; + + printf("## Stopping auxiliary core\n"); + + arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_STOP, 0, 0, + 0, 0, 0, 0, &res); + + return 0; +} + +int arch_auxiliary_core_up(u32 core_id, ulong addr) +{ + struct arm_smccc_res res; + u32 stack, pc; + + if (!addr) + return -EINVAL; + + stack = *(u32 *)addr; + pc = *(u32 *)(addr + 4); + + printf("## Starting auxiliary core stack = 0x%08X, pc = 0x%08X...\n", stack, pc); + + arm_smccc_smc(IMX_SIP_SRC, IMX_SIP_SRC_M4_START, 0, 0, + 0, 0, 0, 0, &res); + + return 0; +} + +/* + * To i.MX6SX and i.MX7D, the image supported by bootaux needs + * the reset vector at the head for the image, with SP and PC + * as the first two words. + * + * Per the cortex-M reference manual, the reset vector of M4/M7 needs + * to exist at 0x0 (TCMUL/IDTCM). The PC and SP are the first two addresses + * of that vector. So to boot M4/M7, the A core must build the M4/M7's reset + * vector with getting the PC and SP from image and filling them to + * TCMUL/IDTCM. When M4/M7 is kicked, it will load the PC and SP by itself. + * The TCMUL/IDTCM is mapped to (MCU_BOOTROM_BASE_ADDR) at A core side for + * accessing the M4/M7 TCMUL/IDTCM. + */ +static int do_bootaux(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + ulong addr; + int ret, up; + u32 core = 0; + u32 stop = 0; + + if (argc < 2) + return CMD_RET_USAGE; + + if (argc > 2) + core = simple_strtoul(argv[2], NULL, 10); + + if (argc > 3) + stop = simple_strtoul(argv[3], NULL, 10); + + up = arch_auxiliary_core_check_up(core); + if (up) { + printf("## Auxiliary core is already up\n"); + return CMD_RET_SUCCESS; + } + + addr = simple_strtoul(argv[1], NULL, 16); + + if (!addr) + return CMD_RET_FAILURE; + + ret = arch_auxiliary_core_up(core, addr); + if (ret) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} + +static int do_stopaux(struct cmd_tbl *cmdtp, int flag, int argc, + char *const argv[]) +{ + int ret, up; + + up = arch_auxiliary_core_check_up(0); + if (!up) { + printf("## Auxiliary core is already down\n"); + return CMD_RET_SUCCESS; + } + + ret = arch_auxiliary_core_down(0); + if (ret) + return CMD_RET_FAILURE; + + return CMD_RET_SUCCESS; +} + +U_BOOT_CMD( + stopaux, CONFIG_SYS_MAXARGS, 1, do_stopaux, + "Stop auxiliary core", + "
[]\n" + " - start auxiliary core [] (default 0),\n" + " at address
\n" +); + +U_BOOT_CMD( + bootaux, CONFIG_SYS_MAXARGS, 1, do_bootaux, + "Start auxiliary core", + "
[]\n" + " - start auxiliary core [] (default 0),\n" + " at address
\n" +); diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index 2a29454d1eb..ca88271564c 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -131,6 +131,14 @@ static struct mm_region imx93_mem_map[] = { .size = 0x100000UL, .attrs = PTE_BLOCK_MEMTYPE(MT_NORMAL) | PTE_BLOCK_OUTER_SHARE + }, { + /* TCM */ + .virt = 0x201c0000UL, + .phys = 0x201c0000UL, + .size = 0x80000UL, + .attrs = PTE_BLOCK_MEMTYPE(MT_DEVICE_NGNRNE) | + PTE_BLOCK_NON_SHARE | + PTE_BLOCK_PXN | PTE_BLOCK_UXN }, { /* OCRAM */ .virt = 0x20480000UL, @@ -380,7 +388,7 @@ void soc_power_init(void) disable_isolation(); } -static bool m33_is_rom_kicked(void) +bool m33_is_rom_kicked(void) { struct blk_ctrl_s_aonmix_regs *s_regs = (struct blk_ctrl_s_aonmix_regs *)BLK_CTRL_S_ANOMIX_BASE_ADDR; diff --git a/include/imx_sip.h b/include/imx_sip.h index 26dbe0421a0..1b873f231be 100644 --- a/include/imx_sip.h +++ b/include/imx_sip.h @@ -15,5 +15,6 @@ #define IMX_SIP_SRC 0xC2000005 #define IMX_SIP_SRC_M4_START 0x00 #define IMX_SIP_SRC_M4_STARTED 0x01 +#define IMX_SIP_SRC_M4_STOP 0x02 #endif From patchwork Mon Jun 27 03:24:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648565 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=BS2XcqaX; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXGR0B4Nz9s0r for ; Mon, 27 Jun 2022 12:48:14 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 3B98284520; Mon, 27 Jun 2022 04:43:48 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="BS2XcqaX"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 55C148450A; Mon, 27 Jun 2022 04:43:36 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50059.outbound.protection.outlook.com [40.107.5.59]) (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 9F22D844F4 for ; Mon, 27 Jun 2022 04:43:33 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G7lm5PeeiRttb6w8L/8dL5z5/7lZfX2SUDqWIkJtsbTxOVSFot5PN2Gmx1GTtbsmNyE4mLF/UERVuUDMBkZVhdhIJgPG4SMmD0vRkwKcdDm7b5Cr0JZfMbMZs9pB4Wb1RXk8y64ZUnBWlgonOljG5FYb4Xg7Ue9enAiY/kIHg6rs0BFJw/n4dvFZNr1wv2OSO3/AvhEZ18wUeErGGn0KKzC8KLEW2xTSzzawrhLnvYLaQy8MG25lxdPBqIIQIK02W+rhn4Sb76fM43KUTLQGHNIEDo1YrFGs2Cpwn2eGE6r+48Z9r9rUlYmruOJpvtMu4BgFEeLB2MoaIiCZ32ldLg== 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=XDIglXTZ4FFC4oRrc5ljH+k8djWqW2VXoVYBpDe+ShE=; b=knRjftB5kaIpU5pc4RHHmHtW+9mBmD8+p+OGxzJoAkTgooipsXdTLdb/aVt+pDGQt5cNnAHJmbAmU5PQLMG3ymirl602BOga84oPPhJl2gH14Hspn8zXsLmCOow4z0Im2K9eYpoi7n+3wpoBqMHvw+yrSg+5yY5CD0gJAITnc/YY0Qg+3kotJRD8IYvh2rrQT5kkfiDTuE+ZSLptL8dv8WyFKEAucNI8P2sdiIkeqTuATBej9liwbjHnOgH1xoepGBGrcu7paEK2Q+ceCj+yF56EKHDGO+BU4u+tq2PuVBrGKH3Ve9k9cgRAPlCX1QlSenRfo4OiSTAG9c9Ql3wj8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=XDIglXTZ4FFC4oRrc5ljH+k8djWqW2VXoVYBpDe+ShE=; b=BS2XcqaX6GBsEarXvSKbIcOXmFBemuNV4CNs0W+mIGKt9YQgjjJw46AxoM+cT3Ul2stQu/rIOipcvlUggh7b21d7ZQQ1K1/GESM0+buQHCD16MdddANalUV8NcGjBsBr54Vx3OlFNDChHB7frWMA0i8t9sDKHe12miSvIdPO1LA= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:31 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:31 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 35/49] imx: imx9: Support multiple env storages at runtime Date: Mon, 27 Jun 2022 11:24:41 +0800 Message-Id: <20220627032455.28280-36-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 23a7cc05-fad7-47dc-7c25-08da57e6d29d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: p1bwg5lTvUzvt4BvQkz7oMi2iyxosZu+7njs1KUKeTrHqioT5RdwbV4YCP6pdMrhFuNbRCcSUI8sQnxe8cC2ueHpsE/H7ENMRWktWFubWmFgKiBetxpPchx6hHnFD5rftpk8ToPPWl2cwC9KWd+N69FmB9zw8qXPUvby9t0yf6FbeQ1CBTTntQVWBgUzYNZFDGI6gqobW+eY/L38px3WHl3OKtvBdWfMY99leLnrSxTuvHE4q5E0HesYbgTH7HzHp9Spd3mAxLKq+PrGCge0gAL3HATLe+Hw1pJgy+1PJVefRcPMPQF7egJ0Ird4bm91QmgrGizI0u7VHBuDnFJ/LFUgIkdRYjRM2KINGn6FZz8X/wo6ARD8GhjTk0OKFXz9zV/bUewOIESsxxDyrrr1zQAsJk3d9OJgj7y/R1ZpcCfah+Km4RtobUc8P0GUJVg1unrYTtyph68vS7dQzw/7ppg0VzLs+rYHFaHx2Y9LiI7h1AY6JzHmNtyqPmwiszypSxWUlkMkiJY2DTAMHM5Fzc//VF3RM+hU0mnXuhp+q2wpoF0bXf8LTvHhGsnZ3lCB2srGvqSnZVFEiWIKJ8ozZRvZzQ3lIsfWxqMKEreBJeTgVKLp1fXc+OmPk+exWOgHIFb5I1q4/jWCGkvLF4/IhpDR5RQOtbOUg2N6nnel44nhtit0MnO3KRcHhV8y/PufW7A9IFFCvAv58+Y596to69WgB6AGowzUVlLV4yigD6glcqGtCV1llStuG54be+GmIP/OGBWNRGfv/uGvNKs5PO/kic8v7tw9SI06Q0VPTDg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 2fAoKmb1FfBUY82VrP4sx47XUQ0cImgtK1lXOvZfk+KDwOGxAKerDIpoNdOavrUIHJgmMqIIjLfsSYciA0bNcNt3S3ekno2/5RDYLc9k9l62sCd/rugTKXHpsIBRSBs0EWz19BjvYdDpkCHxq5Ch1K4OzSGh2SGi4T3N0ecFF8q5AytuGoEuya6v2NGbD++a2fKsSA5tUCrZAbQpqHll/cnZkPezsuaRMTuZzz1Dyop65EQKuv26xZB1KjzrcAdAw2E3PZEneNnpqRQyN8rwdXqv0MrIKCsetON5d4xkGN8+x6KdDSmxM9QyunUSOJ8ZJaUEm4LrZnCik6wb3bSI2z+NvPZwinccqOuXXxOzB2/MvaNRnozrvPMCS8INQ1vwsbBMjUSOIrPSm9AdRcPQs9RcQhlwj5fuvcgZ8CaQttaapS0WM/cGKUwnZ96CcYMLVUUBTLl5lGV4bovftbwy4XSeGtL7n8r2c/IJeEoIrU4yZFVp66tvBbTigILJh/5v9361EGYJal6RSd15hSJP5tbQgTERSB9HzcJvBhsybic8pwleJjgjC8tDfuKCVsY/G1i07Y3XjY82F3e1Cf+2gLjEwVvpf0SGXKvy3iGVA3twjn9cZ27tx05dySAHVyavUe3UBg/DML5mRkZ99KyxD3jWxaz4DikdKygzRhcxqWCeP4np965OWU0pmhP5bEaKI/kjsE4TtuWWWTO/wyif60OgCaw59dNoQfE8EIpYLdyUOTbIRSDu4k4Lu0cgmMO7CrR/wUavGfRlhMTTDSn1f2PoCPHJKJaHi7HqiA+9Mph/9510//j1Xuey5l6vT3NFqWaG4rmxQZa++1cTIYnHLQ6b1gIJs9CXrVukIPSwei8ZlNxInHNnfmOLDt2MUuKZCkfieDnI85CE2AAN/OzzSi9SrP8uPMe+rZwmyPwKn9htnBmu3MI9KfAjtUGqdGdyKjOP+oHd1mtlabC9GciYC78Py1nXzm1p3UXLna1K9BGATjrA9At1yO18vqd7s9T9ir58Zg4e8HwQhsuGghRw4v6OLDe/wgycQ+jiZ6O0bQYcdulIuOSmuIWNLJJ7q34IS8k6+LeU3r+svWVQdEoMa1lVPHzmcmfKwksaokPiyaIkUagRRn7jnf6q5dy9alee378TePTbLo54pjuNcvH3oCLz31HqXBcYh53/TxWTuBrf5z8alquV8F9hQO/Tm75fhD10qjdLoykrfpSly4ZpC1/hKA8LNljtY17QC3En8W7/6FYtXxp1zJdNOuVlkngGJV6lDbSbtiS5IbvY0TDs3u60c4Pg5XbVgUgKk0xUmkJtkIjUXd8xJyH9J4ebDlhkKt/dHWinf2UCnUtq4LbqW1rWBkLZ/M90C87Ws0CtssS79SGYUEngodB6NH3Lh4v4l6OYu4ZcGCdkKKavXr21EdlmleN+Ft6BndJBPDYPX+AUwjgZUJ3+LX6rHnfN6D8WyYTpeASALN0Mv42dMmduSnKF9n7/qyFnwp0vrfo0kpg7WF5vBTGQbhoHOsinrh5GUb1L06lnUP8QZp0xRCNayqpvl9jyf5uwwpxi7ZO2stIm9Kvxw2U1sGyHjDoYvAFT X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23a7cc05-fad7-47dc-7c25-08da57e6d29d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:31.6945 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: N5Aoss2pA3WhWmThvJ8UhDbKPEzLAizmTUFIT6X4RhHmlOCnKhSlMMBZY8kSQmyZ6IT/IRmD4xZAze9n9X2rDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Select env storages according to boot device at runtime Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/mach-imx/imx9/soc.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/arch/arm/mach-imx/imx9/soc.c b/arch/arm/mach-imx/imx9/soc.c index ca88271564c..797d7a802ba 100644 --- a/arch/arm/mach-imx/imx9/soc.c +++ b/arch/arm/mach-imx/imx9/soc.c @@ -288,6 +288,40 @@ int timer_init(void) return 0; } +enum env_location env_get_location(enum env_operation op, int prio) +{ + enum boot_device dev = get_boot_device(); + enum env_location env_loc = ENVL_UNKNOWN; + + if (prio) + return env_loc; + + switch (dev) { +#if defined(CONFIG_ENV_IS_IN_SPI_FLASH) + case QSPI_BOOT: + env_loc = ENVL_SPI_FLASH; + break; +#endif +#if defined(CONFIG_ENV_IS_IN_MMC) + case SD1_BOOT: + case SD2_BOOT: + case SD3_BOOT: + case MMC1_BOOT: + case MMC2_BOOT: + case MMC3_BOOT: + env_loc = ENVL_MMC; + break; +#endif + default: +#if defined(CONFIG_ENV_IS_NOWHERE) + env_loc = ENVL_NOWHERE; +#endif + break; + } + + return env_loc; +} + static int mix_power_init(enum mix_power_domain pd) { enum src_mix_slice_id mix_id; From patchwork Mon Jun 27 03:24:42 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648566 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=RZ1t2JNz; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXGc6QGDz9s0r for ; Mon, 27 Jun 2022 12:48:24 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 6FC2E84523; Mon, 27 Jun 2022 04:43:50 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="RZ1t2JNz"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EBD408451C; Mon, 27 Jun 2022 04:43:38 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50042.outbound.protection.outlook.com [40.107.5.42]) (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 7CB058450D for ; Mon, 27 Jun 2022 04:43:36 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SvGaGc31PuDKVm6uelytp7jW1G5v0HuzmwgoASMhG2J+9PQIAsNCYi6YuKBJjYQkLU6DaGiGamAYq9z2120mL4Xqn1Bl+4IHX+5cmAu1SCLxwYjb6MXJH1VVVh1xkNpqAS7OR9XlQXvTpN4mTRudkkhPGjDpigQp6EuRQOdBVJMw5+6gqRRnkzJoL0HKh6wONAdPkLlOq3kf9/O81i6tX9beBGtMateV5DvO2D7ZNYieqfvMhbM4pAVGriCwuH9wq2u5JXKxjkr/pQO3tATpkL/uaBEzy5dqc4ZS4PjgxvYEvIaIMwh9/MyL1ZUdaaGr7hrJzKZVTgpyZQrGzeoUHQ== 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=ShRN/6u+ekvuTWszb+cwfhhSCRz1VdBIA73L99I7CTs=; b=PQU9BN2djhT4dj66C9SuzJT9SGncZkGDwjm1uxHQQsKk0IPiBt5eO2rc9QSiuho06jWSI4ATryS0qBPGqD6GumrPrm5VD3amsc4z/2I+JVJs3fQQcoSDvGrvaf81FfG2G98TV39Iqpu94DHOV6QGV1MRmiByER3dbuwTwSR6yYIDYew+IM9XgQDpi2hueNRn6LliUi4BBZdUSBquX+3+1ISRcEgohCP4od9IlaeE2F23p2CYrUtOnzDBIsGmFFIQ/bofbx7upxJBmyLNrqGDgldRjV0weOgXxm429XsEXV9vCGmqdYVnnayLSOsWDLojO4b+fOGfkK+ONpD1LG2bbg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ShRN/6u+ekvuTWszb+cwfhhSCRz1VdBIA73L99I7CTs=; b=RZ1t2JNz3mY6+gJBjSuGyIXjFUuAjl4WxUm/MMY1yh6yghnKeT/O1xGHPFk/RYXYmFvUHNmdqVFRi5THnrQRtf3VX2jfDTJMpdMmF8XuGEhpoS5zvMy1ktyNWgQRQ5Sx0MHzg5ejiGEhxoeShe3yugUtm3kgiUBEJtb/h+ZVSQc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:34 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:34 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 36/49] imx: imx9: clock: Add DDR clock support Date: Mon, 27 Jun 2022 11:24:42 +0800 Message-Id: <20220627032455.28280-37-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 96984671-8927-4235-e3ae-08da57e6d470 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4YOHtSHKTVo9+EqZ2t4m0xN2wfJAuMgy4wm6KMIWD0jdZA7PxZ2j6CND17keu0fFE0zxs3WtO6Z7BpG3UbIHC/wPngGbk4l/YOpFMwIdlEbYogNcITvqeWkEEm9OtDLNBY0HapBPcQhTFM+hQGbwehA62on1XI+/10kTxVzH31nOC4VbxS+JeTFQtDblroZSottqFagY+z7RoIpCfBhzim7frXtJRQtXjC7A4lFiVMrZf1cOSt2ODylHiJvK1YMPQFbm3VnP4PUR57WeSe15XYkDTuy1CwIfl+2eurNLmm7dfvSaoX36jqm+OgTLTbru7OlfNFvv3QJ98U32zEa9TUxMZejJPhQUB5ZKR7LqYMFEgVAkisOD3pIQWFRb7ZHgT2Wj8UYbJQqKMwIj6YnYPiWa00ODO4Z1A24FKbjaY6/KV9QjSaRvKydpDqnevGMKZQhhget86FtT4DZ27ug0sPxKttGKiYQmyw/EEmmzvqHeYesUTt0fsBQ2RDLedAbfhTGMi9G0+sij9gwflUKrXT2NkRtJluiv2f79RyVoeelGdbYL8yx1JI3ezIRCK5fpeqax+V1JGj0Nm+e0O17g1PYKPnhwbR9wTS0oo7vhL0gsaLnyWYLqXeqdTIyaGRnGiCzhjHSZ/zvRsj0BzSrx5o5suRC/8nKa4GusZ8M2p4Ih5rzmWJ1wtJTrlhpAB0+LCvSrBPnNxjSEc6YViW9ModOUs96QNsZ4h404+h7g2RBGgYFldbAaNwyAnsFtbKah+A3Vclw7TbONp6Gwdp6iyZl+NZcoSjf1JJiKrT/Rh/w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: F3pbuH/y57d85n0qbp7DkFRwIWsqp0uyEYGc5GrCK16S5LfyiPju7hf3OqgVCFNpsrCy2fHsbkzQXWyhYp4LFe/y/1+KnXSHVIUGD8iYe3W5Pawu6ZL7bqhUDcglIcmtfoNrgLmjFGtvU+snoUbgmqZKlaDvCYiFtLxYa5dst+VVr7DKHrbn8UhfTNsl6FHT1PiAh/g200ur0urlI5dPjdrWn8aDZKPTrNoXd2Lw68h4HBGma1EXMHz1r48lcaVHxxQkZEqUsB0eAAiCdAzsCLrhAfe992jXJJWSxrohAnMfKIvhjoVmBVL1suDEA2kvRmYTGtc64UaB/FAt0IIctjQ/LeQjX+iUfNqQ8h6uZcOB1TM0Qof17JFzArtmhi0sQ0qcKYw7ZjEsZgchEznORXh7UtFoxW0Q1cw+yVPuviTpCp9szU86rspqSNK0Dye0jDZ8rPAlM6zCPqL5h+B1E76SnblaC9bE6QGbJVroJRomQl6gdCvk64nulcpJq540jvg35uonhIP27epRK4F9sWw1CJinRuKsIOpMv7N75MBC3QP12elBwpzGy2IDMnKtu+ZdVFAxSG8QbXmHbYhnJKBa5Ol+LGNeZii+mUalD2Bxz8l8zM8/FXcS0ZqIkRlgwAMTs8mIqtfIrbqRUSqpyKTYSrsMxbaI1GbsNJ9+H1YTjYRBj4wr3FMBMc+KlUbJ1Pw0rlxloORNcXPrGzTnDJQ5hz0KTCsmNXmcDoST6+/V/XKBpoptitATExP4X3nAyELeMrDUavDMt8E3iht961uBXwn5dWlO3DDrY7XNyhMM6++gE8naEJUygaxQT70i0JGfOxWHI6eiD/5bhjzOsaM5aa30X/bylUHM61TV6fnQRFOrmjSrP5vV5X8aaQEOfVUM4aJPS4q4d8M9dz+4UGC8CwiVxy5uVNIyUAJgajTIHHfvZ8qDZYZSxPXjeYeTfQjnCSLcIqNQGTkpi5Spr9+qnmLzNYmIgUWHvw9SB5lkshCxScSz3kqrf31mDazXpwiklI4RPdL9UtKZe36R7mnIS/6okoXdEATdmwGWrowHfKEqE3rsoGRABdW5WZ5ifoYkUonhRAiS/AmWMDNccflhg8DebjGc2clM2Rfq3JlHf70hej8pWj8IWJxZsfNW4VBIWtwlEZ+a+FGL41vnlxDJA6unikjfMmYOmhGfMmNr88CfgkrEx+6ySgH154C9aN1UoNt7W2kt91gK7rophuK2hR1afwMFdx0C5DySRkmx5RVsXLt7Td8M0iTX5trZuWPI29HGdxDUg+C29x6zbhvqBwRAMUvYMg0+DtBBFk1NEzZ50Om5BfUwsNb+oN+CVb0PsSV8ezzRtSsdYtbTmhuB2A7zUgF4eYKJdvKG5i1f7n/3Yi0QGDiGDuS0HH+tdHt/AaDMygfopDXSUtri+YseC2/n9G8ov1kuDewmjREPExS0MVHRZNnjNTixj+39Gf/k7kXXeV3L85HOxWFSIQPuwRK7BXZTZujGPjxv1s3gTDOgqNVtwMl0rCe+dol79dommXdhlk819qY4jQonmYKd10CvHke0RMYm6Ncl/RYTD4djjO7IuLkax4vG+tIG X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 96984671-8927-4235-e3ae-08da57e6d470 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:34.6170 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: le4c0l5SFGwrEwssy8cD+pQejoeG8HiNMNvWENH/GDjyItDWvcF7GBsuil70eGO5xGAEmwF/ArZaOfM2A9+m8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Implement the DDR driver clock interfaces for set DDR rate and bypass DDR PLL Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/clock.h | 3 ++ arch/arm/mach-imx/imx9/clock.c | 41 ++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/clock.h b/arch/arm/include/asm/arch-imx9/clock.h index fcf04d66f05..d96f126a1d1 100644 --- a/arch/arm/include/asm/arch-imx9/clock.h +++ b/arch/arm/include/asm/arch-imx9/clock.h @@ -213,6 +213,9 @@ void init_clk_usdhc(u32 index); int enable_i2c_clk(unsigned char enable, u32 i2c_num); u32 imx_get_i2cclk(u32 i2c_num); u32 mxc_get_clock(enum mxc_clock clk); +void dram_pll_init(ulong pll_val); +void dram_enable_bypass(ulong clk_val); +void dram_disable_bypass(void); int ccm_clk_src_on(enum ccm_clk_src oscpll, bool enable); int ccm_clk_src_auto(enum ccm_clk_src oscpll, bool enable); diff --git a/arch/arm/mach-imx/imx9/clock.c b/arch/arm/mach-imx/imx9/clock.c index 55cbb40f328..5d2bc0d2f8f 100644 --- a/arch/arm/mach-imx/imx9/clock.c +++ b/arch/arm/mach-imx/imx9/clock.c @@ -626,6 +626,47 @@ void enable_usboh3_clk(unsigned char enable) } } +#ifdef CONFIG_SPL_BUILD +void dram_pll_init(ulong pll_val) +{ + configure_fracpll(DRAM_PLL_CLK, pll_val); +} + +void dram_enable_bypass(ulong clk_val) +{ + switch (clk_val) { + case MHZ(400): + ccm_clk_root_cfg(DRAM_ALT_CLK_ROOT, SYS_PLL_PFD1, 2); + break; + case MHZ(333): + ccm_clk_root_cfg(DRAM_ALT_CLK_ROOT, SYS_PLL_PFD0, 3); + break; + case MHZ(200): + ccm_clk_root_cfg(DRAM_ALT_CLK_ROOT, SYS_PLL_PFD1, 4); + break; + case MHZ(100): + ccm_clk_root_cfg(DRAM_ALT_CLK_ROOT, SYS_PLL_PFD1, 8); + break; + default: + printf("No matched freq table %lu\n", clk_val); + return; + } + + /* Set DRAM APB to 133Mhz */ + ccm_clk_root_cfg(DRAM_APB_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* Switch from DRAM clock root from PLL to CCM */ + ccm_shared_gpr_set(SHARED_GPR_DRAM_CLK, SHARED_GPR_DRAM_CLK_SEL_CCM); +} + +void dram_disable_bypass(void) +{ + /* Set DRAM APB to 133Mhz */ + ccm_clk_root_cfg(DRAM_APB_CLK_ROOT, SYS_PLL_PFD1_DIV2, 3); + /* Switch from DRAM clock root from CCM to PLL */ + ccm_shared_gpr_set(SHARED_GPR_DRAM_CLK, SHARED_GPR_DRAM_CLK_SEL_PLL); +} +#endif + int clock_init(void) { int i; From patchwork Mon Jun 27 03:24:43 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648567 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=jJNBuxno; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXGp4QMVz9s0r for ; Mon, 27 Jun 2022 12:48:34 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id ED2A3844D4; Mon, 27 Jun 2022 04:43:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="jJNBuxno"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 08D0884528; Mon, 27 Jun 2022 04:43:46 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50078.outbound.protection.outlook.com [40.107.5.78]) (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 1D10C8450E for ; Mon, 27 Jun 2022 04:43:41 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fV1GY4Tn+01UWblRGGO0QLpqyYuEMl0DBLVNnVWH/PqY4usG0Voao+mNaNxYQbFw+Bnnc8TueowNoTzCfYG/Jm23l0aafxpOZu1rE5GE8To/10tVY972kZkX0sZ3tISl9W01RdjmdNm6A1Un/GrKQYajZ8fqQvwZJbOso7UkC+hTQ4i5xniiYTO3Ug/eXsjs/jjdIH+Y59y1Zzeu0yIBZDhluDGKcluoTHpfW70C+0v9ARIHC/0e1RvA9HEo6BzzpXkeR+nfc8xNpcyESPSEIhx/rBbok9i5D1wsGz2KEXSEn6WgrGpZmDb79XBPANpl5Xp9l0gFRFAzSNs4WO8ivg== 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=sGQKvE3rhAnK9R5HxU+a6D7SSzoYsTZt9UeKCqIUg/o=; b=NAJ9iILEUoA7nsExlBhm4dOQN6jWeM9wf7wsFXTVOZUTI4a+ywF/B/FYY/Pwv7S5WezO56eMsYUMTpCCQhZrQkdqO4mKlxArKvrrGV1+60mGn/Z72duFjK06ZpEWYYFuPPtXMTI/4q+T4nX4FZDuqIRoOV6MzQFrHKjhwf57QACLqMVbKd/VZziBsBDmksmYi7mVonpSY4HbrPLLPR9OZxwOHgApvIfNVkGv9aQb93+kKRJjZFZuQrb8I2KovgoI4FcMpKF/dVtWPatWIyy751iwEgV8xWlFAKSuIG38vrGHR7KHiC42pFsWe1SJnpYcCJFRWSYp2CYOABDgYeO8sw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=sGQKvE3rhAnK9R5HxU+a6D7SSzoYsTZt9UeKCqIUg/o=; b=jJNBuxno77jesbY1LQqfAYGHdQwFYKwd7T0z9sMA18Ryr3fMHjTH6RvQvOMEiW+zrXn/3bYZBFjlgjPPxCGgsuFghZtcXABQw2oK0z/GDboYhNiLVCtQkKoBch0tAmeIpL7jLLIY4Zv1r9h/VhZNv8uSJtmWLhv6kpH6Eg9EePs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:38 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:38 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 37/49] ddr: imx: Add i.MX9 DDR controller driver Date: Mon, 27 Jun 2022 11:24:43 +0800 Message-Id: <20220627032455.28280-38-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 43fd9682-cfca-489f-9734-08da57e6d659 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oMZ7HelsubFQ6JfZN5Nv91GWMQHzSDCNB6xY2m2YPsLkM705wkElgfWj5EQ+4vo1q/qgcxHo+Thc1B9WJnLNn4gA5IR4i8FpZaPnMaxlCPRiph6DqWX/yWDXCb7C63uSxIVHLrJI0YuWfzSQAfNv7bn6m4H3/HRrsEArHJnlc8lHB39ODozVuWp21XYsr6X/EfCElbLNWbvBSeeBpS8DXAnnGq2j/mcGxuMEAJ0jq0qJkhoS5IEfdC8O6+Vn4XIV5gPtHH5/JB324ER8S/db0OxnJB+Sv6dX3ru+8lPTNHSR8urKscviOgfVPp02X5fQri1TCUjGNurU8tNaeh77PymEAKwb7kX/ilUTEH5bym2vqiAKugmalZLugwXxBxb410lDrUa35ll+Wp8xy3SyWJ+erH6MFq+ibNgMEMPRISpTKMDJVlhdLAU6925zd7dRCcncF0UMfQIjJ3f24K4T/j2NyaCa95AsxcCZ0mM2knOPkwiTJYPVyMDlVxqVPHVXTZvCSHQvtHtwNaoeMjuaeeAsbdYdofF0nSZcG+qCfVPsclM42maHF/6MVhxdqKGatxXNB69vF1gHB5g8WIDX/TQyBqzPoq8oxwM3Vns+3yHPF/k1jAiG4e6JAyQ+zIyS5xZzADbqT8XSceBLb8GW8N8t3Ty1OSj3JDnxYCEJeF4mkumID4iZuOMZYfLTamJA9P8LzLS9zFruzGK4zL0WZcY/0ngZGS5b5K0R6oPIJtj6udwopIBf7VFfN6WAQBkStuoGCb3vHB03mi5EznIx2Ws5AA64ZL+i3tpOKR7Lu2w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(5660300002)(38350700002)(38100700002)(2906002)(30864003)(6486002)(186003)(478600001)(6666004)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AjyLRmFLWNkh1u2BMcLDgBpplvIen9LcPmOkfb6HCc87TSux8K4OIvo5FSZ70lCQR7PHa4tKEn20XvKqfkHKoVVJuG3W45rXsz40L9LIQDfopKoQ7QTvmlrq4tQ/hmGFZm4pbWOVk73IModiTXbJCBvtr1mX/do6+PkIOIYJe7ZWmkHUSYC8mxEQvpqSCFPQ38gTrahFerFm1gjWeNwTxAa0dxY7oLD0DwtVwlD/hDy7+9EdSwMfl+ncpjX4ZymD4ekXL2wCD4sZX9cXk1niwRQN6tbhplOTDRf3OA0LC+zbvJclZhwjQfy+jcBDumHcz+qCKkryphMeiRkst1+kdZpPhZ0a1hM2TCIRvgl5+GrnacUhE0aev0eEWkuyxjmjqO4tOKOZRfuSk9tWjdwAmgKkZCXt0c9sOKf8wK6NyWvLQiqVW6cB7CH1j6a+NDKiii5Ogt1R8JVczcJ+bx/RqMj2jozBEJ7Fc60thtgVY1z9Aw7SngjiVvK1fN5IDUtmsMDY/8Wb7HB7QHW0KIB+MjhhAnWczT9zeGX760J5BUFkyLC/j81QFydRrjc/gtgdyvIqX1e/0VsAg4FeumtAckghvSDPtC0fNiAP0Jy4LQ82PY8vxqMBsVJ9BBY51Pefjlfk4A7ubRP0/xKroCXpkQ1ZdInVk2J40nHi1wXQh/XSLqVxN1RK/xOw3tZqTyM6GI0oWE+fqpags90eQc++ETF4uSDWpAjX5cN9VQBGkVuRizvViyIwrlUP+jvUtP9Gh3hzF/2TYHCuZgGbw3ffAiwqGXba49EDloAdWcdjX67odfD4XxbNAVBk2eJzWZAeMUOV0WsliDlHS8lhQ8VzFzAi5KV3kN1dytIPmCVP+qLtfe1YNnwo0NC4ilK1XpZLMQ3KOirnA94dCNTKjlBlH3+E23lGl43mXuAFJbf2KMzxxDZ7N7PjPYmhpb7CqqMi9G4CfY/FR4gfAgHRVSQHs9+dN9yDQy06KMf/+xiVQgLUZH2UqpQGecTd//fWfO0rWNXoRgDT1e6y+alEuB1+gO9aB4GSFbk1EcralF8ouMneCqCCJsp9k5hKh9zk5z+vvKXyAuAfyXhR2W3etEDyKlqRfXBMjE48TVmtC9Hm90s2cd05FeNYeIStHcHi10x4Z6NJ3yHl5ea8K2BpLqZGs+iEmQNvWjhhW0QTzvAqArWHtAYqu6Q2bJZxT8e2kWPbFOD2W8KmVux/DElJl16nd/XQ6E/ZNru4UAcnDsAJvdyDvlg4UD7asOAtOR0MHBDezi/Bp0ewSAeitEmNhCwBudnBWLBHSZmG+MzjS1bYxlr8gOP6tCZCBJRPufL1BYnHmketLQFlQbX330aBZVqMf/SLMq6IxloBk6djMHSbEXu8w8rMGtCfqvsEOEWPCQx9S4sjzhwYx29k8/ltgT1U7Lh1OksMWn6bQetGtpv7VochyqgBSNCKoMN8b4Hhy+zJsycOPGtBX9ExrvZDXCQtJpKjUH2NU0dmrIGk98aItv1kpWs97sR3GFhmqv22JKNUSIPwrcm8vfW0ZVzG5Vd7rJOkSNomDYW9czEYOz5uVOgrSmgS9EcPBfHYWAVri6/T X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43fd9682-cfca-489f-9734-08da57e6d659 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:38.2104 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Tv1DsfLk/JCuLzMsfZatTjYqGcDQN51U/LXkEUYwA2qwUYKz1A+bsFjsu8ZzrgMoQjr/Eu+bpAcOMMGcauImzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Since i.MX9 uses same DDR PHY with i.MX8M, split the DDRPHY to a common directory under imx, then use dedicated ddr controller driver for each iMX9 and iMX8M. The DDRPHY registers are space compressed, so it needs conversion to access the DDRPHY address. Introduce a common PHY address remap function for both iMX8M and iMX9 for all PHY registers accessing. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx8m/ddr.h | 6 +- arch/arm/include/asm/arch-imx9/ddr.h | 126 +++++ drivers/Makefile | 1 + drivers/ddr/imx/Kconfig | 2 + drivers/ddr/imx/imx8m/Kconfig | 1 + drivers/ddr/imx/imx8m/Makefile | 3 +- drivers/ddr/imx/imx8m/ddr_init.c | 219 ++++++++ drivers/ddr/imx/imx9/Kconfig | 21 + drivers/ddr/imx/imx9/Makefile | 10 + drivers/ddr/imx/imx9/ddr_init.c | 485 ++++++++++++++++++ drivers/ddr/imx/phy/Kconfig | 4 + drivers/ddr/imx/phy/Makefile | 9 + drivers/ddr/imx/{imx8m => phy}/ddrphy_csr.c | 0 drivers/ddr/imx/{imx8m => phy}/ddrphy_train.c | 1 - drivers/ddr/imx/phy/ddrphy_utils.c | 169 ++++++ drivers/ddr/imx/{imx8m => phy}/helper.c | 45 +- 16 files changed, 1077 insertions(+), 25 deletions(-) create mode 100644 arch/arm/include/asm/arch-imx9/ddr.h create mode 100644 drivers/ddr/imx/imx9/Kconfig create mode 100644 drivers/ddr/imx/imx9/Makefile create mode 100644 drivers/ddr/imx/imx9/ddr_init.c create mode 100644 drivers/ddr/imx/phy/Kconfig create mode 100644 drivers/ddr/imx/phy/Makefile rename drivers/ddr/imx/{imx8m => phy}/ddrphy_csr.c (100%) rename drivers/ddr/imx/{imx8m => phy}/ddrphy_train.c (98%) create mode 100644 drivers/ddr/imx/phy/ddrphy_utils.c rename drivers/ddr/imx/{imx8m => phy}/helper.c (79%) diff --git a/arch/arm/include/asm/arch-imx8m/ddr.h b/arch/arm/include/asm/arch-imx8m/ddr.h index 2ce8a8f2d41..2f76e7d69b9 100644 --- a/arch/arm/include/asm/arch-imx8m/ddr.h +++ b/arch/arm/include/asm/arch-imx8m/ddr.h @@ -725,6 +725,8 @@ void update_umctl2_rank_space_setting(unsigned int pstat_num); void get_trained_CDD(unsigned int fsp); unsigned int lpddr4_mr_read(unsigned int mr_rank, unsigned int mr_addr); +ulong ddrphy_addr_remap(uint32_t paddr_apb_from_ctlr); + static inline void reg32_write(unsigned long addr, u32 val) { writel(val, addr); @@ -741,9 +743,9 @@ static inline void reg32setbit(unsigned long addr, u32 bit) } #define dwc_ddrphy_apb_wr(addr, data) \ - reg32_write(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + 4 * (addr), data) + reg32_write(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(addr), data) #define dwc_ddrphy_apb_rd(addr) \ - reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + 4 * (addr)) + reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(addr)) extern struct dram_cfg_param ddrphy_trained_csr[]; extern uint32_t ddrphy_trained_csr_num; diff --git a/arch/arm/include/asm/arch-imx9/ddr.h b/arch/arm/include/asm/arch-imx9/ddr.h new file mode 100644 index 00000000000..62e6f7dda53 --- /dev/null +++ b/arch/arm/include/asm/arch-imx9/ddr.h @@ -0,0 +1,126 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __ASM_ARCH_IMX8M_DDR_H +#define __ASM_ARCH_IMX8M_DDR_H + +#include +#include + +#define DDR_CTL_BASE 0x4E300000 +#define DDR_PHY_BASE 0x4E100000 +#define DDRMIX_BLK_CTRL_BASE 0x4E010000 + +#define REG_DDRDSR_2 (DDR_CTL_BASE + 0xB24) +#define REG_DDR_SDRAM_CFG (DDR_CTL_BASE + 0x110) +#define REG_DDR_DEBUG_19 (DDR_CTL_BASE + 0xF48) + +#define SRC_BASE_ADDR (0x44460000) +#define SRC_DPHY_BASE_ADDR (SRC_BASE_ADDR + 0x1400) +#define REG_SRC_DPHY_SW_CTRL (SRC_DPHY_BASE_ADDR + 0x20) +#define REG_SRC_DPHY_SINGLE_RESET_SW_CTRL (SRC_DPHY_BASE_ADDR + 0x24) + +#define IP2APB_DDRPHY_IPS_BASE_ADDR(X) (DDR_PHY_BASE + ((X) * 0x2000000)) +#define DDRPHY_MEM(X) (DDR_PHY_BASE + ((X) * 0x2000000) + 0x50000) + +/* PHY State */ +enum pstate { + PS0, + PS1, + PS2, + PS3, +}; + +enum msg_response { + TRAIN_SUCCESS = 0x7, + TRAIN_STREAM_START = 0x8, + TRAIN_FAIL = 0xff, +}; + +/* user data type */ +enum fw_type { + FW_1D_IMAGE, + FW_2D_IMAGE, +}; + +struct dram_cfg_param { + unsigned int reg; + unsigned int val; +}; + +struct dram_fsp_msg { + unsigned int drate; + enum fw_type fw_type; + struct dram_cfg_param *fsp_cfg; + unsigned int fsp_cfg_num; +}; + +struct dram_timing_info { + /* umctl2 config */ + struct dram_cfg_param *ddrc_cfg; + unsigned int ddrc_cfg_num; + /* ddrphy config */ + struct dram_cfg_param *ddrphy_cfg; + unsigned int ddrphy_cfg_num; + /* ddr fsp train info */ + struct dram_fsp_msg *fsp_msg; + unsigned int fsp_msg_num; + /* ddr phy trained CSR */ + struct dram_cfg_param *ddrphy_trained_csr; + unsigned int ddrphy_trained_csr_num; + /* ddr phy PIE */ + struct dram_cfg_param *ddrphy_pie; + unsigned int ddrphy_pie_num; + /* initialized drate table */ + unsigned int fsp_table[4]; +}; + +extern struct dram_timing_info dram_timing; + +void ddr_load_train_firmware(enum fw_type type); +int ddr_init(struct dram_timing_info *timing_info); +int ddr_cfg_phy(struct dram_timing_info *timing_info); +void load_lpddr4_phy_pie(void); +void ddrphy_trained_csr_save(struct dram_cfg_param *param, unsigned int num); +void dram_config_save(struct dram_timing_info *info, unsigned long base); +void board_dram_ecc_scrub(void); +void ddrc_inline_ecc_scrub(unsigned int start_address, + unsigned int range_address); +void ddrc_inline_ecc_scrub_end(unsigned int start_address, + unsigned int range_address); + +/* utils function for ddr phy training */ +int wait_ddrphy_training_complete(void); +void ddrphy_init_set_dfi_clk(unsigned int drate); +void ddrphy_init_read_msg_block(enum fw_type type); + +void get_trained_CDD(unsigned int fsp); + +ulong ddrphy_addr_remap(u32 paddr_apb_from_ctlr); + +static inline void reg32_write(unsigned long addr, u32 val) +{ + writel(val, addr); +} + +static inline u32 reg32_read(unsigned long addr) +{ + return readl(addr); +} + +static inline void reg32setbit(unsigned long addr, u32 bit) +{ + setbits_le32(addr, (1 << bit)); +} + +#define dwc_ddrphy_apb_wr(addr, data) \ + reg32_write(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(addr), data) +#define dwc_ddrphy_apb_rd(addr) \ + reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(addr)) + +extern struct dram_cfg_param ddrphy_trained_csr[]; +extern u32 ddrphy_trained_csr_num; + +#endif diff --git a/drivers/Makefile b/drivers/Makefile index d63fd1c04d1..eba9940231f 100644 --- a/drivers/Makefile +++ b/drivers/Makefile @@ -49,6 +49,7 @@ obj-$(CONFIG_ARMADA_XP) += ddr/marvell/axp/ obj-$(CONFIG_$(SPL_)ALTERA_SDRAM) += ddr/altera/ obj-$(CONFIG_ARCH_IMX8M) += ddr/imx/imx8m/ obj-$(CONFIG_IMX8ULP_DRAM) += ddr/imx/imx8ulp/ +obj-$(CONFIG_ARCH_IMX9) += ddr/imx/imx9/ obj-$(CONFIG_SPL_DM_RESET) += reset/ obj-$(CONFIG_SPL_MUSB_NEW) += usb/musb-new/ obj-$(CONFIG_SPL_USB_GADGET) += usb/gadget/ diff --git a/drivers/ddr/imx/Kconfig b/drivers/ddr/imx/Kconfig index 179f34530d7..328fbabb6db 100644 --- a/drivers/ddr/imx/Kconfig +++ b/drivers/ddr/imx/Kconfig @@ -1,2 +1,4 @@ source "drivers/ddr/imx/imx8m/Kconfig" source "drivers/ddr/imx/imx8ulp/Kconfig" +source "drivers/ddr/imx/imx9/Kconfig" +source "drivers/ddr/imx/phy/Kconfig" diff --git a/drivers/ddr/imx/imx8m/Kconfig b/drivers/ddr/imx/imx8m/Kconfig index a90b7db4940..08b6787a543 100644 --- a/drivers/ddr/imx/imx8m/Kconfig +++ b/drivers/ddr/imx/imx8m/Kconfig @@ -3,6 +3,7 @@ menu "i.MX8M DDR controllers" config IMX8M_DRAM bool "imx8m dram" + select IMX_SNPS_DDR_PHY config IMX8M_LPDDR4 bool "imx8m lpddr4" diff --git a/drivers/ddr/imx/imx8m/Makefile b/drivers/ddr/imx/imx8m/Makefile index bd9bcb8d53b..aed91dc23f4 100644 --- a/drivers/ddr/imx/imx8m/Makefile +++ b/drivers/ddr/imx/imx8m/Makefile @@ -5,5 +5,6 @@ # ifdef CONFIG_SPL_BUILD -obj-$(CONFIG_IMX8M_DRAM) += helper.o ddrphy_utils.o ddrphy_train.o ddrphy_csr.o ddr_init.o +obj-$(CONFIG_IMX8M_DRAM) += ddr_init.o +obj-y += ../phy/ endif diff --git a/drivers/ddr/imx/imx8m/ddr_init.c b/drivers/ddr/imx/imx8m/ddr_init.c index b70bcc383fa..d964184ddc8 100644 --- a/drivers/ddr/imx/imx8m/ddr_init.c +++ b/drivers/ddr/imx/imx8m/ddr_init.c @@ -11,6 +11,11 @@ #include #include +static unsigned int g_cdd_rr_max[4]; +static unsigned int g_cdd_rw_max[4]; +static unsigned int g_cdd_wr_max[4]; +static unsigned int g_cdd_ww_max[4]; + void ddr_cfg_umctl2(struct dram_cfg_param *ddrc_cfg, int num) { int i = 0; @@ -91,6 +96,215 @@ void __weak board_dram_ecc_scrub(void) { } +void lpddr4_mr_write(unsigned int mr_rank, unsigned int mr_addr, + unsigned int mr_data) +{ + unsigned int tmp; + /* + * 1. Poll MRSTAT.mr_wr_busy until it is 0. + * This checks that there is no outstanding MR transaction. + * No writes should be performed to MRCTRL0 and MRCTRL1 if + * MRSTAT.mr_wr_busy = 1. + */ + do { + tmp = reg32_read(DDRC_MRSTAT(0)); + } while (tmp & 0x1); + /* + * 2. Write the MRCTRL0.mr_type, MRCTRL0.mr_addr, MRCTRL0.mr_rank and + * (for MRWs) MRCTRL1.mr_data to define the MR transaction. + */ + reg32_write(DDRC_MRCTRL0(0), (mr_rank << 4)); + reg32_write(DDRC_MRCTRL1(0), (mr_addr << 8) | mr_data); + reg32setbit(DDRC_MRCTRL0(0), 31); +} + +unsigned int lpddr4_mr_read(unsigned int mr_rank, unsigned int mr_addr) +{ + unsigned int tmp; + + reg32_write(DRC_PERF_MON_MRR0_DAT(0), 0x1); + do { + tmp = reg32_read(DDRC_MRSTAT(0)); + } while (tmp & 0x1); + + reg32_write(DDRC_MRCTRL0(0), (mr_rank << 4) | 0x1); + reg32_write(DDRC_MRCTRL1(0), (mr_addr << 8)); + reg32setbit(DDRC_MRCTRL0(0), 31); + do { + tmp = reg32_read(DRC_PERF_MON_MRR0_DAT(0)); + } while ((tmp & 0x8) == 0); + tmp = reg32_read(DRC_PERF_MON_MRR1_DAT(0)); + tmp = tmp & 0xff; + reg32_write(DRC_PERF_MON_MRR0_DAT(0), 0x4); + + return tmp; +} + +static unsigned int look_for_max(unsigned int data[], unsigned int addr_start, + unsigned int addr_end) +{ + unsigned int i, imax = 0; + + for (i = addr_start; i <= addr_end; i++) { + if (((data[i] >> 7) == 0) && data[i] > imax) + imax = data[i]; + } + + return imax; +} + +void get_trained_CDD(u32 fsp) +{ + unsigned int i, ddr_type, tmp; + unsigned int cdd_cha[12], cdd_chb[12]; + unsigned int cdd_cha_rr_max, cdd_cha_rw_max, cdd_cha_wr_max, cdd_cha_ww_max; + unsigned int cdd_chb_rr_max, cdd_chb_rw_max, cdd_chb_wr_max, cdd_chb_ww_max; + + ddr_type = reg32_read(DDRC_MSTR(0)) & 0x3f; + if (ddr_type == 0x20) { + for (i = 0; i < 6; i++) { + tmp = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + (0x54013 + i) * 4); + cdd_cha[i * 2] = tmp & 0xff; + cdd_cha[i * 2 + 1] = (tmp >> 8) & 0xff; + } + + for (i = 0; i < 7; i++) { + tmp = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + (0x5402c + i) * 4); + if (i == 0) { + cdd_cha[0] = (tmp >> 8) & 0xff; + } else if (i == 6) { + cdd_cha[11] = tmp & 0xff; + } else { + cdd_chb[i * 2 - 1] = tmp & 0xff; + cdd_chb[i * 2] = (tmp >> 8) & 0xff; + } + } + + cdd_cha_rr_max = look_for_max(cdd_cha, 0, 1); + cdd_cha_rw_max = look_for_max(cdd_cha, 2, 5); + cdd_cha_wr_max = look_for_max(cdd_cha, 6, 9); + cdd_cha_ww_max = look_for_max(cdd_cha, 10, 11); + cdd_chb_rr_max = look_for_max(cdd_chb, 0, 1); + cdd_chb_rw_max = look_for_max(cdd_chb, 2, 5); + cdd_chb_wr_max = look_for_max(cdd_chb, 6, 9); + cdd_chb_ww_max = look_for_max(cdd_chb, 10, 11); + g_cdd_rr_max[fsp] = + cdd_cha_rr_max > cdd_chb_rr_max ? cdd_cha_rr_max : cdd_chb_rr_max; + g_cdd_rw_max[fsp] = + cdd_cha_rw_max > cdd_chb_rw_max ? cdd_cha_rw_max : cdd_chb_rw_max; + g_cdd_wr_max[fsp] = + cdd_cha_wr_max > cdd_chb_wr_max ? cdd_cha_wr_max : cdd_chb_wr_max; + g_cdd_ww_max[fsp] = + cdd_cha_ww_max > cdd_chb_ww_max ? cdd_cha_ww_max : cdd_chb_ww_max; + } else { + unsigned int ddr4_cdd[64]; + + for (i = 0; i < 29; i++) { + tmp = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + (0x54012 + i) * 4); + ddr4_cdd[i * 2] = tmp & 0xff; + ddr4_cdd[i * 2 + 1] = (tmp >> 8) & 0xff; + } + + g_cdd_rr_max[fsp] = look_for_max(ddr4_cdd, 1, 12); + g_cdd_ww_max[fsp] = look_for_max(ddr4_cdd, 13, 24); + g_cdd_rw_max[fsp] = look_for_max(ddr4_cdd, 25, 40); + g_cdd_wr_max[fsp] = look_for_max(ddr4_cdd, 41, 56); + } +} + +void update_umctl2_rank_space_setting(unsigned int pstat_num) +{ + unsigned int i, ddr_type; + unsigned int addr_slot, rdata, tmp, tmp_t; + unsigned int ddrc_w2r, ddrc_r2w, ddrc_wr_gap, ddrc_rd_gap; + + ddr_type = reg32_read(DDRC_MSTR(0)) & 0x3f; + for (i = 0; i < pstat_num; i++) { + addr_slot = i ? (i + 1) * 0x1000 : 0; + if (ddr_type == 0x20) { + /* update r2w:[13:8], w2r:[5:0] */ + rdata = reg32_read(DDRC_DRAMTMG2(0) + addr_slot); + ddrc_w2r = rdata & 0x3f; + if (is_imx8mp()) + tmp = ddrc_w2r + (g_cdd_wr_max[i] >> 1); + else + tmp = ddrc_w2r + (g_cdd_wr_max[i] >> 1) + 1; + ddrc_w2r = (tmp > 0x3f) ? 0x3f : tmp; + + ddrc_r2w = (rdata >> 8) & 0x3f; + if (is_imx8mp()) + tmp = ddrc_r2w + (g_cdd_rw_max[i] >> 1); + else + tmp = ddrc_r2w + (g_cdd_rw_max[i] >> 1) + 1; + ddrc_r2w = (tmp > 0x3f) ? 0x3f : tmp; + + tmp_t = (rdata & 0xffffc0c0) | (ddrc_r2w << 8) | ddrc_w2r; + reg32_write((DDRC_DRAMTMG2(0) + addr_slot), tmp_t); + } else { + /* update w2r:[5:0] */ + rdata = reg32_read(DDRC_DRAMTMG9(0) + addr_slot); + ddrc_w2r = rdata & 0x3f; + if (is_imx8mp()) + tmp = ddrc_w2r + (g_cdd_wr_max[i] >> 1); + else + tmp = ddrc_w2r + (g_cdd_wr_max[i] >> 1) + 1; + ddrc_w2r = (tmp > 0x3f) ? 0x3f : tmp; + tmp_t = (rdata & 0xffffffc0) | ddrc_w2r; + reg32_write((DDRC_DRAMTMG9(0) + addr_slot), tmp_t); + + /* update r2w:[13:8] */ + rdata = reg32_read(DDRC_DRAMTMG2(0) + addr_slot); + ddrc_r2w = (rdata >> 8) & 0x3f; + if (is_imx8mp()) + tmp = ddrc_r2w + (g_cdd_rw_max[i] >> 1); + else + tmp = ddrc_r2w + (g_cdd_rw_max[i] >> 1) + 1; + ddrc_r2w = (tmp > 0x3f) ? 0x3f : tmp; + + tmp_t = (rdata & 0xffffc0ff) | (ddrc_r2w << 8); + reg32_write((DDRC_DRAMTMG2(0) + addr_slot), tmp_t); + } + + if (!is_imx8mq()) { + /* + * update rankctl: wr_gap:11:8; rd:gap:7:4; quasi-dymic, doc wrong(static) + */ + rdata = reg32_read(DDRC_RANKCTL(0) + addr_slot); + ddrc_wr_gap = (rdata >> 8) & 0xf; + if (is_imx8mp()) + tmp = ddrc_wr_gap + (g_cdd_ww_max[i] >> 1); + else + tmp = ddrc_wr_gap + (g_cdd_ww_max[i] >> 1) + 1; + ddrc_wr_gap = (tmp > 0xf) ? 0xf : tmp; + + ddrc_rd_gap = (rdata >> 4) & 0xf; + if (is_imx8mp()) + tmp = ddrc_rd_gap + (g_cdd_rr_max[i] >> 1); + else + tmp = ddrc_rd_gap + (g_cdd_rr_max[i] >> 1) + 1; + ddrc_rd_gap = (tmp > 0xf) ? 0xf : tmp; + + tmp_t = (rdata & 0xfffff00f) | (ddrc_wr_gap << 8) | (ddrc_rd_gap << 4); + reg32_write((DDRC_RANKCTL(0) + addr_slot), tmp_t); + } + } + + if (is_imx8mq()) { + /* update rankctl: wr_gap:11:8; rd:gap:7:4; quasi-dymic, doc wrong(static) */ + rdata = reg32_read(DDRC_RANKCTL(0)); + ddrc_wr_gap = (rdata >> 8) & 0xf; + tmp = ddrc_wr_gap + (g_cdd_ww_max[0] >> 1) + 1; + ddrc_wr_gap = (tmp > 0xf) ? 0xf : tmp; + + ddrc_rd_gap = (rdata >> 4) & 0xf; + tmp = ddrc_rd_gap + (g_cdd_rr_max[0] >> 1) + 1; + ddrc_rd_gap = (tmp > 0xf) ? 0xf : tmp; + + tmp_t = (rdata & 0xfffff00f) | (ddrc_wr_gap << 8) | (ddrc_rd_gap << 4); + reg32_write(DDRC_RANKCTL(0), tmp_t); + } +} + int ddr_init(struct dram_timing_info *dram_timing) { unsigned int tmp, initial_drate, target_freq; @@ -250,3 +464,8 @@ int ddr_init(struct dram_timing_info *dram_timing) return 0; } + +ulong ddrphy_addr_remap(uint32_t paddr_apb_from_ctlr) +{ + return 4 * paddr_apb_from_ctlr; +} diff --git a/drivers/ddr/imx/imx9/Kconfig b/drivers/ddr/imx/imx9/Kconfig new file mode 100644 index 00000000000..a16ddc65e01 --- /dev/null +++ b/drivers/ddr/imx/imx9/Kconfig @@ -0,0 +1,21 @@ +menu "i.MX9 DDR controllers" + depends on ARCH_IMX9 + +config IMX9_DRAM + bool "imx9 dram" + select IMX_SNPS_DDR_PHY + +config IMX9_LPDDR4X + bool "imx9 lpddr4 and lpddr4x" + select IMX9_DRAM + help + Select the i.MX9 LPDDR4/4X driver support on i.MX9 SOC. + +config SAVED_DRAM_TIMING_BASE + hex "Define the base address for saved dram timing" + help + after DRAM is trained, need to save the dram related timming + info into memory for low power use. + default 0x204DC000 + +endmenu diff --git a/drivers/ddr/imx/imx9/Makefile b/drivers/ddr/imx/imx9/Makefile new file mode 100644 index 00000000000..9403f988b32 --- /dev/null +++ b/drivers/ddr/imx/imx9/Makefile @@ -0,0 +1,10 @@ +# +# Copyright 2018 NXP +# +# SPDX-License-Identifier: GPL-2.0+ +# + +ifdef CONFIG_SPL_BUILD +obj-$(CONFIG_IMX9_DRAM) += ddr_init.o +obj-y += ../phy/ +endif diff --git a/drivers/ddr/imx/imx9/ddr_init.c b/drivers/ddr/imx/imx9/ddr_init.c new file mode 100644 index 00000000000..16eac65105f --- /dev/null +++ b/drivers/ddr/imx/imx9/ddr_init.c @@ -0,0 +1,485 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +void ddrphy_coldreset(void) +{ + /* dramphy_apb_n default 1 , assert -> 0, de_assert -> 1 */ + /* dramphy_reset_n default 0 , assert -> 0, de_assert -> 1 */ + /* dramphy_PwrOKIn default 0 , assert -> 1, de_assert -> 0 */ + + /* src_gen_dphy_apb_sw_rst_de_assert */ + clrbits_le32(REG_SRC_DPHY_SW_CTRL, BIT(0)); + /* src_gen_dphy_sw_rst_de_assert */ + clrbits_le32(REG_SRC_DPHY_SINGLE_RESET_SW_CTRL, BIT(2)); + /* src_gen_dphy_PwrOKIn_sw_rst_de_assert() */ + setbits_le32(REG_SRC_DPHY_SINGLE_RESET_SW_CTRL, BIT(0)); + mdelay(10); + + /* src_gen_dphy_apb_sw_rst_assert */ + setbits_le32(REG_SRC_DPHY_SW_CTRL, BIT(0)); + /* src_gen_dphy_sw_rst_assert */ + setbits_le32(REG_SRC_DPHY_SINGLE_RESET_SW_CTRL, BIT(2)); + mdelay(10); + /* src_gen_dphy_PwrOKIn_sw_rst_assert */ + clrbits_le32(REG_SRC_DPHY_SINGLE_RESET_SW_CTRL, BIT(0)); + mdelay(10); + + /* src_gen_dphy_apb_sw_rst_de_assert */ + clrbits_le32(REG_SRC_DPHY_SW_CTRL, BIT(0)); + /* src_gen_dphy_sw_rst_de_assert() */ + clrbits_le32(REG_SRC_DPHY_SINGLE_RESET_SW_CTRL, BIT(2)); +} + +void check_ddrc_idle(void) +{ + u32 regval; + + do { + regval = readl(REG_DDRDSR_2); + if (regval & BIT(31)) + break; + } while (1); +} + +void check_dfi_init_complete(void) +{ + u32 regval; + + do { + regval = readl(REG_DDRDSR_2); + if (regval & BIT(2)) + break; + } while (1); + setbits_le32(REG_DDRDSR_2, BIT(2)); +} + +void ddrc_config(struct dram_cfg_param *ddrc_config, int num) +{ + int i = 0; + + for (i = 0; i < num; i++) { + writel(ddrc_config->val, (ulong)ddrc_config->reg); + ddrc_config++; + } +} + +void get_trained_CDD(u32 fsp) +{ +} + +int ddr_init(struct dram_timing_info *dram_timing) +{ + unsigned int initial_drate; + int ret; + u32 regval; + + debug("DDRINFO: start DRAM init\n"); + + /* reset ddrphy */ + ddrphy_coldreset(); + + debug("DDRINFO: cfg clk\n"); + + initial_drate = dram_timing->fsp_msg[0].drate; + /* default to the frequency point 0 clock */ + ddrphy_init_set_dfi_clk(initial_drate); + + /* + * Start PHY initialization and training by + * accessing relevant PUB registers + */ + debug("DDRINFO:ddrphy config start\n"); + + ret = ddr_cfg_phy(dram_timing); + if (ret) + return ret; + + debug("DDRINFO: ddrphy config done\n"); + + /* rogram the ddrc registers */ + debug("DDRINFO: ddrc config start\n"); + ddrc_config(dram_timing->ddrc_cfg, dram_timing->ddrc_cfg_num); + debug("DDRINFO: ddrc config done\n"); + + check_dfi_init_complete(); + + regval = readl(REG_DDR_SDRAM_CFG); + writel((regval | 0x80000000), REG_DDR_SDRAM_CFG); + + check_ddrc_idle(); + + /* save the dram timing config into memory */ + dram_config_save(dram_timing, CONFIG_SAVED_DRAM_TIMING_BASE); + + return 0; +} + +ulong ddrphy_addr_remap(u32 paddr_apb_from_ctlr) +{ + u32 paddr_apb_qual; + u32 paddr_apb_unqual_dec_22_13; + u32 paddr_apb_unqual_dec_19_13; + u32 paddr_apb_unqual_dec_12_1; + u32 paddr_apb_unqual; + u32 paddr_apb_phy; + + paddr_apb_qual = (paddr_apb_from_ctlr << 1); + paddr_apb_unqual_dec_22_13 = ((paddr_apb_qual & 0x7fe000) >> 13); + paddr_apb_unqual_dec_12_1 = ((paddr_apb_qual & 0x1ffe) >> 1); + + switch (paddr_apb_unqual_dec_22_13) { + case 0x000: + paddr_apb_unqual_dec_19_13 = 0x00; + break; + case 0x001: + paddr_apb_unqual_dec_19_13 = 0x01; + break; + case 0x002: + paddr_apb_unqual_dec_19_13 = 0x02; + break; + case 0x003: + paddr_apb_unqual_dec_19_13 = 0x03; + break; + case 0x004: + paddr_apb_unqual_dec_19_13 = 0x04; + break; + case 0x005: + paddr_apb_unqual_dec_19_13 = 0x05; + break; + case 0x006: + paddr_apb_unqual_dec_19_13 = 0x06; + break; + case 0x007: + paddr_apb_unqual_dec_19_13 = 0x07; + break; + case 0x008: + paddr_apb_unqual_dec_19_13 = 0x08; + break; + case 0x009: + paddr_apb_unqual_dec_19_13 = 0x09; + break; + case 0x00a: + paddr_apb_unqual_dec_19_13 = 0x0a; + break; + case 0x00b: + paddr_apb_unqual_dec_19_13 = 0x0b; + break; + case 0x100: + paddr_apb_unqual_dec_19_13 = 0x0c; + break; + case 0x101: + paddr_apb_unqual_dec_19_13 = 0x0d; + break; + case 0x102: + paddr_apb_unqual_dec_19_13 = 0x0e; + break; + case 0x103: + paddr_apb_unqual_dec_19_13 = 0x0f; + break; + case 0x104: + paddr_apb_unqual_dec_19_13 = 0x10; + break; + case 0x105: + paddr_apb_unqual_dec_19_13 = 0x11; + break; + case 0x106: + paddr_apb_unqual_dec_19_13 = 0x12; + break; + case 0x107: + paddr_apb_unqual_dec_19_13 = 0x13; + break; + case 0x108: + paddr_apb_unqual_dec_19_13 = 0x14; + break; + case 0x109: + paddr_apb_unqual_dec_19_13 = 0x15; + break; + case 0x10a: + paddr_apb_unqual_dec_19_13 = 0x16; + break; + case 0x10b: + paddr_apb_unqual_dec_19_13 = 0x17; + break; + case 0x200: + paddr_apb_unqual_dec_19_13 = 0x18; + break; + case 0x201: + paddr_apb_unqual_dec_19_13 = 0x19; + break; + case 0x202: + paddr_apb_unqual_dec_19_13 = 0x1a; + break; + case 0x203: + paddr_apb_unqual_dec_19_13 = 0x1b; + break; + case 0x204: + paddr_apb_unqual_dec_19_13 = 0x1c; + break; + case 0x205: + paddr_apb_unqual_dec_19_13 = 0x1d; + break; + case 0x206: + paddr_apb_unqual_dec_19_13 = 0x1e; + break; + case 0x207: + paddr_apb_unqual_dec_19_13 = 0x1f; + break; + case 0x208: + paddr_apb_unqual_dec_19_13 = 0x20; + break; + case 0x209: + paddr_apb_unqual_dec_19_13 = 0x21; + break; + case 0x20a: + paddr_apb_unqual_dec_19_13 = 0x22; + break; + case 0x20b: + paddr_apb_unqual_dec_19_13 = 0x23; + break; + case 0x300: + paddr_apb_unqual_dec_19_13 = 0x24; + break; + case 0x301: + paddr_apb_unqual_dec_19_13 = 0x25; + break; + case 0x302: + paddr_apb_unqual_dec_19_13 = 0x26; + break; + case 0x303: + paddr_apb_unqual_dec_19_13 = 0x27; + break; + case 0x304: + paddr_apb_unqual_dec_19_13 = 0x28; + break; + case 0x305: + paddr_apb_unqual_dec_19_13 = 0x29; + break; + case 0x306: + paddr_apb_unqual_dec_19_13 = 0x2a; + break; + case 0x307: + paddr_apb_unqual_dec_19_13 = 0x2b; + break; + case 0x308: + paddr_apb_unqual_dec_19_13 = 0x2c; + break; + case 0x309: + paddr_apb_unqual_dec_19_13 = 0x2d; + break; + case 0x30a: + paddr_apb_unqual_dec_19_13 = 0x2e; + break; + case 0x30b: + paddr_apb_unqual_dec_19_13 = 0x2f; + break; + case 0x010: + paddr_apb_unqual_dec_19_13 = 0x30; + break; + case 0x011: + paddr_apb_unqual_dec_19_13 = 0x31; + break; + case 0x012: + paddr_apb_unqual_dec_19_13 = 0x32; + break; + case 0x013: + paddr_apb_unqual_dec_19_13 = 0x33; + break; + case 0x014: + paddr_apb_unqual_dec_19_13 = 0x34; + break; + case 0x015: + paddr_apb_unqual_dec_19_13 = 0x35; + break; + case 0x016: + paddr_apb_unqual_dec_19_13 = 0x36; + break; + case 0x017: + paddr_apb_unqual_dec_19_13 = 0x37; + break; + case 0x018: + paddr_apb_unqual_dec_19_13 = 0x38; + break; + case 0x019: + paddr_apb_unqual_dec_19_13 = 0x39; + break; + case 0x110: + paddr_apb_unqual_dec_19_13 = 0x3a; + break; + case 0x111: + paddr_apb_unqual_dec_19_13 = 0x3b; + break; + case 0x112: + paddr_apb_unqual_dec_19_13 = 0x3c; + break; + case 0x113: + paddr_apb_unqual_dec_19_13 = 0x3d; + break; + case 0x114: + paddr_apb_unqual_dec_19_13 = 0x3e; + break; + case 0x115: + paddr_apb_unqual_dec_19_13 = 0x3f; + break; + case 0x116: + paddr_apb_unqual_dec_19_13 = 0x40; + break; + case 0x117: + paddr_apb_unqual_dec_19_13 = 0x41; + break; + case 0x118: + paddr_apb_unqual_dec_19_13 = 0x42; + break; + case 0x119: + paddr_apb_unqual_dec_19_13 = 0x43; + break; + case 0x210: + paddr_apb_unqual_dec_19_13 = 0x44; + break; + case 0x211: + paddr_apb_unqual_dec_19_13 = 0x45; + break; + case 0x212: + paddr_apb_unqual_dec_19_13 = 0x46; + break; + case 0x213: + paddr_apb_unqual_dec_19_13 = 0x47; + break; + case 0x214: + paddr_apb_unqual_dec_19_13 = 0x48; + break; + case 0x215: + paddr_apb_unqual_dec_19_13 = 0x49; + break; + case 0x216: + paddr_apb_unqual_dec_19_13 = 0x4a; + break; + case 0x217: + paddr_apb_unqual_dec_19_13 = 0x4b; + break; + case 0x218: + paddr_apb_unqual_dec_19_13 = 0x4c; + break; + case 0x219: + paddr_apb_unqual_dec_19_13 = 0x4d; + break; + case 0x310: + paddr_apb_unqual_dec_19_13 = 0x4e; + break; + case 0x311: + paddr_apb_unqual_dec_19_13 = 0x4f; + break; + case 0x312: + paddr_apb_unqual_dec_19_13 = 0x50; + break; + case 0x313: + paddr_apb_unqual_dec_19_13 = 0x51; + break; + case 0x314: + paddr_apb_unqual_dec_19_13 = 0x52; + break; + case 0x315: + paddr_apb_unqual_dec_19_13 = 0x53; + break; + case 0x316: + paddr_apb_unqual_dec_19_13 = 0x54; + break; + case 0x317: + paddr_apb_unqual_dec_19_13 = 0x55; + break; + case 0x318: + paddr_apb_unqual_dec_19_13 = 0x56; + break; + case 0x319: + paddr_apb_unqual_dec_19_13 = 0x57; + break; + case 0x020: + paddr_apb_unqual_dec_19_13 = 0x58; + break; + case 0x120: + paddr_apb_unqual_dec_19_13 = 0x59; + break; + case 0x220: + paddr_apb_unqual_dec_19_13 = 0x5a; + break; + case 0x320: + paddr_apb_unqual_dec_19_13 = 0x5b; + break; + case 0x040: + paddr_apb_unqual_dec_19_13 = 0x5c; + break; + case 0x140: + paddr_apb_unqual_dec_19_13 = 0x5d; + break; + case 0x240: + paddr_apb_unqual_dec_19_13 = 0x5e; + break; + case 0x340: + paddr_apb_unqual_dec_19_13 = 0x5f; + break; + case 0x050: + paddr_apb_unqual_dec_19_13 = 0x60; + break; + case 0x051: + paddr_apb_unqual_dec_19_13 = 0x61; + break; + case 0x052: + paddr_apb_unqual_dec_19_13 = 0x62; + break; + case 0x053: + paddr_apb_unqual_dec_19_13 = 0x63; + break; + case 0x054: + paddr_apb_unqual_dec_19_13 = 0x64; + break; + case 0x055: + paddr_apb_unqual_dec_19_13 = 0x65; + break; + case 0x056: + paddr_apb_unqual_dec_19_13 = 0x66; + break; + case 0x057: + paddr_apb_unqual_dec_19_13 = 0x67; + break; + case 0x070: + paddr_apb_unqual_dec_19_13 = 0x68; + break; + case 0x090: + paddr_apb_unqual_dec_19_13 = 0x69; + break; + case 0x190: + paddr_apb_unqual_dec_19_13 = 0x6a; + break; + case 0x290: + paddr_apb_unqual_dec_19_13 = 0x6b; + break; + case 0x390: + paddr_apb_unqual_dec_19_13 = 0x6c; + break; + case 0x0c0: + paddr_apb_unqual_dec_19_13 = 0x6d; + break; + case 0x0d0: + paddr_apb_unqual_dec_19_13 = 0x6e; + break; + default: + paddr_apb_unqual_dec_19_13 = 0x00; + break; + } + + paddr_apb_unqual = ((paddr_apb_unqual_dec_19_13 << 13) | (paddr_apb_unqual_dec_12_1 << 1)); + + paddr_apb_phy = (paddr_apb_unqual << 1); + + return paddr_apb_phy; +} diff --git a/drivers/ddr/imx/phy/Kconfig b/drivers/ddr/imx/phy/Kconfig new file mode 100644 index 00000000000..d3e589b23c4 --- /dev/null +++ b/drivers/ddr/imx/phy/Kconfig @@ -0,0 +1,4 @@ +config IMX_SNPS_DDR_PHY + bool "i.MX Snopsys DDR PHY" + help + Select the DDR PHY driver support on i.MX8M and i.MX9 SOC. diff --git a/drivers/ddr/imx/phy/Makefile b/drivers/ddr/imx/phy/Makefile new file mode 100644 index 00000000000..bb3d4ee5b74 --- /dev/null +++ b/drivers/ddr/imx/phy/Makefile @@ -0,0 +1,9 @@ +# +# Copyright 2018 NXP +# +# SPDX-License-Identifier: GPL-2.0+ +# + +ifdef CONFIG_SPL_BUILD +obj-$(CONFIG_IMX_SNPS_DDR_PHY) += helper.o ddrphy_utils.o ddrphy_train.o ddrphy_csr.o +endif diff --git a/drivers/ddr/imx/imx8m/ddrphy_csr.c b/drivers/ddr/imx/phy/ddrphy_csr.c similarity index 100% rename from drivers/ddr/imx/imx8m/ddrphy_csr.c rename to drivers/ddr/imx/phy/ddrphy_csr.c diff --git a/drivers/ddr/imx/imx8m/ddrphy_train.c b/drivers/ddr/imx/phy/ddrphy_train.c similarity index 98% rename from drivers/ddr/imx/imx8m/ddrphy_train.c rename to drivers/ddr/imx/phy/ddrphy_train.c index 08fed6178f3..cd905f952c6 100644 --- a/drivers/ddr/imx/imx8m/ddrphy_train.c +++ b/drivers/ddr/imx/phy/ddrphy_train.c @@ -7,7 +7,6 @@ #include #include #include -#include #include int ddr_cfg_phy(struct dram_timing_info *dram_timing) diff --git a/drivers/ddr/imx/phy/ddrphy_utils.c b/drivers/ddr/imx/phy/ddrphy_utils.c new file mode 100644 index 00000000000..b852c870f90 --- /dev/null +++ b/drivers/ddr/imx/phy/ddrphy_utils.c @@ -0,0 +1,169 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static inline void poll_pmu_message_ready(void) +{ + unsigned int reg; + + do { + reg = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0004)); + } while (reg & 0x1); +} + +static inline void ack_pmu_message_receive(void) +{ + unsigned int reg; + + reg32_write(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0031), 0x0); + + do { + reg = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0004)); + } while (!(reg & 0x1)); + + reg32_write(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0031), 0x1); +} + +static inline unsigned int get_mail(void) +{ + unsigned int reg; + + poll_pmu_message_ready(); + + reg = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0032)); + + ack_pmu_message_receive(); + + return reg; +} + +static inline unsigned int get_stream_message(void) +{ + unsigned int reg, reg2; + + poll_pmu_message_ready(); + + reg = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0032)); + + reg2 = reg32_read(IP2APB_DDRPHY_IPS_BASE_ADDR(0) + ddrphy_addr_remap(0xd0034)); + + reg2 = (reg2 << 16) | reg; + + ack_pmu_message_receive(); + + return reg2; +} + +static inline void decode_major_message(unsigned int mail) +{ + debug("[PMU Major message = 0x%08x]\n", mail); +} + +static inline void decode_streaming_message(void) +{ + unsigned int string_index, arg __maybe_unused; + int i = 0; + + string_index = get_stream_message(); + debug("PMU String index = 0x%08x\n", string_index); + while (i < (string_index & 0xffff)) { + arg = get_stream_message(); + debug("arg[%d] = 0x%08x\n", i, arg); + i++; + } + + debug("\n"); +} + +int wait_ddrphy_training_complete(void) +{ + unsigned int mail; + + while (1) { + mail = get_mail(); + decode_major_message(mail); + if (mail == 0x08) { + decode_streaming_message(); + } else if (mail == 0x07) { + debug("Training PASS\n"); + return 0; + } else if (mail == 0xff) { + printf("Training FAILED\n"); + return -1; + } + } +} + +void ddrphy_init_set_dfi_clk(unsigned int drate) +{ + switch (drate) { + case 4000: + dram_pll_init(MHZ(1000)); + dram_disable_bypass(); + break; + case 3733: + dram_pll_init(MHZ(933)); + dram_disable_bypass(); + break; + case 3200: + dram_pll_init(MHZ(800)); + dram_disable_bypass(); + break; + case 3000: + dram_pll_init(MHZ(750)); + dram_disable_bypass(); + break; + case 2800: + dram_pll_init(MHZ(700)); + dram_disable_bypass(); + break; + case 2400: + dram_pll_init(MHZ(600)); + dram_disable_bypass(); + break; + case 1866: + dram_pll_init(MHZ(466)); + dram_disable_bypass(); + break; + case 1600: + dram_pll_init(MHZ(400)); + dram_disable_bypass(); + break; + case 1066: + dram_pll_init(MHZ(266)); + dram_disable_bypass(); + break; + case 667: + dram_pll_init(MHZ(167)); + dram_disable_bypass(); + break; + case 400: + dram_enable_bypass(MHZ(400)); + break; + case 333: + dram_enable_bypass(MHZ(333)); + break; + case 200: + dram_enable_bypass(MHZ(200)); + break; + case 100: + dram_enable_bypass(MHZ(100)); + break; + default: + return; + } +} + +void ddrphy_init_read_msg_block(enum fw_type type) +{ +} diff --git a/drivers/ddr/imx/imx8m/helper.c b/drivers/ddr/imx/phy/helper.c similarity index 79% rename from drivers/ddr/imx/imx8m/helper.c rename to drivers/ddr/imx/phy/helper.c index f23904bf712..60d650e3089 100644 --- a/drivers/ddr/imx/imx8m/helper.c +++ b/drivers/ddr/imx/phy/helper.c @@ -12,7 +12,6 @@ #include #include #include -#include #include DECLARE_GLOBAL_DATA_PTR; @@ -46,43 +45,46 @@ void ddr_load_train_firmware(enum fw_type type) dmem_start = imem_start + IMEM_LEN; pr_from32 = imem_start; - pr_to32 = DDR_TRAIN_CODE_BASE_ADDR + 4 * IMEM_OFFSET_ADDR; + pr_to32 = IMEM_OFFSET_ADDR; for (i = 0x0; i < IMEM_LEN; ) { tmp32 = readl(pr_from32); - writew(tmp32 & 0x0000ffff, pr_to32); - pr_to32 += 4; - writew((tmp32 >> 16) & 0x0000ffff, pr_to32); - pr_to32 += 4; + writew(tmp32 & 0x0000ffff, DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)); + pr_to32 += 1; + writew((tmp32 >> 16) & 0x0000ffff, + DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)); + pr_to32 += 1; pr_from32 += 4; i += 4; } pr_from32 = dmem_start; - pr_to32 = DDR_TRAIN_CODE_BASE_ADDR + 4 * DMEM_OFFSET_ADDR; + pr_to32 = DMEM_OFFSET_ADDR; for (i = 0x0; i < DMEM_LEN; ) { tmp32 = readl(pr_from32); - writew(tmp32 & 0x0000ffff, pr_to32); - pr_to32 += 4; - writew((tmp32 >> 16) & 0x0000ffff, pr_to32); - pr_to32 += 4; + writew(tmp32 & 0x0000ffff, DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)); + pr_to32 += 1; + writew((tmp32 >> 16) & 0x0000ffff, + DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)); + pr_to32 += 1; pr_from32 += 4; i += 4; } debug("check ddr_pmu_train_imem code\n"); pr_from32 = imem_start; - pr_to32 = DDR_TRAIN_CODE_BASE_ADDR + 4 * IMEM_OFFSET_ADDR; + pr_to32 = IMEM_OFFSET_ADDR; for (i = 0x0; i < IMEM_LEN; ) { - tmp32 = (readw(pr_to32) & 0x0000ffff); - pr_to32 += 4; - tmp32 += ((readw(pr_to32) & 0x0000ffff) << 16); + tmp32 = (readw(DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)) & 0x0000ffff); + pr_to32 += 1; + tmp32 += ((readw(DDR_TRAIN_CODE_BASE_ADDR + + ddrphy_addr_remap(pr_to32)) & 0x0000ffff) << 16); if (tmp32 != readl(pr_from32)) { debug("%lx %lx\n", pr_from32, pr_to32); error++; } pr_from32 += 4; - pr_to32 += 4; + pr_to32 += 1; i += 4; } if (error) @@ -92,17 +94,18 @@ void ddr_load_train_firmware(enum fw_type type) debug("check ddr4_pmu_train_dmem code\n"); pr_from32 = dmem_start; - pr_to32 = DDR_TRAIN_CODE_BASE_ADDR + 4 * DMEM_OFFSET_ADDR; + pr_to32 = DMEM_OFFSET_ADDR; for (i = 0x0; i < DMEM_LEN;) { - tmp32 = (readw(pr_to32) & 0x0000ffff); - pr_to32 += 4; - tmp32 += ((readw(pr_to32) & 0x0000ffff) << 16); + tmp32 = (readw(DDR_TRAIN_CODE_BASE_ADDR + ddrphy_addr_remap(pr_to32)) & 0x0000ffff); + pr_to32 += 1; + tmp32 += ((readw(DDR_TRAIN_CODE_BASE_ADDR + + ddrphy_addr_remap(pr_to32)) & 0x0000ffff) << 16); if (tmp32 != readl(pr_from32)) { debug("%lx %lx\n", pr_from32, pr_to32); error++; } pr_from32 += 4; - pr_to32 += 4; + pr_to32 += 1; i += 4; } From patchwork Mon Jun 27 03:24:44 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648568 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=fMtnKUJs; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXH2008wz9s0r for ; Mon, 27 Jun 2022 12:48:45 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id B8C2684539; Mon, 27 Jun 2022 04:43:56 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="fMtnKUJs"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5420C8450E; Mon, 27 Jun 2022 04:43:48 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50044.outbound.protection.outlook.com [40.107.5.44]) (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 8BD9984523 for ; Mon, 27 Jun 2022 04:43:42 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SLe2VSBVEJw2uC7JmYzKOkfPStuQZ6ueN8obyrllm7UWyUvGlIvryL/kuHRapt17UJtrgjJvObzWIRJqV9YrWJf5rIdRBZ4n+IZlXSc9vleCuKafd4WZrQ/E6yiEO3P7r0wv6NykWHVuqiXpUrE1PbzQCoBBjIgXdDpXuXUm2iTKupQkBRiDPX2yuEXnjz9Q1lyjQKz6EGvoVLhyDjNTzQHfPkQEo8UEMSksqTK89X9wpuS8N/clt+i7traizum8Invdr5Jo2DbvzhJozoAJj3BVxL3Cjq092CWe1/ngMd5UX5wej6R9FgvgN3eSqf81I2vOCI1G7DsmQgjBiv7CYQ== 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=ZVwUmX/k3ddDcpwgOoK4Cr3bhMtH6BiAXkTSFqRL2tA=; b=bY5uPwp2dFnvR7vJ4zswGt//LMq/Vx42xcn7cEL1VCEEOnY6XEWo61oYPz3gWGS1n9xMZlxNN4nQLAyLo1U7gzPKmT/BS+bAIwsZL36eDtSQNGiYRpoO3kWe7xu8m5prUS2YDJHzAi5HKNChfQJbK6u4HGkjtb53dyv7pj8NchMYY4a6igXdNCdX2zYxnGmsRB5i74KRwHvlckMxf1FVw9JinKt/UFRETqugt/iXxobA+qca9na89guJBNWfYo1L49zIt6ToBAfZFjXh8wAw0Hqpev1eOUfeORewkT48ygFJCM0V/W1NZpnQTHsAyWYDNZhioLOW8sb6kQ4kZV6Fuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZVwUmX/k3ddDcpwgOoK4Cr3bhMtH6BiAXkTSFqRL2tA=; b=fMtnKUJsxtGoEwfJLY9j6Jlp0fmergnf5YeS+wsPqKY9T4a+eqL5oQGS2BZSmObYQA6Yw63/d8fqMNiC7z1O8QOAi7Ox1LmDBmueIA4s1WTEMQzFCSRh8sP2J6JpKNrrGLU0mahnHsJ92lPWyGIdIfB8mp9V5MxNnvNA29YQsSM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:40 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:40 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 38/49] ddr: imx9: enable Performance monitor counter Date: Mon, 27 Jun 2022 11:24:44 +0800 Message-Id: <20220627032455.28280-39-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a31e6155-e1ba-4e10-7132-08da57e6d804 X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TXw/wnsPKnKis/hz78Yvo9nJ50/NxMo48+9R0i1rt97R5C6lXv/VyzTp6l5C7nj/mFpLr6i+C65SE0x5T808p9J63IB2WmSixlyHa+YhoQCGICRZWIY0WH/M2vVWFSONTyPLBQloEa8uqxNTaTqTX1nzAB7J5hC33HqWYVQgl31+pL88KxzR/blQnxGc3C4uAlnxFkrRU8PVmZY8rgg20OA2WLXxoq68OutaMG4qBid1us/C19JY173BxuUMa2wkbC7Cie1BtlTiq/66fFVcP5RcDeLaI6f3Il77HSz6zGkqXR7D7z1oZtkMUCpXFIb947HgyZV3i7XYI/BG0SL3wWlSrq0/27xz58jkvGIj7e2MYx69CUrs6N/dCGhZqBG4UwXiCFViHJOE2uLAaQJf2w6fWcdAN/BA978lnEE54QWOSQA7wAJiJ70YBezC+sBd1JmvIyp1QPpbF03EvmeA9CtMK3s5STUgXK+NAJXW3nUAw5XMWPh1me+Y/a4k3r4n4RtGVmXfH/JypsTNU7kHyGtEzKsTj/Em+zl5D4tMZk79rHxTegc5upxjGsGUFgnmksqZrjGNqyo6UocP5qKAnCIvFJ+RBNVR9LTCVsr9X5ePeHawuMdb4bS81TUYELaJLqBzxQI9q5EIYNkA/RLFCwObtSgHoo3+GfROxMy+XKy48Fm2vYb233O67Z264pD/uzek+vwr1Iioad70TFrlF1IINGxtsLuvgFslScriMUl3vpYFgnmSYGp1ztW7HC9sXe9MjcdgDSqC7NJk5uzNe8qEFiuvJHVCMzHspI6SbQg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(5660300002)(38350700002)(38100700002)(2906002)(6486002)(186003)(478600001)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bBzoq8xfs4If6+VJe6V35SP9WShhdVKfndI6QawSbvsnvUkbpT08p9eOg47CmarZb/AXMPveuBqafq6lH0Lq03Gt5XMcwxSzD8LGuMCoH+7QzS0UT8XZMrr201mTGNnS/9PPHt1PVzUOp45yUC37ZZltJWT12mavraOVWmNAS3OqVg+oaDnSkP4Z1VHQQYTAWpf3m2N2W4EW6dEM6TiB168ljPr1ZRI6QBOc0fPD/xcqq7IVV8WdvQth7o8YAEPEMopwUAYtJ1/T2J3WA8UD5zqo2pznKJAVxyIVcDm4vj6y8zT7Zz0vm+8xU3sMgf1LIcES1M3bnGgfuB3/fiBhywQodG6Ye8ziJ043Y2/TClrgDQSRfe1fTaAn38JIMMLuTM3IAqWXde4KE5b9yNpEKcTpJZxXSRetnrIkSZAAFZnPmaR6L6PMVjAurKAeTMP/vscvNthX1jav/85qdrK1tlNqT32EWWLSFgDk6TUrb2bhE12mvmkljhUJl9/1pfkcukJttrRXqO0RiwvmYfGpEpPFXJj/GFD2HXBpQVFwlRgBPVVcyImVtaslOWojljmuWrE41rGn3lldJ8iuc6B6pbQFtcxzEwqVh3aAYso0O/YkGxCqjNb1MQZs+L8VgtXc4if/cUMq0PzX83Pff3+2SxbzTHw7bY746dFJiZhSpkJ88lnNXR+mEJJRihiZrtrE93bpaffAhMgKuIi6z+MY2tljNPQUU9m8YTPw9JYqT413ImZObK/uhWqsur3KhnjEdvhixQ1ne3L1ZCfRUtBAM0+YxqCdbWRWH9CJpeffu/ulJGfz7SWO/auQ7TTAa4O5YAVXgSer+gJNlYmHOxoXoKqO8CzGKaPuWEyBh/eh8E7lAy27U/B64xWhDxylm5QyjfcA8YDQfCWHfE5AP2hBJDt+6+AQ4XdD3WIO6VZZXqyMRpaCWzQJOHtqhmmW5MjvAqiofSElKOuR8VxaTdQWabUX8W1kxlJHHwErlfG4zTDXhjRLuQGdNLXfHOkYnx80F7ZBHqpyZIvq7Zv9m0fAwDpwgC9CA0UNw6D8vUFcLTIwUgAvEJBuW4uSWmnqf1tg5JWp6VbRWvi1DYigxV1IuZt65ewwpiAnKMJuI2tg8siixG50haOqx5QVw0V2FgH3C58Tx1AWODwHN88vNUB6hxw+g3zXblDZCoyU/TCHhgzj5ZQdyJy11LskMh+qDnbDFLtuiqprCSHHHc9Z92tBDy4sYMR+fPesH7HitDN3dEYBSOcTD+mEboWeNgjiyuuaL59DJG9okQn7a2oDf8eP36wKDUkht/5sd2U5GSDrTNWGrPVn/c6eBX9UjmEA7oFVA4kGMho+52MjnPiarQSwoE3sNyK0PUG6E4YNldhmqFdnaYr2/O/SlqyTRziAO3yWiNx8nXyiFVWOkocWId5gDBpu7CBzb5qnPndXlv64YGCGYY1kDGj8OUh8yF4M+pWhxgJiCnei77F6G1LMfuMRwAgCPK4VphDetw7uBG2uhHSWQMec1zN37DL83HTdkt6EfhV+jHO3oIfUX4dyccxTVEjy/FjlTNj/jGPwfdjk5+1xy8HYglZi8KV86puEVaAk X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a31e6155-e1ba-4e10-7132-08da57e6d804 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:40.7267 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 2cJzK2GXhutJyPqT/cLZtsFQO6fdA8QRhk8sYOTWvP9xaNFcCZ93wAUYl2xRPCwa4f428cEsHWvg2YniaS+lFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Add Kconfig for enabling reference events counter in DDRC performance monitor by default Signed-off-by: Ye Li Signed-off-by: Peng Fan --- drivers/ddr/imx/imx9/Kconfig | 6 ++++++ drivers/ddr/imx/imx9/ddr_init.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/drivers/ddr/imx/imx9/Kconfig b/drivers/ddr/imx/imx9/Kconfig index a16ddc65e01..123ad173cfc 100644 --- a/drivers/ddr/imx/imx9/Kconfig +++ b/drivers/ddr/imx/imx9/Kconfig @@ -11,6 +11,12 @@ config IMX9_LPDDR4X help Select the i.MX9 LPDDR4/4X driver support on i.MX9 SOC. +config IMX9_DRAM_PM_COUNTER + bool "imx9 DDRC performance monitor counter" + default y + help + Enable DDR controller performance monitor counter for reference events. + config SAVED_DRAM_TIMING_BASE hex "Define the base address for saved dram timing" help diff --git a/drivers/ddr/imx/imx9/ddr_init.c b/drivers/ddr/imx/imx9/ddr_init.c index 16eac65105f..8b8ec7f8de3 100644 --- a/drivers/ddr/imx/imx9/ddr_init.c +++ b/drivers/ddr/imx/imx9/ddr_init.c @@ -112,6 +112,10 @@ int ddr_init(struct dram_timing_info *dram_timing) ddrc_config(dram_timing->ddrc_cfg, dram_timing->ddrc_cfg_num); debug("DDRINFO: ddrc config done\n"); +#ifdef CONFIG_IMX9_DRAM_PM_COUNTER + writel(0x200000, REG_DDR_DEBUG_19); +#endif + check_dfi_init_complete(); regval = readl(REG_DDR_SDRAM_CFG); From patchwork Mon Jun 27 03:24:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648569 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=IpYyfOwe; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXHC0fhwz9s0r for ; Mon, 27 Jun 2022 12:48:55 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 2E9F584531; Mon, 27 Jun 2022 04:43:59 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="IpYyfOwe"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 067C784526; Mon, 27 Jun 2022 04:43:52 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50064.outbound.protection.outlook.com [40.107.5.64]) (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 65B208451F for ; Mon, 27 Jun 2022 04:43:47 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fA2iRCak1FGMHVMF37kC9cqRpD+vHQnvBi1+xXbJNz0X84Cxr2S4h6v28kp3+TAO4SPUd+8HVUPiLWOjeJK2OMeZM2aVUm8JeVWWbw5jm5dfCqpVv5/8RIUb5u4EnNNLf9DiE2kDXnYHaxseY83igQBKn0GTUpNrd82tStcdG3vcHbkSvRo40w5E9i85uuNNSmC5qVS5fBJl7Ue4S8PMp81UyDUXCXcoALqVCe9xxJvE6zHc6/on1/DBc1WJwQFqTfWZLiLrkM329lD+IwTOtB18oH99j2T3xPMRZYXq4e8sU5+eDqpyG0cG+6dpKsbyc0g9Y2WYP9LuraeoxcScww== 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=hIotaJ9TudcHXOXsI1Md+/jbHevR02f+twtUlB9ifWE=; b=jTkh3tqh+MO4Tj5+Gm3KK2Rq8XN8tRqHWbQOwfStynTBvVDxmR5BVLGTGAKcvPDmmvcfoUm214dyOBDeXpY/dCYgCpEJaXnzJLe/8rxhjN+xSaT10Mv1i03XxsdtrXsFPyyGzfJt+CpCyfw9OtZSBkAO/eCp/Lzc0UbLOxAfdFEA4k9uJ/RVafVUIiI3x9q2DZ3mfwkYTCqunJHeouZJMw1hNFN2vcfWSkDgLmZMqvTYl/CX6K6RJiulyFRHFlI6toOob/n9MtU5HWIoyk/KKCsw6oIgsUHtZla9B14ID1zM9Zxtp45IBbBFTQd9Y7jOhAdvQIBbJ33PF9WOtzROuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hIotaJ9TudcHXOXsI1Md+/jbHevR02f+twtUlB9ifWE=; b=IpYyfOweM57rlTJToBaZ6GHQN/N3NYj2SyS4jf5K57OiT0s+rXsuycNVNshVJPbOffoJ5Bh3gx7ILEPSjJXWWaIW/MHzzn+DzTnBAfHnJuJen369wKlRTz4Ms31h9KKCTgFpiuav7zFC6Z9hXPwlaKHCapgHy1x2pGWG2YjpPk8= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by VI1PR04MB4109.eurprd04.prod.outlook.com (2603:10a6:803:46::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:44 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:44 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 39/49] arm: dts: Add i.MX93 SoC DTSi file Date: Mon, 27 Jun 2022 11:24:45 +0800 Message-Id: <20220627032455.28280-40-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 95bfebaa-303e-4b22-6db8-08da57e6da5d X-MS-TrafficTypeDiagnostic: VI1PR04MB4109:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wk34c4sv8wSLSUwhjY81V1+9Y8cb2AlzHHoxZ4/JsUfTgEneNxiejavHfL0DkHQ3sCRNmcmaWjtvMWwEsHr0Rvgo4jF6VfZXXR4iNYX1jjdNQRepv71zVIJFtZi5jM0zYxDKyXD5+AeJC2omHuK2ckHMG0hj3MqfJ66UhL48qsoZrmCDE+5X0PDlCzT2kocMeHFaWfKyj1h2xrwP/GG4DRf2tXEWu1xKM3HGbVrBA9Agx2hW4mXZud1j8x/D9smkVjbTYQuYzi31H5NhXcko1F7cEn7z2tij/I1sIs3G6Gmo7oFXKAbETuGObG66xcQKc8bTr9hNdciJUV0zZnK0e6k65BwGT1j5L9Mp44V7Cn7p3XZkg+5BpXIPlrLo65uXbxrhZaHA6ToebRJhyQgMku3VL7kWzMCnQ2OhkD4m6B4PNMjYRvwEGqABDEMZzXcikbXM8H+heioFq0T0j71cEHYpgYNZEtvU9yJ1R2luZgMBmfT9ULVZxvxP9UNk+SLZfO4swa7Q0uYnnJBG9qTYesnfrBsCv8GG1BJVGKTq+GkUcvlZtIgN8Yx8vlRdA/3xDMtYzN98l5LN+aIiTX2vXL1fLscwVYAXqY/uLJ1wKMrc6uGmJa3K0sjPlxYX3eIXHJfPtCdko5C7ufW/Yo1mad+Fc1Yq1Cqsq2pp31oNLC25W2LMymaabevgiy7cPBRq/VzJbuKDDs+ak5izLqkU4TEl988lflHGAiqN8bCe1RlmAiL5Skd4ZZizwjZ+uN77gI1PvBtfyT+AbVbMW/Xv8UiPrhOaffCDIDq+m2qgjA4= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(366004)(396003)(346002)(39860400002)(376002)(136003)(1076003)(41300700001)(8936002)(2616005)(52116002)(83380400001)(6862004)(5660300002)(38350700002)(38100700002)(2906002)(30864003)(6486002)(186003)(478600001)(86362001)(316002)(26005)(6512007)(66476007)(66946007)(4326008)(8676002)(66556008)(6506007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: s7Dw4kQ0ROiflDi7IMJ14famIcCYIUCIrHcLbPbjN0k8v1OYv9d4N69c4J5S6vMJ6FuXne6gZXSsbAZVTKc49bbMsyi571eQFlTR5n3qbzI9Ou+JThQCbqQRw7N94OtENUVQDZkb1dP4bHYMTiHhde7aopM8OP/evWm6G3ymb9rD6z+UxGKVdnqC1opUkaalhYQxY3HBbrpAN317pjKOte9dvXpr5FW9s0RHs7+8+4/rDq4pKIlVImJCHlbHseU/M2SmIEnbw/eutbNbWgrpAdbzyvdvi7rIihbNC6NqNxVGQfYeyfzZrsW1O4TUMgGY54u9PrbhtImNos6N2WRREEPyhQM8pKQAbNg9bX5uZR5Yx8SipLWRBqZvsuCLFOEra8INUZr+m2IKOCkjfxoLo5ujLhgyLvJ+CoQpY5qMRLo1fn8FJbNTUIU+YH7e87qGiAPaW7svi7Bi2cL5JXymWs9h4q/1yo9Ga0oowZQFJ3hSn16KNMEP5xKDYrzKj2ls8sxMjFh+7bP/e/4Plb3HDFNxVj8Jsp3A6Te4qEKomB/7dkgV5BUVFZC9qzwibaXHxJM+iGFSHbU5JKR5wi9Xc+K9+0TTuivnaCzYAXQ+RZNjNg1dQ4XydkfaP9ahmJr7+ueS2dmBrRP32yzR4do/hgpZC4wAU4sr2KcEPAAoW1Uee+x2Dc9YSo/urE2IaDvmc4hOkwUJn9AvQrwBM7mgxNjIHVWELCOkACA2pcrqa9Kophdx5q7jRtfcMbCsFwOdArYvd/6OiZphwGuGy3WCq/6Jf4VpfUStG3sCLJIEdYPgGY3oqmOyJOV8m4IVKoCVruoeptMiUmSU1HHnvZJvV+gkqxp7xqu61YbsdpfjBKWIMTPoqZrPEAMCiqMwJS2ZGE9zlYZE1ukWsAjEkmxN4sQAan4iaQVIPWHITuuF2n3bXiEkAeCZhtRUTzs9sIYvzjmKOiTnyx5mrCYIG0ietL1HmSjw5K3/oFekYHFc9auQ0GAsfsNWwA3jqghnfZ/YSgq7bh23K1QpMCqQ8jP9Dk7w+ll1VMC23+AfHwKb24/onn+RalTCYWSkdzuMeP+iqWiHC6XOgn+NY97HS1bMrU3AE+rWM3Mfb1qxSwTWKiAY/EfCxK4/A1RFgwi6ZjXfTuIUjMgSgfs6GIK7AvZyzvx/40kDARxLaJXq/cPfwZCTiRTz3op1ACyiDQAyWJLMYVpGNfJOC3Y4TvbI4I01XgbR8uCZnX6KBBoeuqoMzDfl34fv7xcZ22dloc+OG930HNGKGOU+VJHYiARQMyZtlpWsqScINU0W8eHZdygNQNvB9UCQ1Yfn9FFT3T/afzy+6Fn3FJPqALdCCfVYvD5pdOKQ8DyT2QNAZefdv/nQCBS9WXo6bHacSUeOTrVrVk2jJiOSqzDKgNz7CrzgDO05VBQ/gIONJ3KHl2iKmzyuSkNLa8OBBqIygTtD2cLF5u9bxkEaIgDOoXu9LFxLiWhYsRnOF6GeObFKzDM4OHM+yQaY4s9EmIe6FAKlrkU7oDn3AqjbYHPqACbFj8zGjn05poSmwez0KNcDaYrInoY4i3yqe6veXp/SeDTSzjb/YvBX X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95bfebaa-303e-4b22-6db8-08da57e6da5d X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:44.7903 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: O5tLweBTk59Vq2mjfyuUypW1AzE+KtkkZGD305F20wYhMYKUMkakx7f9x+luqwcH7llT2yLrS+Hqi0pKtx4BAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB4109 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add the DTSi file and DT header files for i.MX93 SoC Signed-off-by: Ye Li Signed-off-by: Alice Guo Signed-off-by: Peng Fan --- arch/arm/dts/imx93.dtsi | 688 ++++++++++++++++++++++++ include/dt-bindings/clock/imx93-clock.h | 203 +++++++ include/dt-bindings/power/imx93-power.h | 12 + 3 files changed, 903 insertions(+) create mode 100644 arch/arm/dts/imx93.dtsi create mode 100644 include/dt-bindings/clock/imx93-clock.h create mode 100644 include/dt-bindings/power/imx93-power.h diff --git a/arch/arm/dts/imx93.dtsi b/arch/arm/dts/imx93.dtsi new file mode 100644 index 00000000000..28026ccecc8 --- /dev/null +++ b/arch/arm/dts/imx93.dtsi @@ -0,0 +1,688 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2021 NXP + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "imx93-pinfunc.h" + +/ { + interrupt-parent = <&gic>; + #address-cells = <2>; + #size-cells = <2>; + + aliases { + gpio0 = &gpio1; + gpio1 = &gpio2; + gpio2 = &gpio3; + gpio3 = &gpio4; + mmc0 = &usdhc1; + mmc1 = &usdhc2; + mmc2 = &usdhc3; + ethernet0 = &fec; + ethernet1 = &eqos; + serial0 = &lpuart1; + serial1 = &lpuart2; + serial2 = &lpuart3; + serial3 = &lpuart4; + serial4 = &lpuart5; + serial5 = &lpuart6; + serial6 = &lpuart7; + serial7 = &lpuart8; + i2c0 = &lpi2c1; + i2c1 = &lpi2c2; + i2c2 = &lpi2c3; + i2c3 = &lpi2c4; + i2c4 = &lpi2c5; + i2c5 = &lpi2c6; + usb0 = &usbotg1; + usb1 = &usbotg2; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + A55_0: cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x0>; + enable-method = "psci"; + #cooling-cells = <2>; + }; + + A55_1: cpu@100 { + device_type = "cpu"; + compatible = "arm,cortex-a55"; + reg = <0x100>; + enable-method = "psci"; + #cooling-cells = <2>; + }; + + }; + + osc_32k: clock-osc-32k { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <32768>; + clock-output-names = "osc_32k"; + }; + + osc_24m: clock-osc-24m { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + clock-output-names = "osc_24m"; + }; + + clk_ext1: clock-ext1 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <133000000>; + clock-output-names = "clk_ext1"; + }; + + psci { + compatible = "arm,psci-1.0"; + method = "smc"; + }; + + timer { + compatible = "arm,armv8-timer"; + interrupts = , + , + , + ; + clock-frequency = <24000000>; + arm,no-tick-in-suspend; + interrupt-parent = <&gic>; + }; + + gic: interrupt-controller@48000000 { + compatible = "arm,gic-v3"; + reg = <0 0x48000000 0 0x10000>, + <0 0x48040000 0 0xc0000>; + #interrupt-cells = <3>; + interrupt-controller; + interrupts = ; + interrupt-parent = <&gic>; + }; + + soc@0 { + compatible = "simple-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0x0 0x0 0x0 0x80000000>, + <0x28000000 0x0 0x28000000 0x10000000>; + + aips1: bus@44000000 { + compatible = "fsl,aips-bus", "simple-bus"; + reg = <0x44000000 0x800000>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + mu1: mailbox@44230000 { + compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu"; + reg = <0x44230000 0x10000>; + interrupts = ; + #mbox-cells = <2>; + status = "disabled"; + }; + + anomix_ns_gpr: blk-ctrl-anomix@42420000 { + compatible = "syscon"; + reg = <0x44210000 0x1000>; + }; + + system_counter: timer@44290000 { + compatible = "nxp,sysctr-timer"; + reg = <0x44290000 0x30000>; + interrupts = ; + clocks = <&osc_24m>; + clock-names = "per"; + }; + + i3c1: i3c-master@44330000 { + #address-cells = <3>; + #size-cells = <0>; + compatible = "fsl,imx93-i3c-master", "silvaco,i3c-master"; + reg = <0x44330000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_I3C1_GATE>, + <&clk IMX93_CLK_I3C1_GATE>, + <&clk IMX93_CLK_DUMMY>; + clock-names = "pclk", "fast_clk", "slow_clk"; + status = "disabled"; + }; + + lpi2c1: i2c@44340000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x44340000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C1_GATE>, + <&clk IMX93_CLK_LPI2C1_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpi2c2: i2c@44350000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x44350000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C2_GATE>, + <&clk IMX93_CLK_LPI2C2_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpspi1: spi@44360000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi"; + reg = <0x44360000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPSPI1_GATE>, + <&clk IMX93_CLK_LPSPI1_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpspi2: spi@44370000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi"; + reg = <0x44370000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPSPI2_GATE>, + <&clk IMX93_CLK_LPSPI2_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpuart1: serial@44380000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x44380000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART1_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpuart2: serial@44390000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x44390000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART2_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + iomuxc: pinctrl@443c0000 { + compatible = "fsl,imx93-iomuxc"; + reg = <0x443c0000 0x10000>; + }; + + clk: clock-controller@44450000 { + compatible = "fsl,imx93-ccm"; + reg = <0x44450000 0x10000>; + #clock-cells = <1>; + clocks = <&osc_32k>, <&osc_24m>, <&clk_ext1>; + clock-names = "osc_32k", "osc_24m", "clk_ext1"; + assigned-clocks = <&clk IMX93_CLK_AUDIO_PLL>; + assigned-clock-rates = <393216000>; + status = "okay"; + }; + + anatop: anatop@44480000 { + compatible = "fsl,imx93-anatop", "syscon"; + reg = <0x44480000 0x10000>; + }; + + adc1: adc@44530000 { + compatible = "nxp,imx93-adc"; + reg = <0x44530000 0x10000>; + interrupts = , + , + , + ; + clocks = <&clk IMX93_CLK_ADC1_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + }; + + aips2: bus@42000000 { + compatible = "fsl,aips-bus", "simple-bus"; + reg = <0x42000000 0x800000>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + wakeupmix_gpr: blk-ctrl-wakeupmix@42420000 { + compatible = "syscon"; + reg = <0x42420000 0x1000>; + }; + + mu2: mailbox@42440000 { + compatible = "fsl,imx93-mu", "fsl,imx8ulp-mu"; + reg = <0x42440000 0x10000>; + interrupts = ; + #mbox-cells = <2>; + status = "disabled"; + }; + + wdog3: wdog@42490000 { + compatible = "fsl,imx93-wdt"; + reg = <0x42490000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_WDOG3_GATE>; + timeout-sec = <40>; + status = "disabled"; + }; + + tpm4: pwm@424f0000 { + compatible = "fsl,imx7ulp-pwm"; + reg = <0x424f0000 0x1000>; + clocks = <&clk IMX93_CLK_TPM4_GATE>; + assigned-clocks = <&clk IMX93_CLK_TPM4>; + assigned-clock-parents = <&clk IMX93_CLK_24M>; + assigned-clock-rates = <24000000>; + #pwm-cells = <3>; + status = "disabled"; + }; + + i3c2: i3c-master@42520000 { + #address-cells = <3>; + #size-cells = <0>; + compatible = "fsl,imx93-i3c-master", "silvaco,i3c-master"; + reg = <0x42520000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_I3C2_GATE>, + <&clk IMX93_CLK_I3C2_GATE>, + <&clk IMX93_CLK_DUMMY>; + clock-names = "pclk", "fast_clk", "slow_clk"; + status = "disabled"; + }; + + lpi2c3: i2c@42530000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x42530000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C3_GATE>, + <&clk IMX93_CLK_LPI2C3_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpi2c4: i2c@42540000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x42540000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C4_GATE>, + <&clk IMX93_CLK_LPI2C4_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpspi3: spi@42550000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi"; + reg = <0x42550000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPSPI3_GATE>, + <&clk IMX93_CLK_LPSPI3_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpspi4: spi@42560000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "fsl,imx93-spi", "fsl,imx7ulp-spi"; + reg = <0x42560000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPSPI4_GATE>, + <&clk IMX93_CLK_LPSPI4_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpuart3: serial@42570000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x42570000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART3_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpuart4: serial@42580000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x42580000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART4_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpuart5: serial@42590000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x42590000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART5_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpuart6: serial@425a0000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x425a0000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART6_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + flexspi: spi@425e0000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "nxp,imx8mm-fspi"; + reg = <0x425e0000 0x10000>, <0x28000000 0x10000000>; + reg-names = "fspi_base", "fspi_mmap"; + interrupts = ; + clocks = <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_DUMMY>; + clock-names = "fspi", "fspi_en"; + status = "disabled"; + }; + + lpuart7: serial@42690000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x42690000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART7_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpuart8: serial@426a0000 { + compatible = "fsl,imx93-lpuart", "fsl,imx8ulp-lpuart", + "fsl,imx7ulp-lpuart"; + reg = <0x426a0000 0x1000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPUART8_GATE>; + clock-names = "ipg"; + status = "disabled"; + }; + + lpi2c5: i2c@426b0000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x426b0000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C5_GATE>, + <&clk IMX93_CLK_LPI2C5_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + + lpi2c6: i2c@426c0000 { + compatible = "fsl,imx93-lpi2c", "fsl,imx7ulp-lpi2c"; + reg = <0x426c0000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_LPI2C6_GATE>, + <&clk IMX93_CLK_LPI2C6_GATE>; + clock-names = "per", "ipg"; + status = "disabled"; + }; + }; + + aips3: bus@42800000 { + compatible = "fsl,aips-bus", "simple-bus"; + reg = <0x42800000 0x800000>; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + usdhc1: mmc@42850000 { + compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; + reg = <0x42850000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_USDHC1_GATE>; + clock-names = "ipg", "ahb", "per"; + bus-width = <8>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; + status = "disabled"; + }; + + usdhc2: mmc@42860000 { + compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; + reg = <0x42860000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_USDHC2_GATE>; + clock-names = "ipg", "ahb", "per"; + bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; + status = "disabled"; + }; + + fec: ethernet@42890000 { + compatible = "fsl,imx93-fec", "fsl,imx8mp-fec", "fsl,imx8mq-fec"; + reg = <0x42890000 0x10000>; + interrupts = , + , + , + ; + clocks = <&clk IMX93_CLK_WAKEUP_AXI>, + <&clk IMX93_CLK_WAKEUP_AXI>, + <&clk IMX93_CLK_ENET_TIMER1>, + <&clk IMX93_CLK_ENET_REF>, + <&clk IMX93_CLK_ENET_REF_PHY>; + clock-names = "ipg", "ahb", "ptp", + "enet_clk_ref", "enet_out"; + assigned-clocks = <&clk IMX93_CLK_ENET_TIMER1>, + <&clk IMX93_CLK_ENET_REF>, + <&clk IMX93_CLK_ENET_REF_PHY>; + assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, + <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>, + <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>; + assigned-clock-rates = <100000000>, <250000000>, <50000000>; + fsl,num-tx-queues = <3>; + fsl,num-rx-queues = <3>; + fsl,wakeup_irq = <2>; + status = "disabled"; + }; + + eqos: ethernet@428a0000 { + compatible = "nxp,imx93-dwmac-eqos", "snps,dwmac-5.10a"; + reg = <0x428a0000 0x10000>; + interrupts = , + ; + interrupt-names = "eth_wake_irq", "macirq"; + clocks = <&clk IMX93_CLK_WAKEUP_AXI>, + <&clk IMX93_CLK_WAKEUP_AXI>, + <&clk IMX93_CLK_ENET_TIMER2>, + <&clk IMX93_CLK_ENET>, + <&clk IMX93_CLK_WAKEUP_AXI>; + clock-names = "stmmaceth", "pclk", "ptp_ref", "tx", "mem"; + assigned-clocks = <&clk IMX93_CLK_ENET_TIMER2>, + <&clk IMX93_CLK_ENET>; + assigned-clock-parents = <&clk IMX93_CLK_SYS_PLL_PFD1_DIV2>, + <&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>; + assigned-clock-rates = <100000000>, <250000000>; + intf_mode = <&wakeupmix_gpr 0x28>; + clk_csr = <0>; + status = "disabled"; + }; + + usdhc3: mmc@428b0000 { + compatible = "fsl,imx93-usdhc", "fsl,imx8mm-usdhc"; + reg = <0x428b0000 0x10000>; + interrupts = ; + clocks = <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_DUMMY>, + <&clk IMX93_CLK_USDHC3_GATE>; + clock-names = "ipg", "ahb", "per"; + bus-width = <4>; + fsl,tuning-start-tap = <20>; + fsl,tuning-step= <2>; + status = "disabled"; + }; + }; + + gpio2: gpio@43810000 { + compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio"; + reg = <0x43810080 0x1000>, <0x43810040 0x40>; + gpio-controller; + #gpio-cells = <2>; + interrupts = , + ; + interrupt-controller; + #interrupt-cells = <2>; + gpio-ranges = <&iomuxc 0 32 32>; + }; + + gpio3: gpio@43820000 { + compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio"; + reg = <0x43820080 0x1000>, <0x43820040 0x40>; + gpio-controller; + #gpio-cells = <2>; + interrupts = , + ; + interrupt-controller; + #interrupt-cells = <2>; + gpio-ranges = <&iomuxc 0 64 32>; + }; + + gpio4: gpio@43830000 { + compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio"; + reg = <0x43830080 0x1000>, <0x43830040 0x40>; + gpio-controller; + #gpio-cells = <2>; + interrupts = , + ; + interrupt-controller; + #interrupt-cells = <2>; + gpio-ranges = <&iomuxc 0 96 32>; + }; + + gpio1: gpio@47400000 { + compatible = "fsl,imx8ulp-gpio", "fsl,imx7ulp-gpio"; + reg = <0x47400080 0x1000>, <0x47400040 0x40>; + gpio-controller; + #gpio-cells = <2>; + interrupts = , + ; + interrupt-controller; + #interrupt-cells = <2>; + gpio-ranges = <&iomuxc 0 0 32>; + }; + + ocotp: efuse@47510000 { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,imx93-ocotp", "syscon"; + reg = <0x47510000 0x1000>; + status = "disabled"; + }; + + s4muap: s4muap@47520000 { + compatible = "fsl,imx93-mu-s4"; + reg = <0x47520000 0x10000>; + interrupts = , + ; + interrupt-names = "txirq", "rxirq"; + #mbox-cells = <2>; + status = "okay"; + }; + + sentnl_mu: sentnl-mu { + #address-cells = <1>; + #size-cells = <1>; + compatible = "fsl,imx-sentnl"; + mboxes = <&s4muap 0 0 &s4muap 1 0>; + mbox-names = "tx", "rx"; + fsl,sentnl_mu_id = <2>; + fsl,sentnl_mu_max_users = <4>; + status = "okay"; + dma-ranges = <0x80000000 0x80000000 0x20000000>; + }; + + ddr-pmu@4e300e00 { + compatible = "fsl,imx93-ddr-pmu"; + reg = <0x4e300dc0 0x200>; /* _dc0 ~ _eb8 */ + interrupts = ; + }; + + usbphynop1: usbphynop1 { + compatible = "usb-nop-xceiv"; + clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>; + clock-names = "main_clk"; + }; + + usbotg1: usb@4c100000 { + compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb"; + reg = <0x4c100000 0x200>; + interrupts = ; + clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>; + clock-names = "usb1_ctrl_root_clk"; + assigned-clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>; + assigned-clock-parents = <&clk IMX93_CLK_HSIO>; + fsl,usbphy = <&usbphynop1>; + fsl,usbmisc = <&usbmisc1 0>; + status = "disabled"; + }; + + usbmisc1: usbmisc@4c100200 { + compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc"; + #index-cells = <1>; + reg = <0x4c100200 0x200>; + }; + + usbphynop2: usbphynop2 { + compatible = "usb-nop-xceiv"; + clocks = <&clk IMX93_CLK_USB_PHY_BURUNIN>; + clock-names = "main_clk"; + }; + + usbotg2: usb@4c200000 { + compatible = "fsl,imx8mm-usb", "fsl,imx7d-usb"; + reg = <0x4c200000 0x200>; + interrupts = ; + clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>; + clock-names = "usb2_ctrl_root_clk"; + assigned-clocks = <&clk IMX93_CLK_USB_CONTROLLER_GATE>; + assigned-clock-parents = <&clk IMX93_CLK_HSIO>; + fsl,usbphy = <&usbphynop2>; + fsl,usbmisc = <&usbmisc2 0>; + status = "disabled"; + }; + + usbmisc2: usbmisc@4c200200 { + compatible = "fsl,imx8mm-usbmisc", "fsl,imx7d-usbmisc"; + #index-cells = <1>; + reg = <0x4c200200 0x200>; + }; + }; +}; diff --git a/include/dt-bindings/clock/imx93-clock.h b/include/dt-bindings/clock/imx93-clock.h new file mode 100644 index 00000000000..4ea6864b418 --- /dev/null +++ b/include/dt-bindings/clock/imx93-clock.h @@ -0,0 +1,203 @@ +/* SPDX-License-Identifier: GPL-2.0+ OR MIT */ +/* + * Copyright 2021 NXP + */ + +#ifndef __DT_BINDINGS_CLOCK_IMX93_CLK_H +#define __DT_BINDINGS_CLOCK_IMX93_CLK_H + +#define IMX93_CLK_DUMMY 0 +#define IMX93_CLK_24M 1 +#define IMX93_CLK_EXT1 2 +#define IMX93_CLK_SYS_PLL_PFD0 3 +#define IMX93_CLK_SYS_PLL_PFD0_DIV2 4 +#define IMX93_CLK_SYS_PLL_PFD1 5 +#define IMX93_CLK_SYS_PLL_PFD1_DIV2 6 +#define IMX93_CLK_SYS_PLL_PFD2 7 +#define IMX93_CLK_SYS_PLL_PFD2_DIV2 8 +#define IMX93_CLK_AUDIO_PLL 9 +#define IMX93_CLK_VIDEO_PLL 10 +#define IMX93_CLK_A55_PERIPH 11 +#define IMX93_CLK_A55_MTR_BUS 12 +#define IMX93_CLK_A55 13 +#define IMX93_CLK_M33 14 +#define IMX93_CLK_BUS_WAKEUP 15 +#define IMX93_CLK_BUS_AON 16 +#define IMX93_CLK_WAKEUP_AXI 17 +#define IMX93_CLK_SWO_TRACE 18 +#define IMX93_CLK_M33_SYSTICK 19 +#define IMX93_CLK_FLEXIO1 20 +#define IMX93_CLK_FLEXIO2 21 +#define IMX93_CLK_LPIT1 22 +#define IMX93_CLK_LPIT2 23 +#define IMX93_CLK_LPTMR1 24 +#define IMX93_CLK_LPTMR2 25 +#define IMX93_CLK_TPM1 26 +#define IMX93_CLK_TPM2 27 +#define IMX93_CLK_TPM3 28 +#define IMX93_CLK_TPM4 29 +#define IMX93_CLK_TPM5 30 +#define IMX93_CLK_TPM6 31 +#define IMX93_CLK_FLEXSPI1 32 +#define IMX93_CLK_CAN1 33 +#define IMX93_CLK_CAN2 34 +#define IMX93_CLK_LPUART1 35 +#define IMX93_CLK_LPUART2 36 +#define IMX93_CLK_LPUART3 37 +#define IMX93_CLK_LPUART4 38 +#define IMX93_CLK_LPUART5 39 +#define IMX93_CLK_LPUART6 40 +#define IMX93_CLK_LPUART7 41 +#define IMX93_CLK_LPUART8 42 +#define IMX93_CLK_LPI2C1 43 +#define IMX93_CLK_LPI2C2 44 +#define IMX93_CLK_LPI2C3 45 +#define IMX93_CLK_LPI2C4 46 +#define IMX93_CLK_LPI2C5 47 +#define IMX93_CLK_LPI2C6 48 +#define IMX93_CLK_LPI2C7 49 +#define IMX93_CLK_LPI2C8 50 +#define IMX93_CLK_LPSPI1 51 +#define IMX93_CLK_LPSPI2 52 +#define IMX93_CLK_LPSPI3 53 +#define IMX93_CLK_LPSPI4 54 +#define IMX93_CLK_LPSPI5 55 +#define IMX93_CLK_LPSPI6 56 +#define IMX93_CLK_LPSPI7 57 +#define IMX93_CLK_LPSPI8 58 +#define IMX93_CLK_I3C1 59 +#define IMX93_CLK_I3C2 60 +#define IMX93_CLK_USDHC1 61 +#define IMX93_CLK_USDHC2 62 +#define IMX93_CLK_USDHC3 63 +#define IMX93_CLK_SAI1 64 +#define IMX93_CLK_SAI2 65 +#define IMX93_CLK_SAI3 66 +#define IMX93_CLK_CCM_CKO1 67 +#define IMX93_CLK_CCM_CKO2 68 +#define IMX93_CLK_CCM_CKO3 69 +#define IMX93_CLK_CCM_CKO4 70 +#define IMX93_CLK_HSIO 71 +#define IMX93_CLK_HSIO_USB_TEST_60M 72 +#define IMX93_CLK_HSIO_ACSCAN_80M 73 +#define IMX93_CLK_HSIO_ACSCAN_480M 74 +#define IMX93_CLK_ML_APB 75 +#define IMX93_CLK_ML 76 +#define IMX93_CLK_MEDIA_AXI 77 +#define IMX93_CLK_MEDIA_APB 78 +#define IMX93_CLK_MEDIA_LDB 79 +#define IMX93_CLK_MEDIA_DISP_PIX 80 +#define IMX93_CLK_CAM_PIX 81 +#define IMX93_CLK_MIPI_TEST_BYTE 82 +#define IMX93_CLK_MIPI_PHY_CFG 83 +#define IMX93_CLK_ADC 84 +#define IMX93_CLK_PDM 85 +#define IMX93_CLK_TSTMR1 86 +#define IMX93_CLK_TSTMR2 87 +#define IMX93_CLK_MQS1 88 +#define IMX93_CLK_MQS2 89 +#define IMX93_CLK_AUDIO_XCVR 90 +#define IMX93_CLK_SPDIF 91 +#define IMX93_CLK_ENET 92 +#define IMX93_CLK_ENET_TIMER1 93 +#define IMX93_CLK_ENET_TIMER2 94 +#define IMX93_CLK_ENET_REF 95 +#define IMX93_CLK_ENET_REF_PHY 96 +#define IMX93_CLK_I3C1_SLOW 97 +#define IMX93_CLK_I3C2_SLOW 98 +#define IMX93_CLK_USB_PHY_BURUNIN 99 +#define IMX93_CLK_PAL_CAME_SCAN 100 +#define IMX93_CLK_A55_GATE 101 +#define IMX93_CLK_CM33_GATE 102 +#define IMX93_CLK_ADC1_GATE 103 +#define IMX93_CLK_WDOG1_GATE 104 +#define IMX93_CLK_WDOG2_GATE 105 +#define IMX93_CLK_WDOG3_GATE 106 +#define IMX93_CLK_WDOG4_GATE 107 +#define IMX93_CLK_WDOG5_GATE 108 +#define IMX93_CLK_SEMA1_GATE 109 +#define IMX93_CLK_SEMA2_GATE 110 +#define IMX93_CLK_MU_A_GATE 111 +#define IMX93_CLK_MU_B_GATE 112 +#define IMX93_CLK_EDMA1_GATE 113 +#define IMX93_CLK_EDMA2_GATE 114 +#define IMX93_CLK_FLEXSPI1_GATE 115 +#define IMX93_CLK_GPIO1_GATE 116 +#define IMX93_CLK_GPIO2_GATE 117 +#define IMX93_CLK_GPIO3_GATE 118 +#define IMX93_CLK_GPIO4_GATE 119 +#define IMX93_CLK_FLEXIO1_GATE 120 +#define IMX93_CLK_FLEXIO2_GATE 121 +#define IMX93_CLK_LPIT1_GATE 122 +#define IMX93_CLK_LPIT2_GATE 123 +#define IMX93_CLK_LPTMR1_GATE 124 +#define IMX93_CLK_LPTMR2_GATE 125 +#define IMX93_CLK_TPM1_GATE 126 +#define IMX93_CLK_TPM2_GATE 127 +#define IMX93_CLK_TPM3_GATE 128 +#define IMX93_CLK_TPM4_GATE 129 +#define IMX93_CLK_TPM5_GATE 130 +#define IMX93_CLK_TPM6_GATE 131 +#define IMX93_CLK_CAN1_GATE 132 +#define IMX93_CLK_CAN2_GATE 133 +#define IMX93_CLK_LPUART1_GATE 134 +#define IMX93_CLK_LPUART2_GATE 135 +#define IMX93_CLK_LPUART3_GATE 136 +#define IMX93_CLK_LPUART4_GATE 137 +#define IMX93_CLK_LPUART5_GATE 138 +#define IMX93_CLK_LPUART6_GATE 139 +#define IMX93_CLK_LPUART7_GATE 140 +#define IMX93_CLK_LPUART8_GATE 141 +#define IMX93_CLK_LPI2C1_GATE 142 +#define IMX93_CLK_LPI2C2_GATE 143 +#define IMX93_CLK_LPI2C3_GATE 144 +#define IMX93_CLK_LPI2C4_GATE 145 +#define IMX93_CLK_LPI2C5_GATE 146 +#define IMX93_CLK_LPI2C6_GATE 147 +#define IMX93_CLK_LPI2C7_GATE 148 +#define IMX93_CLK_LPI2C8_GATE 149 +#define IMX93_CLK_LPSPI1_GATE 150 +#define IMX93_CLK_LPSPI2_GATE 151 +#define IMX93_CLK_LPSPI3_GATE 152 +#define IMX93_CLK_LPSPI4_GATE 153 +#define IMX93_CLK_LPSPI5_GATE 154 +#define IMX93_CLK_LPSPI6_GATE 155 +#define IMX93_CLK_LPSPI7_GATE 156 +#define IMX93_CLK_LPSPI8_GATE 157 +#define IMX93_CLK_I3C1_GATE 158 +#define IMX93_CLK_I3C2_GATE 159 +#define IMX93_CLK_USDHC1_GATE 160 +#define IMX93_CLK_USDHC2_GATE 161 +#define IMX93_CLK_USDHC3_GATE 162 +#define IMX93_CLK_SAI1_GATE 163 +#define IMX93_CLK_SAI2_GATE 164 +#define IMX93_CLK_SAI3_GATE 165 +#define IMX93_CLK_MIPI_CSI_GATE 166 +#define IMX93_CLK_MIPI_DSI_GATE 167 +#define IMX93_CLK_LVDS_GATE 168 +#define IMX93_CLK_LCDIF_GATE 169 +#define IMX93_CLK_PXP_GATE 170 +#define IMX93_CLK_ISI_GATE 171 +#define IMX93_CLK_NIC_MEDIA_GATE 172 +#define IMX93_CLK_USB_CONTROLLER_GATE 173 +#define IMX93_CLK_USB_TEST_60M_GATE 174 +#define IMX93_CLK_HSIO_TROUT_24M_GATE 175 +#define IMX93_CLK_PDM_GATE 176 +#define IMX93_CLK_MQS1_GATE 177 +#define IMX93_CLK_MQS2_GATE 178 +#define IMX93_CLK_AUD_XCVR_GATE 179 +#define IMX93_CLK_SPDIF_GATE 180 +#define IMX93_CLK_HSIO_32K_GATE 181 +#define IMX93_CLK_ENET1_GATE 182 +#define IMX93_CLK_ENET_QOS_GATE 183 +#define IMX93_CLK_SYS_CNT_GATE 184 +#define IMX93_CLK_TSTMR1_GATE 185 +#define IMX93_CLK_TSTMR2_GATE 186 +#define IMX93_CLK_TMC_GATE 187 +#define IMX93_CLK_PMRO_GATE 188 +#define IMX93_CLK_32K 189 +#define IMX93_CLK_SAI1_IPG 190 +#define IMX93_CLK_SAI2_IPG 191 +#define IMX93_CLK_SAI3_IPG 192 +#define IMX93_CLK_END 193 +#endif diff --git a/include/dt-bindings/power/imx93-power.h b/include/dt-bindings/power/imx93-power.h new file mode 100644 index 00000000000..4e27a2e2809 --- /dev/null +++ b/include/dt-bindings/power/imx93-power.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright 2021 NXP + */ + +#ifndef __DT_BINDINGS_IMX93_POWER_H__ +#define __DT_BINDINGS_IMX93_POWER_H__ + +#define IMX93_POWER_DOMAIN_MLMIX 0 +#define IMX93_POWER_DOMAIN_MEDIAMIX 1 + +#endif From patchwork Mon Jun 27 03:24:46 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648573 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=MCDBcn2P; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXJ76xwHz9s0r for ; Mon, 27 Jun 2022 12:49:43 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9F83D8454C; Mon, 27 Jun 2022 04:44:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="MCDBcn2P"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id D2DAD8453B; Mon, 27 Jun 2022 04:44:06 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10075.outbound.protection.outlook.com [40.107.1.75]) (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 EA7CF8452F for ; Mon, 27 Jun 2022 04:43:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EDByiS6UA9l/21N/yMuaGXi0TQRQX49ykA9YX+LlxpwCxTiFuza64EvEGYcieLEBd0H2EH35nSZSpO/SnAxkjkSZBarFKJZS6kr6UG/DP9y+F2z0KkS3DCOwcY2wmIpFEHmQzdS1J2v+J2Eglu2XU0quPXZiXyOucBQtzs1q8nffXCaRWnUsnBx1VT+K/twN/Um6yApirqIs3o/ejpeAINhTWTilOSZhrkF43aAS0HN2oTPdNFZaUfpoVGxHU0hLZ014B73vR+6lWTYAxKodPpJ7turq1XW5X6jQGb0fv0mft4lcx+aRS5BOT+CFYIEn9XfaRlKuBB3uTPnU2gZu3A== 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=fSe8GOFyG2EQBLpZ+7R9GwphXqUB4k025rdkTcsEYs4=; b=hX8u3pL2etoO0XbnfTCYnWnz5UtF6TVDN5afRrn5s5Rzobw1H0zeTM2IyCvqrqtHTBJ5ouNpJ76VMBOGAsmqeY3Exq6yWBWV7RQqIRFLLptBz0tVcwVjO4HEkKOqwOfZ6rbuqWw+eIgsKxrB0nmFRpKZmKqZuXfU0Jseb2eUqOHN05SkwFbWsdxovNDsHxX/F3TBjihGAxlajVtvNzkdY1+GwyxP3QGESBXfZCYjMxKMYN41oLAmroc5GnbLduwOpaSG2Vd74a1r23y7yTkS8Q+dGbIte8SG0goEfCxtpZCE36hC2BnDmeDVhXqaPDhX49uH9S2f01SqUoj8w9ftLQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fSe8GOFyG2EQBLpZ+7R9GwphXqUB4k025rdkTcsEYs4=; b=MCDBcn2PgkjPBiDEbiV3knVQ5J6a5//djnKHE7o6qEZxMaGwnwj7j/hlx7LL69uEbj3s7V5yontrI8tWa3j2sdtpQ1PQDqYff89g+d3CF8eAyIH/PeBRBVBJWC3pkIhVIcosTF/XWa4AaSQjZMOydujgqJMtWvhnS7Kf3feK4YM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:49 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:48 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" , Peng Fan Cc: u-boot@lists.denx.de Subject: [PATCH V2 40/49] imx: imx93_evk: Add basic board support Date: Mon, 27 Jun 2022 11:24:46 +0800 Message-Id: <20220627032455.28280-41-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2b1dc623-3db7-4f81-8954-08da57e6dc7a X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZSvkO/CG2oFSV4cB6b2O6ZUsCYTICJghvD/N/WqqI+BY11WY73ar3LsUKRXt9lW4SOexJ3rL5KEYu6lIUhBnDpXRnc9+Ntd1+EPLdEwENG4sPygtAXXS8KHuEfiaNwSMn5JFba98t3XqzviwAx6E+e3oyx8PjCzmHqU7H0/7JQfLqv4PvDqDFVC1pebJy7vV7ELtdCONV4hM5bMq+sOXcHWCsUcFjYNR8Ly/WSO8Nyn3BAJuxOk0Q0gptuQpQ7CM7NSJTOkNq8ci/I5SFouAfUc3IYzI5iseLvt8yYqYUDJy/t/4zR9/mCW07XM/7UqsqQ5+ixTNdAu8BDniOROG42dhekSuyB6icrBDqqZb/h7Zc1XetcHsckEPu3K7zZAVYqG+xyPGUTAnZ9m/gUsTn2uYFAk4NTVzjKV/b3gCosXpioPWFZIFlmTvTDm6ZtmgKnhwFnMJjX+4gTvUBw8DygJYENbuglv9RTLaRWYYGm1uwsAGeGt9Sx+BHRRdIbTf+MG5AX5zjGD9OuXmpEquLrX2GPIHvFt4SC7WqaYVMFNTu8tC3IiBovzwPU675fCZ7+prBLzyn09ULzooUJwLaCU+6jL7pnF8SmpCjHjh63VrUu8ZmV+woBVUSVG+yT5yHJpMruWzgAoFIGNVDPuMUPF4ZxAQvc/6tAn7Ed0aMQrebey0Zo3umozCBOSYCkslKJjou9S1fThMa6jn0Dwv54UAXdzoAD5CJbIkReZm4L49BwoQSv3xPvedKVNsCJ81DDQGSiAKL+ukegD1s5u2MOITp0SxFc6MT3xlOCb6UoZFMBKTNXFqKG8h93GD8bJYH3P9XvxaO02azWjIpBVZzg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(5660300002)(6512007)(30864003)(1076003)(26005)(559001)(579004)(473944003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 4hQPMvQnCmK/gHShaWpcolI8BjQ1brnHFoF7NzLFRSutAS/hYbQ/H/CtxdL45sHpUpc4zz5wMWKGrBre5TbUkZ8JBaAi4BmpPtZ3K7e/YA2l5mMsqy9JdvSdcP4ess9bENUZIEBIKtB+6TmFBhFr8AkTbDEr1hq6iNP/mepx1Ofgy4YgTjlkDDgZRu4ViRSXWkQQhA8tAJvKvdkAF2fIlXFyonTylNyYS1M0ToAEiVgwwgdKHnQSFpvAokUZozbAR138A54UauZ/tOJZ+9M7SIRNf0cCcdwrOxiBUpN/DSWg1nhUxMSf05lP/S0d4B/YGIXsip3mZvf9hkKUWsMf/wFUpuSpyjjxetY01Q/Kmdnz4hw73Hio2nTXuPnffFY4pTF627uPB1hJZFnyVeUJvIyBzMidoDrIe2IBWmyyorCtbQNDQUW2d1Wti0GTVUQfX79UgsF+K2L1gE9nJRRBiDZY2lKfETQVd6K0UAO5Wdsgt+LJGgOtO+Dxx2NDM1FLs65s8PYbZvJje3LiWQBy09DW3gKexuEBuUcE0OaGf3KRNgMES51cQz5ptnPJLvC99SlPM/eO42FNRvK+54XrQk996YX6ceMyB1r2cdoMqwgBMerxnPk9TKJ+lBIjme6I9ESwVbsxbKBlyS3HaMqn3Dz+tJ4fY3Z0l4+FvTHZrluDckMerrEaMzb9HwV9qDYZk0qQgHeIemIxQFDa43yP+qEzNrA+Le2MxzgjGw/ru26Yz5ZHwyam7Zz4tz7Hk5VxCGWWEGNxxN8q0g9WJ3yO6ubhUu5AW8Mhfx5QYfO48qvoqJardKt4hCiZnycAEG62MFa13BCAKxcJuYOx/RBse6t5xrYstQP635vF/mm717oy9taknEl2d/V63JvQr6iYbpD3j3SdHDDMnHK+sOdsAYqskwW3+SvU1Vr0u0InawxABLulrmscwKI7V13U3rWqB6INrpVhrlrCULcqqtlZ3Ff1VsYsjsxZb9t418/TICV7jtqx+zyyRqYHB9bnjqFj0JANLw7u9kg0bmQPlnQp7TattrY60cb+BYYdN1zXPkuQB4lgtMo6rXTV/zKVleBtbmPEgMa8SfWGIjpMcIjCmIyV3ICPZM/4zS8rIGyPm5WjE5lhn8v49sXMxzEN/nr4csIjeyXr/la3CFRlrJoG5Owe2RGQun/tZJR+fUxEds/ZKmeSP5UhllGO4klUwlZbPZjxP4sq871mibYsNF0TQLkHbBZKHwwfMx2UlhFUnx+VyfY1zPu/xAkuWcJhNrnkTtfWmUZQw8D6PObBFUiJ/EcoIl9aHpM41OBFrLpIv3ioDHszCXwv8rFs20kJT1t6Xr42osZBzz8wQfIAEm9544K7Yimc+kWTBJWB4ssypXzf2mV0sjH+pBDkNpd/5UV9gJ0a1gUNkkPk1Qm9ysb7ixsXAmaNh1Mw3K+M3XXzRai2Ek9WqZKGMr1ADkIooOhpKUNIT91/ssd6IPs6hNqOy+MbP2pamF3kZgdrUfrC745+ezEZ/INuPrAGwzSFXPPbea+Qm5ZfVTG1WuA+GnhzgVY4EWMaV0omAq3i80O9/Vvu6uLkkAlMGver0EfAPqu6 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b1dc623-3db7-4f81-8954-08da57e6dc7a X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:48.5565 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Xc/1osEAwbPFMQSgzADFCttRAMHK0VQD7NbxTPoK1NZofQ5vnFAeq11/XQCFT8R9FIhPhOIth+w63EuJkEihEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add basic board codes and defconfig for i.MX93 11x11 EVK board. Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/dts/Makefile | 3 + arch/arm/dts/imx93-11x11-evk-u-boot.dtsi | 157 +++ arch/arm/dts/imx93-11x11-evk.dts | 527 +++++++ arch/arm/mach-imx/imx9/Kconfig | 12 + board/freescale/common/Makefile | 2 +- board/freescale/imx93_evk/Kconfig | 21 + board/freescale/imx93_evk/MAINTAINERS | 6 + board/freescale/imx93_evk/Makefile | 12 + board/freescale/imx93_evk/imx93_evk.c | 58 + board/freescale/imx93_evk/lpddr4x_timing.c | 1486 ++++++++++++++++++++ board/freescale/imx93_evk/spl.c | 126 ++ configs/imx93_11x11_evk_defconfig | 108 ++ include/configs/imx93_evk.h | 149 ++ 13 files changed, 2666 insertions(+), 1 deletion(-) create mode 100644 arch/arm/dts/imx93-11x11-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx93-11x11-evk.dts create mode 100644 board/freescale/imx93_evk/Kconfig create mode 100644 board/freescale/imx93_evk/MAINTAINERS create mode 100644 board/freescale/imx93_evk/Makefile create mode 100644 board/freescale/imx93_evk/imx93_evk.c create mode 100644 board/freescale/imx93_evk/lpddr4x_timing.c create mode 100644 board/freescale/imx93_evk/spl.c create mode 100644 configs/imx93_11x11_evk_defconfig create mode 100644 include/configs/imx93_evk.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 4b940f85169..1217f156bea 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -966,6 +966,9 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ imx8mq-pico-pi.dtb \ imx8mq-kontron-pitx-imx8m.dtb +dtb-$(CONFIG_ARCH_IMX9) += \ + imx93-11x11-evk.dtb + dtb-$(CONFIG_ARCH_IMXRT) += imxrt1050-evk.dtb \ imxrt1020-evk.dtb diff --git a/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi b/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi new file mode 100644 index 00000000000..6f02b389893 --- /dev/null +++ b/arch/arm/dts/imx93-11x11-evk-u-boot.dtsi @@ -0,0 +1,157 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +/ { + wdt-reboot { + compatible = "wdt-reboot"; + wdt = <&wdog3>; + u-boot,dm-spl; + }; + + aliases { + usbgadget0 = &usbg1; + usbgadget1 = &usbg2; + }; + + usbg1: usbg1 { + compatible = "fsl,imx27-usb-gadget"; + dr_mode = "peripheral"; + chipidea,usb = <&usbotg1>; + status = "okay"; + }; + + usbg2: usbg2 { + compatible = "fsl,imx27-usb-gadget"; + dr_mode = "peripheral"; + chipidea,usb = <&usbotg2>; + status = "okay"; + }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; +}; + +&{/soc@0} { + u-boot,dm-pre-reloc; + u-boot,dm-spl; +}; + +&aips1 { + u-boot,dm-spl; + u-boot,dm-pre-reloc; +}; + +&aips2 { + u-boot,dm-spl; +}; + +&aips3 { + u-boot,dm-spl; +}; + +&iomuxc { + u-boot,dm-spl; +}; + +®_usdhc2_vmmc { + u-boot,off-on-delay-us = <20000>; + u-boot,dm-spl; +}; + +&pinctrl_reg_usdhc2_vmmc { + u-boot,dm-spl; +}; + +&pinctrl_uart1 { + u-boot,dm-spl; +}; + +&pinctrl_usdhc2_gpio { + u-boot,dm-spl; +}; + +&pinctrl_usdhc2 { + u-boot,dm-spl; +}; + +&gpio1 { + u-boot,dm-spl; +}; + +&gpio2 { + u-boot,dm-spl; +}; + +&gpio3 { + u-boot,dm-spl; +}; + +&gpio4 { + u-boot,dm-spl; +}; + +&lpuart1 { + u-boot,dm-spl; +}; + +&usdhc1 { + u-boot,dm-spl; +}; + +&usdhc2 { + u-boot,dm-spl; + fsl,signal-voltage-switch-extra-delay-ms = <8>; +}; + +&lpi2c2 { + u-boot,dm-spl; +}; + +&{/soc@0/bus@44000000/i2c@44350000/pmic@25} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@44000000/i2c@44350000/pmic@25/regulators} { + u-boot,dm-spl; +}; + +&pinctrl_lpi2c2 { + u-boot,dm-spl; +}; + +&fec { + phy-reset-gpios = <&pcal6524 16 GPIO_ACTIVE_LOW>; + phy-reset-duration = <15>; + phy-reset-post-delay = <100>; +}; + +&eqos { + compatible = "fsl,imx-eqos"; +}; + +ðphy1 { + reset-gpios = <&pcal6524 15 GPIO_ACTIVE_LOW>; + reset-assert-us = <15000>; + reset-deassert-us = <100000>; +}; + +&usbotg1 { + status = "okay"; + extcon = <&ptn5110>; +}; + +&usbotg2 { + status = "okay"; + extcon = <&ptn5110_2>; +}; + +&s4muap { + u-boot,dm-spl; + status = "okay"; +}; diff --git a/arch/arm/dts/imx93-11x11-evk.dts b/arch/arm/dts/imx93-11x11-evk.dts new file mode 100644 index 00000000000..b3a5a3d71e2 --- /dev/null +++ b/arch/arm/dts/imx93-11x11-evk.dts @@ -0,0 +1,527 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2021 NXP + */ + +/dts-v1/; + +#include "imx93.dtsi" + +/{ + chosen { + stdout-path = &lpuart1; + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + audio: audio@a4120000 { + compatible = "shared-dma-pool"; + reg = <0 0xa4120000 0 0x100000>; + no-map; + }; + }; + + reg_can2_stby: regulator-can2-stby { + compatible = "regulator-fixed"; + regulator-name = "can2-stby"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&adp5585gpio 5 GPIO_ACTIVE_LOW>; + enable-active-low; + }; + + reg_usdhc2_vmmc: regulator-usdhc2 { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_reg_usdhc2_vmmc>; + regulator-name = "VSD_3V3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + gpio = <&gpio3 7 GPIO_ACTIVE_HIGH>; + enable-active-high; + }; + + usdhc3_pwrseq: usdhc3_pwrseq { + compatible = "mmc-pwrseq-simple"; + reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>; + }; + + reg_vref_1v8: regulator-adc-vref { + compatible = "regulator-fixed"; + regulator-name = "vref_1v8"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + +}; + +&lpi2c1 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <400000>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pinctrl_lpi2c1>; + pinctrl-1 = <&pinctrl_lpi2c1>; + status = "okay"; + + ptn5110: tcpc@50 { + compatible = "nxp,ptn5110"; + reg = <0x50>; + interrupt-parent = <&pcal6524>; + interrupts = <1 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + + port { + typec1_dr_sw: endpoint { + remote-endpoint = <&usb1_drd_sw>; + }; + }; + + typec1_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + power-role = "dual"; + data-role = "dual"; + try-power-role = "sink"; + source-pdos = ; + sink-pdos = ; + op-sink-microwatt = <15000000>; + self-powered; + }; + }; + + ptn5110_2: tcpc@51 { + compatible = "nxp,ptn5110"; + reg = <0x51>; + interrupt-parent = <&pcal6524>; + interrupts = <9 IRQ_TYPE_EDGE_FALLING>; + status = "okay"; + + port { + typec2_dr_sw: endpoint { + remote-endpoint = <&usb2_drd_sw>; + }; + }; + + typec2_con: connector { + compatible = "usb-c-connector"; + label = "USB-C"; + power-role = "dual"; + data-role = "dual"; + try-power-role = "sink"; + source-pdos = ; + sink-pdos = ; + op-sink-microwatt = <15000000>; + self-powered; + }; + }; +}; + +&lpi2c2 { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <400000>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&pinctrl_lpi2c2>; + pinctrl-1 = <&pinctrl_lpi2c2>; + status = "okay"; + + pmic@25 { + compatible = "nxp,pca9451a"; + reg = <0x25>; + pinctrl-names = "default"; + interrupt-parent = <&pcal6524>; + interrupts = <12 IRQ_TYPE_LEVEL_LOW>; + + regulators { + buck1: BUCK1 { + regulator-name = "BUCK1"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <2187500>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <3125>; + }; + + buck2: BUCK2 { + regulator-name = "BUCK2"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <2187500>; + regulator-boot-on; + regulator-always-on; + regulator-ramp-delay = <3125>; + }; + + buck4: BUCK4{ + regulator-name = "BUCK4"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <3400000>; + regulator-boot-on; + regulator-always-on; + }; + + buck5: BUCK5{ + regulator-name = "BUCK5"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <3400000>; + regulator-boot-on; + regulator-always-on; + }; + + buck6: BUCK6 { + regulator-name = "BUCK6"; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <3400000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo1: LDO1 { + regulator-name = "LDO1"; + regulator-min-microvolt = <1600000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo2: LDO2 { + regulator-name = "LDO2"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <1150000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo3: LDO3 { + regulator-name = "LDO3"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo4: LDO4 { + regulator-name = "LDO4"; + regulator-min-microvolt = <800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + + ldo5: LDO5 { + regulator-name = "LDO5"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + regulator-always-on; + }; + }; + }; + + pcal6524: gpio@22 { + compatible = "nxp,pcal6524"; + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_pcal6524>; + reg = <0x22>; + gpio-controller; + #gpio-cells = <2>; + interrupt-controller; + #interrupt-cells = <2>; + interrupt-parent = <&gpio3>; + interrupts = <27 IRQ_TYPE_LEVEL_LOW>; + }; + + adp5585gpio: gpio@34 { + compatible = "adp5585"; + reg = <0x34>; + gpio-controller; + #gpio-cells = <2>; + }; +}; + +&lpuart1 { /* console */ + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart1>; + status = "okay"; +}; + +&lpuart2 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart2>; + status = "disabled"; +}; + +&usbotg1 { + dr_mode = "otg"; + hnp-disable; + srp-disable; + adp-disable; + usb-role-switch; + disable-over-current; + samsung,picophy-pre-emp-curr-control = <3>; + samsung,picophy-dc-vol-level-adjust = <7>; + status = "okay"; + + port { + usb1_drd_sw: endpoint { + remote-endpoint = <&typec1_dr_sw>; + }; + }; +}; + +&usbotg2 { + dr_mode = "otg"; + hnp-disable; + srp-disable; + adp-disable; + usb-role-switch; + disable-over-current; + samsung,picophy-pre-emp-curr-control = <3>; + samsung,picophy-dc-vol-level-adjust = <7>; + status = "okay"; + + port { + usb2_drd_sw: endpoint { + remote-endpoint = <&typec2_dr_sw>; + }; + }; +}; + +&usdhc1 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc1>; + pinctrl-1 = <&pinctrl_usdhc1>; + pinctrl-2 = <&pinctrl_usdhc1>; + bus-width = <8>; + non-removable; + status = "okay"; +}; + +&usdhc2 { + pinctrl-names = "default", "state_100mhz", "state_200mhz"; + pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; + pinctrl-1 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; + pinctrl-2 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_gpio>; + cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>; + vmmc-supply = <®_usdhc2_vmmc>; + bus-width = <4>; + status = "okay"; + no-sdio; + no-mmc; +}; + +&usdhc3 { + status = "disabled"; +}; + +&fec { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_fec>; + phy-mode = "rgmii-id"; + phy-handle = <ðphy2>; + fsl,magic-packet; + status = "okay"; + + mdio { + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <5000000>; + + ethphy2: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + eee-broken-1000t; + rtl821x,aldps-disable; + rtl821x,clkout-disable; + }; + }; +}; + +&eqos { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_eqos>; + phy-mode = "rgmii-id"; + phy-handle = <ðphy1>; + status = "okay"; + + mdio { + compatible = "snps,dwmac-mdio"; + #address-cells = <1>; + #size-cells = <0>; + clock-frequency = <5000000>; + + ethphy1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + eee-broken-1000t; + rtl821x,aldps-disable; + rtl821x,clkout-disable; + }; + }; +}; + +&flexspi { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_flexspi>; + status = "disabled"; + + flash0: flash@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <1>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <80000000>; + spi-tx-bus-width = <1>; + spi-rx-bus-width = <1>; + }; +}; + +&iomuxc { + pinctrl-names = "default"; + status = "okay"; + + pinctrl_flexcan2: flexcan2grp { + fsl,pins = < + MX93_PAD_GPIO_IO25__CAN2_TX 0x139e + MX93_PAD_GPIO_IO27__CAN2_RX 0x139e + >; + }; + + pinctrl_flexspi: flexspigrp { + fsl,pins = < + MX93_PAD_SD3_CMD__FLEXSPI1_A_SS0_B 0x42 + MX93_PAD_SD1_DATA3__FLEXSPI1_A_SS1_B 0x42 + MX93_PAD_SD3_CLK__FLEXSPI1_A_SCLK 0x42 + MX93_PAD_SD1_STROBE__FLEXSPI1_A_DQS 0x42 + MX93_PAD_SD3_DATA0__FLEXSPI1_A_DATA00 0x42 + MX93_PAD_SD3_DATA1__FLEXSPI1_A_DATA01 0x42 + MX93_PAD_SD3_DATA2__FLEXSPI1_A_DATA02 0x42 + MX93_PAD_SD3_DATA3__FLEXSPI1_A_DATA03 0x42 + MX93_PAD_SD1_DATA4__FLEXSPI1_A_DATA04 0x42 + MX93_PAD_SD1_DATA5__FLEXSPI1_A_DATA05 0x42 + MX93_PAD_SD1_DATA6__FLEXSPI1_A_DATA06 0x42 + MX93_PAD_SD1_DATA7__FLEXSPI1_A_DATA07 0x42 + >; + }; + + pinctrl_fec: fecgrp { + fsl,pins = < + MX93_PAD_ENET2_MDC__ENET1_MDC 0x57e + MX93_PAD_ENET2_MDIO__ENET1_MDIO 0x57e + MX93_PAD_ENET2_RD0__ENET1_RGMII_RD0 0x57e + MX93_PAD_ENET2_RD1__ENET1_RGMII_RD1 0x57e + MX93_PAD_ENET2_RD2__ENET1_RGMII_RD2 0x57e + MX93_PAD_ENET2_RD3__ENET1_RGMII_RD3 0x57e + MX93_PAD_ENET2_RXC__ENET1_RGMII_RXC 0x5fe + MX93_PAD_ENET2_RX_CTL__ENET1_RGMII_RX_CTL 0x57e + MX93_PAD_ENET2_TD0__ENET1_RGMII_TD0 0x57e + MX93_PAD_ENET2_TD1__ENET1_RGMII_TD1 0x57e + MX93_PAD_ENET2_TD2__ENET1_RGMII_TD2 0x57e + MX93_PAD_ENET2_TD3__ENET1_RGMII_TD3 0x57e + MX93_PAD_ENET2_TXC__ENET1_RGMII_TXC 0x5fe + MX93_PAD_ENET2_TX_CTL__ENET1_RGMII_TX_CTL 0x57e + >; + }; + + pinctrl_eqos: eqosgrp { + fsl,pins = < + MX93_PAD_ENET1_MDC__ENET_QOS_MDC 0x57e + MX93_PAD_ENET1_MDIO__ENET_QOS_MDIO 0x57e + MX93_PAD_ENET1_RD0__ENET_QOS_RGMII_RD0 0x57e + MX93_PAD_ENET1_RD1__ENET_QOS_RGMII_RD1 0x57e + MX93_PAD_ENET1_RD2__ENET_QOS_RGMII_RD2 0x57e + MX93_PAD_ENET1_RD3__ENET_QOS_RGMII_RD3 0x57e + MX93_PAD_ENET1_RXC__CCM_ENET_QOS_CLOCK_GENERATE_RX_CLK 0x5fe + MX93_PAD_ENET1_RX_CTL__ENET_QOS_RGMII_RX_CTL 0x57e + MX93_PAD_ENET1_TD0__ENET_QOS_RGMII_TD0 0x57e + MX93_PAD_ENET1_TD1__ENET_QOS_RGMII_TD1 0x57e + MX93_PAD_ENET1_TD2__ENET_QOS_RGMII_TD2 0x57e + MX93_PAD_ENET1_TD3__ENET_QOS_RGMII_TD3 0x57e + MX93_PAD_ENET1_TXC__CCM_ENET_QOS_CLOCK_GENERATE_TX_CLK 0x5fe + MX93_PAD_ENET1_TX_CTL__ENET_QOS_RGMII_TX_CTL 0x57e + >; + }; + + pinctrl_lpi2c1: lpi2c1grp { + fsl,pins = < + MX93_PAD_I2C1_SCL__LPI2C1_SCL 0x40000b9e + MX93_PAD_I2C1_SDA__LPI2C1_SDA 0x40000b9e + >; + }; + + pinctrl_lpi2c2: lpi2c2grp { + fsl,pins = < + MX93_PAD_I2C2_SCL__LPI2C2_SCL 0x40000b9e + MX93_PAD_I2C2_SDA__LPI2C2_SDA 0x40000b9e + >; + }; + + pinctrl_pcal6524: pcal6524grp { + fsl,pins = < + MX93_PAD_CCM_CLKO2__GPIO3_IO27 0x31e + >; + }; + + pinctrl_uart1: uart1grp { + fsl,pins = < + MX93_PAD_UART1_RXD__LPUART1_RX 0x31e + MX93_PAD_UART1_TXD__LPUART1_TX 0x31e + >; + }; + + pinctrl_uart2: uart2grp { + fsl,pins = < + MX93_PAD_UART2_TXD__LPUART2_TX 0x31e + MX93_PAD_UART2_RXD__LPUART2_RX 0x31e + >; + }; + + pinctrl_usdhc1: usdhc1grp { + fsl,pins = < + MX93_PAD_SD1_CLK__USDHC1_CLK 0x17fe + MX93_PAD_SD1_CMD__USDHC1_CMD 0x13fe + MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x13fe + MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x13fe + MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x13fe + MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x13fe + MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x13fe + MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x13fe + MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x13fe + MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x13fe + MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x17fe + >; + }; + + pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp { + fsl,pins = < + MX93_PAD_SD2_RESET_B__GPIO3_IO07 0x31e + >; + }; + + pinctrl_usdhc2_gpio: usdhc2gpiogrp { + fsl,pins = < + MX93_PAD_SD2_CD_B__GPIO3_IO00 0x31e + >; + }; + + pinctrl_usdhc2: usdhc2grp { + fsl,pins = < + MX93_PAD_SD2_CLK__USDHC2_CLK 0x17fe + MX93_PAD_SD2_CMD__USDHC2_CMD 0x13fe + MX93_PAD_SD2_DATA0__USDHC2_DATA0 0x13fe + MX93_PAD_SD2_DATA1__USDHC2_DATA1 0x13fe + MX93_PAD_SD2_DATA2__USDHC2_DATA2 0x13fe + MX93_PAD_SD2_DATA3__USDHC2_DATA3 0x13fe + MX93_PAD_SD2_VSELECT__USDHC2_VSELECT 0x51e + >; + }; +}; + +&wdog3 { + status = "okay"; +}; diff --git a/arch/arm/mach-imx/imx9/Kconfig b/arch/arm/mach-imx/imx9/Kconfig index dae9f658e65..c06102bae07 100644 --- a/arch/arm/mach-imx/imx9/Kconfig +++ b/arch/arm/mach-imx/imx9/Kconfig @@ -18,5 +18,17 @@ config IMX93 config SYS_SOC default "imx9" +choice + prompt "NXP i.MX9 board select" + optional + +config TARGET_IMX93_11X11_EVK + bool "imx93_11x11_evk" + select IMX93 + +endchoice + +source "board/freescale/imx93_evk/Kconfig" + endif diff --git a/board/freescale/common/Makefile b/board/freescale/common/Makefile index 4214c6e46e4..7c93d30e1d2 100644 --- a/board/freescale/common/Makefile +++ b/board/freescale/common/Makefile @@ -65,7 +65,7 @@ obj-$(CONFIG_ZM7300) += zm7300.o obj-$(CONFIG_POWER_PFUZE100) += pfuze.o obj-$(CONFIG_DM_PMIC_PFUZE100) += pfuze.o obj-$(CONFIG_POWER_MC34VR500) += mc34vr500.o -ifneq (,$(filter $(SOC), imx8ulp)) +ifneq (,$(filter $(SOC), imx8ulp imx9)) obj-y += mmc.o endif diff --git a/board/freescale/imx93_evk/Kconfig b/board/freescale/imx93_evk/Kconfig new file mode 100644 index 00000000000..032e523198d --- /dev/null +++ b/board/freescale/imx93_evk/Kconfig @@ -0,0 +1,21 @@ +if TARGET_IMX93_11X11_EVK + +config SYS_BOARD + default "imx93_evk" + +config SYS_VENDOR + default "freescale" + +config SYS_CONFIG_NAME + default "imx93_evk" + +config IMX93_EVK_LPDDR4X + bool "Using LPDDR4X Timing and PMIC voltage" + default y + select IMX9_LPDDR4X + help + Select the LPDDR4X timing and 0.6V VDDQ + +source "board/freescale/common/Kconfig" + +endif diff --git a/board/freescale/imx93_evk/MAINTAINERS b/board/freescale/imx93_evk/MAINTAINERS new file mode 100644 index 00000000000..389f17ae1e4 --- /dev/null +++ b/board/freescale/imx93_evk/MAINTAINERS @@ -0,0 +1,6 @@ +i.MX93 MEK BOARD +M: Peng Fan +S: Maintained +F: board/freescale/imx93_evk/ +F: include/configs/imx93_evk.h +F: configs/imx93_11x11_evk_defconfig diff --git a/board/freescale/imx93_evk/Makefile b/board/freescale/imx93_evk/Makefile new file mode 100644 index 00000000000..575f8e94604 --- /dev/null +++ b/board/freescale/imx93_evk/Makefile @@ -0,0 +1,12 @@ +# +# Copyright 2022 NXP +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += imx93_evk.o + +ifdef CONFIG_SPL_BUILD +obj-y += spl.o +obj-$(CONFIG_IMX93_EVK_LPDDR4X) += lpddr4x_timing.o +endif diff --git a/board/freescale/imx93_evk/imx93_evk.c b/board/freescale/imx93_evk/imx93_evk.c new file mode 100644 index 00000000000..77b92b35db4 --- /dev/null +++ b/board/freescale/imx93_evk/imx93_evk.c @@ -0,0 +1,58 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +#define UART_PAD_CTRL (PAD_CTL_DSE(6) | PAD_CTL_FSEL2) +#define WDOG_PAD_CTRL (PAD_CTL_DSE(6) | PAD_CTL_ODE | PAD_CTL_PUE | PAD_CTL_PE) + +static iomux_v3_cfg_t const uart_pads[] = { + MX93_PAD_UART1_RXD__LPUART1_RX | MUX_PAD_CTRL(UART_PAD_CTRL), + MX93_PAD_UART1_TXD__LPUART1_TX | MUX_PAD_CTRL(UART_PAD_CTRL), +}; + +int board_early_init_f(void) +{ + imx_iomux_v3_setup_multiple_pads(uart_pads, ARRAY_SIZE(uart_pads)); + + init_uart_clk(LPUART1_CLK_ROOT); + + return 0; +} + +int board_init(void) +{ + return 0; +} + +int board_late_init(void) +{ +#ifdef CONFIG_ENV_IS_IN_MMC + board_late_mmc_env_init(); +#endif + +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG + env_set("board_name", "11X11_EVK"); + env_set("board_rev", "iMX93"); +#endif + return 0; +} + diff --git a/board/freescale/imx93_evk/lpddr4x_timing.c b/board/freescale/imx93_evk/lpddr4x_timing.c new file mode 100644 index 00000000000..3fbae55bc7f --- /dev/null +++ b/board/freescale/imx93_evk/lpddr4x_timing.c @@ -0,0 +1,1486 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + * + * Generated code from NXP_DDR_tool + * + * Align with uboot version: + * imx_v2019.04_5.4.x and above version + */ + +#include +#include + +struct dram_cfg_param ddr_ddrc_cfg[] = { + /** Initialize DDRC registers **/ + { 0x4e300110, 0x44140001 }, + { 0x4e300000, 0x8000ff }, + { 0x4e300008, 0x0 }, + { 0x4e300080, 0x80000512 }, + { 0x4e300084, 0x0 }, + { 0x4e300114, 0x2 }, + { 0x4e300260, 0x0 }, + { 0x4e30017c, 0x0 }, + { 0x4e300104, 0xaaee001b }, + { 0x4e300108, 0x626ee273 }, + { 0x4e30010c, 0x5c18b }, + { 0x4e300100, 0x25ab321b }, + { 0x4e300160, 0x9002 }, + { 0x4e30016c, 0x35f00000 }, + { 0x4e300250, 0x2b }, + { 0x4e300254, 0x0 }, + { 0x4e30025c, 0x400 }, + { 0x4e300300, 0x16291314 }, + { 0x4e300304, 0x163110c }, + { 0x4e300308, 0xa200e3c }, + { 0x4e300170, 0x8b0b0608 }, + { 0x4e300124, 0x1c77071d }, + { 0x4e300f04, 0x80 }, +}; + +/* PHY Initialize Configuration */ +struct dram_cfg_param ddr_ddrphy_cfg[] = { + { 0x100a0, 0x4 }, + { 0x100a1, 0x5 }, + { 0x100a2, 0x6 }, + { 0x100a3, 0x7 }, + { 0x100a4, 0x0 }, + { 0x100a5, 0x1 }, + { 0x100a6, 0x2 }, + { 0x100a7, 0x3 }, + { 0x110a0, 0x3 }, + { 0x110a1, 0x2 }, + { 0x110a2, 0x0 }, + { 0x110a3, 0x1 }, + { 0x110a4, 0x7 }, + { 0x110a5, 0x6 }, + { 0x110a6, 0x4 }, + { 0x110a7, 0x5 }, + { 0x1005f, 0x5ff }, + { 0x1015f, 0x5ff }, + { 0x1105f, 0x5ff }, + { 0x1115f, 0x5ff }, + { 0x55, 0x1ff }, + { 0x1055, 0x1ff }, + { 0x2055, 0x1ff }, + { 0x200c5, 0x19 }, + { 0x2002e, 0x2 }, + { 0x90204, 0x0 }, + { 0x20024, 0x1e3 }, + { 0x2003a, 0x2 }, + { 0x2007d, 0x212 }, + { 0x2007c, 0x61 }, + { 0x20056, 0x3 }, + { 0x1004d, 0xe00 }, + { 0x1014d, 0xe00 }, + { 0x1104d, 0xe00 }, + { 0x1114d, 0xe00 }, + { 0x10049, 0xe00 }, + { 0x10149, 0xe00 }, + { 0x11049, 0xe00 }, + { 0x11149, 0xe00 }, + { 0x43, 0x60 }, + { 0x1043, 0x60 }, + { 0x2043, 0x60 }, + { 0x20018, 0x1 }, + { 0x20075, 0x4 }, + { 0x20050, 0x0 }, + { 0x2009b, 0x2 }, + { 0x20008, 0x3a5 }, + { 0x20088, 0x9 }, + { 0x200b2, 0x10c }, + { 0x10043, 0x5a1 }, + { 0x10143, 0x5a1 }, + { 0x11043, 0x5a1 }, + { 0x11143, 0x5a1 }, + { 0x200fa, 0x2 }, + { 0x20019, 0x1 }, + { 0x200f0, 0x0 }, + { 0x200f1, 0x0 }, + { 0x200f2, 0x4444 }, + { 0x200f3, 0x8888 }, + { 0x200f4, 0x5555 }, + { 0x200f5, 0x0 }, + { 0x200f6, 0x0 }, + { 0x200f7, 0xf000 }, + { 0x1004a, 0x500 }, + { 0x1104a, 0x500 }, + { 0x20025, 0x0 }, + { 0x2002d, 0x0 }, + { 0x20021, 0x0 }, + { 0x2002c, 0x0 }, +}; + +/* ddr phy trained csr */ +struct dram_cfg_param ddr_ddrphy_trained_csr[] = { + { 0x200b2, 0x0 }, + { 0x1200b2, 0x0 }, + { 0x2200b2, 0x0 }, + { 0x200cb, 0x0 }, + { 0x10043, 0x0 }, + { 0x110043, 0x0 }, + { 0x210043, 0x0 }, + { 0x10143, 0x0 }, + { 0x110143, 0x0 }, + { 0x210143, 0x0 }, + { 0x11043, 0x0 }, + { 0x111043, 0x0 }, + { 0x211043, 0x0 }, + { 0x11143, 0x0 }, + { 0x111143, 0x0 }, + { 0x211143, 0x0 }, + { 0x12043, 0x0 }, + { 0x112043, 0x0 }, + { 0x212043, 0x0 }, + { 0x12143, 0x0 }, + { 0x112143, 0x0 }, + { 0x212143, 0x0 }, + { 0x13043, 0x0 }, + { 0x113043, 0x0 }, + { 0x213043, 0x0 }, + { 0x13143, 0x0 }, + { 0x113143, 0x0 }, + { 0x213143, 0x0 }, + { 0x80, 0x0 }, + { 0x100080, 0x0 }, + { 0x200080, 0x0 }, + { 0x1080, 0x0 }, + { 0x101080, 0x0 }, + { 0x201080, 0x0 }, + { 0x2080, 0x0 }, + { 0x102080, 0x0 }, + { 0x202080, 0x0 }, + { 0x3080, 0x0 }, + { 0x103080, 0x0 }, + { 0x203080, 0x0 }, + { 0x4080, 0x0 }, + { 0x104080, 0x0 }, + { 0x204080, 0x0 }, + { 0x5080, 0x0 }, + { 0x105080, 0x0 }, + { 0x205080, 0x0 }, + { 0x6080, 0x0 }, + { 0x106080, 0x0 }, + { 0x206080, 0x0 }, + { 0x7080, 0x0 }, + { 0x107080, 0x0 }, + { 0x207080, 0x0 }, + { 0x8080, 0x0 }, + { 0x108080, 0x0 }, + { 0x208080, 0x0 }, + { 0x9080, 0x0 }, + { 0x109080, 0x0 }, + { 0x209080, 0x0 }, + { 0x10080, 0x0 }, + { 0x110080, 0x0 }, + { 0x210080, 0x0 }, + { 0x10180, 0x0 }, + { 0x110180, 0x0 }, + { 0x210180, 0x0 }, + { 0x11080, 0x0 }, + { 0x111080, 0x0 }, + { 0x211080, 0x0 }, + { 0x11180, 0x0 }, + { 0x111180, 0x0 }, + { 0x211180, 0x0 }, + { 0x12080, 0x0 }, + { 0x112080, 0x0 }, + { 0x212080, 0x0 }, + { 0x12180, 0x0 }, + { 0x112180, 0x0 }, + { 0x212180, 0x0 }, + { 0x13080, 0x0 }, + { 0x113080, 0x0 }, + { 0x213080, 0x0 }, + { 0x13180, 0x0 }, + { 0x113180, 0x0 }, + { 0x213180, 0x0 }, + { 0x10081, 0x0 }, + { 0x110081, 0x0 }, + { 0x210081, 0x0 }, + { 0x10181, 0x0 }, + { 0x110181, 0x0 }, + { 0x210181, 0x0 }, + { 0x11081, 0x0 }, + { 0x111081, 0x0 }, + { 0x211081, 0x0 }, + { 0x11181, 0x0 }, + { 0x111181, 0x0 }, + { 0x211181, 0x0 }, + { 0x12081, 0x0 }, + { 0x112081, 0x0 }, + { 0x212081, 0x0 }, + { 0x12181, 0x0 }, + { 0x112181, 0x0 }, + { 0x212181, 0x0 }, + { 0x13081, 0x0 }, + { 0x113081, 0x0 }, + { 0x213081, 0x0 }, + { 0x13181, 0x0 }, + { 0x113181, 0x0 }, + { 0x213181, 0x0 }, + { 0x100d0, 0x0 }, + { 0x1100d0, 0x0 }, + { 0x2100d0, 0x0 }, + { 0x101d0, 0x0 }, + { 0x1101d0, 0x0 }, + { 0x2101d0, 0x0 }, + { 0x110d0, 0x0 }, + { 0x1110d0, 0x0 }, + { 0x2110d0, 0x0 }, + { 0x111d0, 0x0 }, + { 0x1111d0, 0x0 }, + { 0x2111d0, 0x0 }, + { 0x120d0, 0x0 }, + { 0x1120d0, 0x0 }, + { 0x2120d0, 0x0 }, + { 0x121d0, 0x0 }, + { 0x1121d0, 0x0 }, + { 0x2121d0, 0x0 }, + { 0x130d0, 0x0 }, + { 0x1130d0, 0x0 }, + { 0x2130d0, 0x0 }, + { 0x131d0, 0x0 }, + { 0x1131d0, 0x0 }, + { 0x2131d0, 0x0 }, + { 0x100d1, 0x0 }, + { 0x1100d1, 0x0 }, + { 0x2100d1, 0x0 }, + { 0x101d1, 0x0 }, + { 0x1101d1, 0x0 }, + { 0x2101d1, 0x0 }, + { 0x110d1, 0x0 }, + { 0x1110d1, 0x0 }, + { 0x2110d1, 0x0 }, + { 0x111d1, 0x0 }, + { 0x1111d1, 0x0 }, + { 0x2111d1, 0x0 }, + { 0x120d1, 0x0 }, + { 0x1120d1, 0x0 }, + { 0x2120d1, 0x0 }, + { 0x121d1, 0x0 }, + { 0x1121d1, 0x0 }, + { 0x2121d1, 0x0 }, + { 0x130d1, 0x0 }, + { 0x1130d1, 0x0 }, + { 0x2130d1, 0x0 }, + { 0x131d1, 0x0 }, + { 0x1131d1, 0x0 }, + { 0x2131d1, 0x0 }, + { 0x10068, 0x0 }, + { 0x10168, 0x0 }, + { 0x10268, 0x0 }, + { 0x10368, 0x0 }, + { 0x10468, 0x0 }, + { 0x10568, 0x0 }, + { 0x10668, 0x0 }, + { 0x10768, 0x0 }, + { 0x10868, 0x0 }, + { 0x11068, 0x0 }, + { 0x11168, 0x0 }, + { 0x11268, 0x0 }, + { 0x11368, 0x0 }, + { 0x11468, 0x0 }, + { 0x11568, 0x0 }, + { 0x11668, 0x0 }, + { 0x11768, 0x0 }, + { 0x11868, 0x0 }, + { 0x12068, 0x0 }, + { 0x12168, 0x0 }, + { 0x12268, 0x0 }, + { 0x12368, 0x0 }, + { 0x12468, 0x0 }, + { 0x12568, 0x0 }, + { 0x12668, 0x0 }, + { 0x12768, 0x0 }, + { 0x12868, 0x0 }, + { 0x13068, 0x0 }, + { 0x13168, 0x0 }, + { 0x13268, 0x0 }, + { 0x13368, 0x0 }, + { 0x13468, 0x0 }, + { 0x13568, 0x0 }, + { 0x13668, 0x0 }, + { 0x13768, 0x0 }, + { 0x13868, 0x0 }, + { 0x10069, 0x0 }, + { 0x10169, 0x0 }, + { 0x10269, 0x0 }, + { 0x10369, 0x0 }, + { 0x10469, 0x0 }, + { 0x10569, 0x0 }, + { 0x10669, 0x0 }, + { 0x10769, 0x0 }, + { 0x10869, 0x0 }, + { 0x11069, 0x0 }, + { 0x11169, 0x0 }, + { 0x11269, 0x0 }, + { 0x11369, 0x0 }, + { 0x11469, 0x0 }, + { 0x11569, 0x0 }, + { 0x11669, 0x0 }, + { 0x11769, 0x0 }, + { 0x11869, 0x0 }, + { 0x12069, 0x0 }, + { 0x12169, 0x0 }, + { 0x12269, 0x0 }, + { 0x12369, 0x0 }, + { 0x12469, 0x0 }, + { 0x12569, 0x0 }, + { 0x12669, 0x0 }, + { 0x12769, 0x0 }, + { 0x12869, 0x0 }, + { 0x13069, 0x0 }, + { 0x13169, 0x0 }, + { 0x13269, 0x0 }, + { 0x13369, 0x0 }, + { 0x13469, 0x0 }, + { 0x13569, 0x0 }, + { 0x13669, 0x0 }, + { 0x13769, 0x0 }, + { 0x13869, 0x0 }, + { 0x1008c, 0x0 }, + { 0x11008c, 0x0 }, + { 0x21008c, 0x0 }, + { 0x1018c, 0x0 }, + { 0x11018c, 0x0 }, + { 0x21018c, 0x0 }, + { 0x1108c, 0x0 }, + { 0x11108c, 0x0 }, + { 0x21108c, 0x0 }, + { 0x1118c, 0x0 }, + { 0x11118c, 0x0 }, + { 0x21118c, 0x0 }, + { 0x1208c, 0x0 }, + { 0x11208c, 0x0 }, + { 0x21208c, 0x0 }, + { 0x1218c, 0x0 }, + { 0x11218c, 0x0 }, + { 0x21218c, 0x0 }, + { 0x1308c, 0x0 }, + { 0x11308c, 0x0 }, + { 0x21308c, 0x0 }, + { 0x1318c, 0x0 }, + { 0x11318c, 0x0 }, + { 0x21318c, 0x0 }, + { 0x1008d, 0x0 }, + { 0x11008d, 0x0 }, + { 0x21008d, 0x0 }, + { 0x1018d, 0x0 }, + { 0x11018d, 0x0 }, + { 0x21018d, 0x0 }, + { 0x1108d, 0x0 }, + { 0x11108d, 0x0 }, + { 0x21108d, 0x0 }, + { 0x1118d, 0x0 }, + { 0x11118d, 0x0 }, + { 0x21118d, 0x0 }, + { 0x1208d, 0x0 }, + { 0x11208d, 0x0 }, + { 0x21208d, 0x0 }, + { 0x1218d, 0x0 }, + { 0x11218d, 0x0 }, + { 0x21218d, 0x0 }, + { 0x1308d, 0x0 }, + { 0x11308d, 0x0 }, + { 0x21308d, 0x0 }, + { 0x1318d, 0x0 }, + { 0x11318d, 0x0 }, + { 0x21318d, 0x0 }, + { 0x100c0, 0x0 }, + { 0x1100c0, 0x0 }, + { 0x2100c0, 0x0 }, + { 0x101c0, 0x0 }, + { 0x1101c0, 0x0 }, + { 0x2101c0, 0x0 }, + { 0x102c0, 0x0 }, + { 0x1102c0, 0x0 }, + { 0x2102c0, 0x0 }, + { 0x103c0, 0x0 }, + { 0x1103c0, 0x0 }, + { 0x2103c0, 0x0 }, + { 0x104c0, 0x0 }, + { 0x1104c0, 0x0 }, + { 0x2104c0, 0x0 }, + { 0x105c0, 0x0 }, + { 0x1105c0, 0x0 }, + { 0x2105c0, 0x0 }, + { 0x106c0, 0x0 }, + { 0x1106c0, 0x0 }, + { 0x2106c0, 0x0 }, + { 0x107c0, 0x0 }, + { 0x1107c0, 0x0 }, + { 0x2107c0, 0x0 }, + { 0x108c0, 0x0 }, + { 0x1108c0, 0x0 }, + { 0x2108c0, 0x0 }, + { 0x110c0, 0x0 }, + { 0x1110c0, 0x0 }, + { 0x2110c0, 0x0 }, + { 0x111c0, 0x0 }, + { 0x1111c0, 0x0 }, + { 0x2111c0, 0x0 }, + { 0x112c0, 0x0 }, + { 0x1112c0, 0x0 }, + { 0x2112c0, 0x0 }, + { 0x113c0, 0x0 }, + { 0x1113c0, 0x0 }, + { 0x2113c0, 0x0 }, + { 0x114c0, 0x0 }, + { 0x1114c0, 0x0 }, + { 0x2114c0, 0x0 }, + { 0x115c0, 0x0 }, + { 0x1115c0, 0x0 }, + { 0x2115c0, 0x0 }, + { 0x116c0, 0x0 }, + { 0x1116c0, 0x0 }, + { 0x2116c0, 0x0 }, + { 0x117c0, 0x0 }, + { 0x1117c0, 0x0 }, + { 0x2117c0, 0x0 }, + { 0x118c0, 0x0 }, + { 0x1118c0, 0x0 }, + { 0x2118c0, 0x0 }, + { 0x120c0, 0x0 }, + { 0x1120c0, 0x0 }, + { 0x2120c0, 0x0 }, + { 0x121c0, 0x0 }, + { 0x1121c0, 0x0 }, + { 0x2121c0, 0x0 }, + { 0x122c0, 0x0 }, + { 0x1122c0, 0x0 }, + { 0x2122c0, 0x0 }, + { 0x123c0, 0x0 }, + { 0x1123c0, 0x0 }, + { 0x2123c0, 0x0 }, + { 0x124c0, 0x0 }, + { 0x1124c0, 0x0 }, + { 0x2124c0, 0x0 }, + { 0x125c0, 0x0 }, + { 0x1125c0, 0x0 }, + { 0x2125c0, 0x0 }, + { 0x126c0, 0x0 }, + { 0x1126c0, 0x0 }, + { 0x2126c0, 0x0 }, + { 0x127c0, 0x0 }, + { 0x1127c0, 0x0 }, + { 0x2127c0, 0x0 }, + { 0x128c0, 0x0 }, + { 0x1128c0, 0x0 }, + { 0x2128c0, 0x0 }, + { 0x130c0, 0x0 }, + { 0x1130c0, 0x0 }, + { 0x2130c0, 0x0 }, + { 0x131c0, 0x0 }, + { 0x1131c0, 0x0 }, + { 0x2131c0, 0x0 }, + { 0x132c0, 0x0 }, + { 0x1132c0, 0x0 }, + { 0x2132c0, 0x0 }, + { 0x133c0, 0x0 }, + { 0x1133c0, 0x0 }, + { 0x2133c0, 0x0 }, + { 0x134c0, 0x0 }, + { 0x1134c0, 0x0 }, + { 0x2134c0, 0x0 }, + { 0x135c0, 0x0 }, + { 0x1135c0, 0x0 }, + { 0x2135c0, 0x0 }, + { 0x136c0, 0x0 }, + { 0x1136c0, 0x0 }, + { 0x2136c0, 0x0 }, + { 0x137c0, 0x0 }, + { 0x1137c0, 0x0 }, + { 0x2137c0, 0x0 }, + { 0x138c0, 0x0 }, + { 0x1138c0, 0x0 }, + { 0x2138c0, 0x0 }, + { 0x100c1, 0x0 }, + { 0x1100c1, 0x0 }, + { 0x2100c1, 0x0 }, + { 0x101c1, 0x0 }, + { 0x1101c1, 0x0 }, + { 0x2101c1, 0x0 }, + { 0x102c1, 0x0 }, + { 0x1102c1, 0x0 }, + { 0x2102c1, 0x0 }, + { 0x103c1, 0x0 }, + { 0x1103c1, 0x0 }, + { 0x2103c1, 0x0 }, + { 0x104c1, 0x0 }, + { 0x1104c1, 0x0 }, + { 0x2104c1, 0x0 }, + { 0x105c1, 0x0 }, + { 0x1105c1, 0x0 }, + { 0x2105c1, 0x0 }, + { 0x106c1, 0x0 }, + { 0x1106c1, 0x0 }, + { 0x2106c1, 0x0 }, + { 0x107c1, 0x0 }, + { 0x1107c1, 0x0 }, + { 0x2107c1, 0x0 }, + { 0x108c1, 0x0 }, + { 0x1108c1, 0x0 }, + { 0x2108c1, 0x0 }, + { 0x110c1, 0x0 }, + { 0x1110c1, 0x0 }, + { 0x2110c1, 0x0 }, + { 0x111c1, 0x0 }, + { 0x1111c1, 0x0 }, + { 0x2111c1, 0x0 }, + { 0x112c1, 0x0 }, + { 0x1112c1, 0x0 }, + { 0x2112c1, 0x0 }, + { 0x113c1, 0x0 }, + { 0x1113c1, 0x0 }, + { 0x2113c1, 0x0 }, + { 0x114c1, 0x0 }, + { 0x1114c1, 0x0 }, + { 0x2114c1, 0x0 }, + { 0x115c1, 0x0 }, + { 0x1115c1, 0x0 }, + { 0x2115c1, 0x0 }, + { 0x116c1, 0x0 }, + { 0x1116c1, 0x0 }, + { 0x2116c1, 0x0 }, + { 0x117c1, 0x0 }, + { 0x1117c1, 0x0 }, + { 0x2117c1, 0x0 }, + { 0x118c1, 0x0 }, + { 0x1118c1, 0x0 }, + { 0x2118c1, 0x0 }, + { 0x120c1, 0x0 }, + { 0x1120c1, 0x0 }, + { 0x2120c1, 0x0 }, + { 0x121c1, 0x0 }, + { 0x1121c1, 0x0 }, + { 0x2121c1, 0x0 }, + { 0x122c1, 0x0 }, + { 0x1122c1, 0x0 }, + { 0x2122c1, 0x0 }, + { 0x123c1, 0x0 }, + { 0x1123c1, 0x0 }, + { 0x2123c1, 0x0 }, + { 0x124c1, 0x0 }, + { 0x1124c1, 0x0 }, + { 0x2124c1, 0x0 }, + { 0x125c1, 0x0 }, + { 0x1125c1, 0x0 }, + { 0x2125c1, 0x0 }, + { 0x126c1, 0x0 }, + { 0x1126c1, 0x0 }, + { 0x2126c1, 0x0 }, + { 0x127c1, 0x0 }, + { 0x1127c1, 0x0 }, + { 0x2127c1, 0x0 }, + { 0x128c1, 0x0 }, + { 0x1128c1, 0x0 }, + { 0x2128c1, 0x0 }, + { 0x130c1, 0x0 }, + { 0x1130c1, 0x0 }, + { 0x2130c1, 0x0 }, + { 0x131c1, 0x0 }, + { 0x1131c1, 0x0 }, + { 0x2131c1, 0x0 }, + { 0x132c1, 0x0 }, + { 0x1132c1, 0x0 }, + { 0x2132c1, 0x0 }, + { 0x133c1, 0x0 }, + { 0x1133c1, 0x0 }, + { 0x2133c1, 0x0 }, + { 0x134c1, 0x0 }, + { 0x1134c1, 0x0 }, + { 0x2134c1, 0x0 }, + { 0x135c1, 0x0 }, + { 0x1135c1, 0x0 }, + { 0x2135c1, 0x0 }, + { 0x136c1, 0x0 }, + { 0x1136c1, 0x0 }, + { 0x2136c1, 0x0 }, + { 0x137c1, 0x0 }, + { 0x1137c1, 0x0 }, + { 0x2137c1, 0x0 }, + { 0x138c1, 0x0 }, + { 0x1138c1, 0x0 }, + { 0x2138c1, 0x0 }, + { 0x10020, 0x0 }, + { 0x110020, 0x0 }, + { 0x210020, 0x0 }, + { 0x11020, 0x0 }, + { 0x111020, 0x0 }, + { 0x211020, 0x0 }, + { 0x12020, 0x0 }, + { 0x112020, 0x0 }, + { 0x212020, 0x0 }, + { 0x13020, 0x0 }, + { 0x113020, 0x0 }, + { 0x213020, 0x0 }, + { 0x20072, 0x0 }, + { 0x20073, 0x0 }, + { 0x20074, 0x0 }, + { 0x100aa, 0x0 }, + { 0x110aa, 0x0 }, + { 0x120aa, 0x0 }, + { 0x130aa, 0x0 }, + { 0x20010, 0x0 }, + { 0x120010, 0x0 }, + { 0x220010, 0x0 }, + { 0x20011, 0x0 }, + { 0x120011, 0x0 }, + { 0x220011, 0x0 }, + { 0x100ae, 0x0 }, + { 0x1100ae, 0x0 }, + { 0x2100ae, 0x0 }, + { 0x100af, 0x0 }, + { 0x1100af, 0x0 }, + { 0x2100af, 0x0 }, + { 0x110ae, 0x0 }, + { 0x1110ae, 0x0 }, + { 0x2110ae, 0x0 }, + { 0x110af, 0x0 }, + { 0x1110af, 0x0 }, + { 0x2110af, 0x0 }, + { 0x120ae, 0x0 }, + { 0x1120ae, 0x0 }, + { 0x2120ae, 0x0 }, + { 0x120af, 0x0 }, + { 0x1120af, 0x0 }, + { 0x2120af, 0x0 }, + { 0x130ae, 0x0 }, + { 0x1130ae, 0x0 }, + { 0x2130ae, 0x0 }, + { 0x130af, 0x0 }, + { 0x1130af, 0x0 }, + { 0x2130af, 0x0 }, + { 0x20020, 0x0 }, + { 0x120020, 0x0 }, + { 0x220020, 0x0 }, + { 0x100a0, 0x0 }, + { 0x100a1, 0x0 }, + { 0x100a2, 0x0 }, + { 0x100a3, 0x0 }, + { 0x100a4, 0x0 }, + { 0x100a5, 0x0 }, + { 0x100a6, 0x0 }, + { 0x100a7, 0x0 }, + { 0x110a0, 0x0 }, + { 0x110a1, 0x0 }, + { 0x110a2, 0x0 }, + { 0x110a3, 0x0 }, + { 0x110a4, 0x0 }, + { 0x110a5, 0x0 }, + { 0x110a6, 0x0 }, + { 0x110a7, 0x0 }, + { 0x120a0, 0x0 }, + { 0x120a1, 0x0 }, + { 0x120a2, 0x0 }, + { 0x120a3, 0x0 }, + { 0x120a4, 0x0 }, + { 0x120a5, 0x0 }, + { 0x120a6, 0x0 }, + { 0x120a7, 0x0 }, + { 0x130a0, 0x0 }, + { 0x130a1, 0x0 }, + { 0x130a2, 0x0 }, + { 0x130a3, 0x0 }, + { 0x130a4, 0x0 }, + { 0x130a5, 0x0 }, + { 0x130a6, 0x0 }, + { 0x130a7, 0x0 }, + { 0x2007c, 0x0 }, + { 0x12007c, 0x0 }, + { 0x22007c, 0x0 }, + { 0x2007d, 0x0 }, + { 0x12007d, 0x0 }, + { 0x22007d, 0x0 }, + { 0x400fd, 0x0 }, + { 0x400c0, 0x0 }, + { 0x90201, 0x0 }, + { 0x190201, 0x0 }, + { 0x290201, 0x0 }, + { 0x90202, 0x0 }, + { 0x190202, 0x0 }, + { 0x290202, 0x0 }, + { 0x90203, 0x0 }, + { 0x190203, 0x0 }, + { 0x290203, 0x0 }, + { 0x90204, 0x0 }, + { 0x190204, 0x0 }, + { 0x290204, 0x0 }, + { 0x90205, 0x0 }, + { 0x190205, 0x0 }, + { 0x290205, 0x0 }, + { 0x90206, 0x0 }, + { 0x190206, 0x0 }, + { 0x290206, 0x0 }, + { 0x90207, 0x0 }, + { 0x190207, 0x0 }, + { 0x290207, 0x0 }, + { 0x90208, 0x0 }, + { 0x190208, 0x0 }, + { 0x290208, 0x0 }, + { 0x10062, 0x0 }, + { 0x10162, 0x0 }, + { 0x10262, 0x0 }, + { 0x10362, 0x0 }, + { 0x10462, 0x0 }, + { 0x10562, 0x0 }, + { 0x10662, 0x0 }, + { 0x10762, 0x0 }, + { 0x10862, 0x0 }, + { 0x11062, 0x0 }, + { 0x11162, 0x0 }, + { 0x11262, 0x0 }, + { 0x11362, 0x0 }, + { 0x11462, 0x0 }, + { 0x11562, 0x0 }, + { 0x11662, 0x0 }, + { 0x11762, 0x0 }, + { 0x11862, 0x0 }, + { 0x12062, 0x0 }, + { 0x12162, 0x0 }, + { 0x12262, 0x0 }, + { 0x12362, 0x0 }, + { 0x12462, 0x0 }, + { 0x12562, 0x0 }, + { 0x12662, 0x0 }, + { 0x12762, 0x0 }, + { 0x12862, 0x0 }, + { 0x13062, 0x0 }, + { 0x13162, 0x0 }, + { 0x13262, 0x0 }, + { 0x13362, 0x0 }, + { 0x13462, 0x0 }, + { 0x13562, 0x0 }, + { 0x13662, 0x0 }, + { 0x13762, 0x0 }, + { 0x13862, 0x0 }, + { 0x20077, 0x0 }, + { 0x10001, 0x0 }, + { 0x11001, 0x0 }, + { 0x12001, 0x0 }, + { 0x13001, 0x0 }, + { 0x10040, 0x0 }, + { 0x10140, 0x0 }, + { 0x10240, 0x0 }, + { 0x10340, 0x0 }, + { 0x10440, 0x0 }, + { 0x10540, 0x0 }, + { 0x10640, 0x0 }, + { 0x10740, 0x0 }, + { 0x10840, 0x0 }, + { 0x10030, 0x0 }, + { 0x10130, 0x0 }, + { 0x10230, 0x0 }, + { 0x10330, 0x0 }, + { 0x10430, 0x0 }, + { 0x10530, 0x0 }, + { 0x10630, 0x0 }, + { 0x10730, 0x0 }, + { 0x10830, 0x0 }, + { 0x11040, 0x0 }, + { 0x11140, 0x0 }, + { 0x11240, 0x0 }, + { 0x11340, 0x0 }, + { 0x11440, 0x0 }, + { 0x11540, 0x0 }, + { 0x11640, 0x0 }, + { 0x11740, 0x0 }, + { 0x11840, 0x0 }, + { 0x11030, 0x0 }, + { 0x11130, 0x0 }, + { 0x11230, 0x0 }, + { 0x11330, 0x0 }, + { 0x11430, 0x0 }, + { 0x11530, 0x0 }, + { 0x11630, 0x0 }, + { 0x11730, 0x0 }, + { 0x11830, 0x0 }, + { 0x12040, 0x0 }, + { 0x12140, 0x0 }, + { 0x12240, 0x0 }, + { 0x12340, 0x0 }, + { 0x12440, 0x0 }, + { 0x12540, 0x0 }, + { 0x12640, 0x0 }, + { 0x12740, 0x0 }, + { 0x12840, 0x0 }, + { 0x12030, 0x0 }, + { 0x12130, 0x0 }, + { 0x12230, 0x0 }, + { 0x12330, 0x0 }, + { 0x12430, 0x0 }, + { 0x12530, 0x0 }, + { 0x12630, 0x0 }, + { 0x12730, 0x0 }, + { 0x12830, 0x0 }, + { 0x13040, 0x0 }, + { 0x13140, 0x0 }, + { 0x13240, 0x0 }, + { 0x13340, 0x0 }, + { 0x13440, 0x0 }, + { 0x13540, 0x0 }, + { 0x13640, 0x0 }, + { 0x13740, 0x0 }, + { 0x13840, 0x0 }, + { 0x13030, 0x0 }, + { 0x13130, 0x0 }, + { 0x13230, 0x0 }, + { 0x13330, 0x0 }, + { 0x13430, 0x0 }, + { 0x13530, 0x0 }, + { 0x13630, 0x0 }, + { 0x13730, 0x0 }, + { 0x13830, 0x0 }, +}; + +/* P0 message block paremeter for training firmware */ +struct dram_cfg_param ddr_fsp0_cfg[] = { + { 0xd0000, 0x0 }, + { 0x54003, 0xe94 }, + { 0x54004, 0x4 }, + { 0x54006, 0x15 }, + { 0x54008, 0x131f }, + { 0x54009, 0xff }, + { 0x5400b, 0x4 }, + { 0x5400c, 0x1 }, + { 0x5400d, 0x100 }, + { 0x5400f, 0x100 }, + { 0x54012, 0x110 }, + { 0x54019, 0x36e4 }, + { 0x5401a, 0x32 }, + { 0x5401b, 0x1146 }, + { 0x5401c, 0x1108 }, + { 0x5401e, 0x4 }, + { 0x5401f, 0x36e4 }, + { 0x54020, 0x32 }, + { 0x54021, 0x1146 }, + { 0x54022, 0x1108 }, + { 0x54024, 0x4 }, + { 0x54032, 0xe400 }, + { 0x54033, 0x3236 }, + { 0x54034, 0x4600 }, + { 0x54035, 0x811 }, + { 0x54036, 0x11 }, + { 0x54037, 0x400 }, + { 0x54038, 0xe400 }, + { 0x54039, 0x3236 }, + { 0x5403a, 0x4600 }, + { 0x5403b, 0x811 }, + { 0x5403c, 0x11 }, + { 0x5403d, 0x400 }, + { 0xd0000, 0x1 }, +}; + +/* P0 2D message block paremeter for training firmware */ +struct dram_cfg_param ddr_fsp0_2d_cfg[] = { + { 0xd0000, 0x0 }, + { 0x54003, 0xe94 }, + { 0x54004, 0x4 }, + { 0x54006, 0x15 }, + { 0x54008, 0x61 }, + { 0x54009, 0xff }, + { 0x5400b, 0x4 }, + { 0x5400c, 0x1 }, + { 0x5400d, 0x100 }, + { 0x5400f, 0x100 }, + { 0x54010, 0x2080 }, + { 0x54012, 0x110 }, + { 0x54019, 0x36e4 }, + { 0x5401a, 0x32 }, + { 0x5401b, 0x1146 }, + { 0x5401c, 0x1108 }, + { 0x5401e, 0x4 }, + { 0x5401f, 0x36e4 }, + { 0x54020, 0x32 }, + { 0x54021, 0x1146 }, + { 0x54022, 0x1108 }, + { 0x54024, 0x4 }, + { 0x54032, 0xe400 }, + { 0x54033, 0x3236 }, + { 0x54034, 0x4600 }, + { 0x54035, 0x811 }, + { 0x54036, 0x11 }, + { 0x54037, 0x400 }, + { 0x54038, 0xe400 }, + { 0x54039, 0x3236 }, + { 0x5403a, 0x4600 }, + { 0x5403b, 0x811 }, + { 0x5403c, 0x11 }, + { 0x5403d, 0x400 }, + { 0xd0000, 0x1 }, +}; + +/* DRAM PHY init engine image */ +struct dram_cfg_param ddr_phy_pie[] = { + { 0xd0000, 0x0 }, + { 0x90000, 0x10 }, + { 0x90001, 0x400 }, + { 0x90002, 0x10e }, + { 0x90003, 0x0 }, + { 0x90004, 0x0 }, + { 0x90005, 0x8 }, + { 0x90029, 0xb }, + { 0x9002a, 0x480 }, + { 0x9002b, 0x109 }, + { 0x9002c, 0x8 }, + { 0x9002d, 0x448 }, + { 0x9002e, 0x139 }, + { 0x9002f, 0x8 }, + { 0x90030, 0x478 }, + { 0x90031, 0x109 }, + { 0x90032, 0x0 }, + { 0x90033, 0xe8 }, + { 0x90034, 0x109 }, + { 0x90035, 0x2 }, + { 0x90036, 0x10 }, + { 0x90037, 0x139 }, + { 0x90038, 0xb }, + { 0x90039, 0x7c0 }, + { 0x9003a, 0x139 }, + { 0x9003b, 0x44 }, + { 0x9003c, 0x633 }, + { 0x9003d, 0x159 }, + { 0x9003e, 0x14f }, + { 0x9003f, 0x630 }, + { 0x90040, 0x159 }, + { 0x90041, 0x47 }, + { 0x90042, 0x633 }, + { 0x90043, 0x149 }, + { 0x90044, 0x4f }, + { 0x90045, 0x633 }, + { 0x90046, 0x179 }, + { 0x90047, 0x8 }, + { 0x90048, 0xe0 }, + { 0x90049, 0x109 }, + { 0x9004a, 0x0 }, + { 0x9004b, 0x7c8 }, + { 0x9004c, 0x109 }, + { 0x9004d, 0x0 }, + { 0x9004e, 0x1 }, + { 0x9004f, 0x8 }, + { 0x90050, 0x30 }, + { 0x90051, 0x65a }, + { 0x90052, 0x9 }, + { 0x90053, 0x0 }, + { 0x90054, 0x45a }, + { 0x90055, 0x9 }, + { 0x90056, 0x0 }, + { 0x90057, 0x448 }, + { 0x90058, 0x109 }, + { 0x90059, 0x40 }, + { 0x9005a, 0x633 }, + { 0x9005b, 0x179 }, + { 0x9005c, 0x1 }, + { 0x9005d, 0x618 }, + { 0x9005e, 0x109 }, + { 0x9005f, 0x40c0 }, + { 0x90060, 0x633 }, + { 0x90061, 0x149 }, + { 0x90062, 0x8 }, + { 0x90063, 0x4 }, + { 0x90064, 0x48 }, + { 0x90065, 0x4040 }, + { 0x90066, 0x633 }, + { 0x90067, 0x149 }, + { 0x90068, 0x0 }, + { 0x90069, 0x4 }, + { 0x9006a, 0x48 }, + { 0x9006b, 0x40 }, + { 0x9006c, 0x633 }, + { 0x9006d, 0x149 }, + { 0x9006e, 0x0 }, + { 0x9006f, 0x658 }, + { 0x90070, 0x109 }, + { 0x90071, 0x10 }, + { 0x90072, 0x4 }, + { 0x90073, 0x18 }, + { 0x90074, 0x0 }, + { 0x90075, 0x4 }, + { 0x90076, 0x78 }, + { 0x90077, 0x549 }, + { 0x90078, 0x633 }, + { 0x90079, 0x159 }, + { 0x9007a, 0xd49 }, + { 0x9007b, 0x633 }, + { 0x9007c, 0x159 }, + { 0x9007d, 0x94a }, + { 0x9007e, 0x633 }, + { 0x9007f, 0x159 }, + { 0x90080, 0x441 }, + { 0x90081, 0x633 }, + { 0x90082, 0x149 }, + { 0x90083, 0x42 }, + { 0x90084, 0x633 }, + { 0x90085, 0x149 }, + { 0x90086, 0x1 }, + { 0x90087, 0x633 }, + { 0x90088, 0x149 }, + { 0x90089, 0x0 }, + { 0x9008a, 0xe0 }, + { 0x9008b, 0x109 }, + { 0x9008c, 0xa }, + { 0x9008d, 0x10 }, + { 0x9008e, 0x109 }, + { 0x9008f, 0x9 }, + { 0x90090, 0x3c0 }, + { 0x90091, 0x149 }, + { 0x90092, 0x9 }, + { 0x90093, 0x3c0 }, + { 0x90094, 0x159 }, + { 0x90095, 0x18 }, + { 0x90096, 0x10 }, + { 0x90097, 0x109 }, + { 0x90098, 0x0 }, + { 0x90099, 0x3c0 }, + { 0x9009a, 0x109 }, + { 0x9009b, 0x18 }, + { 0x9009c, 0x4 }, + { 0x9009d, 0x48 }, + { 0x9009e, 0x18 }, + { 0x9009f, 0x4 }, + { 0x900a0, 0x58 }, + { 0x900a1, 0xb }, + { 0x900a2, 0x10 }, + { 0x900a3, 0x109 }, + { 0x900a4, 0x1 }, + { 0x900a5, 0x10 }, + { 0x900a6, 0x109 }, + { 0x900a7, 0x5 }, + { 0x900a8, 0x7c0 }, + { 0x900a9, 0x109 }, + { 0x40000, 0x811 }, + { 0x40020, 0x880 }, + { 0x40040, 0x0 }, + { 0x40060, 0x0 }, + { 0x40001, 0x4008 }, + { 0x40021, 0x83 }, + { 0x40041, 0x4f }, + { 0x40061, 0x0 }, + { 0x40002, 0x4040 }, + { 0x40022, 0x83 }, + { 0x40042, 0x51 }, + { 0x40062, 0x0 }, + { 0x40003, 0x811 }, + { 0x40023, 0x880 }, + { 0x40043, 0x0 }, + { 0x40063, 0x0 }, + { 0x40004, 0x720 }, + { 0x40024, 0xf }, + { 0x40044, 0x1740 }, + { 0x40064, 0x0 }, + { 0x40005, 0x16 }, + { 0x40025, 0x83 }, + { 0x40045, 0x4b }, + { 0x40065, 0x0 }, + { 0x40006, 0x716 }, + { 0x40026, 0xf }, + { 0x40046, 0x2001 }, + { 0x40066, 0x0 }, + { 0x40007, 0x716 }, + { 0x40027, 0xf }, + { 0x40047, 0x2800 }, + { 0x40067, 0x0 }, + { 0x40008, 0x716 }, + { 0x40028, 0xf }, + { 0x40048, 0xf00 }, + { 0x40068, 0x0 }, + { 0x40009, 0x720 }, + { 0x40029, 0xf }, + { 0x40049, 0x1400 }, + { 0x40069, 0x0 }, + { 0x4000a, 0xe08 }, + { 0x4002a, 0xc15 }, + { 0x4004a, 0x0 }, + { 0x4006a, 0x0 }, + { 0x4000b, 0x625 }, + { 0x4002b, 0x15 }, + { 0x4004b, 0x0 }, + { 0x4006b, 0x0 }, + { 0x4000c, 0x4028 }, + { 0x4002c, 0x80 }, + { 0x4004c, 0x0 }, + { 0x4006c, 0x0 }, + { 0x4000d, 0xe08 }, + { 0x4002d, 0xc1a }, + { 0x4004d, 0x0 }, + { 0x4006d, 0x0 }, + { 0x4000e, 0x625 }, + { 0x4002e, 0x1a }, + { 0x4004e, 0x0 }, + { 0x4006e, 0x0 }, + { 0x4000f, 0x4040 }, + { 0x4002f, 0x80 }, + { 0x4004f, 0x0 }, + { 0x4006f, 0x0 }, + { 0x40010, 0x2604 }, + { 0x40030, 0x15 }, + { 0x40050, 0x0 }, + { 0x40070, 0x0 }, + { 0x40011, 0x708 }, + { 0x40031, 0x5 }, + { 0x40051, 0x0 }, + { 0x40071, 0x2002 }, + { 0x40012, 0x8 }, + { 0x40032, 0x80 }, + { 0x40052, 0x0 }, + { 0x40072, 0x0 }, + { 0x40013, 0x2604 }, + { 0x40033, 0x1a }, + { 0x40053, 0x0 }, + { 0x40073, 0x0 }, + { 0x40014, 0x708 }, + { 0x40034, 0xa }, + { 0x40054, 0x0 }, + { 0x40074, 0x2002 }, + { 0x40015, 0x4040 }, + { 0x40035, 0x80 }, + { 0x40055, 0x0 }, + { 0x40075, 0x0 }, + { 0x40016, 0x60a }, + { 0x40036, 0x15 }, + { 0x40056, 0x1200 }, + { 0x40076, 0x0 }, + { 0x40017, 0x61a }, + { 0x40037, 0x15 }, + { 0x40057, 0x1300 }, + { 0x40077, 0x0 }, + { 0x40018, 0x60a }, + { 0x40038, 0x1a }, + { 0x40058, 0x1200 }, + { 0x40078, 0x0 }, + { 0x40019, 0x642 }, + { 0x40039, 0x1a }, + { 0x40059, 0x1300 }, + { 0x40079, 0x0 }, + { 0x4001a, 0x4808 }, + { 0x4003a, 0x880 }, + { 0x4005a, 0x0 }, + { 0x4007a, 0x0 }, + { 0x900aa, 0x0 }, + { 0x900ab, 0x790 }, + { 0x900ac, 0x11a }, + { 0x900ad, 0x8 }, + { 0x900ae, 0x7aa }, + { 0x900af, 0x2a }, + { 0x900b0, 0x10 }, + { 0x900b1, 0x7b2 }, + { 0x900b2, 0x2a }, + { 0x900b3, 0x0 }, + { 0x900b4, 0x7c8 }, + { 0x900b5, 0x109 }, + { 0x900b6, 0x10 }, + { 0x900b7, 0x10 }, + { 0x900b8, 0x109 }, + { 0x900b9, 0x10 }, + { 0x900ba, 0x2a8 }, + { 0x900bb, 0x129 }, + { 0x900bc, 0x8 }, + { 0x900bd, 0x370 }, + { 0x900be, 0x129 }, + { 0x900bf, 0xa }, + { 0x900c0, 0x3c8 }, + { 0x900c1, 0x1a9 }, + { 0x900c2, 0xc }, + { 0x900c3, 0x408 }, + { 0x900c4, 0x199 }, + { 0x900c5, 0x14 }, + { 0x900c6, 0x790 }, + { 0x900c7, 0x11a }, + { 0x900c8, 0x8 }, + { 0x900c9, 0x4 }, + { 0x900ca, 0x18 }, + { 0x900cb, 0xe }, + { 0x900cc, 0x408 }, + { 0x900cd, 0x199 }, + { 0x900ce, 0x8 }, + { 0x900cf, 0x8568 }, + { 0x900d0, 0x108 }, + { 0x900d1, 0x18 }, + { 0x900d2, 0x790 }, + { 0x900d3, 0x16a }, + { 0x900d4, 0x8 }, + { 0x900d5, 0x1d8 }, + { 0x900d6, 0x169 }, + { 0x900d7, 0x10 }, + { 0x900d8, 0x8558 }, + { 0x900d9, 0x168 }, + { 0x900da, 0x1ff8 }, + { 0x900db, 0x85a8 }, + { 0x900dc, 0x1e8 }, + { 0x900dd, 0x50 }, + { 0x900de, 0x798 }, + { 0x900df, 0x16a }, + { 0x900e0, 0x60 }, + { 0x900e1, 0x7a0 }, + { 0x900e2, 0x16a }, + { 0x900e3, 0x8 }, + { 0x900e4, 0x8310 }, + { 0x900e5, 0x168 }, + { 0x900e6, 0x8 }, + { 0x900e7, 0xa310 }, + { 0x900e8, 0x168 }, + { 0x900e9, 0xa }, + { 0x900ea, 0x408 }, + { 0x900eb, 0x169 }, + { 0x900ec, 0x6e }, + { 0x900ed, 0x0 }, + { 0x900ee, 0x68 }, + { 0x900ef, 0x0 }, + { 0x900f0, 0x408 }, + { 0x900f1, 0x169 }, + { 0x900f2, 0x0 }, + { 0x900f3, 0x8310 }, + { 0x900f4, 0x168 }, + { 0x900f5, 0x0 }, + { 0x900f6, 0xa310 }, + { 0x900f7, 0x168 }, + { 0x900f8, 0x1ff8 }, + { 0x900f9, 0x85a8 }, + { 0x900fa, 0x1e8 }, + { 0x900fb, 0x68 }, + { 0x900fc, 0x798 }, + { 0x900fd, 0x16a }, + { 0x900fe, 0x78 }, + { 0x900ff, 0x7a0 }, + { 0x90100, 0x16a }, + { 0x90101, 0x68 }, + { 0x90102, 0x790 }, + { 0x90103, 0x16a }, + { 0x90104, 0x8 }, + { 0x90105, 0x8b10 }, + { 0x90106, 0x168 }, + { 0x90107, 0x8 }, + { 0x90108, 0xab10 }, + { 0x90109, 0x168 }, + { 0x9010a, 0xa }, + { 0x9010b, 0x408 }, + { 0x9010c, 0x169 }, + { 0x9010d, 0x58 }, + { 0x9010e, 0x0 }, + { 0x9010f, 0x68 }, + { 0x90110, 0x0 }, + { 0x90111, 0x408 }, + { 0x90112, 0x169 }, + { 0x90113, 0x0 }, + { 0x90114, 0x8b10 }, + { 0x90115, 0x168 }, + { 0x90116, 0x1 }, + { 0x90117, 0xab10 }, + { 0x90118, 0x168 }, + { 0x90119, 0x0 }, + { 0x9011a, 0x1d8 }, + { 0x9011b, 0x169 }, + { 0x9011c, 0x80 }, + { 0x9011d, 0x790 }, + { 0x9011e, 0x16a }, + { 0x9011f, 0x18 }, + { 0x90120, 0x7aa }, + { 0x90121, 0x6a }, + { 0x90122, 0xa }, + { 0x90123, 0x0 }, + { 0x90124, 0x1e9 }, + { 0x90125, 0x8 }, + { 0x90126, 0x8080 }, + { 0x90127, 0x108 }, + { 0x90128, 0xf }, + { 0x90129, 0x408 }, + { 0x9012a, 0x169 }, + { 0x9012b, 0xc }, + { 0x9012c, 0x0 }, + { 0x9012d, 0x68 }, + { 0x9012e, 0x9 }, + { 0x9012f, 0x0 }, + { 0x90130, 0x1a9 }, + { 0x90131, 0x0 }, + { 0x90132, 0x408 }, + { 0x90133, 0x169 }, + { 0x90134, 0x0 }, + { 0x90135, 0x8080 }, + { 0x90136, 0x108 }, + { 0x90137, 0x8 }, + { 0x90138, 0x7aa }, + { 0x90139, 0x6a }, + { 0x9013a, 0x0 }, + { 0x9013b, 0x8568 }, + { 0x9013c, 0x108 }, + { 0x9013d, 0xb7 }, + { 0x9013e, 0x790 }, + { 0x9013f, 0x16a }, + { 0x90140, 0x1f }, + { 0x90141, 0x0 }, + { 0x90142, 0x68 }, + { 0x90143, 0x8 }, + { 0x90144, 0x8558 }, + { 0x90145, 0x168 }, + { 0x90146, 0xf }, + { 0x90147, 0x408 }, + { 0x90148, 0x169 }, + { 0x90149, 0xd }, + { 0x9014a, 0x0 }, + { 0x9014b, 0x68 }, + { 0x9014c, 0x0 }, + { 0x9014d, 0x408 }, + { 0x9014e, 0x169 }, + { 0x9014f, 0x0 }, + { 0x90150, 0x8558 }, + { 0x90151, 0x168 }, + { 0x90152, 0x8 }, + { 0x90153, 0x3c8 }, + { 0x90154, 0x1a9 }, + { 0x90155, 0x3 }, + { 0x90156, 0x370 }, + { 0x90157, 0x129 }, + { 0x90158, 0x20 }, + { 0x90159, 0x2aa }, + { 0x9015a, 0x9 }, + { 0x9015b, 0x8 }, + { 0x9015c, 0xe8 }, + { 0x9015d, 0x109 }, + { 0x9015e, 0x0 }, + { 0x9015f, 0x8140 }, + { 0x90160, 0x10c }, + { 0x90161, 0x10 }, + { 0x90162, 0x8138 }, + { 0x90163, 0x104 }, + { 0x90164, 0x8 }, + { 0x90165, 0x448 }, + { 0x90166, 0x109 }, + { 0x90167, 0xf }, + { 0x90168, 0x7c0 }, + { 0x90169, 0x109 }, + { 0x9016a, 0x0 }, + { 0x9016b, 0xe8 }, + { 0x9016c, 0x109 }, + { 0x9016d, 0x47 }, + { 0x9016e, 0x630 }, + { 0x9016f, 0x109 }, + { 0x90170, 0x8 }, + { 0x90171, 0x618 }, + { 0x90172, 0x109 }, + { 0x90173, 0x8 }, + { 0x90174, 0xe0 }, + { 0x90175, 0x109 }, + { 0x90176, 0x0 }, + { 0x90177, 0x7c8 }, + { 0x90178, 0x109 }, + { 0x90179, 0x8 }, + { 0x9017a, 0x8140 }, + { 0x9017b, 0x10c }, + { 0x9017c, 0x0 }, + { 0x9017d, 0x478 }, + { 0x9017e, 0x109 }, + { 0x9017f, 0x0 }, + { 0x90180, 0x1 }, + { 0x90181, 0x8 }, + { 0x90182, 0x8 }, + { 0x90183, 0x4 }, + { 0x90184, 0x0 }, + { 0x90006, 0x8 }, + { 0x90007, 0x7c8 }, + { 0x90008, 0x109 }, + { 0x90009, 0x0 }, + { 0x9000a, 0x400 }, + { 0x9000b, 0x106 }, + { 0xd00e7, 0x400 }, + { 0x90017, 0x0 }, + { 0x9001f, 0x2b }, + { 0x90026, 0x69 }, + { 0x400d0, 0x0 }, + { 0x400d1, 0x101 }, + { 0x400d2, 0x105 }, + { 0x400d3, 0x107 }, + { 0x400d4, 0x10f }, + { 0x400d5, 0x202 }, + { 0x400d6, 0x20a }, + { 0x400d7, 0x20b }, + { 0x2003a, 0x2 }, + { 0x200be, 0x0 }, + { 0x2000b, 0x419 }, + { 0x2000c, 0xe9 }, + { 0x2000d, 0x91c }, + { 0x2000e, 0x2c }, + { 0x9000c, 0x0 }, + { 0x9000d, 0x173 }, + { 0x9000e, 0x60 }, + { 0x9000f, 0x6110 }, + { 0x90010, 0x2152 }, + { 0x90011, 0xdfbd }, + { 0x90012, 0x2060 }, + { 0x90013, 0x6152 }, + { 0x20010, 0x5a }, + { 0x20011, 0x3 }, + { 0x40080, 0xe0 }, + { 0x40081, 0x12 }, + { 0x40082, 0xe0 }, + { 0x40083, 0x12 }, + { 0x40084, 0xe0 }, + { 0x40085, 0x12 }, + { 0x400fd, 0xf }, + { 0x400f1, 0xe }, + { 0x10011, 0x1 }, + { 0x10012, 0x1 }, + { 0x10013, 0x180 }, + { 0x10018, 0x1 }, + { 0x10002, 0x6209 }, + { 0x100b2, 0x1 }, + { 0x101b4, 0x1 }, + { 0x102b4, 0x1 }, + { 0x103b4, 0x1 }, + { 0x104b4, 0x1 }, + { 0x105b4, 0x1 }, + { 0x106b4, 0x1 }, + { 0x107b4, 0x1 }, + { 0x108b4, 0x1 }, + { 0x11011, 0x1 }, + { 0x11012, 0x1 }, + { 0x11013, 0x180 }, + { 0x11018, 0x1 }, + { 0x11002, 0x6209 }, + { 0x110b2, 0x1 }, + { 0x111b4, 0x1 }, + { 0x112b4, 0x1 }, + { 0x113b4, 0x1 }, + { 0x114b4, 0x1 }, + { 0x115b4, 0x1 }, + { 0x116b4, 0x1 }, + { 0x117b4, 0x1 }, + { 0x118b4, 0x1 }, + { 0x20089, 0x1 }, + { 0x20088, 0x19 }, + { 0xc0080, 0x0 }, + { 0xd0000, 0x1 } +}; + +struct dram_fsp_msg ddr_dram_fsp_msg[] = { + { + /* P0 3733mts 1D */ + .drate = 3733, + .fw_type = FW_1D_IMAGE, + .fsp_cfg = ddr_fsp0_cfg, + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_cfg), + }, + { + /* P0 3733mts 1D */ + .drate = 3733, + .fw_type = FW_2D_IMAGE, + .fsp_cfg = ddr_fsp0_2d_cfg, + .fsp_cfg_num = ARRAY_SIZE(ddr_fsp0_2d_cfg), + }, +}; + +/* ddr timing config params */ +struct dram_timing_info dram_timing = { + .ddrc_cfg = ddr_ddrc_cfg, + .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), + .ddrphy_cfg = ddr_ddrphy_cfg, + .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), + .fsp_msg = ddr_dram_fsp_msg, + .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), + .ddrphy_trained_csr = ddr_ddrphy_trained_csr, + .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), + .ddrphy_pie = ddr_phy_pie, + .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), + .fsp_table = { 3733, }, +}; + diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c new file mode 100644 index 00000000000..ca33f943424 --- /dev/null +++ b/board/freescale/imx93_evk/spl.c @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +DECLARE_GLOBAL_DATA_PTR; + +int spl_board_boot_device(enum boot_device boot_dev_spl) +{ + return BOOT_DEVICE_BOOTROM; +} + +void spl_board_init(void) +{ + puts("Normal Boot\n"); +} + +void spl_dram_init(void) +{ + ddr_init(&dram_timing); +} + +#if CONFIG_IS_ENABLED(DM_PMIC_PCA9450) +int power_init_board(void) +{ + struct udevice *dev; + int ret; + + ret = pmic_get("pmic@25", &dev); + if (ret == -ENODEV) { + puts("No pca9450@25\n"); + return 0; + } + if (ret != 0) + return ret; + + /* BUCKxOUT_DVS0/1 control BUCK123 output */ + pmic_reg_write(dev, PCA9450_BUCK123_DVS, 0x29); + + /* 0.9v + */ + pmic_reg_write(dev, PCA9450_BUCK1OUT_DVS0, 0x18); + pmic_reg_write(dev, PCA9450_BUCK3OUT_DVS0, 0x18); + + /* I2C_LT_EN*/ + pmic_reg_write(dev, 0xa, 0x3); + + /* set WDOG_B_CFG to cold reset */ + pmic_reg_write(dev, PCA9450_RESET_CTRL, 0xA1); + return 0; +} +#endif + +extern int imx9_probe_mu(void *ctx, struct event *event); +void board_init_f(ulong dummy) +{ + int ret; + + /* Clear the BSS. */ + memset(__bss_start, 0, __bss_end - __bss_start); + + timer_init(); + + arch_cpu_init(); + + board_early_init_f(); + + spl_early_init(); + + preloader_console_init(); + + ret = imx9_probe_mu(NULL, NULL); + if (ret) { + printf("Fail to init Sentinel API\n"); + } else { + printf("SOC: 0x%x\n", gd->arch.soc_rev); + printf("LC: 0x%x\n", gd->arch.lifecycle); + } + power_init_board(); + + /* Init power of mix */ + soc_power_init(); + + /* Setup TRDC for DDR access */ + trdc_init(); + + /* DDR initialization */ + spl_dram_init(); + + /* Put M33 into CPUWAIT for following kick */ + ret = m33_prepare(); + if (!ret) + printf("M33 prepare ok\n"); + + board_init_r(NULL, 0); +} diff --git a/configs/imx93_11x11_evk_defconfig b/configs/imx93_11x11_evk_defconfig new file mode 100644 index 00000000000..8a396ed1c13 --- /dev/null +++ b/configs/imx93_11x11_evk_defconfig @@ -0,0 +1,108 @@ +CONFIG_ARM=y +CONFIG_ARCH_IMX9=y +CONFIG_SYS_TEXT_BASE=0x80200000 +CONFIG_SYS_MALLOC_LEN=0x2000000 +CONFIG_SYS_MALLOC_F_LEN=0x18000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_NR_DRAM_BANKS=2 +CONFIG_ENV_SIZE=0x4000 +CONFIG_ENV_OFFSET=0x400000 +CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="imx93-11x11-evk" +CONFIG_SPL_TEXT_BASE=0x2049A000 +CONFIG_TARGET_IMX93_11X11_EVK=y +CONFIG_SPL_SERIAL=y +CONFIG_SPL_DRIVERS_MISC=y +CONFIG_SPL=y +CONFIG_SPL_IMX_ROMAPI_LOADADDR=0x88000000 +CONFIG_SPL_LOAD_IMX_CONTAINER=y +CONFIG_SYS_LOAD_ADDR=0x80400000 +CONFIG_SYS_MEMTEST_START=0x80000000 +CONFIG_SYS_MEMTEST_END=0x90000000 +CONFIG_DISTRO_DEFAULTS=y +CONFIG_REMAKE_ELF=y +CONFIG_DEFAULT_FDT_FILE="imx93-11x11-evk.dtb" +CONFIG_ARCH_MISC_INIT=y +CONFIG_BOARD_EARLY_INIT_F=y +CONFIG_BOARD_LATE_INIT=y +CONFIG_SPL_MAX_SIZE=0x26000 +CONFIG_SPL_HAS_BSS_LINKER_SECTION=y +CONFIG_SPL_BSS_START_ADDR=0x2051e000 +CONFIG_SPL_BSS_MAX_SIZE=0x2000 +CONFIG_SPL_BOARD_INIT=y +CONFIG_SPL_BOOTROM_SUPPORT=y +# CONFIG_SPL_SHARES_INIT_SP_ADDR is not set +CONFIG_SPL_STACK=0x2051ddd0 +CONFIG_SYS_SPL_MALLOC=y +CONFIG_HAS_CUSTOM_SPL_MALLOC_START=y +CONFIG_CUSTOM_SYS_SPL_MALLOC_ADDR=0x83200000 +CONFIG_SYS_SPL_MALLOC_SIZE=0x80000 +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1040 +CONFIG_SPL_I2C=y +CONFIG_SPL_POWER=y +CONFIG_SPL_WATCHDOG=y +CONFIG_SYS_PROMPT="u-boot=> " +CONFIG_SYS_MAXARGS=64 +CONFIG_SYS_CBSIZE=2048 +CONFIG_SYS_PBSIZE=2074 +CONFIG_CMD_ERASEENV=y +# CONFIG_CMD_CRC32 is not set +CONFIG_CMD_MEMTEST=y +CONFIG_CMD_CLK=y +CONFIG_CMD_DFU=y +CONFIG_CMD_FUSE=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_GPT=y +CONFIG_CMD_I2C=y +CONFIG_CMD_MMC=y +CONFIG_CMD_POWEROFF=y +CONFIG_CMD_SNTP=y +CONFIG_CMD_CACHE=y +CONFIG_CMD_RTC=y +CONFIG_CMD_TIME=y +CONFIG_CMD_GETTIME=y +CONFIG_CMD_TIMER=y +CONFIG_CMD_REGULATOR=y +CONFIG_CMD_HASH=y +CONFIG_CMD_EXT4_WRITE=y +CONFIG_OF_CONTROL=y +CONFIG_SPL_OF_CONTROL=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_NOWHERE=y +CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_SYS_MMC_ENV_DEV=1 +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_SPL_DM=y +CONFIG_REGMAP=y +CONFIG_SYSCON=y +CONFIG_IMX_RGPIO2P=y +CONFIG_DM_PCA953X=y +CONFIG_DM_I2C=y +CONFIG_SYS_I2C_IMX_LPI2C=y +CONFIG_SYS_I2C_SPEED=100000 +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_IO_VOLTAGE=y +CONFIG_MMC_UHS_SUPPORT=y +CONFIG_MMC_HS400_ES_SUPPORT=y +CONFIG_MMC_HS400_SUPPORT=y +CONFIG_FSL_USDHC=y +CONFIG_PINCTRL=y +CONFIG_SPL_PINCTRL=y +CONFIG_PINCTRL_IMX93=y +CONFIG_DM_PMIC=y +CONFIG_SPL_DM_PMIC_PCA9450=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_DM_RTC=y +CONFIG_RTC_EMULATION=y +CONFIG_DM_SERIAL=y +CONFIG_FSL_LPUART=y +CONFIG_ULP_WATCHDOG=y +CONFIG_LZO=y +CONFIG_BZIP2=y +CONFIG_USE_ETHPRIME=y +CONFIG_ETHPRIME="eth0" diff --git a/include/configs/imx93_evk.h b/include/configs/imx93_evk.h new file mode 100644 index 00000000000..56f52b84577 --- /dev/null +++ b/include/configs/imx93_evk.h @@ -0,0 +1,149 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#ifndef __IMX93_EVK_H +#define __IMX93_EVK_H + +#include +#include +#include + +#define CONFIG_SYS_BOOTM_LEN (SZ_64M) +#define CONFIG_SYS_MONITOR_LEN SZ_512K +#define CONFIG_SYS_UBOOT_BASE \ + (QSPI0_AMBA_BASE + CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR * 512) + +#ifdef CONFIG_SPL_BUILD +#define CONFIG_MALLOC_F_ADDR 0x204D0000 +#endif + +#ifdef CONFIG_DISTRO_DEFAULTS +#define BOOT_TARGET_DEVICES(func) \ + func(MMC, mmc, 0) \ + func(MMC, mmc, 1) \ + +#include +#else +#define BOOTENV +#endif + +/* Initial environment variables */ +#define CONFIG_EXTRA_ENV_SETTINGS \ + BOOTENV \ + "scriptaddr=0x83500000\0" \ + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ + "image=Image\0" \ + "splashimage=0x90000000\0" \ + "console=ttyLP0,115200 earlycon\0" \ + "fdt_addr_r=0x83000000\0" \ + "fdt_addr=0x83000000\0" \ + "cntr_addr=0x98000000\0" \ + "cntr_file=os_cntr_signed.bin\0" \ + "boot_fit=no\0" \ + "fdtfile=" CONFIG_DEFAULT_FDT_FILE "\0" \ + "bootm_size=0x10000000\0" \ + "mmcdev=" __stringify(CONFIG_SYS_MMC_ENV_DEV)"\0" \ + "mmcpart=1\0" \ + "mmcroot=/dev/mmcblk1p2 rootwait rw\0" \ + "mmcautodetect=yes\0" \ + "mmcargs=setenv bootargs ${jh_clk} console=${console} root=${mmcroot}\0 " \ + "loadbootscript=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${script};\0" \ + "bootscript=echo Running bootscript from mmc ...; " \ + "source\0" \ + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ + "loadfdt=fatload mmc ${mmcdev}:${mmcpart} ${fdt_addr_r} ${fdtfile}\0" \ + "loadcntr=fatload mmc ${mmcdev}:${mmcpart} ${cntr_addr} ${cntr_file}\0" \ + "auth_os=auth_cntr ${cntr_addr}\0" \ + "boot_os=booti ${loadaddr} - ${fdt_addr_r};\0" \ + "mmcboot=echo Booting from mmc ...; " \ + "run mmcargs; " \ + "if test ${sec_boot} = yes; then " \ + "if run auth_os; then " \ + "run boot_os; " \ + "else " \ + "echo ERR: failed to authenticate; " \ + "fi; " \ + "else " \ + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ + "bootm ${loadaddr}; " \ + "else " \ + "if run loadfdt; then " \ + "run boot_os; " \ + "else " \ + "echo WARN: Cannot load the DT; " \ + "fi; " \ + "fi;" \ + "fi;\0" \ + "netargs=setenv bootargs ${jh_clk} console=${console} " \ + "root=/dev/nfs " \ + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ + "netboot=echo Booting from net ...; " \ + "run netargs; " \ + "if test ${ip_dyn} = yes; then " \ + "setenv get_cmd dhcp; " \ + "else " \ + "setenv get_cmd tftp; " \ + "fi; " \ + "if test ${sec_boot} = yes; then " \ + "${get_cmd} ${cntr_addr} ${cntr_file}; " \ + "if run auth_os; then " \ + "run boot_os; " \ + "else " \ + "echo ERR: failed to authenticate; " \ + "fi; " \ + "else " \ + "${get_cmd} ${loadaddr} ${image}; " \ + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ + "bootm ${loadaddr}; " \ + "else " \ + "if ${get_cmd} ${fdt_addr_r} ${fdtfile}; then " \ + "run boot_os; " \ + "else " \ + "echo WARN: Cannot load the DT; " \ + "fi; " \ + "fi;" \ + "fi;\0" \ + "bsp_bootcmd=echo Running BSP bootcmd ...; " \ + "mmc dev ${mmcdev}; if mmc rescan; then " \ + "if run loadbootscript; then " \ + "run bootscript; " \ + "else " \ + "if test ${sec_boot} = yes; then " \ + "if run loadcntr; then " \ + "run mmcboot; " \ + "else run netboot; " \ + "fi; " \ + "else " \ + "if run loadimage; then " \ + "run mmcboot; " \ + "else run netboot; " \ + "fi; " \ + "fi; " \ + "fi; " \ + "fi;" + +/* Link Definitions */ + +#define CONFIG_SYS_INIT_RAM_ADDR 0x80000000 +#define CONFIG_SYS_INIT_RAM_SIZE 0x200000 + +#define CONFIG_SYS_SDRAM_BASE 0x80000000 +#define PHYS_SDRAM 0x80000000 +#define PHYS_SDRAM_SIZE 0x80000000 /* 2GB DDR */ + +#define CONFIG_SYS_FSL_USDHC_NUM 2 + +/* Using ULP WDOG for reset */ +#define WDOG_BASE_ADDR WDG3_BASE_ADDR + +/* USB configs */ +#define CONFIG_USB_MAX_CONTROLLER_COUNT 2 + +#if defined(CONFIG_CMD_NET) +#define DWC_NET_PHYADDR 1 +#define PHY_ANEG_TIMEOUT 20000 +#endif + +#endif From patchwork Mon Jun 27 03:24:47 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648570 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=lSygRgWr; 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 4LWXHX2sr3z9s0r for ; Mon, 27 Jun 2022 12:49:12 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A5F1684542; Mon, 27 Jun 2022 04:44:08 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="lSygRgWr"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id DA62C84542; Mon, 27 Jun 2022 04:43:58 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10075.outbound.protection.outlook.com [40.107.1.75]) (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 CBC018452D for ; Mon, 27 Jun 2022 04:43:53 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P599OtSnt72rljJbiYVVZzDbvjn1WAdVnPaG4g0/+CkQsCd+PW0kaVmpthu1WuuoaNIX7oYccfXv66tSI8jblGoXw4iv/42eB5M3/UWrWSpoBrMNmToCyWmxNN+zWDEpOJMA/avkrMmXQ/2HOIuY/zCiaOuDHhpDMsPy4HQ+eB546h+kB5HJ/W++MqFFYdjAmyQFikICYPKiAaRCU9OVGlDpN0s4qpcoxxHTB6xR0Ks7n7N0jTwXBs01hSPPI8OgpxNH0aIXUi5bY0xmap4dQJbf/QePdCSFviyIGbN3us8YI4IVKoSxbkT8/did6wR7dH0xHNshncy6y9OI/AkB7w== 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=gUQ7XSPL2pekGsOk1GCPM3C0SbeiJk6Iuu1FNUlECk0=; b=andtO6rbpeJoclU7iJQBnYMUTq12mUOcdpuE69pLcCxQ5xPwxP4YF9xc/D7clF5i9Yis+YkRoko6/Dp99IUWJg1dW7fCCbfP/OlFa2pvAR9Mp5pJMJBu9WiZ6k92MozIx/qmksKHi8S5+yvPz8tlP1Nna8DlL9pZlsGJrmSZ/VqRibsFOEVIeUEUwKcVvfr7ZSs520QRF1ACpUEqmeZk+z2auEv9VxNXs8uFsSMRa3QSjDhYOlHsaqgqMCnlKQiQQdvP6L+xJ/r4a0WfaM974O5PFeag1mG2A2WFI+zBKp1lptmavHFUYuzFWB5RkgrK4qYGP0oqMXL1RAqo0W05AA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gUQ7XSPL2pekGsOk1GCPM3C0SbeiJk6Iuu1FNUlECk0=; b=lSygRgWrA/xD5z22OknirllpE1g85OmQMyrchR7jatND41W1llzUY3PUBeO09hJB9PjqVaO3v4iym5RRrSLehrq/40MGQJQK0vdNm5Txmm7BIqUBBa20nqj5eU9YTSb8rrFgjFbWHJ9gTwto29cQxxiOVanq7FGElMWQfW9dPbs= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:51 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:51 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, "NXP i.MX U-Boot Team" , Peng Fan Cc: u-boot@lists.denx.de Subject: [PATCH V2 41/49] imx: imx93_evk: Set ARM clock to 1.7Ghz Date: Mon, 27 Jun 2022 11:24:47 +0800 Message-Id: <20220627032455.28280-42-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5e414bd7-c2c9-463f-f4ec-08da57e6de84 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: y4ZVSibiQdWdg8ucDmLpKrG1W9TcgOork71BtosS6qRmztmTjrAkVTWS0QAhqithz4EYQ85Ji7N9Wg1ZCwZFFJ38yQIj94eLSlBx5tX3grHx+cQM3HPzBKZAt+svxVff5KFp67N3PZwqONhxUd4CGD7uJgXKqVz3LvUUSR2P9TeIV0ukaLcHgSvBSphkUtpaKrd9fQzRSjRzpqVxdAXt6SG1448Dc4cNhuFlQDS8rN+fNhWlOpCmUOryV58JxzvWr2eg4JLbg0Uk3zEXmrqMPJjIaobyItkWui4+InGF24IKfrxAGoCWost2A/Zr466xFJ+mGtmwuyuKUvgdgjyOwJCIdTXfIZDSgM1xb5/f918mw/itgPZ76XFjbO3FfmfLTIzdMqhIGcC+WXli23o7iMHUF8Ol3Vnep3/cLOVc+OYKwU1gh/a3MEzlrt+9ct4hignzyy4FH6NLSXBPw+4Fu79xa4atVNw6TEwC6l9OChWUUNekhzptXJyUvNaxytmr6Pyo74hZPowWj5U0W9Kb+9no6/bw4OoVfhGYGiaUCSQTnnMkx8Xx0A3q4QCzTS5j9BAmrGtOC1So3K8VOYLodS0QIlFGA9LN1rv5bDFetjBT5HD3rMZT9/L58Wc4ZS71HGyH3P8G5Np2Xh78+nmvsOiBmMEbmOEZb/h8aNuc+9KiSSHo/vIYyOYPDPOblVWrvjgoIw/fQDTa1a8UCkLVjwBRPCKVFnNlRLxxm7wtgxzUl9cNKpwQc4YriBR9YphTDzyGFpyfhHWMFYoVRfkxAjglJpXyc/Lo7zPwCcxAZrU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +NYzUzfOXTnqAmopZXzLB0JBxyiLafkKf3KTPmIMwURuBY91BI6zRFJVSswNnP4/pVv3Oqg8It/J8Ze/51Js0A7lzfaRcEh2wBaWIvX8HSH4Ksl7ecDgQV/LZtQRb0JMK6AGaruHEPgC/t8h0eP3aFLo3AL+djhP5If5yaFcTvW3oUUfgJt+e+6Rm+yok5MXp8wPjg92YlaJIEQ0QrxfwyxuKS3BWsgiDew/GVL5jVflfAN9XbYSD+2zQowPDTDmOXYtp9QsDpnSQLCxeanZEE67Ej8DaCI7NJPK1jdNhdwtMkq1FlCT3jsTcimGUw8NZJVqh+BhRTPsZTHp/Cvc968hmWVHP1mxPNThlJAlxLFWsMOQ3WeVYmET71fx/x1J8z77j+mQoprGhIcIeIH3qZ+1E0xvGav8mXkpKq+PxkisVzbZCo0nXNXzsTFTNoS6xqqTkoKFT/O69jVqegxeLenH5VxNRYqzevBSAGVes8yBqmwIBF51IN93Ptx9S8unTVR0JATRZ/WKlbLVsgAS249TPKbU/8UVOG9MjSccfm3DZtdkjuttjrggAe/3pq9s665LhFeh1C3y1qu0Rj3fwXHQ2m3aSnJe7PGYHwIZK/8QwCKQuh7SgnZ6tKapW2EMYk3QLRw09+i2RM34LShzBaiexTpHiSGGZQHeKtqy1NRZGZtKIYJpIE3kzXmcl+o3zMWS6p3XOntMNielYN3ZjyG5Gfq/VHni/OSYHKJz4nr9/Y84QwmeJWaTUX7uvWldlZqMKUP/oEyfU6qK3rF6R/sk26f3sbsZI5SCLRPXlY9KrttutQohLhbaIr9XncDpBVVQvpG0kdP7ZQHmS5r4ldHmP/y5dMExskA0Z//VjP3q0kwPbwj9FHoEtMvxL5veyPoiuGruEVRpDZP3lbjQy5yBOeHg1sEPWkzloiOEwO+wbzYxEBw3sXyswHMRlTadAPFIPmmE8xPadWk+4vNVtllyguhs5WzwIs1SiYPQ+Zcu1eDfM7eDPg8ks/0ZgHRXJ19e5vaHTwdpmTSqjWIS3DGOW9/iaRDUIabJrjL2oa2EE3aKXt1HhltMEbiZ2JonmArJ7AM9aYQcUVG7sOUjMGuaLQZD1vN/cLCOGus7126bWsMKCJRGeTCBXfgPyqzJ/lBaXnSbIIE3CqRInvPlwxullwuDKmEXyiUC2XoL7x85zxuoIiFdHmnp0gaJegMbHRm1e82QnV6UKTEMEoCnq8nmQoWSobmPxv3nngsGORE0cxEHn/RpeAgZkoB5aBVvz2HrmDK/j/tstU37AN2BGEVXgQbMEr3Vy7dfEZACC1OwU7Uu8ghVhINxSwQW7XGpu17AOgDgJagM6OlV3OZ3qGnwueTSLb0feIMUUH2EJbCnhbLWkcFKTB4vN6wbnQnR9sbRmqeZRHqkwzYSqewqR5f1a2TIxueIlIDedb7DKKBbIGYSnttsvrAnoWdwug8namG71pfvRoN/uZKDt898ChWy4P4/ysaiTkOa3nWHOQi4UKRV1M41Yn8Lh5fOg6u/6sm/QmVjgDd7kdhYJKXUkrCzvPqBXw7GBpzT0ria4imuiBOzx63jCgiMgDdBBysD X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e414bd7-c2c9-463f-f4ec-08da57e6de84 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:51.5883 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: G8BDMtL6JnhY7xuoNK3vRf5cGdjNOOr3znV0pghXh7Ojcf66DLP9aX/cCrL3/i9Szilm3ZZbs1novmS0oM7g2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Set ARM clock to OD frequency 1.7Ghz, since we have set PMIC VDD_SOC to Overdrive voltage 0.9V Signed-off-by: Ye Li Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/clock.h | 4 +++- arch/arm/mach-imx/imx9/clock.c | 9 +++++++++ board/freescale/imx93_evk/spl.c | 3 +++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/arch-imx9/clock.h b/arch/arm/include/asm/arch-imx9/clock.h index d96f126a1d1..336d8613181 100644 --- a/arch/arm/include/asm/arch-imx9/clock.h +++ b/arch/arm/include/asm/arch-imx9/clock.h @@ -217,6 +217,8 @@ void dram_pll_init(ulong pll_val); void dram_enable_bypass(ulong clk_val); void dram_disable_bypass(void); +int configure_intpll(enum ccm_clk_src pll, u32 freq); + int ccm_clk_src_on(enum ccm_clk_src oscpll, bool enable); int ccm_clk_src_auto(enum ccm_clk_src oscpll, bool enable); int ccm_clk_src_lpm(enum ccm_clk_src oscpll, bool enable); @@ -238,5 +240,5 @@ int ccm_shared_gpr_tz_access(u32 gpr, bool non_secure, bool user_mode, bool lock void enable_usboh3_clk(unsigned char enable); int set_clk_enet(enum enet_freq type); int set_clk_eqos(enum enet_freq type); - +void set_arm_clk(ulong freq); #endif diff --git a/arch/arm/mach-imx/imx9/clock.c b/arch/arm/mach-imx/imx9/clock.c index 5d2bc0d2f8f..8240afc6172 100644 --- a/arch/arm/mach-imx/imx9/clock.c +++ b/arch/arm/mach-imx/imx9/clock.c @@ -665,6 +665,15 @@ void dram_disable_bypass(void) /* Switch from DRAM clock root from CCM to PLL */ ccm_shared_gpr_set(SHARED_GPR_DRAM_CLK, SHARED_GPR_DRAM_CLK_SEL_PLL); } + +void set_arm_clk(ulong freq) +{ + /* Increase ARM clock to 1.7Ghz */ + ccm_shared_gpr_set(SHARED_GPR_A55_CLK, SHARED_GPR_A55_CLK_SEL_CCM); + configure_intpll(ARM_PLL_CLK, 1700000000); + ccm_shared_gpr_set(SHARED_GPR_A55_CLK, SHARED_GPR_A55_CLK_SEL_PLL); +} + #endif int clock_init(void) diff --git a/board/freescale/imx93_evk/spl.c b/board/freescale/imx93_evk/spl.c index ca33f943424..38cfbac6ea6 100644 --- a/board/freescale/imx93_evk/spl.c +++ b/board/freescale/imx93_evk/spl.c @@ -108,6 +108,9 @@ void board_init_f(ulong dummy) } power_init_board(); + /* 1.7GHz */ + set_arm_clk(1700000000); + /* Init power of mix */ soc_power_init(); From patchwork Mon Jun 27 03:24:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648571 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=HPVp/s2O; 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 4LWXHl2F0yz9s0r for ; Mon, 27 Jun 2022 12:49:23 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 33B4484545; Mon, 27 Jun 2022 04:44:10 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="HPVp/s2O"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8BCEF844A7; Mon, 27 Jun 2022 04:44:02 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10079.outbound.protection.outlook.com [40.107.1.79]) (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 090EF8453F for ; Mon, 27 Jun 2022 04:43:57 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hhozrxmEs0EUoEcn7DV6RzPzHtWeySy2LiyNHEG07eZJDzSaI/0BCQhbKaHrcjO6HVAdChbAfKd/e2/mPtSiBLTqg0VboPa/2wn7wU/Ml3XnutfzIOCJ7jahbaB+MkHtGOC7qw9QcPui0yYZgv44087vqsS0Fxx4pFMcTbg8mNyfBT+dLku3kb+8Kz5jksXVLhKn5wqaBuATQGPW8r6waRMofPZ8z4WXv6rMVJvuPmLH3/fRgh2d6LddxSATqMcecDsYFY2T/UzjieWbv1B25BgNLNPga+5UjRTm3qbo1clZSeigw0bq9XdD33SljfnPT/QeaoWA3/RSJUsCVBidSQ== 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=h/Db7QAGmJFbO39jXor5Wk5IVsRb2CfoRThm/FDCq9U=; b=i1OK+vZmruV0+/wWKIaFHeKW5G+Si7cOglFf4UPrPVWhiH9HBnJpt5K4Sxd02P5Wk8xPjHxRKvTW1xm4dMALocNxqYZQ3jQ62Yy2LBUNzOMG+HYo+akkdwcKuTUnME3dOx/a2JmRUitWREx96okkW3FEHq/onH3Y0iGs3ityefMHweXymQiDx+punMtmXJQPFrPvm55fbYZr7NvF2eIb4Rk+oy0DWdRv6f7ln6rRGHYnezTYuRiMWv5a07n+9IQ2JNkAX5VclCMN8qrAqa2y3Z/1E38MzbdnyAqW4U/XDzNIZ7qilAMJhqxxN97TxvwGc4eFGNri+eJaWt6Y7qOA6Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=h/Db7QAGmJFbO39jXor5Wk5IVsRb2CfoRThm/FDCq9U=; b=HPVp/s2O0a0UMmTR06n66AVmFkewt7hZeJDRh0zAQ1Ez448IwWjiirYxWiuVMQDD80IkBgQiD/AAETgXuH+Q74eWzH81WHbKEImURZMqpGEIlLRrmNU6a73GFwfPH5AKIzKa+zDGyBnWZA9bPy4UmR4K1PMTzMGVfgu7OmDY9oY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:43:55 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:43:55 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 42/49] net: fec_mxc: support i.MX93 Date: Mon, 27 Jun 2022 11:24:48 +0800 Message-Id: <20220627032455.28280-43-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3ac417a9-bbc1-47c4-0282-08da57e6e090 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CF9i0RpMs/YVSUh2Js7MW91/86B85XJA546Hmo7PrRzfMYD0/dNV34SzB8KBCSg2CcLMxRr+Pbl74p8bL98LaPFoO1qMqrAaiS9tAn3IQMbq21j38og1MHGgfyojObOmXAVTALNH+G6henFS6vz/sd3lESsrDUnPtxUcAnyvyhbQdLwemcd8NBneGH+j7sZDf6e0oMUAvD0o0BUn6EOJmXVjxZIbH47xwf1QE3OSU662xgll+svT7lDjGW48lVNG5mEKw/pgD3vfDccsyrJg/ZS3orXdLQT9qaqkn8AhqUR83b8DpRHFFtrwMPw1b9L2CcQE66iNJdoem5HzJtSURgQGFZoQymlPmFiJ1JK66+t8qNymxjDpluTxlmjpab635D1X+lTm6ZXw0TD+MWvY6erPNqYGeggXMUsdoVW50OIV31Pl9J1FYiPuG43qZLqDv1kEe7lmDa3oH7UEseIkriuD76868HY97dsU5IPNcFOXDPJ2+ZwbZRzu/B3IHrlLmroFlRQhjkdk7lW/Z+LgglEGwVaE6c7PF2aChaEdlODUVMmAOk5TVLGqQQQKjcSg7ReMxKm95PPGa7tffMgO6oXl+E7hNDTCPLIxQ08aKxoYspiMV0nmNz0FI51NLjl+FCVPssZJyENLjQ84CQwxnLg52pnB7YWxUET77ZSzWuVplhr6xUIQD/Ca5lHsxnz3giufevTUKZ5PPkr8U2ZwyJNrTCRgoY7ZSxaIVXuZIHW8vj7lW+5h0ztCSapTdOA7IwHCRpDFUTyqPwBI50Owc5EP8HD9pfmuf8WCzUMjIPA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WEW0R7rPde3YhWXz3MH4EQ434ppH1SK+ET1k1gVDG2bFdyZbk4n7yV/KfhZVwrRmaruu/7yX3hm7iEkymQpMwFInWlIGbNGWjS4gwx4l143P6H8ToFDHklbrZAMH1Zu/8Bjbkz02uyol03e5jhL8atYoUNTXWmPJXnwhHVo/7b7v84wVqKck6Hw75G8cpUPHlYW1ZBEX8bT9TySEJdJdp4BgO0qaWf3gVNEVPMh2wpRfC5O3uqMKVK925BbMurRWipb/kvdE5XtG3jXwr9vvdy9UIF6jGh05EIIFyoDVKOloun1VuW4O8IF/Z9xyfb578GNLE7MMUMTIO9vctADkemE8qNNh+xADSOdvXnBcJt+zEXk0bHYMZ8qM75zzZrJMucUv8HJt9Zb0EwJeromItLJHf8glFEzRKn4+HOiEqoZ0luxheMn6WyCKIsqAP5f0MWvue7n7PCfyrgjNzad1QfsBjdJKRoat66skcxRaKmFm0DRnOxOMVNCYGbzK+Vj90wYchBnEA8BYDMfaWOhpuFioKwUBs9ZUJN1QbBPfxwqLfsAiuqmwRR+Y6caljFC6HRrvmm0iKNcI1R1cKWL4mb7H4R+OkfJSSjNB/2WpjkxxiYnGdtN2an9gJPL4m0pdHtx6vXeiOi31LVgF5qC13FKBf7wtVzwzyyg7OiB16Lcmo3YA/vB9dorajnbDu0Bcz9OEjk7xyM3KlHquJp8QNH/lAELOWFV0s6xLHGNfU9vQQS4+SlNn0ifkn6BVaZc+6pKmsN4WQz63/oXy+kZXW7fXPMkECh5XqUx7MCKKkrYGR2qeWh9f8yoP4WY1fwiIAqubNcW/oGVDKF1EulQ5jxspYrqAsCdACnQf/m6b/Ko+8qQjAKIx3KFIj5vthTtVSK8eNv50y03jTjz8GZdstTDQL2lSS3twKMwcbac5f7fbmca5BnesH4ey3WnLVCBqv/zY9yhPZUfPr1v3nbe18/iZwQwOEoH+he+gE2a8vTWbOGqpyaRwbD8z3x8ei1YMaL9Ea9lVJhsf6HOVib/fqcN0pPdx04Z1yg0/lBSAysM1/0rawjOIoe73+VuSwAGK/Zl7tK+btrarEuzYuSfHUkMBwRvvq4fFrx0NNSlWnNRM+PDb1tnYPlSUVl3xaqsgSIpgGUIwRSaFACpjBzhN2EbgFm8+25wI0cY/COedUQjupM/mMihh4Bp5R3xGEOg5KvEbCXmtv3i1qZ8UUv2JMyb+f2x9jYr+3qVYjLARp8ZYrqkSKQbJIKPhmWMTtNgyRk4lKo38eZ8i1n8FFu9Otkvl6AUVoDHCSo8QrXcNcUjYxdko5vWzYRz5DEyrCQ+0vDiUF3Ho1Dy2A3No9nVVgMtjPTapdvF4ykpSChVFnhSfCM5/heNlnQOLxrUQFWCecftIXk/fcDU2G0vwaNQ9zpnfq2C30pIxnRgLJ25+6LhCUtj9ijh1IIjOK+E4bg7XgPHPvb83cG2YRB1P9thsFgG1gdC0Bh8jsq4Ki7uo6+BLcLCHjF2WYUB7vSLtxWd8CTpdtwF00wBgA99OmWhCPZIn5erJAgP0Ez3dwAZ4BQYdEXbKOZyQh/5OJyQz2ay/ X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3ac417a9-bbc1-47c4-0282-08da57e6e090 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:43:54.9694 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: EU+XjlSQKBfKL/5WnBbDDglEroqGowwImi/fkunchDpcI9x6AXF8GOv13Zg6kDlbyWTMzhLLmwSM4zaOcO+PJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Support i.MX93 in fec_mxc driver Signed-off-by: Peng Fan Reviewed-by: Ramon Fried --- drivers/net/Kconfig | 2 +- drivers/net/fec_mxc.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/Kconfig b/drivers/net/Kconfig index 84d859c21eb..8cf8621467f 100644 --- a/drivers/net/Kconfig +++ b/drivers/net/Kconfig @@ -340,7 +340,7 @@ config FEC_MXC_MDIO_BASE config FEC_MXC bool "FEC Ethernet controller" - depends on MX28 || MX5 || MX6 || MX7 || IMX8 || IMX8M || IMX8ULP || VF610 + depends on MX28 || MX5 || MX6 || MX7 || IMX8 || IMX8M || IMX8ULP || IMX93 || VF610 help This driver supports the 10/100 Fast Ethernet controller for NXP i.MX processors. diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c index a623a5c45e4..8bc2b46d403 100644 --- a/drivers/net/fec_mxc.c +++ b/drivers/net/fec_mxc.c @@ -598,7 +598,8 @@ static int fecmxc_init(struct udevice *dev) writel(0x00000000, &fec->eth->gaddr2); /* Do not access reserved register */ - if (!is_mx6ul() && !is_mx6ull() && !is_imx8() && !is_imx8m() && !is_imx8ulp()) { + if (!is_mx6ul() && !is_mx6ull() && !is_imx8() && !is_imx8m() && !is_imx8ulp() && + !is_imx93()) { /* clear MIB RAM */ for (i = mib_ptr; i <= mib_ptr + 0xfc; i += 4) writel(0, i); @@ -1357,6 +1358,7 @@ static const struct udevice_id fecmxc_ids[] = { { .compatible = "fsl,imx53-fec" }, { .compatible = "fsl,imx7d-fec" }, { .compatible = "fsl,mvf600-fec" }, + { .compatible = "fsl,imx93-fec" }, { } }; From patchwork Mon Jun 27 03:24:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648572 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=YWWwxHZR; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXHx2wj2z9s0r for ; Mon, 27 Jun 2022 12:49:33 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 8536E84546; Mon, 27 Jun 2022 04:44:17 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="YWWwxHZR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E954E8453A; Mon, 27 Jun 2022 04:44:05 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10045.outbound.protection.outlook.com [40.107.1.45]) (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 73E8784536 for ; Mon, 27 Jun 2022 04:44:02 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mt2WIb9e79rkKn1MhQmJ08TKTophigLn2nsAsh6U3o1KQum9BIPhlzwmvFDnPnGeBmaXCHLz/vrVTIq1AiSJLG5yfUPjHar6L0K+9R8E54Baj8F+k8IfwzsjJLt8t1kugzWYMVHaCVtZvuBJFlVhaA6kGontrT1riGAMek8B1lJdL0agN8+E9Cfnbln6Z4eeeWIBH3EqQvoCYMVuHI1aR0cZtErnznGFe7lG5cmSnr8cyQPgCyouHkSTBU1P4EEJCRL/PPeWJUeCHAw/0AZ1yX/dSHy4Ry1u8A+SxC9s4/GZyjIcb9bsURQ0P2N0N2I88iyLUMrWVgiKv7mscWGv8A== 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=haPuEpcDspzXc+pD0jDLipIA+DxRoB9pDeIQjtZPvP8=; b=K0do00P7e/CvcR8f6qwLp15jDq6xW+BfobkK1Ft3B+yXfo6ygZZ7+wusc286AFtOLWtAbiWVrX3VkNKxDiA77xFuAebE+VVJmYgi4zCB4HrbXAaqVp/BOOeBSQEPYX9g4IjqYi3N+aKVD4Sft8KFlZWsZ7UuE803FktCOvtXGmEpDZMXToOasJKPOxMwzWA8PTZXwyBIx7B4xSInbKoBFdS5HhXpiLp79y3pC+u+PM8wD/jB8oVPXxvuou61fbzX7G7dnF4lw0mFnr3V6OnO61zC6gQbV/ygLqSY8C+m+Gb7sj8k8Q6mCxWblXAzoaMOpoIqaX/xOm6a1HH+atcA9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=haPuEpcDspzXc+pD0jDLipIA+DxRoB9pDeIQjtZPvP8=; b=YWWwxHZRG/xVj8qkd/yfBA4tBcKowFJDI/+gdiJ2+s2lJsg3znGHYf2MBYPEjg29p+Dbzfd14Ug1dFGkee1v2WNr3DI6lmDoc/CZxJXVGVQzUe4hpSq2pz2Nf31+GcoNFCb0Db4Ub421rllPkcsADg0FrQTR+t7IpRmGo8kazNo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:00 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:00 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 43/49] net: dwc_eth_qos: fix build break when CLK not enabled Date: Mon, 27 Jun 2022 11:24:49 +0800 Message-Id: <20220627032455.28280-44-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 413b9177-d22b-421b-66ff-08da57e6e3b9 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: wbaYG6V4gc8f29tPhF2zFsNdhQUND/s9njOoyIvCiR3OaK4aGNaO/Rr80MOkKrdIgF5XhTWPZP/021FwPzhnpVhqswSC4TqjPt+2KX1c7UCf033zZFnPKHhRP5Grh54L33dLLg6Wsm81Yc54jbNAcSGBN5O3u+W2mGhrqaw3LKDrGR73QypVBVSU3rE5rPqzPgtSlaHPQ2+SsWKeti0VIYoSmr07JCDGkw289qjRAKqENzN4XOy5r1Zc8rWC68rR3wbDkxKTlCC38zsZGnSVukEkzgWvrYeAwipqB3Ynd+V1fV7tJNnQXEFhG/A1Wkum2QGn+n05rs07QkleH+HBYjypSGVoeJlFCBOQp4/eiHxTva4RWu6doyNaD+bjIaOBtqgIcX0cj2hFAcWA7cTlhSNFbamiQiZuhUUnMAlzF2E582y5neCQh+TiHN1NwKZUIKbcCjnSo9JDek2ZNVlHvwyMyeRyHGUpf2+bwfbjPOyWqXJC+zhk17EnyBMxSaabKySdOGgEwT4ZNIZQ4Ib4Li/5/SAekI8SpoEZt6H8xmoPvvwf7UdKICQsHArGWJXfepQDffsg3cmELTSkoQMq0O405UKXlb7IOfYvelw6cfI01s/CKulopARYG3zbirVekdxUXrdFOcEA+V1VopPOF7c4FE7Qu95oxb0AXb9JIneuAvxnQgwOQf4/+/pFpEQ7zTlD8AN/XB2AtzUoOSaJYVrpLjte2Tw78gOE+r0zuAVUORbg/6R/RZ5msSl3oMBAauU6Tu7M3eCPHSJwRZgd1AQ5sAhEtkaTzNUxE0mqR5I= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(4744005)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?dw2tJNgBa8dEgGToK1nykBHGAMRT?= =?utf-8?q?zkcyDtcreRRBUrDQpOj7/oZJrrQrrJH8MGz0mAsfzZ3UOKQVuI2MkQGstaXxl81pK?= =?utf-8?q?Dw/0osc7u7h/Bzf8hQeYP+WeLqLQ+dbuvyqY9ykoICOV6oROsjMJffqhgrG+whBk1?= =?utf-8?q?gIyszgh57QuTdAEg5Ms4aAm1k+5V9GI154GJZQ6YDEztJE0lN6A/j0u8lXlSojdvS?= =?utf-8?q?2378JM0FZ8MWpaUGLKzVd5Dt6es9otpki5Fienw8queC4z1d4rGBUFXzAJmhI0k3u?= =?utf-8?q?Zdm+S35Yc7cLr8ZFygvZXybBqEVgOy3S2cuRjKLQ/16PCYMGgXffmPEnGfpCiFXJA?= =?utf-8?q?vglNLA1bBVysLfNyAQK8xQo8o28Z2GUXir3LVp5at/QZly/8ATx152/W259Vxxw69?= =?utf-8?q?c11r3yWMZ6+6XzeRkeI2CLNKEgfTiC220rU/n8g/PPqnwGDgMTC3mceUJkbEuii4S?= =?utf-8?q?dsbt7wkPfQz3CdXr2LgLMFTVGnezG5HGgxh/Z+uAa3EcEnLEwv4/MAG/Xv8assQNP?= =?utf-8?q?gHqgbA4482Al24D28MPcuma/VqhPnqq2XISnFn27SgyXn4rpzgAZE+gIuVs6+wKZq?= =?utf-8?q?7N+NPVH9jt2XoPqW+Y1jwC7IyVCuU1rWGA2MdKp51HZEovHpSgO1/d8L+HxDHFvGV?= =?utf-8?q?7HOBP2zBgJJHQ0csfcY/tqATdrB9nH951xvJ22fDLy8UqeVdzX4C4wIDQB9cZ72dc?= =?utf-8?q?G/fQMpPrADzPTPTmhcVCPOXMUlWe3JndvgpFLXJ9tHj+ZT5a9n1x5WtuvKOUzjSuA?= =?utf-8?q?NBQncngjhs9Nk3ISQw9X81Yw5qgIWLWCqcIIGfHC2ug9Yr0R4EVRC5LqMxw9/sJ+2?= =?utf-8?q?98Rt5GxdGtiCd6vLJ4OlrSlnBe6vGiosJ4HDgiVBBCHa/OYCWRWbZOVcSKqAC7EAr?= =?utf-8?q?aBAmpnGi8P9L9WS4E4DchBcnbPMHMAYcYBia17cLAs79zVHUHgD1Lp0nAQ+jd5tNu?= =?utf-8?q?hXSV4C/giVI7jVFCC1Mk4PTgaicFReTnrCz0UHZyEPMDsul1UDiqFO9KBRCtM4tju?= =?utf-8?q?0+KiR60rr3KVQRFWFsb6vHxGGDLf4FZ2roA/miaai1ZwtCjbow1ib0PpHTTQYbovz?= =?utf-8?q?okoG/KXBU0j+PtyS6bTmYJs8CmJtAYJomyi2d/5Xg1g8hG8l/S+havWK79IaPEHV0?= =?utf-8?q?8aGNjgS4ybBp7rtk2xFVuOw2Mc+TFSn0hHwKmuiu0s+k5vFcCNuavLAlrxTCHhTBk?= =?utf-8?q?motsMWfoZRJufxULSX4gICr4gsc6UCSeRVZXMdII97gQ/XEl7np9L8+bfCYvs/KSk?= =?utf-8?q?v7GbwJaTjbKxkca33UucoV/3pBeDz6SgPS2SqgRANkSiZdV7bM5ts/Fq3uSArdOjl?= =?utf-8?q?QJAAjYo2QykhkMloQh0S3YJSW3UQmAB7ZJjzpYMZnl0KdmZO3UZH7gJ46LE2FALd4?= =?utf-8?q?BcB0aSEOuMbaL9ozYF7YUjA78PNP/bkOGf4Z+ydJaxqUfEzywyjebC2jpwYkEHQSP?= =?utf-8?q?VfrflruaxAuOxwheoEh99s4GEFBUZwcNjqJTGNWQ9+ipvTDfmAGPl3asBuIb9LO4E?= =?utf-8?q?A4FDR3ROuSHu?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 413b9177-d22b-421b-66ff-08da57e6e3b9 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:00.4624 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4zLaGd5VxyUz8w5sZekZ9Og7FslgZ33SSij21CdRGdDQNypLTY+mogjdEo2/W1W8HbQsSgEhW7vaVLKjojiFtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan When CONFIG_CLK is not enabled, there will be buil break: "error: ‘eqos’ undeclared (first use in this function)" Should not guard the eqos under CONFIG_CLK macro Signed-off-by: Peng Fan --- drivers/net/dwc_eth_qos.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 9d255cf95ff..6048d56ff8c 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -1774,11 +1774,11 @@ static int eqos_remove_resources_tegra186(struct udevice *dev) static int eqos_remove_resources_stm32(struct udevice *dev) { -#ifdef CONFIG_CLK struct eqos_priv *eqos = dev_get_priv(dev); debug("%s(dev=%p):\n", __func__, dev); +#ifdef CONFIG_CLK clk_free(&eqos->clk_tx); clk_free(&eqos->clk_rx); clk_free(&eqos->clk_master_bus); From patchwork Mon Jun 27 03:24:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648574 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=WtvEvqj/; 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 4LWXJM3mKRz9s0r for ; Mon, 27 Jun 2022 12:49:55 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7659B8454D; Mon, 27 Jun 2022 04:44:21 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="WtvEvqj/"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E586784546; Mon, 27 Jun 2022 04:44:10 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10050.outbound.protection.outlook.com [40.107.1.50]) (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 DF0058452F for ; Mon, 27 Jun 2022 04:44:06 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f6f8oReZybVAWVwqOagm1E07Jjn6XLcAWG5pygfv0U+0VGXWp3KN/3hCkAHUbtRNB1QCOLQqqhCuL6rbACHp8uID8h61AtT82q6tUGbEPpt52sF26YoC/HQAdSs+PSuUYTQA6iOQS3swKr9sK2MBm30nX/zrJo2R1E/8q+403pjghMy7iDBRAhkfHNKnH1Qeq3V58jaPNrj4qjIPQcp71xslOUtqEqCxFC3jQSs7PvYTPCiyYdeK1XVGPT+bq5vQxH3nZU9wKKFkSS1WOxZJdwlJUlxNK0NjI5UHhy1L1xRI/8Y84epG3AymquTxHCxToLwL8RDQ3l9PbG3xc1YRLg== 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=3TRiAs1e2W4eJoB4J3QzBOTdAe8vJ+1SN3yHS+x0+8w=; b=E2UHk7vzuPVIZdScNoqkqM+ld8a5HbGvgl7DBj6fSpjykbGZymMn9D7C0wiCyDCrN9qp+SF4RW5+4qcuR9zRlwvNm1ldnr/bU2uQrvct13X3TpCrZvjSNZRNuyqylfr4pFAU6qPspAjwupee+xJg2Mlxp6mquPPCyJX3etXHFRxVmVaBxJ5YHBHC3+Tl9bK6atPe96uZBdoawG7kAUxMhyyAEX5Wh6Aa3wuhtI9tE5fLZrZW2AVbbw9lG4woJaA6pbjkjJFuBiPt8kW+feTPOhmO3MULqryKCG2jXfnRL11sOBmfpPWEOpIbJZy89RWOW/wK+YS2A1+012Nc3gZ0hg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3TRiAs1e2W4eJoB4J3QzBOTdAe8vJ+1SN3yHS+x0+8w=; b=WtvEvqj/ibtv5AIS9Su6xTwmD2jIGdQRi1dWq+93qFlcjME97GNz4d8pPWqwUW+8VqOme7OdYlfDaTmK394GXIJIag1VRClgsw9cmsw+vr3PmpB5OLj8ap+K87xqtusJaQIpdaNpoRQoXApSPH4ffm7mEesBtAUOCIO5ftAG0tY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:04 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:04 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 44/49] net: dwc_eth_qos: public some functions Date: Mon, 27 Jun 2022 11:24:50 +0800 Message-Id: <20220627032455.28280-45-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3644b157-697b-4222-b3bd-08da57e6e5f5 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: O0z9fi2gV+b8hQeXn2sMwLffChNsuR+J7WNdhpMTcx2pt51r3CKTRYhWdYMvBHIxAjcC1Ep2VeNCk2pyFMI6vMMmYF7+Z10mfJu5VlcQAJCASp/XnIEyD2uV5AdalGsW67X+tSjUaxobNVwB6wB5fip0xHHGILT8a14WkV+fWqWzvjUwMzCA3tmTZ3SxcaCtNW/QRs3t+Wnhfhsy++zuX1QZ5tyHZ1DNcZCONh9s2qTS+RiBEhwfDtS0/ENxTJewLn4fCjBl+3pDqbPP3CYF28cZxFjqXyHHiKvaz92e5pM+xc1rK6Q7C2jf5GkEPWNyVtYrznOJh5ZywXqhK/CXb9cdNCebVe1SJf25Xyc+3P6psZY4yO60ji9XyRbWhj2gUiV8QA3Y/ULHu09ghtKA0qyycl6cUMDEzyFZlDOtpIZ0Y0j7TGm0WUD/F0zYXVa7Tc0v71rqdtgdwZ6pOsSTUSen3bL1EFO/ShRCJRD3Y6BK5t46yutpnyLyADrPUbkWRtBiHj892j/P+16HSOn7tgK6+TomvmD6N9Cb5BYlOujgMEFjsnCnke+w2xIGpbjCsATUDmZ3ILwTT/iW2+KV+6yHVFgnc+VGvej/NBx17WXlERIOZx09Wiy8nsMDkBQXFgJItWub4YXjioiydeSrZz5qWFAPkcnwz3qpb4VgxSrWxqC55Rd4p/mZQ7M0es4HaAAFFZCFncyQeMdw0DX5k8v0tswhOQxf1UPRvcEHE/MmPloqV4mWP4OcITMtYr3hvR1SLBQU4kl8MIwRFxcoWroPJhA49W4GKLwfl5oru5w= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(30864003)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: a4paaJ+EH4zTb7z9ZVi6LwSBcH4X6WC4fpWcmFjz7EkOCgc7NY9O/ixz4RTV8i8FUFynjOmwGYzFaaqEQVmf5kye7M+5hJ3RAdX7mHsSh07IJTUWuFNd1SyAbWJe2X3jTfv1cdvb2QLI3FdHi6NLkvVluExHG0qvTmu7ehky4LsghRKw9xFhpEN25/QHWW55QHrNu2wdSnaZiUr02aIx70PKzFBjMxiY/LDCItCZyCItmURe34taj58eApslEevjstT/fJ11+xiIs+JHTgg2jYY4tWOQjmyL/7DUa69fNtZ43o2UpEyu2whPqLWhKcLqLE2yl1V9lGUFTndzeFY+0f9uWT+sCurZV+LC6lrBwIExM51jmbNn2HzEmO7lilmbcjVsfk3hGYS2FfT9TGdBIGjxG9o9CFDAcFKwvz2taVAkHd1xkXBBY5gZuNU965kg7X44tOCblH2wkCQ2jO1wsIyVN5artpSrZUEpHkY8WM8I68JLzT1vHTcWIm8onjFwkqTyjNq8pVMXeadS+X2reKqJOO8K2GaSZ/GwPyzjqzajcRjyzJn9d2nCy2/BWaQmyxUuaDZebOU1HPSspV/irzOABmg0qRqGCIqCns2gbJn8snWNUyRDXjt8gqj1ZPKJVrgKCVfSItbPYg98Pp9VHfLi0serUBLFv6gIduHq71i+U/qT4kZs/n5C/fbeXS6Z3uf5yzJTo/BgKLNSY2MLh5JYscqcDHlNl8C4CqBhOE14o0mdy8SeSjzwGVaIOr5neNHQeiupdrTmRZHUhxTGB3Tqu30X1c1BuG7M+e/Q98ku2uFGGynjFDbRcCToAOJkQWbwkPoTlekeVI4ZoNGkaqXYOhfiL0HdEf5bV3eXnA9SdTWmPGroOXWDay1jWX7SjeaJm/Lq2vzdic6TNWiTlqjma3PzWSwE6Rslje5ZxHKSkQTRxW1hM0VYF9QQVm1vpiMQ7KZnyMFa5u9S8oXtcD2NyMynBLra4sojl8Z9cWpuUOdJZoleriN/gHyawEB/2K8hHHxVed/IgbMSBGtYQmHd4fK+NAVqb1h82gybAaklTHv7yp2TAH+1RDCfJ7ykqD8gcF5+/AOOPcaNxEXHdjjTJ39H6wRq55nnxMLI10TK+4j61MYCNXsr8qp8GfQ6pXdO2YQXF9eGxM6ND8qRyKxCRWRHkwoWXwB8Lo+XwhHZqpFKT7QV09Nt8BZA4OgJ2+u/n2TPCtu8tE85JWviXV/0xeJguF1v5LHEzfP8TGbOGm3vl2PJezGjK0W7Ia3nDWdK3DDrCeF8sMtUDZmsEo7692tusWykLD5aNr3J3/SOPPGlYeCGfaabp5slG3WE5B9GyjjJqPuNRVjmslTIjPCsCvHsHHlVNMjl2O7p557NmAx6dX2MSMHc5xvGYHerngMp7FVlYvoMtdXMJl4qbxUQ/2SwreX1kpDhniu2VYg6eRyTkJ6igkGZCoM+o50SEIlIfjgM70EnDSaPVy0tkpdLkx+55gOHmlgS9JNeM0JQxfsfErZnMY6eqpb3HIpfhGmpsugRwnAPeE4yJjG8sYl6L5bY92lQcRMBIQ2uyJWpdF4BA1tXHU0pz/pJ779v X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3644b157-697b-4222-b3bd-08da57e6e5f5 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:04.2900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fG4y8gh8Z29uwP0stA++uFnlfbmU/RtpChFmjKWXt3tTR3U2dOlTHq+F1vWupZSnXZ2DT8UdzlqyoPMNF+VxjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Move macros and structures to header file and make some functions public, so that could used by other files, this is to prepare split platform specific config to one file. Signed-off-by: Peng Fan Reviewed-by: Ramon Fried --- drivers/net/dwc_eth_qos.c | 280 +------------------------------------- drivers/net/dwc_eth_qos.h | 280 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 287 insertions(+), 273 deletions(-) create mode 100644 drivers/net/dwc_eth_qos.h diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 6048d56ff8c..b69a9feb824 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -51,275 +51,9 @@ #include #include #endif -#include #include -/* Core registers */ - -#define EQOS_MAC_REGS_BASE 0x000 -struct eqos_mac_regs { - uint32_t configuration; /* 0x000 */ - uint32_t unused_004[(0x070 - 0x004) / 4]; /* 0x004 */ - uint32_t q0_tx_flow_ctrl; /* 0x070 */ - uint32_t unused_070[(0x090 - 0x074) / 4]; /* 0x074 */ - uint32_t rx_flow_ctrl; /* 0x090 */ - uint32_t unused_094; /* 0x094 */ - uint32_t txq_prty_map0; /* 0x098 */ - uint32_t unused_09c; /* 0x09c */ - uint32_t rxq_ctrl0; /* 0x0a0 */ - uint32_t unused_0a4; /* 0x0a4 */ - uint32_t rxq_ctrl2; /* 0x0a8 */ - uint32_t unused_0ac[(0x0dc - 0x0ac) / 4]; /* 0x0ac */ - uint32_t us_tic_counter; /* 0x0dc */ - uint32_t unused_0e0[(0x11c - 0x0e0) / 4]; /* 0x0e0 */ - uint32_t hw_feature0; /* 0x11c */ - uint32_t hw_feature1; /* 0x120 */ - uint32_t hw_feature2; /* 0x124 */ - uint32_t unused_128[(0x200 - 0x128) / 4]; /* 0x128 */ - uint32_t mdio_address; /* 0x200 */ - uint32_t mdio_data; /* 0x204 */ - uint32_t unused_208[(0x300 - 0x208) / 4]; /* 0x208 */ - uint32_t address0_high; /* 0x300 */ - uint32_t address0_low; /* 0x304 */ -}; - -#define EQOS_MAC_CONFIGURATION_GPSLCE BIT(23) -#define EQOS_MAC_CONFIGURATION_CST BIT(21) -#define EQOS_MAC_CONFIGURATION_ACS BIT(20) -#define EQOS_MAC_CONFIGURATION_WD BIT(19) -#define EQOS_MAC_CONFIGURATION_JD BIT(17) -#define EQOS_MAC_CONFIGURATION_JE BIT(16) -#define EQOS_MAC_CONFIGURATION_PS BIT(15) -#define EQOS_MAC_CONFIGURATION_FES BIT(14) -#define EQOS_MAC_CONFIGURATION_DM BIT(13) -#define EQOS_MAC_CONFIGURATION_LM BIT(12) -#define EQOS_MAC_CONFIGURATION_TE BIT(1) -#define EQOS_MAC_CONFIGURATION_RE BIT(0) - -#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_SHIFT 16 -#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_MASK 0xffff -#define EQOS_MAC_Q0_TX_FLOW_CTRL_TFE BIT(1) - -#define EQOS_MAC_RX_FLOW_CTRL_RFE BIT(0) - -#define EQOS_MAC_TXQ_PRTY_MAP0_PSTQ0_SHIFT 0 -#define EQOS_MAC_TXQ_PRTY_MAP0_PSTQ0_MASK 0xff - -#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT 0 -#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_MASK 3 -#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_NOT_ENABLED 0 -#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB 2 -#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_AV 1 - -#define EQOS_MAC_RXQ_CTRL2_PSRQ0_SHIFT 0 -#define EQOS_MAC_RXQ_CTRL2_PSRQ0_MASK 0xff - -#define EQOS_MAC_HW_FEATURE0_MMCSEL_SHIFT 8 -#define EQOS_MAC_HW_FEATURE0_HDSEL_SHIFT 2 -#define EQOS_MAC_HW_FEATURE0_GMIISEL_SHIFT 1 -#define EQOS_MAC_HW_FEATURE0_MIISEL_SHIFT 0 - -#define EQOS_MAC_HW_FEATURE1_TXFIFOSIZE_SHIFT 6 -#define EQOS_MAC_HW_FEATURE1_TXFIFOSIZE_MASK 0x1f -#define EQOS_MAC_HW_FEATURE1_RXFIFOSIZE_SHIFT 0 -#define EQOS_MAC_HW_FEATURE1_RXFIFOSIZE_MASK 0x1f - -#define EQOS_MAC_HW_FEATURE3_ASP_SHIFT 28 -#define EQOS_MAC_HW_FEATURE3_ASP_MASK 0x3 - -#define EQOS_MAC_MDIO_ADDRESS_PA_SHIFT 21 -#define EQOS_MAC_MDIO_ADDRESS_RDA_SHIFT 16 -#define EQOS_MAC_MDIO_ADDRESS_CR_SHIFT 8 -#define EQOS_MAC_MDIO_ADDRESS_CR_20_35 2 -#define EQOS_MAC_MDIO_ADDRESS_CR_250_300 5 -#define EQOS_MAC_MDIO_ADDRESS_SKAP BIT(4) -#define EQOS_MAC_MDIO_ADDRESS_GOC_SHIFT 2 -#define EQOS_MAC_MDIO_ADDRESS_GOC_READ 3 -#define EQOS_MAC_MDIO_ADDRESS_GOC_WRITE 1 -#define EQOS_MAC_MDIO_ADDRESS_C45E BIT(1) -#define EQOS_MAC_MDIO_ADDRESS_GB BIT(0) - -#define EQOS_MAC_MDIO_DATA_GD_MASK 0xffff - -#define EQOS_MTL_REGS_BASE 0xd00 -struct eqos_mtl_regs { - uint32_t txq0_operation_mode; /* 0xd00 */ - uint32_t unused_d04; /* 0xd04 */ - uint32_t txq0_debug; /* 0xd08 */ - uint32_t unused_d0c[(0xd18 - 0xd0c) / 4]; /* 0xd0c */ - uint32_t txq0_quantum_weight; /* 0xd18 */ - uint32_t unused_d1c[(0xd30 - 0xd1c) / 4]; /* 0xd1c */ - uint32_t rxq0_operation_mode; /* 0xd30 */ - uint32_t unused_d34; /* 0xd34 */ - uint32_t rxq0_debug; /* 0xd38 */ -}; - -#define EQOS_MTL_TXQ0_OPERATION_MODE_TQS_SHIFT 16 -#define EQOS_MTL_TXQ0_OPERATION_MODE_TQS_MASK 0x1ff -#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_SHIFT 2 -#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_MASK 3 -#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_ENABLED 2 -#define EQOS_MTL_TXQ0_OPERATION_MODE_TSF BIT(1) -#define EQOS_MTL_TXQ0_OPERATION_MODE_FTQ BIT(0) - -#define EQOS_MTL_TXQ0_DEBUG_TXQSTS BIT(4) -#define EQOS_MTL_TXQ0_DEBUG_TRCSTS_SHIFT 1 -#define EQOS_MTL_TXQ0_DEBUG_TRCSTS_MASK 3 - -#define EQOS_MTL_RXQ0_OPERATION_MODE_RQS_SHIFT 20 -#define EQOS_MTL_RXQ0_OPERATION_MODE_RQS_MASK 0x3ff -#define EQOS_MTL_RXQ0_OPERATION_MODE_RFD_SHIFT 14 -#define EQOS_MTL_RXQ0_OPERATION_MODE_RFD_MASK 0x3f -#define EQOS_MTL_RXQ0_OPERATION_MODE_RFA_SHIFT 8 -#define EQOS_MTL_RXQ0_OPERATION_MODE_RFA_MASK 0x3f -#define EQOS_MTL_RXQ0_OPERATION_MODE_EHFC BIT(7) -#define EQOS_MTL_RXQ0_OPERATION_MODE_RSF BIT(5) - -#define EQOS_MTL_RXQ0_DEBUG_PRXQ_SHIFT 16 -#define EQOS_MTL_RXQ0_DEBUG_PRXQ_MASK 0x7fff -#define EQOS_MTL_RXQ0_DEBUG_RXQSTS_SHIFT 4 -#define EQOS_MTL_RXQ0_DEBUG_RXQSTS_MASK 3 - -#define EQOS_DMA_REGS_BASE 0x1000 -struct eqos_dma_regs { - uint32_t mode; /* 0x1000 */ - uint32_t sysbus_mode; /* 0x1004 */ - uint32_t unused_1008[(0x1100 - 0x1008) / 4]; /* 0x1008 */ - uint32_t ch0_control; /* 0x1100 */ - uint32_t ch0_tx_control; /* 0x1104 */ - uint32_t ch0_rx_control; /* 0x1108 */ - uint32_t unused_110c; /* 0x110c */ - uint32_t ch0_txdesc_list_haddress; /* 0x1110 */ - uint32_t ch0_txdesc_list_address; /* 0x1114 */ - uint32_t ch0_rxdesc_list_haddress; /* 0x1118 */ - uint32_t ch0_rxdesc_list_address; /* 0x111c */ - uint32_t ch0_txdesc_tail_pointer; /* 0x1120 */ - uint32_t unused_1124; /* 0x1124 */ - uint32_t ch0_rxdesc_tail_pointer; /* 0x1128 */ - uint32_t ch0_txdesc_ring_length; /* 0x112c */ - uint32_t ch0_rxdesc_ring_length; /* 0x1130 */ -}; - -#define EQOS_DMA_MODE_SWR BIT(0) - -#define EQOS_DMA_SYSBUS_MODE_RD_OSR_LMT_SHIFT 16 -#define EQOS_DMA_SYSBUS_MODE_RD_OSR_LMT_MASK 0xf -#define EQOS_DMA_SYSBUS_MODE_EAME BIT(11) -#define EQOS_DMA_SYSBUS_MODE_BLEN16 BIT(3) -#define EQOS_DMA_SYSBUS_MODE_BLEN8 BIT(2) -#define EQOS_DMA_SYSBUS_MODE_BLEN4 BIT(1) - -#define EQOS_DMA_CH0_CONTROL_DSL_SHIFT 18 -#define EQOS_DMA_CH0_CONTROL_PBLX8 BIT(16) - -#define EQOS_DMA_CH0_TX_CONTROL_TXPBL_SHIFT 16 -#define EQOS_DMA_CH0_TX_CONTROL_TXPBL_MASK 0x3f -#define EQOS_DMA_CH0_TX_CONTROL_OSP BIT(4) -#define EQOS_DMA_CH0_TX_CONTROL_ST BIT(0) - -#define EQOS_DMA_CH0_RX_CONTROL_RXPBL_SHIFT 16 -#define EQOS_DMA_CH0_RX_CONTROL_RXPBL_MASK 0x3f -#define EQOS_DMA_CH0_RX_CONTROL_RBSZ_SHIFT 1 -#define EQOS_DMA_CH0_RX_CONTROL_RBSZ_MASK 0x3fff -#define EQOS_DMA_CH0_RX_CONTROL_SR BIT(0) - -/* These registers are Tegra186-specific */ -#define EQOS_TEGRA186_REGS_BASE 0x8800 -struct eqos_tegra186_regs { - uint32_t sdmemcomppadctrl; /* 0x8800 */ - uint32_t auto_cal_config; /* 0x8804 */ - uint32_t unused_8808; /* 0x8808 */ - uint32_t auto_cal_status; /* 0x880c */ -}; - -#define EQOS_SDMEMCOMPPADCTRL_PAD_E_INPUT_OR_E_PWRD BIT(31) - -#define EQOS_AUTO_CAL_CONFIG_START BIT(31) -#define EQOS_AUTO_CAL_CONFIG_ENABLE BIT(29) - -#define EQOS_AUTO_CAL_STATUS_ACTIVE BIT(31) - -/* Descriptors */ -#define EQOS_DESCRIPTORS_TX 4 -#define EQOS_DESCRIPTORS_RX 4 -#define EQOS_DESCRIPTORS_NUM (EQOS_DESCRIPTORS_TX + EQOS_DESCRIPTORS_RX) -#define EQOS_BUFFER_ALIGN ARCH_DMA_MINALIGN -#define EQOS_MAX_PACKET_SIZE ALIGN(1568, ARCH_DMA_MINALIGN) -#define EQOS_RX_BUFFER_SIZE (EQOS_DESCRIPTORS_RX * EQOS_MAX_PACKET_SIZE) - -struct eqos_desc { - u32 des0; - u32 des1; - u32 des2; - u32 des3; -}; - -#define EQOS_DESC3_OWN BIT(31) -#define EQOS_DESC3_FD BIT(29) -#define EQOS_DESC3_LD BIT(28) -#define EQOS_DESC3_BUF1V BIT(24) - -#define EQOS_AXI_WIDTH_32 4 -#define EQOS_AXI_WIDTH_64 8 -#define EQOS_AXI_WIDTH_128 16 - -struct eqos_config { - bool reg_access_always_ok; - int mdio_wait; - int swr_wait; - int config_mac; - int config_mac_mdio; - unsigned int axi_bus_width; - phy_interface_t (*interface)(const struct udevice *dev); - struct eqos_ops *ops; -}; - -struct eqos_ops { - void (*eqos_inval_desc)(void *desc); - void (*eqos_flush_desc)(void *desc); - void (*eqos_inval_buffer)(void *buf, size_t size); - void (*eqos_flush_buffer)(void *buf, size_t size); - int (*eqos_probe_resources)(struct udevice *dev); - int (*eqos_remove_resources)(struct udevice *dev); - int (*eqos_stop_resets)(struct udevice *dev); - int (*eqos_start_resets)(struct udevice *dev); - int (*eqos_stop_clks)(struct udevice *dev); - int (*eqos_start_clks)(struct udevice *dev); - int (*eqos_calibrate_pads)(struct udevice *dev); - int (*eqos_disable_calibration)(struct udevice *dev); - int (*eqos_set_tx_clk_speed)(struct udevice *dev); - ulong (*eqos_get_tick_clk_rate)(struct udevice *dev); -}; - -struct eqos_priv { - struct udevice *dev; - const struct eqos_config *config; - fdt_addr_t regs; - struct eqos_mac_regs *mac_regs; - struct eqos_mtl_regs *mtl_regs; - struct eqos_dma_regs *dma_regs; - struct eqos_tegra186_regs *tegra186_regs; - struct reset_ctl reset_ctl; - struct gpio_desc phy_reset_gpio; - struct clk clk_master_bus; - struct clk clk_rx; - struct clk clk_ptp_ref; - struct clk clk_tx; - struct clk clk_ck; - struct clk clk_slave_bus; - struct mii_dev *mii; - struct phy_device *phy; - u32 max_speed; - void *descs; - int tx_desc_idx, rx_desc_idx; - unsigned int desc_size; - void *tx_dma_buf; - void *rx_dma_buf; - void *rx_pkt; - bool started; - bool reg_access_ok; - bool clk_ck_enabled; -}; +#include "dwc_eth_qos.h" /* * TX and RX descriptors are 16 bytes. This causes problems with the cache @@ -359,7 +93,7 @@ static struct eqos_desc *eqos_get_desc(struct eqos_priv *eqos, ((rx ? EQOS_DESCRIPTORS_TX : 0) + num) * eqos->desc_size; } -static void eqos_inval_desc_generic(void *desc) +void eqos_inval_desc_generic(void *desc) { unsigned long start = (unsigned long)desc; unsigned long end = ALIGN(start + sizeof(struct eqos_desc), @@ -368,7 +102,7 @@ static void eqos_inval_desc_generic(void *desc) invalidate_dcache_range(start, end); } -static void eqos_flush_desc_generic(void *desc) +void eqos_flush_desc_generic(void *desc) { unsigned long start = (unsigned long)desc; unsigned long end = ALIGN(start + sizeof(struct eqos_desc), @@ -377,7 +111,7 @@ static void eqos_flush_desc_generic(void *desc) flush_dcache_range(start, end); } -static void eqos_inval_buffer_tegra186(void *buf, size_t size) +void eqos_inval_buffer_tegra186(void *buf, size_t size) { unsigned long start = (unsigned long)buf & ~(ARCH_DMA_MINALIGN - 1); unsigned long end = ALIGN(start + size, ARCH_DMA_MINALIGN); @@ -385,7 +119,7 @@ static void eqos_inval_buffer_tegra186(void *buf, size_t size) invalidate_dcache_range(start, end); } -static void eqos_inval_buffer_generic(void *buf, size_t size) +void eqos_inval_buffer_generic(void *buf, size_t size) { unsigned long start = rounddown((unsigned long)buf, ARCH_DMA_MINALIGN); unsigned long end = roundup((unsigned long)buf + size, @@ -399,7 +133,7 @@ static void eqos_flush_buffer_tegra186(void *buf, size_t size) flush_cache((unsigned long)buf, size); } -static void eqos_flush_buffer_generic(void *buf, size_t size) +void eqos_flush_buffer_generic(void *buf, size_t size) { unsigned long start = rounddown((unsigned long)buf, ARCH_DMA_MINALIGN); unsigned long end = roundup((unsigned long)buf + size, @@ -1890,7 +1624,7 @@ static int eqos_remove(struct udevice *dev) return 0; } -static int eqos_null_ops(struct udevice *dev) +int eqos_null_ops(struct udevice *dev) { return 0; } diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h new file mode 100644 index 00000000000..68b367b068a --- /dev/null +++ b/drivers/net/dwc_eth_qos.h @@ -0,0 +1,280 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2022 NXP + */ + +#include +#include + +/* Core registers */ + +#define EQOS_MAC_REGS_BASE 0x000 +struct eqos_mac_regs { + u32 configuration; /* 0x000 */ + u32 unused_004[(0x070 - 0x004) / 4]; /* 0x004 */ + u32 q0_tx_flow_ctrl; /* 0x070 */ + u32 unused_070[(0x090 - 0x074) / 4]; /* 0x074 */ + u32 rx_flow_ctrl; /* 0x090 */ + u32 unused_094; /* 0x094 */ + u32 txq_prty_map0; /* 0x098 */ + u32 unused_09c; /* 0x09c */ + u32 rxq_ctrl0; /* 0x0a0 */ + u32 unused_0a4; /* 0x0a4 */ + u32 rxq_ctrl2; /* 0x0a8 */ + u32 unused_0ac[(0x0dc - 0x0ac) / 4]; /* 0x0ac */ + u32 us_tic_counter; /* 0x0dc */ + u32 unused_0e0[(0x11c - 0x0e0) / 4]; /* 0x0e0 */ + u32 hw_feature0; /* 0x11c */ + u32 hw_feature1; /* 0x120 */ + u32 hw_feature2; /* 0x124 */ + u32 unused_128[(0x200 - 0x128) / 4]; /* 0x128 */ + u32 mdio_address; /* 0x200 */ + u32 mdio_data; /* 0x204 */ + u32 unused_208[(0x300 - 0x208) / 4]; /* 0x208 */ + u32 address0_high; /* 0x300 */ + u32 address0_low; /* 0x304 */ +}; + +#define EQOS_MAC_CONFIGURATION_GPSLCE BIT(23) +#define EQOS_MAC_CONFIGURATION_CST BIT(21) +#define EQOS_MAC_CONFIGURATION_ACS BIT(20) +#define EQOS_MAC_CONFIGURATION_WD BIT(19) +#define EQOS_MAC_CONFIGURATION_JD BIT(17) +#define EQOS_MAC_CONFIGURATION_JE BIT(16) +#define EQOS_MAC_CONFIGURATION_PS BIT(15) +#define EQOS_MAC_CONFIGURATION_FES BIT(14) +#define EQOS_MAC_CONFIGURATION_DM BIT(13) +#define EQOS_MAC_CONFIGURATION_LM BIT(12) +#define EQOS_MAC_CONFIGURATION_TE BIT(1) +#define EQOS_MAC_CONFIGURATION_RE BIT(0) + +#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_SHIFT 16 +#define EQOS_MAC_Q0_TX_FLOW_CTRL_PT_MASK 0xffff +#define EQOS_MAC_Q0_TX_FLOW_CTRL_TFE BIT(1) + +#define EQOS_MAC_RX_FLOW_CTRL_RFE BIT(0) + +#define EQOS_MAC_TXQ_PRTY_MAP0_PSTQ0_SHIFT 0 +#define EQOS_MAC_TXQ_PRTY_MAP0_PSTQ0_MASK 0xff + +#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_SHIFT 0 +#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_MASK 3 +#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_NOT_ENABLED 0 +#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB 2 +#define EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_AV 1 + +#define EQOS_MAC_RXQ_CTRL2_PSRQ0_SHIFT 0 +#define EQOS_MAC_RXQ_CTRL2_PSRQ0_MASK 0xff + +#define EQOS_MAC_HW_FEATURE0_MMCSEL_SHIFT 8 +#define EQOS_MAC_HW_FEATURE0_HDSEL_SHIFT 2 +#define EQOS_MAC_HW_FEATURE0_GMIISEL_SHIFT 1 +#define EQOS_MAC_HW_FEATURE0_MIISEL_SHIFT 0 + +#define EQOS_MAC_HW_FEATURE1_TXFIFOSIZE_SHIFT 6 +#define EQOS_MAC_HW_FEATURE1_TXFIFOSIZE_MASK 0x1f +#define EQOS_MAC_HW_FEATURE1_RXFIFOSIZE_SHIFT 0 +#define EQOS_MAC_HW_FEATURE1_RXFIFOSIZE_MASK 0x1f + +#define EQOS_MAC_HW_FEATURE3_ASP_SHIFT 28 +#define EQOS_MAC_HW_FEATURE3_ASP_MASK 0x3 + +#define EQOS_MAC_MDIO_ADDRESS_PA_SHIFT 21 +#define EQOS_MAC_MDIO_ADDRESS_RDA_SHIFT 16 +#define EQOS_MAC_MDIO_ADDRESS_CR_SHIFT 8 +#define EQOS_MAC_MDIO_ADDRESS_CR_20_35 2 +#define EQOS_MAC_MDIO_ADDRESS_CR_250_300 5 +#define EQOS_MAC_MDIO_ADDRESS_SKAP BIT(4) +#define EQOS_MAC_MDIO_ADDRESS_GOC_SHIFT 2 +#define EQOS_MAC_MDIO_ADDRESS_GOC_READ 3 +#define EQOS_MAC_MDIO_ADDRESS_GOC_WRITE 1 +#define EQOS_MAC_MDIO_ADDRESS_C45E BIT(1) +#define EQOS_MAC_MDIO_ADDRESS_GB BIT(0) + +#define EQOS_MAC_MDIO_DATA_GD_MASK 0xffff + +#define EQOS_MTL_REGS_BASE 0xd00 +struct eqos_mtl_regs { + u32 txq0_operation_mode; /* 0xd00 */ + u32 unused_d04; /* 0xd04 */ + u32 txq0_debug; /* 0xd08 */ + u32 unused_d0c[(0xd18 - 0xd0c) / 4]; /* 0xd0c */ + u32 txq0_quantum_weight; /* 0xd18 */ + u32 unused_d1c[(0xd30 - 0xd1c) / 4]; /* 0xd1c */ + u32 rxq0_operation_mode; /* 0xd30 */ + u32 unused_d34; /* 0xd34 */ + u32 rxq0_debug; /* 0xd38 */ +}; + +#define EQOS_MTL_TXQ0_OPERATION_MODE_TQS_SHIFT 16 +#define EQOS_MTL_TXQ0_OPERATION_MODE_TQS_MASK 0x1ff +#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_SHIFT 2 +#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_MASK 3 +#define EQOS_MTL_TXQ0_OPERATION_MODE_TXQEN_ENABLED 2 +#define EQOS_MTL_TXQ0_OPERATION_MODE_TSF BIT(1) +#define EQOS_MTL_TXQ0_OPERATION_MODE_FTQ BIT(0) + +#define EQOS_MTL_TXQ0_DEBUG_TXQSTS BIT(4) +#define EQOS_MTL_TXQ0_DEBUG_TRCSTS_SHIFT 1 +#define EQOS_MTL_TXQ0_DEBUG_TRCSTS_MASK 3 + +#define EQOS_MTL_RXQ0_OPERATION_MODE_RQS_SHIFT 20 +#define EQOS_MTL_RXQ0_OPERATION_MODE_RQS_MASK 0x3ff +#define EQOS_MTL_RXQ0_OPERATION_MODE_RFD_SHIFT 14 +#define EQOS_MTL_RXQ0_OPERATION_MODE_RFD_MASK 0x3f +#define EQOS_MTL_RXQ0_OPERATION_MODE_RFA_SHIFT 8 +#define EQOS_MTL_RXQ0_OPERATION_MODE_RFA_MASK 0x3f +#define EQOS_MTL_RXQ0_OPERATION_MODE_EHFC BIT(7) +#define EQOS_MTL_RXQ0_OPERATION_MODE_RSF BIT(5) + +#define EQOS_MTL_RXQ0_DEBUG_PRXQ_SHIFT 16 +#define EQOS_MTL_RXQ0_DEBUG_PRXQ_MASK 0x7fff +#define EQOS_MTL_RXQ0_DEBUG_RXQSTS_SHIFT 4 +#define EQOS_MTL_RXQ0_DEBUG_RXQSTS_MASK 3 + +#define EQOS_DMA_REGS_BASE 0x1000 +struct eqos_dma_regs { + u32 mode; /* 0x1000 */ + u32 sysbus_mode; /* 0x1004 */ + u32 unused_1008[(0x1100 - 0x1008) / 4]; /* 0x1008 */ + u32 ch0_control; /* 0x1100 */ + u32 ch0_tx_control; /* 0x1104 */ + u32 ch0_rx_control; /* 0x1108 */ + u32 unused_110c; /* 0x110c */ + u32 ch0_txdesc_list_haddress; /* 0x1110 */ + u32 ch0_txdesc_list_address; /* 0x1114 */ + u32 ch0_rxdesc_list_haddress; /* 0x1118 */ + u32 ch0_rxdesc_list_address; /* 0x111c */ + u32 ch0_txdesc_tail_pointer; /* 0x1120 */ + u32 unused_1124; /* 0x1124 */ + u32 ch0_rxdesc_tail_pointer; /* 0x1128 */ + u32 ch0_txdesc_ring_length; /* 0x112c */ + u32 ch0_rxdesc_ring_length; /* 0x1130 */ +}; + +#define EQOS_DMA_MODE_SWR BIT(0) + +#define EQOS_DMA_SYSBUS_MODE_RD_OSR_LMT_SHIFT 16 +#define EQOS_DMA_SYSBUS_MODE_RD_OSR_LMT_MASK 0xf +#define EQOS_DMA_SYSBUS_MODE_EAME BIT(11) +#define EQOS_DMA_SYSBUS_MODE_BLEN16 BIT(3) +#define EQOS_DMA_SYSBUS_MODE_BLEN8 BIT(2) +#define EQOS_DMA_SYSBUS_MODE_BLEN4 BIT(1) + +#define EQOS_DMA_CH0_CONTROL_DSL_SHIFT 18 +#define EQOS_DMA_CH0_CONTROL_PBLX8 BIT(16) + +#define EQOS_DMA_CH0_TX_CONTROL_TXPBL_SHIFT 16 +#define EQOS_DMA_CH0_TX_CONTROL_TXPBL_MASK 0x3f +#define EQOS_DMA_CH0_TX_CONTROL_OSP BIT(4) +#define EQOS_DMA_CH0_TX_CONTROL_ST BIT(0) + +#define EQOS_DMA_CH0_RX_CONTROL_RXPBL_SHIFT 16 +#define EQOS_DMA_CH0_RX_CONTROL_RXPBL_MASK 0x3f +#define EQOS_DMA_CH0_RX_CONTROL_RBSZ_SHIFT 1 +#define EQOS_DMA_CH0_RX_CONTROL_RBSZ_MASK 0x3fff +#define EQOS_DMA_CH0_RX_CONTROL_SR BIT(0) + +/* These registers are Tegra186-specific */ +#define EQOS_TEGRA186_REGS_BASE 0x8800 +struct eqos_tegra186_regs { + u32 sdmemcomppadctrl; /* 0x8800 */ + u32 auto_cal_config; /* 0x8804 */ + u32 unused_8808; /* 0x8808 */ + u32 auto_cal_status; /* 0x880c */ +}; + +#define EQOS_SDMEMCOMPPADCTRL_PAD_E_INPUT_OR_E_PWRD BIT(31) + +#define EQOS_AUTO_CAL_CONFIG_START BIT(31) +#define EQOS_AUTO_CAL_CONFIG_ENABLE BIT(29) + +#define EQOS_AUTO_CAL_STATUS_ACTIVE BIT(31) + +/* Descriptors */ +#define EQOS_DESCRIPTORS_TX 4 +#define EQOS_DESCRIPTORS_RX 4 +#define EQOS_DESCRIPTORS_NUM (EQOS_DESCRIPTORS_TX + EQOS_DESCRIPTORS_RX) +#define EQOS_BUFFER_ALIGN ARCH_DMA_MINALIGN +#define EQOS_MAX_PACKET_SIZE ALIGN(1568, ARCH_DMA_MINALIGN) +#define EQOS_RX_BUFFER_SIZE (EQOS_DESCRIPTORS_RX * EQOS_MAX_PACKET_SIZE) + +struct eqos_desc { + u32 des0; + u32 des1; + u32 des2; + u32 des3; +}; + +#define EQOS_DESC3_OWN BIT(31) +#define EQOS_DESC3_FD BIT(29) +#define EQOS_DESC3_LD BIT(28) +#define EQOS_DESC3_BUF1V BIT(24) + +#define EQOS_AXI_WIDTH_32 4 +#define EQOS_AXI_WIDTH_64 8 +#define EQOS_AXI_WIDTH_128 16 + +struct eqos_config { + bool reg_access_always_ok; + int mdio_wait; + int swr_wait; + int config_mac; + int config_mac_mdio; + unsigned int axi_bus_width; + phy_interface_t (*interface)(const struct udevice *dev); + struct eqos_ops *ops; +}; + +struct eqos_ops { + void (*eqos_inval_desc)(void *desc); + void (*eqos_flush_desc)(void *desc); + void (*eqos_inval_buffer)(void *buf, size_t size); + void (*eqos_flush_buffer)(void *buf, size_t size); + int (*eqos_probe_resources)(struct udevice *dev); + int (*eqos_remove_resources)(struct udevice *dev); + int (*eqos_stop_resets)(struct udevice *dev); + int (*eqos_start_resets)(struct udevice *dev); + int (*eqos_stop_clks)(struct udevice *dev); + int (*eqos_start_clks)(struct udevice *dev); + int (*eqos_calibrate_pads)(struct udevice *dev); + int (*eqos_disable_calibration)(struct udevice *dev); + int (*eqos_set_tx_clk_speed)(struct udevice *dev); + ulong (*eqos_get_tick_clk_rate)(struct udevice *dev); +}; + +struct eqos_priv { + struct udevice *dev; + const struct eqos_config *config; + fdt_addr_t regs; + struct eqos_mac_regs *mac_regs; + struct eqos_mtl_regs *mtl_regs; + struct eqos_dma_regs *dma_regs; + struct eqos_tegra186_regs *tegra186_regs; + struct reset_ctl reset_ctl; + struct gpio_desc phy_reset_gpio; + struct clk clk_master_bus; + struct clk clk_rx; + struct clk clk_ptp_ref; + struct clk clk_tx; + struct clk clk_ck; + struct clk clk_slave_bus; + struct mii_dev *mii; + struct phy_device *phy; + u32 max_speed; + void *descs; + int tx_desc_idx, rx_desc_idx; + unsigned int desc_size; + void *tx_dma_buf; + void *rx_dma_buf; + void *rx_pkt; + bool started; + bool reg_access_ok; + bool clk_ck_enabled; +}; + +void eqos_inval_desc_generic(void *desc); +void eqos_flush_desc_generic(void *desc); +void eqos_inval_buffer_generic(void *buf, size_t size); +void eqos_flush_buffer_generic(void *buf, size_t size); +int eqos_null_ops(struct udevice *dev); From patchwork Mon Jun 27 03:24:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648576 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=WRGyjcjm; 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 4LWXJn5D1Mz9s0r for ; Mon, 27 Jun 2022 12:50:17 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 9257F84559; Mon, 27 Jun 2022 04:44:25 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="WRGyjcjm"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 745B08454B; Mon, 27 Jun 2022 04:44:17 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10089.outbound.protection.outlook.com [40.107.1.89]) (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 C727E84547 for ; Mon, 27 Jun 2022 04:44:11 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Vi+E5vigfjU8NXOs3ZZ1uNtG50fSnIJNhO1/fH3RGLyfDZWnw4slxV17OM+0dtdIuJ+pv9QaXfhdI6voqieSyWzETwy23skdM5na8Aiymbz1ZKXr4+qKI8YKF4DCGnWqeJu+5SbKQUSM1dIWGaDVLzvpjDbZBgZNbHj6cYELF4Br9HVcmpF9zjsWzjQse/jvAe3KPeCOQzjtzDzakmEwsRH1408TLwLB25WIUyz2LbUrEXHjBNSpAXbbTPgWRR67HvzOxBPuIKTISqcRC8gbfw8rH/g0atW7CnWFZ8noZLI08smfvzYVj9mhLPZc0maLqV0N5e2oicsQxCWR66mDWQ== 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=Qojn2efaPtFqRX4CwSwFC5Fyr2AtAE9tHnx1O7ijKj4=; b=MTxLZNlO2f9JyC1mFAQHGRh4yVl/JEvHo41PAM97uvtgtnX6AJ2zGrjoVWV3PryqfiEwUW6OcXXZ53ks8xQ9wclTaoYq8X+NvMrsTiFDXd6wo+gy/n+/cTQpzfGOevLAq8Y09TWPyKy6TeYzlerH/DTjwuNs97SYJiWaw+DKSKDDVd1BhLT3biZyYeVOAxzi3ij8Z2sLnFK0K/GCrUddMN2UYK8KIoF6OJHfG9Sex1DjKi66aiaV1iO4lJrpufBhvcDpypI0eVJ/BGh7U7rBrGs3nhOJ4vsLGLVVSBiuFB/1VUX4FIv9lOMF2dcxASpySkyrvUsa16XagUAPs03UHQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Qojn2efaPtFqRX4CwSwFC5Fyr2AtAE9tHnx1O7ijKj4=; b=WRGyjcjm/5UM0X9ntq1h/ybhXhhDrQk3JV3y56Igfuh6wVd/M5QjKDv6EypJUoyqNQASRk0sJHVckKYNOPOBokIcWGLxiTG5bhOTeLpQ8D3YJiKu3NK7frOr2Gn09UXDJKA3jtvaNJml6Bkn2LqwMiVitylj3/dDKrxNxfa0BUI= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:08 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:08 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 45/49] net: dwc_eth_qos: move i.MX code out Date: Mon, 27 Jun 2022 11:24:51 +0800 Message-Id: <20220627032455.28280-46-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: db24fa7a-9bc9-4f5f-bdb9-08da57e6e855 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EJgCS3uahVUUSl2j8wKuaPUx7EsGnxbfhsW2zCIFtWU62gmsvLnEdQ4LKKx57J6Yr/IhoY9D8WxspPKdSNtSXIANAMcPMg9577Oean8CjXMWEw0Zu+PfPSdtkjrGVQUC0K33tynH3HJUE3cr9N5C0T3iFNrlcQvEuw6MUsktNyd0W9Q11mSLsKKhv3iFPipS2YtBkFWsbPGludQGI5GOQiNKWghDUJbDKUW6eKesXUkWcLhMv4DtrehX6p4bGTg0f0YnZKMW/fgI0V8ul1Xpc6VGKl73yA4xvrIp8NkrAatHqaSK68b1Ub24KPMCqdJ6ssprvYAB8SOTbsZD8SPmPOxi0yOzInQgrwizqaMg6CdwG8d2ZRYjxKJ4IQboPFFRJLSUN0quEi8pcQWYWpPdlzyDFJP7UjT5yybtNR8fohEL3t8hXsjZgbbTEzqhaPq59xtYRe7XGrESShGRKDWOJIkkvNKQQiYc9yhyQ8IdWYUt4+/I39FjtY0KwMcFUmu1UCcIs50bGZ0FUCuHNMwvKwaGLfvrgXPp5qMuSaQuaXfHTeTnAjIahYUE2zig+oQZLZZT9Q+StnwkAO74O1Qggw1/WqjSKX+YZ/cKDK+uuTsWNvEIG1k/ulVy550Zvpi9s09IT6FdM/mEij1goTvjiszqGJM1YD7knlprh9RGsWb0341ch9dLsxnQnW5xcfFdB2D1xj64tGd2Xu2Mm3dc03BCPo640a5L3GZuVSzoahVDK27XFvl99YDIoxMww22kKOanvOjkIREnBKrsk0r43LZJC1hNZtaLbWlXXhMzgbQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: b70YcAyPRXnA6ouojdGSODSR0n6vduEeE+A+5cjkF0onKhmiDzF8b7cm1oycv3edsfyEUfNjTcYvgqNzbKmjf1LscK/x5ihLssBIA9V0QBvHTrZZh327dfYwGLfe3Ptcv5495VOvDbPMWHUvvIGbRjvkAvrvlG6f25HyMhLXCzCern75kNvHxuxcEvV1qL2jPdMRgJbgGL5zr3chyz3odkQECZiZfLk3HaBlVSEjEFaFpNyByRPgCt5Jbba+UwNtq7DG/Bowbxdey6hcqF7V9wCSDq/DgZUHcnjqdkcdKVh6LL780cNRBRjl5924SHVw8QzHjfGOfHWldrdSXMo1iU4CHa8RC5oa0Z8qC8Wcr2kq3aNJO3fKc3OPYCUaMZXIaratGZEC7kpJ0SJWFsq2Ijfq7JavBm16X2St4Z41Ah8G4/mtt6dBp4UHk5COkjY1DMRw0P/G9apZZXrQvYE0tcXHHh9AH+LTSuWKaJDFKHcQ7lVKDqO+UZMm2rrbhXASHKb5MEEh8XSq3L0GYMYsxJKM58mJqiIaDlxgL9aW736TbD0cK+L+PBgma8nohK3pkZNDyX/HuGxn+Nlu+tMC3P4nwe9FCriIvyF6qAwJ7dQhsucU2kp7m9TZw+lPzsVaE51wGCmxShbcP0EUjvbSas3gNnkg0UrslKS+ac94oR9d6Uee0rItFC2BcXCeUxDlbfVkfEZxPj79wDyswgKWr6BLrCnvqtabINf0g9OM8fl64AemXb19XRUQiHhdDUSqCQX1yyfbZukU81OE6OgN3NOuq+P3HLevrZc63bqXOY4kgA28HQUr4dFSrG/0VkI/sEliomvDRV7i2NxdiWZN68niOnzLITxM4TZleogyg+cJSTkLGsV64FwZPdccukws6ZGdyG+D7egVsWv91cGh7bAQdyV29l1U9gyYgSGisah3l79aN4td27ZK8+6Sj30WKrfro0R0mEgV75iQRQQUmJYIbQAg69//GBp0nIZ2Ql46t6iqRuH5iB2SPzOwdheICwDxC5DzSG6uwoyrX3Ac598R3bOVkICphoMMMv0h1UzWMelh5pnmVhH5H80lv2FqGe0SB20EUeb0FewKsGKcKB2vpgyB9UMPI+ixq0ph1ot1u0KUOSZqwv9FHMlhJeLk1lcjLNIiY//L4nLd+ENPAXI8wpLTpn3r8JEvwlo1nHTk6UFTQazyBlvy4FDbk+YbJFqOIMxNBpAJKpxSQIU63Vt8cCaml1fc+AHk9w/AAgFRPfUoBEoSJT9Y+b/MMYgfPqvzBsCDFVtUhEOAVJX82OrxLgcPV5GiBcd1G2UoV1PgpDg/PyMedzFLTOMJ90ezq0C8TS9Ca62ShMMRVTHGciXiS8TRX8kWHnhuARNQwdf81R8fuehPQwmFrIqCBzx0w4QdJJK3fxcjulPmebD7l7Sfa+AeIiCTCbZntCjCH9vZasZyq8Qbf67zQ68a71CFKYOMLeQj5zsHeNtUQFmvbcvE7uj6M7v4J1LWaLkAeLd5nv/uVJsNoBPeJgfdXURFqWZY0T7qzVAVQadd5uNsniZUe45cDL4og1Ak6Ty/gcLwkAvZtjW52ZE7kf/3EQuR X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: db24fa7a-9bc9-4f5f-bdb9-08da57e6e855 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:08.1498 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NjWejYLqBH2TmDZUUgy5rIDSNRvJ7+AOzt6YfMPQbME6lamUpU/bhn6vWACD+wTvPpzcQj+JozxbPAOvNVaMQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Move i.MX code to a standalone file to make it easy for adding new platform support Signed-off-by: Peng Fan Reviewed-by: Ramon Fried --- drivers/net/Makefile | 1 + drivers/net/dwc_eth_qos.c | 92 -------------------------- drivers/net/dwc_eth_qos.h | 2 + drivers/net/dwc_eth_qos_imx.c | 121 ++++++++++++++++++++++++++++++++++ 4 files changed, 124 insertions(+), 92 deletions(-) create mode 100644 drivers/net/dwc_eth_qos_imx.c diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 69fb3bbbf7c..9536af11946 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -19,6 +19,7 @@ obj-$(CONFIG_DM_ETH_PHY) += eth-phy-uclass.o obj-$(CONFIG_DRIVER_DM9000) += dm9000x.o obj-$(CONFIG_DSA_SANDBOX) += dsa_sandbox.o obj-$(CONFIG_DWC_ETH_QOS) += dwc_eth_qos.o +obj-$(CONFIG_DWC_ETH_QOS_IMX) += dwc_eth_qos_imx.o obj-$(CONFIG_E1000) += e1000.o obj-$(CONFIG_E1000_SPI) += e1000_spi.o obj-$(CONFIG_EEPRO100) += eepro100.o diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index b69a9feb824..1f24f5cb0cf 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -506,20 +506,6 @@ static ulong eqos_get_tick_clk_rate_stm32(struct udevice *dev) #endif } -__weak u32 imx_get_eqos_csr_clk(void) -{ - return 100 * 1000000; -} -__weak int imx_eqos_txclk_set_rate(unsigned long rate) -{ - return 0; -} - -static ulong eqos_get_tick_clk_rate_imx(struct udevice *dev) -{ - return imx_get_eqos_csr_clk(); -} - static int eqos_set_full_duplex(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -616,38 +602,6 @@ static int eqos_set_tx_clk_speed_tegra186(struct udevice *dev) return 0; } -static int eqos_set_tx_clk_speed_imx(struct udevice *dev) -{ - struct eqos_priv *eqos = dev_get_priv(dev); - ulong rate; - int ret; - - debug("%s(dev=%p):\n", __func__, dev); - - switch (eqos->phy->speed) { - case SPEED_1000: - rate = 125 * 1000 * 1000; - break; - case SPEED_100: - rate = 25 * 1000 * 1000; - break; - case SPEED_10: - rate = 2.5 * 1000 * 1000; - break; - default: - pr_err("invalid speed %d", eqos->phy->speed); - return -EINVAL; - } - - ret = imx_eqos_txclk_set_rate(rate); - if (ret < 0) { - pr_err("imx (tx_clk, %lu) failed: %d", rate, ret); - return ret; - } - - return 0; -} - static int eqos_adjust_link(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -1468,24 +1422,6 @@ static phy_interface_t eqos_get_interface_tegra186(const struct udevice *dev) return PHY_INTERFACE_MODE_MII; } -static int eqos_probe_resources_imx(struct udevice *dev) -{ - struct eqos_priv *eqos = dev_get_priv(dev); - phy_interface_t interface; - - debug("%s(dev=%p):\n", __func__, dev); - - interface = eqos->config->interface(dev); - - if (interface == PHY_INTERFACE_MODE_NA) { - pr_err("Invalid PHY interface\n"); - return -EINVAL; - } - - debug("%s: OK\n", __func__); - return 0; -} - static int eqos_remove_resources_tegra186(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -1695,34 +1631,6 @@ static const struct eqos_config __maybe_unused eqos_stm32_config = { .ops = &eqos_stm32_ops }; -static struct eqos_ops eqos_imx_ops = { - .eqos_inval_desc = eqos_inval_desc_generic, - .eqos_flush_desc = eqos_flush_desc_generic, - .eqos_inval_buffer = eqos_inval_buffer_generic, - .eqos_flush_buffer = eqos_flush_buffer_generic, - .eqos_probe_resources = eqos_probe_resources_imx, - .eqos_remove_resources = eqos_null_ops, - .eqos_stop_resets = eqos_null_ops, - .eqos_start_resets = eqos_null_ops, - .eqos_stop_clks = eqos_null_ops, - .eqos_start_clks = eqos_null_ops, - .eqos_calibrate_pads = eqos_null_ops, - .eqos_disable_calibration = eqos_null_ops, - .eqos_set_tx_clk_speed = eqos_set_tx_clk_speed_imx, - .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_imx -}; - -struct eqos_config __maybe_unused eqos_imx_config = { - .reg_access_always_ok = false, - .mdio_wait = 10, - .swr_wait = 50, - .config_mac = EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB, - .config_mac_mdio = EQOS_MAC_MDIO_ADDRESS_CR_250_300, - .axi_bus_width = EQOS_AXI_WIDTH_64, - .interface = dev_read_phy_mode, - .ops = &eqos_imx_ops -}; - static const struct udevice_id eqos_ids[] = { #if IS_ENABLED(CONFIG_DWC_ETH_QOS_TEGRA186) { diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h index 68b367b068a..ce90e1f1ce1 100644 --- a/drivers/net/dwc_eth_qos.h +++ b/drivers/net/dwc_eth_qos.h @@ -278,3 +278,5 @@ void eqos_flush_desc_generic(void *desc); void eqos_inval_buffer_generic(void *buf, size_t size); void eqos_flush_buffer_generic(void *buf, size_t size); int eqos_null_ops(struct udevice *dev); + +extern struct eqos_config eqos_imx_config; diff --git a/drivers/net/dwc_eth_qos_imx.c b/drivers/net/dwc_eth_qos_imx.c new file mode 100644 index 00000000000..2d1b5104af2 --- /dev/null +++ b/drivers/net/dwc_eth_qos_imx.c @@ -0,0 +1,121 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright 2022 NXP + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dwc_eth_qos.h" + +__weak u32 imx_get_eqos_csr_clk(void) +{ + return 100 * 1000000; +} + +__weak int imx_eqos_txclk_set_rate(unsigned long rate) +{ + return 0; +} + +static ulong eqos_get_tick_clk_rate_imx(struct udevice *dev) +{ + return imx_get_eqos_csr_clk(); +} + +static int eqos_probe_resources_imx(struct udevice *dev) +{ + struct eqos_priv *eqos = dev_get_priv(dev); + phy_interface_t interface; + + debug("%s(dev=%p):\n", __func__, dev); + + interface = eqos->config->interface(dev); + + if (interface == PHY_INTERFACE_MODE_NA) { + pr_err("Invalid PHY interface\n"); + return -EINVAL; + } + + debug("%s: OK\n", __func__); + return 0; +} + +static int eqos_set_tx_clk_speed_imx(struct udevice *dev) +{ + struct eqos_priv *eqos = dev_get_priv(dev); + ulong rate; + int ret; + + debug("%s(dev=%p):\n", __func__, dev); + + switch (eqos->phy->speed) { + case SPEED_1000: + rate = 125 * 1000 * 1000; + break; + case SPEED_100: + rate = 25 * 1000 * 1000; + break; + case SPEED_10: + rate = 2.5 * 1000 * 1000; + break; + default: + pr_err("invalid speed %d", eqos->phy->speed); + return -EINVAL; + } + + ret = imx_eqos_txclk_set_rate(rate); + if (ret < 0) { + pr_err("imx (tx_clk, %lu) failed: %d", rate, ret); + return ret; + } + + return 0; +} + +static struct eqos_ops eqos_imx_ops = { + .eqos_inval_desc = eqos_inval_desc_generic, + .eqos_flush_desc = eqos_flush_desc_generic, + .eqos_inval_buffer = eqos_inval_buffer_generic, + .eqos_flush_buffer = eqos_flush_buffer_generic, + .eqos_probe_resources = eqos_probe_resources_imx, + .eqos_remove_resources = eqos_null_ops, + .eqos_stop_resets = eqos_null_ops, + .eqos_start_resets = eqos_null_ops, + .eqos_stop_clks = eqos_null_ops, + .eqos_start_clks = eqos_null_ops, + .eqos_calibrate_pads = eqos_null_ops, + .eqos_disable_calibration = eqos_null_ops, + .eqos_set_tx_clk_speed = eqos_set_tx_clk_speed_imx, + .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_imx +}; + +struct eqos_config __maybe_unused eqos_imx_config = { + .reg_access_always_ok = false, + .mdio_wait = 10, + .swr_wait = 50, + .config_mac = EQOS_MAC_RXQ_CTRL0_RXQ0EN_ENABLED_DCB, + .config_mac_mdio = EQOS_MAC_MDIO_ADDRESS_CR_250_300, + .axi_bus_width = EQOS_AXI_WIDTH_64, + .interface = dev_read_phy_mode, + .ops = &eqos_imx_ops +}; From patchwork Mon Jun 27 03:24:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648575 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=GvHP36jg; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXJY6zvxz9s0r for ; Mon, 27 Jun 2022 12:50:05 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 71A7784552; Mon, 27 Jun 2022 04:44:23 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="GvHP36jg"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 5504F84514; Mon, 27 Jun 2022 04:44:17 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10065.outbound.protection.outlook.com [40.107.1.65]) (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 9DE4684514 for ; Mon, 27 Jun 2022 04:44:13 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GudlcA3tj+i7B+G70Fu2dNIXC+a1YbzYqh1j+Um7lXt8mP75koa5YP5/kUBlFBukdMMU2D3K0dMpRQwTr9mR8cI1fzunawfV4EVl7ZzUksGR5y0bsPXshusy3Z6UaArxeToVFe96EoW9lByi4RJFO9kyddKoO5R49ke75p5dscGFiH4YcyHyolDm+YNy36qlDB2SENx2QdBlAIv+h8cGYODElkoy0YCjA/9wmxofTvXFsyi+tQEhNW6xLxSefeql9ZCvwOvO6WlUAqqR0UbiMY05inRs7iYQoAlTlooUXMrDjcj6Mc6ZTFLaCSk0wGhL7c7AIl1JtElaW0imsVhZDg== 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=ntaiIU14/W2D+zB5SW3xpqnDk4e3kdyR9VP1hT31Dmg=; b=c7k2oUCbkQiD/wuv3kD9FZVrQ//rGXT4YV4XUw7LaJ0NT8EAAOHWBnqZ8Rd14ypYPARb5Ja/EUsO9VonB9WNa3HB5hxTcGYYYAFo6odWD12hgrV3z5CfRhtV135FA+M7lRN4+0pC4IFonYO11Rku3ZWJ9ZnBi1k1a8kwwXz+BD2wugclRB45/b+xBgMFmY5B8HJXoBjdMi8G/FW7Hybx2pL/g8xnB6kOYnh41YASPtRk15FHDCbl0MEvpBhcqE/cu/OLV/U2n2h29Ck3k2115d5kx7fN4zdidGl6SfpqYXFY2wKS3U7ZB6VdvrHgnocYEg7oJ1gQrMd90gRHbZ24IQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ntaiIU14/W2D+zB5SW3xpqnDk4e3kdyR9VP1hT31Dmg=; b=GvHP36jgXtTsYUuSP71ZGGY9rNZm/IP5BEaQ41E75apysvPz6wWmvCIB1uazWP+2KXTFrVMgP5ULOLI9gLkAK5dOR2mbrExDwR/yxc1fkdhBO4kyMJrg7hlVcl6djvBGn2c2zdmDrCX1AyupEtNgk53feI4aRhQ6RUkF1AAzQHk= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:11 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:11 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Ye Li Subject: [PATCH V2 46/49] net: eqos: add function to get phy node and address Date: Mon, 27 Jun 2022 11:24:52 +0800 Message-Id: <20220627032455.28280-47-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0af7bbec-348e-40ac-6eaf-08da57e6ea5b X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pabUTa4sjkdNmtRQ4qvpdro/RFxhwAIM8PzJKVogrFL1fF7Lvv/lCbQ+iuv4CPeIQ/5XvG2Lg9/yZPkreTOMRhKs7Qcu3Cq6Q+X337gbzaR0kX2cjDTjZrsDHFJR4/iuIQo8NLusMhG5A7zkJfcrgEELKGrtxnRDxP6xXJ1o99WzXqvFbEdMVonE9KO/uJviXgwdAB38xj70LdORrDu6g5iCxYXGzmsjfxE0Y3YgI+pDM5i9zYNDD3wZ7L5fEXQg7jozv7XoUFv1Cmrp72S2rpIMH64WDvfiVpehK+deriVo8Ud2s96BpSjYneH25uWOgFOYA9egUKPq0gkLpiFkrYGI6o1ie3E6shElL2CnWwws4Ecs9XebDU8+NsMsmByOH3sZqSRWIxQ0k5LndNK8mOgsIaVyeClG4iVU1FI73H+ktXyGHOESxh2uWX+t4zx4YspQCvODIeX1pxdSobkCbObkz8Q4gz4rW3smpfGyloSPSCaOwaoBnpDn1aWRNPrBE2SEI+6heDEmHtsmOroNhCzmuc+79Qme1Z7aUilHp6xhA4+UrAXw9hFJBkMdXDudPMG/fHOrRwOBBwk/S+r9NUcbJeN+NVFvchWMhMuxvjynXKJ+OQKX9t+O6QIAb2VOwKi6Q+1KVcjkcA82Ps6AXlTo6GGiEK40wS0Lr2YTkwbvqsMHu13NtoXWUKR/0bncH1vklvzkDo0c6uVAcpUQZZPm+X5S++cwQJ0598J35XPbONKlAV5N7LpP+uKfXFw9o9M/S3Y1x3bSqabEoTHxtKYKymqXSD8XaBZjXKz4WXQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YkEN93eNsFzBq4XmZ1PGnGI5VkLgQICCQ3bVuUE8n5epbgae04fb16BQCfr5VM5qi7qL8Bsz8ie8bPBmHvYiWAy3+k+QN9aJjnKvK3OKDGxePm4I/VUZ8vE+CSeOzo+yWSFXgSlXX3bzw69di+06HM0YC9LuwH0imRigvENqHuhewZCGvYgvt2Ou2JO655Din6Ff0HWfXppM3VaBSrwAhogr6MSYN8cAN7V4BuDwRS37W5qvvVS7ikDzpiOjmHh5zEraUvwpiMuRb8t3X2jgmhh8R7sQXPaUMUPqdMDQft207EyFOkR4HujMv2+z9E9nISVt3Gcx7mIVf/MGcfy+/BnPrsABZI+ORUaw1KhJ2eDair3FWnQcHe8H0Uc7ab4n4HLVeI7NWYiRSRvDeKnkEgv538ctbJPx/VHjOUNsi0w24k8Pubs025Xgrlme7Gw/dgKiVB9D5l3Dw+YGjm5pDykDHxKoqOAcT52Jk1FTm6S8i5saebvC5NKqadcZxyam6whR0cBMPaD1AL7rRNh46XnFY8Hcp0aLeGAMuBxR9VFDV705ilrnjJ25mNQQYOP6tpfnImdEoVu1z6eYsza32etSWLqRE1yzSQVRLSPlVhLWECzI+tog7dy0lN0eyJy2MuzbCZYXj9BR053JduzMpstQKM1mTKMU4ZWvFlSIgdvOtoOzqa3Vf97lAUhPoZCy6jNn2bVpKGkUvEiyoMy+jjxN/g6zH9jutH1h94cgF8FPGFFbmobkhY8+mewc/FSQ4amrsB0aKc9rqLa5oTNHjbjD1Vdh0BPA1ih/Bt+tYRFRS82xH6vI/rOyzONJLwnSgpzJc4qH8j4SYeb8IlN/nRnkJql9wq7sAJsiM1V9WFmAd8U/XK/k6z0U2m6RUXWCQP8nY2PEMZqzrOn9pwFY0HuaK/qOlWbUhTtaRcGf80ICc7BUCdEfMQADAFmwkKE3odxVo3aUBAtBdih2sFK8M39Xw1JPO9ZjW1v+LogC2BK9wRJyY458IBei9whJWLYAGtLufyv4DinLcCS7WEaCHgXwzTYW1y/YKPN9y1IKRwO6qGEo1cnl4sSGgUFzXgGAf66DtttqZbp8xfjd9SB8g3x9j8NF37dbCILlZSYlmUjciv6tv5qj8FEKMWaInTxvuqVVP8XSXSAeYAzTNVND+yZuQkcTHGnKkU3TYntdMAx49hHMrIYqe+dHzEu1sAlNhsrBotFojwWT3j34c2KkJi/lHvHStEGmNUj9AHzsSru0Ygp/KGQ4Lm7dvl5PtXTJ+3i8RvJUdXyY+xBuSSN0qynwV0zQo6wgiRvrPpW9ri3vGk18rvWVLmLq/SyVkFsJpmltJFeRfJMYdRORfShQ8Zq8Hpo3wbIpY/MsgPlSgSwhD3VdDl+LRqgVqlNps814/U7zoXfutAuxyHb0Q6ZQXjC2pfwAPdlUCqWipwPv0yidup1HHvYN6tgTKhN92lmcEjlpw/6edDTuXmsJqYldB6FzrsQm/zgbTnAjqcKR/1R8NHJ8p1FXkCGvIeTMm30dzcv4s3mKdTO4b+kj+oHvaNt06Fj2qBX//7E/5pefEQ5BCYvDQxTZB/qpayC/JK1p X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0af7bbec-348e-40ac-6eaf-08da57e6ea5b X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:11.4645 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: R/kNBWa/1TeJ4Ws8bMGsGORJyojB3mLBVKPN6duyxmzGYQQoFwHBnIRAi++lyLAdQABzQsHlCI6M7XYQ4b9ZQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Ye Li Since new atheros PHY driver needs to access its PHY node through phy device, we have to assign the phy node in ethernet controller driver. Otherwise the PHY driver will fail to get some nodes and properties. Signed-off-by: Ye Li Signed-off-by: Peng Fan Reviewed-by: Ramon Fried --- drivers/net/dwc_eth_qos.c | 23 ++++++++++++++++++++--- drivers/net/dwc_eth_qos.h | 1 + 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 1f24f5cb0cf..a4380d17d9c 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -719,6 +719,24 @@ static int eqos_read_rom_hwaddr(struct udevice *dev) return !is_valid_ethaddr(pdata->enetaddr); } +static int eqos_get_phy_addr(struct eqos_priv *priv, struct udevice *dev) +{ + struct ofnode_phandle_args phandle_args; + int reg; + + if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0, + &phandle_args)) { + debug("Failed to find phy-handle"); + return -ENODEV; + } + + priv->phy_of_node = phandle_args.node; + + reg = ofnode_read_u32_default(phandle_args.node, "reg", 0); + + return reg; +} + static int eqos_start(struct udevice *dev) { struct eqos_priv *eqos = dev_get_priv(dev); @@ -767,9 +785,7 @@ static int eqos_start(struct udevice *dev) */ if (!eqos->phy) { int addr = -1; -#ifdef CONFIG_DM_ETH_PHY - addr = eth_phy_get_addr(dev); -#endif + addr = eqos_get_phy_addr(eqos, dev); #ifdef DWC_NET_PHYADDR addr = DWC_NET_PHYADDR; #endif @@ -788,6 +804,7 @@ static int eqos_start(struct udevice *dev) } } + eqos->phy->node = eqos->phy_of_node; ret = phy_config(eqos->phy); if (ret < 0) { pr_err("phy_config() failed: %d", ret); diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h index ce90e1f1ce1..f470189e8d4 100644 --- a/drivers/net/dwc_eth_qos.h +++ b/drivers/net/dwc_eth_qos.h @@ -261,6 +261,7 @@ struct eqos_priv { struct clk clk_slave_bus; struct mii_dev *mii; struct phy_device *phy; + ofnode phy_of_node; u32 max_speed; void *descs; int tx_desc_idx, rx_desc_idx; From patchwork Mon Jun 27 03:24:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648577 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=GRxgQGMZ; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXJz74fjz9s0r for ; Mon, 27 Jun 2022 12:50:27 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 7390C8455B; Mon, 27 Jun 2022 04:44:27 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="GRxgQGMZ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 22EE78454E; Mon, 27 Jun 2022 04:44:19 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10079.outbound.protection.outlook.com [40.107.1.79]) (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 907D684535 for ; Mon, 27 Jun 2022 04:44:16 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oNXDo2f0iWTxiFndmMGoFZ3fzc0O5vht3wHaJeC0lEV4UbkAGEt7t+ux68JYP6v1sBOn+Apo/SxikObE1uU6dvVQrGfq4PJu7FVKws004tFJQevhLa4iWqAvrVchU+GtVmGz4ZkHzU4yU7pRnfs+kazo/Zz8aUWzpy+nbhrdyw/nBxPQaWoHFR7zfzTdhhYrgAE2nuj+PjZFs4vzNKF/BqHEDM3m4V/qrPvQkGYipzBjdIa2hnZFkRjVsKEW9bMIBNW0MIEQ/NvY1lmeoGhtxzoaDLl5igEPrW9Dg7tikSE5FeHhXy2p42rUU4F+1HTDbYHBttNFS0PXujJrGMwgQg== 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=hCDQPfquaWW8bv9ajOs9BrWB1rjW8KtXJUMTDmylDk4=; b=jr6ORtTgk6Z7i86nCUdmaIPoJBriP1rvPOSH3So26R6KVDoZ/xwOgMFeVcf1EPNx9jWvOu9afEluawWM5QupbLEmgpDJXKnBMuKv56e/gd5azTzHiGAYsExAUKObpFjfwQMuyF9rtjtMluHhsFl1l6e4DEmLt5jhCWEBQJN42lufUo41FzIrlQEUPc7XqgZH/+Owp+Voygx5uOUZVRYYDdfZrJ1g6Lf0eqv5/MGa1dMUjXfYTp0dZDMRJhjTY+DNaLJmemVM2845OB3mt/XJZawsRLsgWVPMXVYH1B5BWhZYFW4N7NUu4XSDg6tBGwbNvoMEyk3UeJ93QsORF+0pWQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hCDQPfquaWW8bv9ajOs9BrWB1rjW8KtXJUMTDmylDk4=; b=GRxgQGMZQHaDs36e5z7gzIDwzPK2MGqmfCYz+I/D2wWmj8b7oOj/Njunc+2NMsIaQvt3cM0Iu5Vk3ymYkkUFonASWlwqRx/vedwEBWDbcB5GxNq4/q1VbNjjIs3ymj7Y9iPDwQZtl6aaYRKVi2HUFmuSUTlE2kjDtjm1M2XGjdU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:14 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:14 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Joe Hershberger , Ramon Fried Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 47/49] net: dwc_eth_qos: intrdouce eqos hook eqos_get_enetaddr Date: Mon, 27 Jun 2022 11:24:53 +0800 Message-Id: <20220627032455.28280-48-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: efbc696e-9be4-4050-a701-08da57e6ec2e X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Vb875CztsyHb1mnYqnhMUUT7ttDTdtraNvmdT4nI7Q9eBJEfTIzZ6RcGE4fMdlJmW2WZmGfFZifcgWRQ6ImP8NB2jNubf1BAqgwuZgYAB4tBGQT8nyl/Wndc5+yQSU30ugidsGo0NERZPiZ3nyRBDgQpNuqTL8ygJIjuLp5h6goHWHaT1RBmH3bCwbGtrO8Rdm/Mip+Q/6j6zC2tGGvOI7/kqgFT8EUdYFqHB+SA+XG28Zyy3KjYOiUxjF08U3dGyKFvZNtv7GUKol7aJWqt5sS4k3OHRvsQFomW28r3+WLqdyWv6qvIpqb2RUKOR8qrcQSoLdveqVGfN5nU1ifObXByWlLdekmLvQ2Ub3Gl3jzJlgi8xPxzT9GNR/oB52nSdWf6yK1CjYYwei7TRp/GKYN3Dgsqy0Dm5RrTCFx8t8jBV4KHryTWu+g0kBotbe7ecdfpFJn0abJNpLfLoOqfjz4E73B/v11J3gtdz5Io4bDar3qqCvhApj8DjNNab5qkn3LIVOREC+b2LnTAbj7AgGWa/5POAGK2OyI60sX0QDYMBuqmET3LlA4BAfpoP9/nbJdLAbU6VwyTCYGARQX9l8Z+4c+kfqDQNQx3fY6O763anVwZyWI/V+4m7jdXA0Ui2/wjMV7XiW1xtXKedCd95qxLfyTTIh9pmDq2eP6XxP7OA/MC9c9BIuCre0B96bGgLNsJYoc3P9xe6rJveurH0A5/QMeRgQyc3S6YFoWvz0HyIcnu2Yimu/eTchsQ+5FUKeTOMm7+efVntSmG9S1ntAKUJAmLRykGHerl9bdy6cs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ylGLZzGJLHMfgx+IP8XE2rSyszo3t2cAmxXPYRqpb0tee3K/q0Jj8p7tM537Yr8fRhynNPFFsW3cap2CRVmaBgKxQYZWuemurSsbuyr5mc1zg3tmM+sE4SKhxXKybJ5Kpg+UKxmIH/pePgNH+GZM+8dnZQFsD11Hhdy0Gm6Y/+EAvHMgmnMzJ5SkrN78tLyeFgLmEnkXE9O5iTmv5h8OATc8iQ1U5bE/cw8HOppywG9pG7AekruZudZm1gU7UsbYRQu9pt0+vd8/uVctZ1kcU1/AA+T+7bfwl7O8jLAVXkxSPKnGM7cdGUtSQ4Cjw83PM1uBWXLa9PEY3UmjPSqDzbJi3/rTlLY5o25EOk40nO/48aoQ56V6T1qx4wOtWv5vuMhEzVf52MgsSw06KpL1rs956Kk/K/9YrYlNg7Rwt6I30UtyaCFDOjRwDzhfPgvekdIk9DzKulAhLnVKndyBJJfUnVcEbjoCzQLPPcmS3DPNxgsoP5x8o7E5FHifyAiPuK6mKl5Gnpfse1Uv2nRj3aL1LF/Vmk7VgubqoKDgW8/3MXzTlqBWVVxG2VKj1DXsrit51zWenROcA1gJ3k0EQ6MfjzIwLWvg117UjHjsOMzWCFinVJ94q3z793m5/tDU9WS9MSIC5IrzIFJdK9XyVhdAbhe7Caw7cNCLV8IibVqrIC+e+OGIw5OVbwDUGCrJt2W9Ej8ma/EMsztR3n2ZJ0F/ZBvzwrxulnpmmBkH9jitsG51MX6hAb92sXFB4Wo4JuMhbSi/lv1vutCC1ew31wiW9qTkxZMe2ZTTgLHKWIhBe+JSke6jqGfYlPCQ5UOpsa9GfdmFnz6dkDNBYLs3u5r/9MnZ/rJUC3KiALg+i2Mpwtyu+0LtUoh9PT0M2xeT0KLCJQTzhPVysm9nl3lmKbawNgb/bQkNbPsDnTzhq0nLupbuTp6eni2ncYsExnVcEmgYxDJOrgG4/7zWNTMADni+wZLhSLdxxQMwv+qQgOaUiKxffp7WrAN7SorEZZ/eDxV0EkrWHbl2j5ouBsGu4SDOV1BoIHPA/xZW92uJ2aUBsx53ayC4VDBkwjUR1AHqMR6jz5GCdX1lqnjIcqminlIGrfWr9L7x/Ys1Vip2rLI6r+jSCmX9bkdJ0ZdH8qZW3BBcyimdOqsaWSkPqqdEmL+cnkzvtdgZnPAD0DwlVv/mL17gCE4a2xyw7QRdjtiUln+Kpg/GY8yHF2JAP/+H3BgWrPLQ+047YhrvVahesE+cJ/q1sy/Q+VrGdQvAsZdY7IvIAhDw6mYPXuXl2sEPHtvwieGq2082aUEEx6WC+dcXxhW1JucnppLfs0WihCkSePzA6mU/tTNliXhug6XRqvhudvn2o4gJufF7yDBwda4BIHBLydoAECTnsaOMZtBpZ6GSSfuwmonmfMaGQlq8LjPbgvi+O+8f3FKhiCymDfK0LRhLt/t8kzELR789Z9b8Ni82qRfyUEow3ky+KuSV8WyJUh8ABiOJwwfQrRN+uXT1z+c6ohM0TC9xAMZDqM+tarDr23lPI2jQRFCwy0x4CNuT7E1+fYBA9x1SMRPWs5BLWMPGLMNunA6KkcEAdrpC X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: efbc696e-9be4-4050-a701-08da57e6ec2e X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:14.4652 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NTmxpjtlePc6DAzgfJ09lSVSzhZ9TIvJfaz8I5hwGxbGvKZeT8kxq/cM4WOgnXSNxlfU4/+/KHnG5ei+g0ixzg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan i.MX has specific hook to get MAC address, so introduce a hook and move i.MX code to its own driver Signed-off-by: Peng Fan --- drivers/net/dwc_eth_qos.c | 9 ++++++--- drivers/net/dwc_eth_qos.h | 1 + drivers/net/dwc_eth_qos_imx.c | 12 +++++++++++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index a4380d17d9c..c1f2391d635 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -712,10 +712,13 @@ static int eqos_write_hwaddr(struct udevice *dev) static int eqos_read_rom_hwaddr(struct udevice *dev) { struct eth_pdata *pdata = dev_get_plat(dev); + struct eqos_priv *eqos = dev_get_priv(dev); + int ret; + + ret = eqos->config->ops->eqos_get_enetaddr(dev); + if (ret < 0) + return ret; -#ifdef CONFIG_ARCH_IMX8M - imx_get_mac_from_fuse(dev_seq(dev), pdata->enetaddr); -#endif return !is_valid_ethaddr(pdata->enetaddr); } diff --git a/drivers/net/dwc_eth_qos.h b/drivers/net/dwc_eth_qos.h index f470189e8d4..b35e7742634 100644 --- a/drivers/net/dwc_eth_qos.h +++ b/drivers/net/dwc_eth_qos.h @@ -240,6 +240,7 @@ struct eqos_ops { int (*eqos_calibrate_pads)(struct udevice *dev); int (*eqos_disable_calibration)(struct udevice *dev); int (*eqos_set_tx_clk_speed)(struct udevice *dev); + int (*eqos_get_enetaddr)(struct udevice *dev); ulong (*eqos_get_tick_clk_rate)(struct udevice *dev); }; diff --git a/drivers/net/dwc_eth_qos_imx.c b/drivers/net/dwc_eth_qos_imx.c index 2d1b5104af2..42cb164ad14 100644 --- a/drivers/net/dwc_eth_qos_imx.c +++ b/drivers/net/dwc_eth_qos_imx.c @@ -92,6 +92,15 @@ static int eqos_set_tx_clk_speed_imx(struct udevice *dev) return 0; } +static int eqos_get_enetaddr_imx(struct udevice *dev) +{ + struct eth_pdata *pdata = dev_get_plat(dev); + + imx_get_mac_from_fuse(dev_seq(dev), pdata->enetaddr); + + return 0; +} + static struct eqos_ops eqos_imx_ops = { .eqos_inval_desc = eqos_inval_desc_generic, .eqos_flush_desc = eqos_flush_desc_generic, @@ -106,7 +115,8 @@ static struct eqos_ops eqos_imx_ops = { .eqos_calibrate_pads = eqos_null_ops, .eqos_disable_calibration = eqos_null_ops, .eqos_set_tx_clk_speed = eqos_set_tx_clk_speed_imx, - .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_imx + .eqos_get_enetaddr = eqos_get_enetaddr_imx, + .eqos_get_tick_clk_rate = eqos_get_tick_clk_rate_imx, }; struct eqos_config __maybe_unused eqos_imx_config = { From patchwork Mon Jun 27 03:24:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648578 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=j69YY3N2; dkim-atps=neutral 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=) 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 (2048 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4LWXK95vSNz9s0r for ; Mon, 27 Jun 2022 12:50:37 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id A986B84561; Mon, 27 Jun 2022 04:44:29 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="j69YY3N2"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 7CC7784477; Mon, 27 Jun 2022 04:44:22 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10047.outbound.protection.outlook.com [40.107.1.47]) (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 9B53F84548 for ; Mon, 27 Jun 2022 04:44:19 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XT2dzovz3EJCXyR4VuGhOLsqtcLdGLQwvpvjf90xF4FBwEdwKxXU0tTjs280EiohRrCgyPkJS0hRYsFsd7Nj/xGZ7w1Fq6kWWBameS1+/cWBdAEOF95GM4C6Wfu3tlJSMvGlQqhoc7Y0tEolnxV/HadY0P/t7DGrzFhriFnYp/i7FZZlqmASQ6n9iTrPhDsH2EN1WP2YvMJYmdMdKjkddWEhTlh2LrtaV4czh3SnCZdpDsY4R7UlYQEaUorijKQJkJ/yUQLGm+FlNVlEdDxqpWFXqFKdnm85x77fknFEMsNgavUAkxmsTagwotuTW9gTxBofykFZa0EaTqGr/7ZgNQ== 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=UzABcQz+zK/aaAVCJqk59tc5dN/Y1v/l6CNJk/zAosU=; b=Q1XeKGG9nHevm6VY04RuLwLtHvgQcm6tSX44YDBa2H1lzhl/xGJoWYVzaeIa8f8EeUmdzXwr+JptWJowpeu5xhhIMvCQ4yQd9GOXjQPp13JLmTHXdHnbDuxhAPsyddLFp5r+W0597iBvfokN/g9SP58HvZTsPoHVkNm+iaLGAiaT24iUhPMY6tv6/qawpuhRKj1bpsypUPjHzuKtSB9zhGw8motdLO/8C5NJCvmyiGdHUPGQC0UXdp2ksKnHXNc1OgyIEpI/KypoD4c2yudoKjUXxKuHqoyJJvDbu3pY9g96OY+KAcer2qNQ6jFpWg71n5BwJpTToVDgCjJKJSPRdw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UzABcQz+zK/aaAVCJqk59tc5dN/Y1v/l6CNJk/zAosU=; b=j69YY3N2FI+rLp5yPd1pKDi7LRct4kQrAmovbt+6HxGXVnjdWgUuhAoMyOCNZ1r0f0CokiPI/r8K1+BJuE7PueYJZ/qJofybUnezj8Qqt6LyhcfVx9BtlP9HF+BPBfgzTMa/UZNgtviWb9qOZsiypMlVFqC/Tec3/TFw1ug+HiY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:17 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:17 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com, Peng Fan , "NXP i.MX U-Boot Team" Cc: u-boot@lists.denx.de Subject: [PATCH V2 48/49] board: freescale: imx93_evk: support ethernet Date: Mon, 27 Jun 2022 11:24:54 +0800 Message-Id: <20220627032455.28280-49-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: bcb19b50-3fb0-4b00-b5df-08da57e6ee11 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ue8c9V3ArX6pjX/2Pk/eVeuECJc6X5tyE0D3fgmWVHdAeE03pbhUyhGOnWGbbucS2rIAZ9THsvxbHp6ttQ1zii2Y25kDD7Emi6sObaWnns0FlKjzyptXl+lyOodwUKR/GUt1hXRWB5nUJRiD9nS9kQtOsLDD2mWSVKUNO4f5YYhT65+ZRKdQKUE4XRhy3uIu2rDegrt3vtCFTK/AzkwNbxxgKn2eS/VchY6XIsLuETyB3Oqz1s3dylmoZ51JcEfqrAPP86oYsWRH0O9k73yXMte0oMOFOM6GOP+3bgSfVjr/H3gphY3o5Caz8pKRytuayT9zjsex8KT77u6k5FD5fGUmxr7NeSYFaoR9JxhoTIhWFIbs9I0t2BW2iU5wObh+62sMSn0R99onauG3Zw/y3PTothT11QVLqQ4f3NhwPj13MLnY6R+0wfcSlHAxEYICCCLrhzBMrYb7W6emv4UO/A4SOYqJxDDqkPI6AyGp0c/uu/aOQkWtIFBzkbouRnxjdl3SlIcE/KS36/tGHwXuL2en2TAW7wmcBBEyje05pq6VLRmxrVYJJsx1cd+DFAtF6Uw8cKJpqUl1OUB4NXSGzTKl5L4lpOkTli3KX0SclwlL9vsOONktJHP/Kkma/Sr7CmTI/KYoEHJzkLtrXkRL38zU8708gijdRly/dp1Ot5N/P5PflyhPKDw5VeQO86aiAsZjzIWIem9PUs2NVOCvpHO1pZxoE5WHaRElt/Oc58GmpDvKS2O73JgWZRtKI62flxaYqyzuavGTvUrvzCbmrMrf5kU9gPj+Gjfaf88L6zM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(110136005)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: q4titMZ7GYaAEKNuxClH2J0r38+MTv7GVumx3p9ImLUd1B+H5rWubFEsXuJVl9U9ZL75ciVZLwUua8dRt9TWUSNifRdfj9cfO1BL2r0d3I0pbebrppYwq5i0eDg3O+ogPrvARUtleT8YLqKxxJ3cvGiUZZi4pFiRUsfdQujis3Y2oDjqTmTpq3KuoaJPHHiF2o4xIvq2vkZ/Lej2l3kdW3lcd1s9/NR1LImVBO4Mi+RwRG122Ps0bAycBh2gsURF1SbB1zJVfDC5+M+D7EXBzEalKkGFmkAevpmMfdTJvbEC7NxftlX3q1Bx2FSEF2P39ewxk8vwpnZ/3vQfz+E9WwGmim00vosst7dOyCUdLPUIZcUbu321/SvcOe1rkvlYF2CL1JwIle23B4iGQWJTRDTiViFnN1AI3AazzUwint60v2dyPdYPc0u93zwxziHSuaSdn03jX95thTztIVOqXCYFT97a79eDUGi+sfzW2ugbm+xhFl/kU1bPJDrZwE0KcsY9DIagQOHDD8ntntlRZEOi0qAmg/hhKxD9bX1QRtmq8xlTvqge/7LDMfkhKc196WR2MC0YGOGYFA/B1+Z0isi//X/NlfW1eEgrOfyGW3eiOxY8xMzexJz2RcBO/8hfev1A+d9HnGzLNZK2ua0HeixeaQyihE04LjrcEqxg5S9KFwdwcMUkI3ENg5e3QIO+DXqLThWKif4Ij/XShhmluZfRyNTOyx8IK0faadV3EfTwvdkKKwDZSIG7X9ARPuWReQVUEbNIqFYkBn1CU3N9zllgIq7asTliZ03wrI4jmEwIj83NV34Ki+E0mNb2V3jK12gci4pJJTfI4vR/ebfBF2D9A/cI+++YndD8mRbzoD3ohHM0KhxpFA6fcmZpmFZLmlr5u9Z3MnQLhA0y8DHIo9GfOKJuM88RB35ZxIlu9ImlDBZl7iUf8RP6SPbsbIHYdkSVod1+LfpYVp8l19Jit/nAQ/qXtL3gT+q1A2ElLNpzASHZ5bJ7JwI76wEPZB0KHyT4nprGC5dqR2WTage9MYTHsqiHiquV61178Jo3nSLwqX/2stx/SM6B4RaCr9GLSpbDqEZ4yaFRI0+YuR1Oi+UPfo62iutTB3sfNKBvHXbEPsE8zJNrIUFAs7HpVIwgJsr1tpEgCdW8NT7xJi2sDhewJ6K6DmXMoUUfLBGS/1pz2Aj7oJ1nAbrIHmIN2Dn/bRJuJ86tj1dIZaxmjoLOqe7JsVEfUTQPjEEQ8tP57PmpS9RJ+JUKr64L8uwSBXP1fHLoTtFEOtx+asznyw4zM/42bJWf0U0zXuMbAxU4IkbUkAHupTfz9HbHN6C3qDYk6wrEBrXqlBgbvXzpIkAZ21JGHmdSPH/0qI2j0nskSv9Q6PL7wJzQAP4Ob327kkU7Cm/m+B0flMo4BECchPTfIKECEIhMQZixku/vOvNuJtVBNQNAupJW2I0D/aOs/nrS2FMKQvfYQab971hf7fhO/9p0n5D9peasxNsjxvUKw08FRPEyezk4EsJ/dhhytIKTR+ldSoHrk2fZQ5+BIQOaEMEsz5tgKhLlhjfK9ynu+yMLU9Uyph/YKfk0Ao/YQLiB X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: bcb19b50-3fb0-4b00-b5df-08da57e6ee11 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:17.6297 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Od4EbFLKJSVp57mQREBYsj8OY6ItTsgfBYG9yiSQbpyik7h/NdmQ4FIIj5Ykclj9wI8lAz/0GcNZiSFj3E/IPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Add ethernet support Signed-off-by: Peng Fan --- arch/arm/include/asm/arch-imx9/imx-regs.h | 7 +++++ board/freescale/imx93_evk/imx93_evk.c | 32 +++++++++++++++++++++++ configs/imx93_11x11_evk_defconfig | 9 +++++++ 3 files changed, 48 insertions(+) diff --git a/arch/arm/include/asm/arch-imx9/imx-regs.h b/arch/arm/include/asm/arch-imx9/imx-regs.h index 049eca4f3a7..f575805c7da 100644 --- a/arch/arm/include/asm/arch-imx9/imx-regs.h +++ b/arch/arm/include/asm/arch-imx9/imx-regs.h @@ -7,6 +7,7 @@ #define __ASM_ARCH_IMX9_REGS_H__ #define ARCH_MXC +#define FEC_QUIRK_ENET_MAC #define IOMUXC_BASE_ADDR 0x443C0000UL #define CCM_BASE_ADDR 0x44450000UL @@ -39,6 +40,12 @@ #define SRC_MIX_SLICE_FUNC_STAT_ISO_STAT BIT(4) #define SRC_MIX_SLICE_FUNC_STAT_MEM_STAT BIT(12) +#define BCTRL_GPR_ENET_QOS_INTF_MODE_MASK GENMASK(3, 1) +#define BCTRL_GPR_ENET_QOS_INTF_SEL_MII (0x0 << 1) +#define BCTRL_GPR_ENET_QOS_INTF_SEL_RMII (0x4 << 1) +#define BCTRL_GPR_ENET_QOS_INTF_SEL_RGMII (0x1 << 1) +#define BCTRL_GPR_ENET_QOS_CLK_GEN_EN (0x1 << 0) + #if !(defined(__KERNEL_STRICT_NAMES) || defined(__ASSEMBLY__)) #include #include diff --git a/board/freescale/imx93_evk/imx93_evk.c b/board/freescale/imx93_evk/imx93_evk.c index 77b92b35db4..f111b99fc2e 100644 --- a/board/freescale/imx93_evk/imx93_evk.c +++ b/board/freescale/imx93_evk/imx93_evk.c @@ -38,8 +38,40 @@ int board_early_init_f(void) return 0; } +static int setup_fec(void) +{ + return set_clk_enet(ENET_125MHZ); +} + +int board_phy_config(struct phy_device *phydev) +{ + if (phydev->drv->config) + phydev->drv->config(phydev); + + return 0; +} + +static int setup_eqos(void) +{ + struct blk_ctrl_wakeupmix_regs *bctrl = + (struct blk_ctrl_wakeupmix_regs *)BLK_CTRL_WAKEUPMIX_BASE_ADDR; + + /* set INTF as RGMII, enable RGMII TXC clock */ + clrsetbits_le32(&bctrl->eqos_gpr, + BCTRL_GPR_ENET_QOS_INTF_MODE_MASK, + BCTRL_GPR_ENET_QOS_INTF_SEL_RGMII | BCTRL_GPR_ENET_QOS_CLK_GEN_EN); + + return set_clk_eqos(ENET_125MHZ); +} + int board_init(void) { + if (CONFIG_IS_ENABLED(FEC_MXC)) + setup_fec(); + + if (CONFIG_IS_ENABLED(DWC_ETH_QOS)) + setup_eqos(); + return 0; } diff --git a/configs/imx93_11x11_evk_defconfig b/configs/imx93_11x11_evk_defconfig index 8a396ed1c13..1f59f7e365d 100644 --- a/configs/imx93_11x11_evk_defconfig +++ b/configs/imx93_11x11_evk_defconfig @@ -75,6 +75,7 @@ CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y CONFIG_SYS_MMC_ENV_DEV=1 CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_NET_RANDOM_ETHADDR=y CONFIG_SPL_DM=y CONFIG_REGMAP=y CONFIG_SYSCON=y @@ -89,6 +90,14 @@ CONFIG_MMC_UHS_SUPPORT=y CONFIG_MMC_HS400_ES_SUPPORT=y CONFIG_MMC_HS400_SUPPORT=y CONFIG_FSL_USDHC=y +CONFIG_PHY_REALTEK=y +CONFIG_DM_ETH=y +CONFIG_DM_ETH_PHY=y +CONFIG_PHY_GIGE=y +CONFIG_DWC_ETH_QOS=y +CONFIG_DWC_ETH_QOS_IMX=y +CONFIG_FEC_MXC=y +CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_SPL_PINCTRL=y CONFIG_PINCTRL_IMX93=y From patchwork Mon Jun 27 03:24:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 1648579 X-Patchwork-Delegate: sbabic@denx.de 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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-NXP1-onmicrosoft-com header.b=K9glxpdQ; 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 4LWXKM4cR8z9s0r for ; Mon, 27 Jun 2022 12:50:47 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 738098456B; Mon, 27 Jun 2022 04:44:31 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.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=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="K9glxpdQ"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id C9FF38455A; Mon, 27 Jun 2022 04:44:25 +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=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10078.outbound.protection.outlook.com [40.107.1.78]) (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 CC7FC84533 for ; Mon, 27 Jun 2022 04:44:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=oss.nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@oss.nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X+f2sFzuV8CVW40UzxzCXsed4MsN8la/5tQF1LXMgLFzr2cPVEGYEGR2yN8ZiFdxiarglEtjUcbZhIXSRmgxC6wZE4+OO5/70laur4k/VOBJBHr5+TE6QjRduJijWuE6jfsFPOceq9Onz1ua4MixPDILcBq7zi6KT93maLCQkS9oClsUxe75G7Aj3A5BKeeLisu21TpLW/C5cQ0xDHhGuAbneiloVr0Z0Hd/KJklHS5Au3Nk6VQYt2Nox3qq1G5wJkdUW0cvO8AB3NtqVpvfTd+5M0vJCS1BcE6l3kWwvmDI8Sl//0ibeVG4UPxFlPLsA+AxLeZfHFKS2cIW4jcOVA== 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=FMKIMwPj9rtm4k7Ekj8mu4H3tksL724qb4/L5f4s8wU=; b=RFU41B1c8bGolthkaWLH9sHYY8klAViixqt8Ty8HdnC0maFypjkKLFbKfyGSDeD2a3V4qJ91fxk9n3TkCt3+HN/eY4vr0QcFKDPLINQXYWdamcinpUE5TuKqkF+pgtR0i7utx4A63+NDfopHrROjVeo1JZ1VpEkDYm39c8h/dI63QCmNmzQAhocZa7ADVcqEIZR0bnD25/SG0bFEpEsuwSAn8AytGIE2vJa3f67KX533DD5pCSJVlIDMqVHXsIqJYtHmYOIVTaKZxCPCg8UveqdZJQMAcR3Ajt/ch/pd9zkMnHpOC31zO3fWJ1eVN+HkJTNPBfb7NzCIBvL3UceY/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FMKIMwPj9rtm4k7Ekj8mu4H3tksL724qb4/L5f4s8wU=; b=K9glxpdQM+h48osiIrNnnrBMshvS5wK/4F2fOKkpGmBqQRUvcm1wRGFIyXlADBekvhLnuWUjHneOWVsw1cEibII8PZJv3bD8zg9kbVvoPGJIWOExKY6ekrSDeo2tK+ptNeUz710LXfI4HkMJcqLRAncUeH0+/rRtf8Q6ncIDtdU= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by HE1PR04MB3049.eurprd04.prod.outlook.com (2603:10a6:7:18::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Mon, 27 Jun 2022 02:44:20 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::fdd4:8557:334b:180d%6]) with mapi id 15.20.5373.018; Mon, 27 Jun 2022 02:44:20 +0000 From: "Peng Fan (OSS)" To: sbabic@denx.de, festevam@gmail.com Cc: u-boot@lists.denx.de, Peng Fan Subject: [PATCH V2 49/49] tools: image: support i.MX93 Date: Mon, 27 Jun 2022 11:24:55 +0800 Message-Id: <20220627032455.28280-50-peng.fan@oss.nxp.com> X-Mailer: git-send-email 2.36.0 In-Reply-To: <20220627032455.28280-1-peng.fan@oss.nxp.com> References: <20220627032455.28280-1-peng.fan@oss.nxp.com> X-ClientProxiedBy: SI2PR02CA0020.apcprd02.prod.outlook.com (2603:1096:4:195::7) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 83c144fd-0241-4509-628d-08da57e6efa7 X-MS-TrafficTypeDiagnostic: HE1PR04MB3049:EE_ X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7EcDoFf/qJGuieI33E/cZCXas42/iBTni4Vk8C1aZcav2dJhqpxOgh2FhMpZ0fiI8zGVQ13VCS8lFBZ28zI1ZVfKAEu5l6spn4proGRLgAtdO8i2PPZoXNP7lJo4z6ok0W4fOX89jDClFIxh8t18ugoKNGYS99qalm67YhvFarVjYjYYKV1qoXWGc5jWCkN2TA3Hq3iqEfyLZeamzR6B5lONaj2TZdUIVpJUcojvoA6XBDOqeGgyXrJRm0SzsF8jG6hKwI5p9/LI/kACH6aeVot6l1Z8Im9wK9+1o+YxKNZZER3qrqmVYn6O0QSnLMPC7vURjfZ5NzHK7AJCcYt9KVUH1zRF4y0M2Aayr1WSg7kITOZV6uetaH/mJvoCOL1IgAgxd1z0SGzWn4tRp118wO9FPJZlQobK5ZOsROTNFgFLN4qMmvA32B9A9mgbpo02n9dHLrQ21ac16SmFHi7TefNTH0abN2UD8oCkL5nw9zw0PW1vcL0ZIFkIXnSfqEPwzL72Qfaq+igZL2u2Nsii39iP4A1E5icGvi4mdUcXOm25aqxOFH0gRs6UjCcnJLPea+jyqrdsY4io0lt+pjNzJIB7Zxa+4vACIvmG4gbzEj/xLL0dEX2Cc2F8U9OD5dHEiRYp08IaJyDPhPvYcufdHqmk9NUNlTL6wYpjpcz6kwcqYG69lyyuDv+PFrIK+2YwFwGTu+NpTXP7vRhppZu39u5148jvql2dkg5X69CVeBpB+vyAxOmTgNM11smPP6rTkNVorI0rsH9gQHQxrGtPghBwaOwUT21YoV3mCYSKTio= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DU0PR04MB9417.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(346002)(376002)(396003)(39860400002)(136003)(366004)(2906002)(66556008)(316002)(2616005)(4326008)(8936002)(6486002)(38350700002)(38100700002)(8676002)(66476007)(66946007)(52116002)(83380400001)(86362001)(186003)(41300700001)(6506007)(478600001)(6666004)(5660300002)(6512007)(1076003)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: AySlubuXuF2ZTWFQg5ugKjmDwL9vTj96e7yxQxopPhvIj/3QEHdyDzoGlAHhVHAWrmKxvKR2WGDHNTC2XhhF1LD4COm4lr9O2ADnkJWQm/qem65U1EW5W/VTZ2v5Wv1z2xBatS1rwlxvUTErzl6JdJSiBntjID+Zb2EIbZstRaMZaJN6JT3WtZiNzlVWvj/IcwDPQGAgjMFw6F8/DbjsgsmmAkMg/nfRWHqHfkLcRziZulRLLSwWYYTXQPyAy8dd9ETdyDUNtlm7V+O76riObBw6KX1kkOonTKY8jQL3gmm//vhvoKEXR5XdF9wfIPEAdOI9xJg7hcSbV/rKnvFZ2aISo0Bx/O2Cf2ih+D5dt06/aUUwtKK1glNTl9VigCvgfRCPw8cBaKKlqswmLS58Sp0bPnrAobYuwwYDxYXVI8SuzYBCURcYU7SVcl6cJ3LBcLLKWBIu5D5xnk7aivCUdvC5uoIH/XzUwUtYjAleNxOFgygG0drM2SYhV7TGrktWTWJuqYb6ldqytkqo/ex0PzHa8anfv7Z6DNBW9NAN0W2tJj1DXIhyt6lURHVkyYVlvtx2bsgI+6aKDL3pj8YGWEG51B+rpJmx2un+9vajfc+z/mbqdonadbJueN3408DyQm+BRsZfhiUUQOO6Wh5JGHYVPwZCkqV+nJpHlS+XPhvU230zgk9Q9RexxQ4RG0SKbaikag70ugyv0+CBisCadZB9IXLmWSCewq0Kp9AYs4K50XQKNcqh1EPoCn7z8XhbOHDv5zl7paTou3txhSvnUdO6HaoE9K5cyKYv2EUetwMIlPzJlLLMHJEkSRGYrLI5rTvqL1lHqj2mbMXX71LuVA9MVvmA+L3Vo9lda0A6ANdEE/OcyUBuzyp9wX8LjoAjkr2/gghKO8NB/3B9Br4CxvFD82hixf7pXImIPPuWxj/ly0f+N78AERdx8oBsAJrKH8mXtzPo9+1wl7WUyMPBPM0wPbrsD0y0QJcBphydaeobCkqUpFYZ4p5N5QkPAyuBRgHKzQiCJWuL/BrD3f6eoi3D6E0aQ/OntwT0LX86uSoJW3xCx4TNNbG8yE4h7WLSOy6Y+SdKokn9mmU5wWOOB24DS49gCkuLbX55rLGP2OgOGPsbYIoqzeXYCaDEYsJDfvW8zxH6G1iQhkwrMHU/N/+jKlL/l47tjDEUInXMC0rQsk6JPRxifF/ML6LliIu6WkwVSSdS6aKCmFoa3wXh05+kGlzDQSsvzutff0cwwFOaWYHQ3sNvbRsIKVHdx9eXdEUq4BBDIgTsnXelZLPeoJ+Of2WTbs1qc9WWVsum/rfCWdEtmfHkUuTuxxotg3uIIDRB6b2o6fHR/IoMq+sO/rsXRL9AJUPNBjEKb7BbfpCs/dDPTXPmwROWqJ17MJos83qAdaFAYqrpMRgui+oD1tgkMyO5oPzLtfbNgqrKlvq0IENnLqAAkMiEb9wFadUn0orU+ipIOGy9m2yyH8tgCYbeBAITeal38tFUZQfqBw8Biy/ZDUt9SubaGr9vMGMMFVvydIK7YEPh/NQMTHLqLPWxIF6oJEZxmtRRspFmvyLJr3UKyWBlwW+dEOaJ7n/w X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83c144fd-0241-4509-628d-08da57e6efa7 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jun 2022 02:44:20.6333 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: NxpKFUIYkY1d9PU5gGO2tVjKL+l+mFcwjTVmOLGqz+pxcgsUz8up/YwboLQVUwX2DB0DUnoPUDiCUhQP1ul82A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR04MB3049 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.6 at phobos.denx.de X-Virus-Status: Clean From: Peng Fan Support build i.MX93 container image with mkimage Signed-off-by: Peng Fan --- include/imx8image.h | 15 +++++++-- tools/imx8image.c | 79 +++++++++++++++++++++++++++++++++++++-------- 2 files changed, 78 insertions(+), 16 deletions(-) diff --git a/include/imx8image.h b/include/imx8image.h index 00c614ab6cc..32064bfeeb8 100644 --- a/include/imx8image.h +++ b/include/imx8image.h @@ -165,6 +165,7 @@ enum imx8image_core_type { CFG_M40, CFG_M41, CFG_A35, + CFG_A55, CFG_A53, CFG_A72 }; @@ -180,7 +181,9 @@ enum imx8image_fld_types { typedef enum SOC_TYPE { NONE = 0, QX, - QM + QM, + ULP, + IMX9 } soc_type_t; typedef enum option_type { @@ -201,7 +204,9 @@ typedef enum option_type { DATA, PARTITION, FILEOFF, - MSG_BLOCK + MSG_BLOCK, + SENTINEL, + UPOWER } option_type_t; typedef struct { @@ -221,6 +226,11 @@ typedef struct { #define CORE_CA72 5 #define CORE_SECO 6 +#define CORE_ULP_CM33 0x1 +#define CORE_ULP_CA35 0x2 +#define CORE_ULP_UPOWER 0x4 +#define CORE_ULP_SENTINEL 0x6 + #define SC_R_OTP 357U #define SC_R_DEBUG 354U #define SC_R_ROM_0 236U @@ -235,6 +245,7 @@ typedef struct { #define IMG_TYPE_DATA 0x04 /* Data image type */ #define IMG_TYPE_DCD_DDR 0x05 /* DCD/DDR image type */ #define IMG_TYPE_SECO 0x06 /* SECO image type */ +#define IMG_TYPE_SENTINEL 0x06 /* SENTINEL image type */ #define IMG_TYPE_PROV 0x07 /* Provisioning image type */ #define IMG_TYPE_DEK 0x08 /* DEK validation type */ diff --git a/tools/imx8image.c b/tools/imx8image.c index fa8f2274876..01e14869114 100644 --- a/tools/imx8image.c +++ b/tools/imx8image.c @@ -60,6 +60,7 @@ static table_entry_t imx8image_core_entries[] = { {CFG_M40, "M40", "M4 core 0", }, {CFG_M41, "M41", "M4 core 1", }, {CFG_A35, "A35", "A35 core", }, + {CFG_A55, "A55", "A55 core", }, {CFG_A53, "A53", "A53 core", }, {CFG_A72, "A72", "A72 core", }, {-1, "", "", }, @@ -117,6 +118,10 @@ static void parse_cfg_cmd(image_t *param_stack, int32_t cmd, char *token, soc = QX; } else if (!strncmp(token, "IMX8QM", 6)) { soc = QM; + } else if (!strncmp(token, "ULP", 3)) { + soc = IMX9; + } else if (!strncmp(token, "IMX9", 4)) { + soc = IMX9; } else { fprintf(stderr, "Unknown CMD_SOC_TYPE"); exit(EXIT_FAILURE); @@ -187,6 +192,7 @@ static void parse_cfg_fld(image_t *param_stack, int32_t *cmd, char *token, param_stack[p_idx].filename = token; break; case CFG_A35: + case CFG_A55: param_stack[p_idx].ext = CORE_CA35; param_stack[p_idx].option = (*cmd == CMD_DATA) ? DATA : AP; @@ -219,6 +225,7 @@ static void parse_cfg_fld(image_t *param_stack, int32_t *cmd, char *token, case CFG_M41: case CFG_A35: case CFG_A53: + case CFG_A55: case CFG_A72: param_stack[p_idx++].entry = (uint32_t)strtoll(token, NULL, 0); @@ -548,6 +555,18 @@ static void set_image_array_entry(flash_header_v3_t *container, img->dst = 0x20C00000; img->entry = 0x20000000; break; + case SENTINEL: + if (container->num_images > 0) { + fprintf(stderr, "Error: SENTINEL container only allows 1 image\n"); + return; + } + + img->hab_flags |= IMG_TYPE_SENTINEL; + img->hab_flags |= CORE_ULP_SENTINEL << BOOT_IMG_FLAGS_CORE_SHIFT; + tmp_name = "SENTINEL"; + img->dst = 0xe4000000; /* S400 IRAM base */ + img->entry = 0xe4000000; + break; case AP: if (soc == QX && core == CORE_CA35) { meta = IMAGE_A35_DEFAULT_META(custom_partition); @@ -555,6 +574,8 @@ static void set_image_array_entry(flash_header_v3_t *container, meta = IMAGE_A53_DEFAULT_META(custom_partition); } else if (soc == QM && core == CORE_CA72) { meta = IMAGE_A72_DEFAULT_META(custom_partition); + } else if (((soc == ULP) || (soc == IMX9)) && core == CORE_CA35) { + meta = 0; } else { fprintf(stderr, "Error: invalid AP core id: %" PRIu64 "\n", @@ -562,8 +583,10 @@ static void set_image_array_entry(flash_header_v3_t *container, exit(EXIT_FAILURE); } img->hab_flags |= IMG_TYPE_EXEC; - /* On B0, only core id = 4 is valid */ - img->hab_flags |= CORE_CA53 << BOOT_IMG_FLAGS_CORE_SHIFT; + if ((soc == ULP) || (soc == IMX9)) + img->hab_flags |= CORE_ULP_CA35 << BOOT_IMG_FLAGS_CORE_SHIFT; + else + img->hab_flags |= CORE_CA53 << BOOT_IMG_FLAGS_CORE_SHIFT; /* On B0, only core id = 4 is valid */ tmp_name = "AP"; img->dst = entry; img->entry = entry; @@ -572,17 +595,22 @@ static void set_image_array_entry(flash_header_v3_t *container, break; case M40: case M41: - if (core == 0) { - core = CORE_CM4_0; - meta = IMAGE_M4_0_DEFAULT_META(custom_partition); - } else if (core == 1) { - core = CORE_CM4_1; - meta = IMAGE_M4_1_DEFAULT_META(custom_partition); + if ((soc == ULP) || (soc == IMX9)) { + core = CORE_ULP_CM33; + meta = 0; } else { - fprintf(stderr, - "Error: invalid m4 core id: %" PRIu64 "\n", - core); - exit(EXIT_FAILURE); + if (core == 0) { + core = CORE_CM4_0; + meta = IMAGE_M4_0_DEFAULT_META(custom_partition); + } else if (core == 1) { + core = CORE_CM4_1; + meta = IMAGE_M4_1_DEFAULT_META(custom_partition); + } else { + fprintf(stderr, + "Error: invalid m4 core id: %" PRIu64 "\n", + core); + exit(EXIT_FAILURE); + } } img->hab_flags |= IMG_TYPE_EXEC; img->hab_flags |= core << BOOT_IMG_FLAGS_CORE_SHIFT; @@ -598,7 +626,14 @@ static void set_image_array_entry(flash_header_v3_t *container, break; case DATA: img->hab_flags |= IMG_TYPE_DATA; - img->hab_flags |= CORE_CA35 << BOOT_IMG_FLAGS_CORE_SHIFT; + if ((soc == ULP) || (soc == IMX9)) { + if (core == CORE_CM4_0) + img->hab_flags |= CORE_ULP_CM33 << BOOT_IMG_FLAGS_CORE_SHIFT; + else + img->hab_flags |= CORE_ULP_CA35 << BOOT_IMG_FLAGS_CORE_SHIFT; + } else { + img->hab_flags |= CORE_CA35 << BOOT_IMG_FLAGS_CORE_SHIFT; + } tmp_name = "DATA"; img->dst = entry; break; @@ -630,6 +665,15 @@ static void set_image_array_entry(flash_header_v3_t *container, img->dst = img->entry - 1; } break; + case UPOWER: + if (soc == ULP) { + img->hab_flags |= IMG_TYPE_EXEC; + img->hab_flags |= CORE_ULP_UPOWER << BOOT_IMG_FLAGS_CORE_SHIFT; + tmp_name = "UPOWER"; + img->dst = 0x28300200; /* UPOWER code RAM */ + img->entry = 0x28300200; + } + break; default: fprintf(stderr, "unrecognized image type (%d)\n", type); exit(EXIT_FAILURE); @@ -797,6 +841,10 @@ static int build_container(soc_type_t soc, uint32_t sector_size, fprintf(stdout, "Platform:\ti.MX8QXP B0\n"); else if (soc == QM) fprintf(stdout, "Platform:\ti.MX8QM B0\n"); + else if (soc == ULP) + fprintf(stdout, "Platform:\ti.MX8ULP A0\n"); + else if (soc == IMX9) + fprintf(stdout, "Platform:\ti.MX9\n"); set_imx_hdr_v3(&imx_header, 0); set_imx_hdr_v3(&imx_header, 1); @@ -815,6 +863,7 @@ static int build_container(soc_type_t soc, uint32_t sector_size, case M41: case SCFW: case DATA: + case UPOWER: case MSG_BLOCK: if (container < 0) { fprintf(stderr, "No container found\n"); @@ -833,6 +882,7 @@ static int build_container(soc_type_t soc, uint32_t sector_size, break; case SECO: + case SENTINEL: if (container < 0) { fprintf(stderr, "No container found\n"); exit(EXIT_FAILURE); @@ -941,7 +991,8 @@ static int build_container(soc_type_t soc, uint32_t sector_size, if (img_sp->option == M40 || img_sp->option == M41 || img_sp->option == AP || img_sp->option == DATA || img_sp->option == SCD || img_sp->option == SCFW || - img_sp->option == SECO || img_sp->option == MSG_BLOCK) { + img_sp->option == SECO || img_sp->option == MSG_BLOCK || + img_sp->option == UPOWER || img_sp->option == SENTINEL) { copy_file_aligned(ofd, img_sp->filename, img_sp->src, sector_size); }