[U-Boot] [PATCH 00/52] Support i.MX8MM/N
Peng Fan
peng.fan at nxp.com
Wed Jul 17 08:37:50 UTC 2019
Hi Lukasz, Stefano,
> > >
> > > > > Subject: Re: [U-Boot] [PATCH 00/52] Support i.MX8MM/N
[....]
> > >
> > > 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.
>
> You will have to add this complexity anyway after people start demanding
> new clocks for IPs which they need to enable.
>
> Moreover, the CCF v5 was posted 2 weeks ago - wasn't it enough time for
> applying your patches from v4?
I have converted back to CCF for i.MX8MM/N. Pushed code
to https://github.com/MrVan/u-boot/commits/imx8mmn-ccf
Since there are 65 patches in my patchset, I not post to maillist.
Please see whether you have some general comments or not.
Then I'll post out to mail list. Hope it could catch this release cycle.
Thanks,
Peng.
>
> >
> > >
> > > > 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.
>
> Maybe the version posted in 2019-01-28 was just not ready for being pulled?
>
> It happens that the community wants to avoid problems encountered earlier
> with other SoCs (like i.MX6, i.MX7), so the discussion takes time.
>
> (The similar situation is with other projects too - how many release cycles it
> takes to add new SoC in Linux? Or new port to glibc?).
>
> > we have many 3rd parties want to use mainline U-Boot, not our vendor
> > tree.
>
> There must be a reason that they want the U-Boot mainline. IMHO the main
> reason for it is that people not only from a single company want to add the
> code, so they need to discuss (and get the agreement) to avoid stepping in
> each other's toes.
>
> And the discussion/tests takes time ...
>
> > I hope
> > i.MX8MM/N could land in the coming merge window,
>
> This depends solely on the code quality I think.
>
> > introducing more to CCF add risk.
>
> Risk for not being accepted?
>
> I do see however other risk - the i.MX8 will gain one-off clock support code
> instead of adopting the CCF just from the outset.
>
>
> >
> > 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
>
>
>
>
> 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