From patchwork Tue Apr 30 10:17:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1093140 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="uNSTHeZW"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 44tcsn3Wtbz9s47 for ; Tue, 30 Apr 2019 20:17:49 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id A807FC21E1A; Tue, 30 Apr 2019 10:17:46 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 4D13BC21C27; Tue, 30 Apr 2019 10:17:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 04FFBC21C50; Tue, 30 Apr 2019 10:17:41 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150054.outbound.protection.outlook.com [40.107.15.54]) by lists.denx.de (Postfix) with ESMTPS id C0D3EC21BE5 for ; Tue, 30 Apr 2019 10:17:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=abCWXI0Y38tTCIR2kMJ+FsRed1+bWkW0RRjKHtcu7Yw=; b=uNSTHeZWNir0B+2Ctr2DUJrXborVUrM94AOBR0yVlxmGdBtftIWNNT854yY01x30ScdSYxou4pnHey3pl+anrnDbEfq3f7SPLP+k2rD4ITrpHkLljdpjqyAUmA7zfJYUg06C6crLuPeMGtyMlYoRZNecjbqtwevmxa2ErsSm3vg= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB4593.eurprd04.prod.outlook.com (52.135.150.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Tue, 30 Apr 2019 10:17:29 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::3173:24:d401:2378]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::3173:24:d401:2378%6]) with mapi id 15.20.1835.018; Tue, 30 Apr 2019 10:17:29 +0000 From: Peng Fan To: "sbabic@denx.de" , "festevam@gmail.com" , "lukma@denx.de" Thread-Topic: [i.MX8MM+CCF 00/41] i.MX8MM + CCF Thread-Index: AQHU/z3qAx/GPtrSek+3eo7EYX2F+w== Date: Tue, 30 Apr 2019 10:17:29 +0000 Message-ID: <20190430103056.32537-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK0PR03CA0057.apcprd03.prod.outlook.com (2603:1096:203:52::21) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 707f0fd6-04bd-4eb2-5a3f-08d6cd550d07 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB4593; x-ms-traffictypediagnostic: AM0PR04MB4593: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3826; x-forefront-prvs: 00235A1EEF x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(366004)(136003)(346002)(39860400002)(396003)(199004)(189003)(5660300002)(256004)(966005)(36756003)(14444005)(478600001)(53936002)(4326008)(54906003)(97736004)(316002)(6512007)(6506007)(6306002)(102836004)(386003)(86362001)(73956011)(66946007)(66476007)(66556008)(2201001)(2501003)(64756008)(186003)(26005)(66446008)(6436002)(110136005)(305945005)(7736002)(71190400001)(71200400001)(2616005)(2906002)(50226002)(6116002)(8676002)(3846002)(1076003)(476003)(52116002)(25786009)(44832011)(68736007)(8936002)(6486002)(81156014)(81166006)(486006)(99286004)(14454004)(66066001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4593; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BZbHauC0WF0P0WNyl9ykw3hULjj0yDj1ld5dBrDz3Lnt6gKgLmeHnGDlKFJALpQ5Kc5hZRClBkGh3I+IbwgqF1KuhR0Yywi9vZzQcXM+7SoFRYE8mDZvWl7ksYQBtCtSWJY4O6WrGe70KA3I36HXYWqDxDlPGG2nGE2qaOLtRvFteYw+LVxgaxqfPWqZe1481QZdaiNU4OVyVGEyRZc2g6oHkDPaxt1zH3V+igBBouq7b1h9D8deaUuXSi8LoDAp+lC3pxtvRsZKvRyh/RX/dEIQNsCshQ2dCBEqzUELeTFf1Wi2sisYFf6v23vFX8oJypdyVwK6kv6I4zMo4TW4AxXTXv8DbcZ0S+WxK4BBUXphlIMuYz/Q+OrD8NUG0ycWWMGtv50rEgHaxjPkW1eVqRStnMPThYGi5IReFfS40ws= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 707f0fd6-04bd-4eb2-5a3f-08d6cd550d07 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Apr 2019 10:17:29.7861 (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-Transport-CrossTenantHeadersStamped: AM0PR04MB4593 Cc: "trini@konsulko.com" , "u-boot@lists.denx.de" , dl-uboot-imx , "sr@denx.de" Subject: [U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 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" This patch set is based Lukasz V3 CCF patchset, [PATCH v3 00/11] clk: Port Linux common clock framework [CCF] to U-boot (tag: 5.0-rc3) https://github.com/lmajewski/u-boot-dfu/commits/CCF-v3 Added a few fixes to Lukasz's v3 patchset. Introduced clk-gate/composite Added set rate support Per my understanding, U-Boot CCF will not support mux reparent, and support rate prograte setting to parent automatically. So new clk feature added follow this rule. There are many warnings when importing linux ccf code, I did not modify them all. The rest patches are for i.MX8MM, part of legacy clk code are still kept, because we are hard to enable CCF at very early stage, we set malloc space to DRAM when dram initialized in spl stage, so we have limited SRAM for uclass dm and dm clk, so keep the DRAM PLL related setting with legacy clk code which use small ram. The u-boot-spl.bin now is about 100KB without ddr firmware,usb stack and hab, so really large...... I am thinking what we could do to shrink the size, welcome any suggestions. Not expect this patchset could be merged, because of the CCF/clock code change, but since the clock part blocks i.MX8MM upstream, just would like to speed up the development with community and move on. Peng Fan (40): clk: correct get clk_x pointer clk: fixed-factor: fix get clk_fixed_factor clk: introduce clk_dev_binded clk: use clk_dev_binded clk-provider: sync more clk flags from Linux Kernel cmd: clk: print err value when clk_get_rate failed clk: mux: add set parent support clk: export mux/divider ops clk: add clk-gate support divider set rate supporrt clk: fixed_rate: export clk_fixed_rate clk: fixed_rate: add pre reloc flag clk: imx: import clk heplers clk: imx: gate2 add set rate linux: compat: guard PAGE_SIZE drivers: core: use strcmp when find device by name ddr: imx8m: fix ddr firmware location when enable SPL OF imx: add IMX8MQ kconfig entry imx: add IMX8MM kconfig entry imx: imx8mm: add clock bindings header imx: add i.MX8MM cpu type imx: spl: add spl_board_boot_device for i.MX8MM imx8m: update imx-regs for i.MX8MM imx: add get_cpu_rev support for i.MX8MM imx8m: rename clock to clock_imx8mq imx8m: restructure clock.h imx8m: add clk support for i.MX8MM imx8m: soc: probe clk before relocation imx8m: add pin header for i.MX8MM imx: add i.MX8MM PE property imx8m: Fix MMU table issue for OPTEE memory imx8m: set BYPASS ID SWAP to avoid AXI bus errors imx8m: soc: enable SCTR clock before timer init serial: Kconfig: make MXC_UART usable for MX7 and IMX8M clk: imx: add Kconfig entry for i.MX8MM clk: imx: add pll14xx driver clk: add composite clk support clk: imx: add i.MX8MM composite clk support clk: imx: add i.MX8MM clk driver imx: add i.MX8MM EVK board support Ye Li (1): imx8m: Configure trustzone region 0 for non-secure access arch/arm/dts/Makefile | 3 +- arch/arm/dts/imx8mm-evk-u-boot.dtsi | 92 + arch/arm/dts/imx8mm-evk.dts | 235 +++ arch/arm/dts/imx8mm-pinfunc.h | 629 +++++++ arch/arm/dts/imx8mm.dtsi | 733 ++++++++ arch/arm/include/asm/arch-imx/cpu.h | 6 + arch/arm/include/asm/arch-imx8m/clock.h | 493 +---- arch/arm/include/asm/arch-imx8m/clock_imx8mm.h | 387 ++++ arch/arm/include/asm/arch-imx8m/clock_imx8mq.h | 424 +++++ arch/arm/include/asm/arch-imx8m/imx-regs.h | 75 +- arch/arm/include/asm/arch-imx8m/imx8mm_pins.h | 691 +++++++ arch/arm/include/asm/mach-imx/iomux-v3.h | 4 + arch/arm/include/asm/mach-imx/sys_proto.h | 8 + arch/arm/mach-imx/cpu.c | 12 + arch/arm/mach-imx/imx8m/Kconfig | 17 +- arch/arm/mach-imx/imx8m/Makefile | 4 +- arch/arm/mach-imx/imx8m/clock_imx8mm.c | 292 +++ .../arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} | 5 +- arch/arm/mach-imx/imx8m/clock_slice.c | 461 +++++ arch/arm/mach-imx/imx8m/soc.c | 112 +- arch/arm/mach-imx/spl.c | 8 + board/freescale/imx8mm_evk/Kconfig | 12 + board/freescale/imx8mm_evk/MAINTAINERS | 6 + board/freescale/imx8mm_evk/Makefile | 12 + board/freescale/imx8mm_evk/imx8mm_evk.c | 90 + board/freescale/imx8mm_evk/lpddr4_timing.c | 1980 ++++++++++++++++++++ board/freescale/imx8mm_evk/spl.c | 216 +++ cmd/clk.c | 2 + configs/imx8mm_evk_defconfig | 52 + drivers/clk/Kconfig | 14 + drivers/clk/Makefile | 3 +- drivers/clk/clk-composite.c | 165 ++ drivers/clk/clk-divider.c | 92 +- drivers/clk/clk-fixed-factor.c | 2 +- drivers/clk/clk-gate.c | 151 ++ drivers/clk/clk-mux.c | 76 +- drivers/clk/clk.c | 8 + drivers/clk/clk_fixed_rate.c | 9 +- drivers/clk/imx/Kconfig | 9 + drivers/clk/imx/Makefile | 1 + drivers/clk/imx/clk-composite-8m.c | 170 ++ drivers/clk/imx/clk-gate2.c | 15 +- drivers/clk/imx/clk-imx8mm.c | 415 ++++ drivers/clk/imx/clk-pfd.c | 2 +- drivers/clk/imx/clk-pll14xx.c | 377 ++++ drivers/clk/imx/clk-pllv3.c | 2 +- drivers/clk/imx/clk.h | 106 ++ drivers/core/uclass.c | 2 +- drivers/ddr/imx/imx8m/helper.c | 12 +- drivers/serial/Kconfig | 2 +- include/clk.h | 9 + include/configs/imx8mm_evk.h | 199 ++ include/dt-bindings/clock/imx8mm-clock.h | 244 +++ include/linux/clk-provider.h | 74 + include/linux/compat.h | 2 + 55 files changed, 8728 insertions(+), 494 deletions(-) create mode 100644 arch/arm/dts/imx8mm-evk-u-boot.dtsi create mode 100644 arch/arm/dts/imx8mm-evk.dts create mode 100644 arch/arm/dts/imx8mm-pinfunc.h create mode 100644 arch/arm/dts/imx8mm.dtsi create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mm.h create mode 100644 arch/arm/include/asm/arch-imx8m/clock_imx8mq.h create mode 100644 arch/arm/include/asm/arch-imx8m/imx8mm_pins.h create mode 100644 arch/arm/mach-imx/imx8m/clock_imx8mm.c rename arch/arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} (99%) create mode 100644 board/freescale/imx8mm_evk/Kconfig create mode 100644 board/freescale/imx8mm_evk/MAINTAINERS create mode 100644 board/freescale/imx8mm_evk/Makefile create mode 100644 board/freescale/imx8mm_evk/imx8mm_evk.c create mode 100644 board/freescale/imx8mm_evk/lpddr4_timing.c create mode 100644 board/freescale/imx8mm_evk/spl.c create mode 100644 configs/imx8mm_evk_defconfig create mode 100644 drivers/clk/clk-composite.c create mode 100644 drivers/clk/clk-gate.c create mode 100644 drivers/clk/imx/clk-composite-8m.c create mode 100644 drivers/clk/imx/clk-imx8mm.c create mode 100644 drivers/clk/imx/clk-pll14xx.c create mode 100644 include/configs/imx8mm_evk.h create mode 100644 include/dt-bindings/clock/imx8mm-clock.h