[U-Boot] [i.MX8MM+CCF 00/41] i.MX8MM + CCF

Lukasz Majewski lukma at denx.de
Mon May 6 09:55:02 UTC 2019


On Mon, 6 May 2019 09:08:46 +0000
Peng Fan <peng.fan at nxp.com> 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: <http://lists.denx.de/pipermail/u-boot/attachments/20190506/4b77d175/attachment.sig>


More information about the U-Boot mailing list