From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lukasz Majewski Date: Mon, 6 May 2019 11:55:02 +0200 Subject: [U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF In-Reply-To: References: <20190430103056.32537-1-peng.fan@nxp.com> <2823f3a9-7ef9-d231-48a9-ee15fb428d21@kontron.de> Message-ID: <20190506115502.4eec39e8@jawa> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit To: u-boot@lists.denx.de On Mon, 6 May 2019 09:08:46 +0000 Peng Fan wrote: > Hi Frieder, > > > Subject: Re: [U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF > > > > On 06.05.19 09:57, Frieder Schrempf wrote: > > > Hi Peng, > > > > > > I'm trying to add support for a board with i.MX8MM. First I > > > applied Lukasz's CCF patches and your patches to U-Boot 2019.04 > > > and tried to build imx8mm_evk config. But I'm getting build > > > errors (see below). > > Thanks for trying. There was no build error, might be some new change, > I'll fix that in new version patchset. > > > > > The build works if I enable the OTP fuse driver and disable I2C > > support. In clock_imx8mm.c enable_i2c_clk() seems to be missing, or > > maybe the i2c driver needs to use the new clock framework now? > > I have the i2c mxc driver adapted to this new framework, clock is ok, > but i2c probe not work as expected, I am still trying to find out > what's wrong. > > > > > > > > > Are there any other patches needed? > > > What things are still missing to get i.MX8MM running in U-Boot? > > > > It seems like this still needs a bit of work. I also see some > > CONFIG options defined in the headers, that should be moved to > > defconfig. > > I'll clean up those in new version. Since this patchset depends on > Lukasz's CCF, so I expect Lukasz's new version patchset, then I'll > post new version. > > Lukasz, > > There are a few CCF fixes that need you to check, or you could take > those into your patches. Till the end of today I will review your patches. As I did not received any more feedback regarding last posted patches - I will add the cached clock stuff and repost them. (I'm out of office from 09.05 - 14.05, so I want to repost my patches by then to not block the development). > > Thanks, > Peng. > > > > > > > > > Thanks, > > > Frieder > > > > > > | aarch64-ktn-linux-ld.bfd: cmd/built-in.o: in function `do_fuse': > > > | /home/frieder/repos/u-boot/cmd/fuse.c:68: undefined reference to > > > `fuse_read' > > > | > > > aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:86: > > > undefined reference to `fuse_sense' | > > > aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:105: > > > undefined reference to `fuse_prog' | > > > aarch64-ktn-linux-ld.bfd: /home/frieder/repos/u-boot/cmd/fuse.c:119: > > > undefined reference to `fuse_override' | > > > aarch64-ktn-linux-ld.bfd: drivers/i2c/built-in.o: in function > > > `mxc_i2c_probe': > > > | /home/frieder/repos/u-boot/drivers/i2c/mxc_i2c.c:824: undefined > > > reference to `enable_i2c_clk' | aarch64-ktn-linux-ld.bfd: > > > /home/frieder/repos/u-boot/drivers/i2c/mxc_i2c.c:853: undefined > > > reference to `enable_i2c_clk' > > > > > > > > > On 30.04.19 12:17, Peng Fan wrote: > > >> 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://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit > > hub.com%2Flmajewski%2Fu-boot-dfu%2Fcommits%2FCCF-v3&data=02 > > %7C01% > > >> > > 7Cpeng.fan%40nxp.com%7C92e3d4126a6a485ca3e808d6d1fc8fcb%7C686ea > > 1d3bc2 > > >> > > b4c6fa92cd99c5c301635%7C0%7C0%7C636927280011703542&sdata= > > 5hIVJtM6 > > >> PZOy2o3NywWIrI7Ogmgjjz%2B92S1tdFTmTso%3D&reserved=0 > > >> > > >> 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             |  2 > > 92 +++ > > >>   .../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                 |   1 > > 2 + > > >>   board/freescale/imx8mm_evk/MAINTAINERS             | > > 6 + > > >>   board/freescale/imx8mm_evk/Makefile                |   1 > > 2 + > > >>   board/freescale/imx8mm_evk/imx8mm_evk.c            |   9 > > 0 + > > >>   board/freescale/imx8mm_evk/lpddr4_timing.c         | 1980 > > >> ++++++++++++++++++++ > > >>   board/freescale/imx8mm_evk/spl.c                   |  21 > > 6 +++ > > >>   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                             |  1 > > 51 ++ > > >>   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                       |  4 > > 15 ++++ > > >>   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                     |   1 > > 2 +- > > >>   drivers/serial/Kconfig                             | > > 2 +- > > >>   include/clk.h > > |    9 + > > >>   include/configs/imx8mm_evk.h                       |  1 > > 99 ++ > > >>   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 > > >> Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: