[U-Boot] [PATCH 00/52] Support i.MX8MM/N

Peng Fan peng.fan at nxp.com
Mon Jul 8 07:47:01 UTC 2019


Hi Lukasz,

> Subject: Re: [U-Boot] [PATCH 00/52] Support i.MX8MM/N
> 
> Hi Peng,
> 
> > > Subject: Re: [U-Boot] [PATCH 00/52] Support i.MX8MM/N
> > >
> > > Hi Peng,
> > >
> > > > From: Peng Fan <peng.fan at nxp.com>
> > > >
> > > > This patchset is to support i.MX8MM/8MN with some update in ddr
> > > > settings and ddr driver update.
> > > >
> > > > The initial patchset to support i.MX8MM is
> > > > https://patchwork.ozlabs.org/cover/1093140/
> > > > But in this patchset I dropped CCF, and use original CLK uclass,
> > > > so not use V2 in patchset.
> > >
> > > I'm a bit confused here regarding the CCF adoption.
> > >
> > > From this patch set I do see that in one place you enable
> > > CONFIG_CLK_CCF and CONFIG_SPL_CLK_CCF and then it is removed in
> the
> > > other patch. For example the patch 48/52 extends the
> > > drivers/clk/imx/clk-imx8mm.c, which looks like the old approach for
> > > the clocking.
> >
> > The v2 patchset has cleanup
> > https://github.com/MrVan/u-boot/tree/8m-7-5
> >
> > >
> > > Am I correct that the v2 of this patch set will use the CCF v5,
> > > which I've sent some time ago (CCF v4 was used on some i.MX8 SoC
> > > though)?
> >
> > No. I tried CCF on i.MX8MM in previous patchset, but I dropped it for
> > now.
> 
> If I may ask - why have you dropped it?

To support i.MX8M, lots of code needs to be added, one is composite.
We also needs clock settings, not just read.

> 
> The v5 of CCF has been posted ~2 weeks ago (with you on CC) with a high
> chance to be pulled by Stefano after the merge window opens.
> 
> When we accept the "legacy" clock approach we will stuck with it for a long
> time.
> 
> What approach is took by the Linux kernel? CCF or any other one?

I am not against CCF. I tried CCF and enabled on i.MX8MM in my last
patchset. But I have to add lots of code based on your version, that
introduces complexity for now.

> 
> > We might try to switch to CCF again in future,
> 
> I'm a bit skeptical about such statements. It never works like that - after it is
> accepted it would become a "legacy code which we do need to preserve".
> 
> > but we hope
> > i.MX8MM/N support could land in upstream soon. It has been pending for
> > months.
> 
> Was the CCF the reason for the i.MX8 not being pulled for so long?

I am not saying so.

The first version to support i.MX8MM is in 2019-01-28. Then I switch
to CCF and posted out new version in 2019-4-30. we have many 3rd
parties want to use mainline U-Boot, not our vendor tree.I hope
i.MX8MM/N could land in the coming merge window, introducing
more to CCF add risk.

Thanks,
Peng.

> 
> >
> > Regards,
> > Peng.
> >
> > >
> > > >
> > > > Bai Ping (1):
> > > >   imx8mq: Update the ddrc QoS setting for B1 chip
> > > >
> > > > Jacky Bai (2):
> > > >   driver: ddr: Refine the ddr init driver on imx8m
> > > >   ddr: imx8m: Fix the ddr init hang on imx8mq
> > > >
> > > > Peng Fan (47):
> > > >   linux: compat: guard PAGE_SIZE
> > > >   dm: clk: ignore default settings when node not valid
> > > >   pinctrl: imx: use devfdt_get_addr_size_index
> > > >   i2c: mxc: add CONFIG_CLK support
> > > >   tools: imx8m_image: align spl bin image size
> > > >   ddr: imx8m: fix ddr firmware location when enable SPL OF
> > > >   tools: imx8mimage: fix HDMI/FIT parsing
> > > >   imx8m: add image cfg for i.MX8MM lpddr4
> > > >   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 i.MX8MM clk driver
> > > >   imx: add i.MX8MM EVK board support
> > > >   imx: add i.MX8MN kconfig entry
> > > >   imx8mn: support get_cpu_rev
> > > >   imx8m: add clk support for i.MX8MN
> > > >   imx8mn: set BYPASS ID SWAP to avoid AXI bus errors
> > > >   imx: add i.MX8MN PE property
> > > >   imx8mn: add pin header
> > > >   imx: spl: use spl_board_boot_device for i.MX8MN
> > > >   spl: pass args to board_return_to_bootrom
> > > >   imx: add rom api support
> > > >   imx: cpu: restrict get_boot_device
> > > >   imx8mn: add get_boot_device
> > > >   power: pmic: add SPL_DM_PMIC
> > > >   tools: imx8mimage: add ROM VERSION
> > > >   pinctrl: imx8m: support i.MX8MN
> > > >   tools: imx8m_image: support ddr4 firmware
> > > >   clk: imx: add i.MX8MN clk support
> > > >   imx8m: add i.MX8MN ddr4 image cfg file
> > > >   imx: add dtsi for i.MX8MN
> > > >   imx: add i.MX8MN DDR4 board support
> > > >
> > > > Ye Li (2):
> > > >   imx8m: Configure trustzone region 0 for non-secure access
> > > >   ddr: imx8m: Fix ddr4 driver build issue
> > > >
> > > >  arch/arm/dts/Makefile                              |    4
> +-
> > > >  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/dts/imx8mn-ddr4-evk-u-boot.dtsi           |   92 +
> > > >  arch/arm/dts/imx8mn-ddr4-evk.dts                   |  221
> +++
> > > >  arch/arm/dts/imx8mn-pinfunc.h                      |  646
> > > +++++++
> > > >  arch/arm/dts/imx8mn.dtsi                           |  712
> > > +++++++
> > > >  arch/arm/include/asm/arch-imx/cpu.h                |    7 +
> > > >  arch/arm/include/asm/arch-imx8m/clock.h            |  494
> +----
> > > >  arch/arm/include/asm/arch-imx8m/clock_imx8mm.h     |  465
> > > +++++
> > > >  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/arch-imx8m/imx8mn_pins.h      |  763
> > > ++++++++
> > > >  arch/arm/include/asm/mach-imx/iomux-v3.h           |    4 +
> > > >  arch/arm/include/asm/mach-imx/mxc_i2c.h            |    2 +
> > > >  arch/arm/include/asm/mach-imx/sys_proto.h          |   42 +
> > > >  arch/arm/mach-imx/Kconfig                          |    4 +
> > > >  arch/arm/mach-imx/Makefile                         |    2 +
> > > >  arch/arm/mach-imx/cpu.c                            |   16
> +-
> > > >  arch/arm/mach-imx/imx8m/Kconfig                    |   28
> +-
> > > >  arch/arm/mach-imx/imx8m/Makefile                   |    4
> +-
> > > >  arch/arm/mach-imx/imx8m/clock_imx8mm.c             |  707
> > > +++++++
> > > >  .../arm/mach-imx/imx8m/{clock.c => clock_imx8mq.c} |    7 +-
> > > >  arch/arm/mach-imx/imx8m/clock_slice.c              |  815
> > > ++++++++
> > > >  arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg    |   16 +
> > > >  arch/arm/mach-imx/imx8m/imximage-8mn-ddr4.cfg      |   17 +
> > > >  arch/arm/mach-imx/imx8m/soc.c                      |  162
> +-
> > > >  arch/arm/mach-imx/spl.c                            |    8 +
> > > >  arch/arm/mach-imx/spl_imx_romapi.c                 |  292
> +++
> > > >  arch/arm/mach-rockchip/rk3288-board-tpl.c          |    5 +-
> > > >  arch/arm/mach-rockchip/rk3368-board-tpl.c          |    5 +-
> > > >  arch/arm/mach-rockchip/rk3399-board-spl.c          |    5 +-
> > > >  arch/arm/mach-rockchip/rk3399-board-tpl.c          |    5 +-
> > > >  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 +++
> > > > board/freescale/imx8mn_evk/Kconfig                 |   14 +
> > > > board/freescale/imx8mn_evk/MAINTAINERS             |    6 +
> > > > board/freescale/imx8mn_evk/Makefile                |   12 +
> > > > board/freescale/imx8mn_evk/ddr4_timing.c           | 1214
> > > > ++++++++++++ board/freescale/imx8mn_evk/imx8mn_evk.c
> > > |
> > > > 85 + board/freescale/imx8mn_evk/spl.c                   |   91
> +
> > > > board/freescale/imx8mq_evk/lpddr4_timing.c         |   16 +-
> > > > common/spl/spl_bootrom.c                           |    7 +-
> > > > configs/imx8mm_evk_defconfig                       |   51 +
> > > > configs/imx8mn_ddr4_evk_defconfig                  |   55 +
> > > > drivers/clk/clk-uclass.c                           |    3 +
> > > > drivers/clk/imx/Kconfig                            |   14 +
> > > > drivers/clk/imx/Makefile                           |    1 +
> > > > drivers/clk/imx/clk-imx8mm.c                       |  121 ++
> > > > drivers/ddr/imx/imx8m/Kconfig                      |    6 +
> > > > drivers/ddr/imx/imx8m/Makefile                     |    4 +-
> > > > drivers/ddr/imx/imx8m/ddr4_init.c                  |  113 --
> > > > drivers/ddr/imx/imx8m/ddr_init.c                   |  168 ++
> > > > drivers/ddr/imx/imx8m/ddrphy_utils.c               |    4 +
> > > > drivers/ddr/imx/imx8m/helper.c                     |   22 +-
> > > > drivers/ddr/imx/imx8m/lpddr4_init.c                |  188 --
> > > > drivers/i2c/mxc_i2c.c                              |   24 +-
> > > > drivers/pinctrl/nxp/pinctrl-imx.c                  |    4 +-
> > > > drivers/pinctrl/nxp/pinctrl-imx8m.c                |    1 +
> > > > drivers/power/pmic/Kconfig                         |   12 +
> > > > drivers/power/pmic/Makefile                        |    2 +-
> > > > drivers/serial/Kconfig                             |    2 +-
> > > > include/configs/imx8mm_evk.h                       |  200 ++
> > > > include/configs/imx8mn_evk.h                       |  198 ++
> > > > include/dt-bindings/clock/imx8mm-clock.h           |  244 +++
> > > > include/dt-bindings/clock/imx8mn-clock.h           |  215 +++
> > > > include/imximage.h                                 |    1 +
> > > > include/linux/compat.h                             |    2 +
> > > > include/power/pmic.h                               |    2 +-
> > > > include/spl.h                                      |    3 +-
> > > > tools/imx8m_image.sh                               |   15 +-
> > > > tools/imx8mimage.c                                 |   31 +-
> 79
> > > files
> > > > changed, 13082 insertions(+), 814 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/dts/imx8mn-ddr4-evk-u-boot.dtsi create mode 100644
> > > > arch/arm/dts/imx8mn-ddr4-evk.dts create mode 100644
> > > > arch/arm/dts/imx8mn-pinfunc.h create mode 100644
> > > > arch/arm/dts/imx8mn.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/include/asm/arch-imx8m/imx8mn_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 arch/arm/mach-imx/imx8m/imximage-8mm-lpddr4.cfg create
> > > mode
> > > > 100644 arch/arm/mach-imx/imx8m/imximage-8mn-ddr4.cfg create
> mode
> > > > 100644 arch/arm/mach-imx/spl_imx_romapi.c 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
> > > > board/freescale/imx8mn_evk/Kconfig create mode 100644
> > > > board/freescale/imx8mn_evk/MAINTAINERS create mode 100644
> > > > board/freescale/imx8mn_evk/Makefile create mode 100644
> > > > board/freescale/imx8mn_evk/ddr4_timing.c create mode 100644
> > > > board/freescale/imx8mn_evk/imx8mn_evk.c create mode 100644
> > > > board/freescale/imx8mn_evk/spl.c create mode 100644
> > > > configs/imx8mm_evk_defconfig create mode 100644
> > > > configs/imx8mn_ddr4_evk_defconfig create mode 100644
> > > > drivers/clk/imx/clk-imx8mm.c delete mode 100644
> > > > drivers/ddr/imx/imx8m/ddr4_init.c create mode 100644
> > > > drivers/ddr/imx/imx8m/ddr_init.c delete mode 100644
> > > > drivers/ddr/imx/imx8m/lpddr4_init.c create mode 100644
> > > > include/configs/imx8mm_evk.h create mode 100644
> > > > include/configs/imx8mn_evk.h create mode 100644
> > > > include/dt-bindings/clock/imx8mm-clock.h create mode 100644
> > > > include/dt-bindings/clock/imx8mn-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
> 
> 
> 
> 
> 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


More information about the U-Boot mailing list