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

Schrempf Frieder frieder.schrempf at kontron.de
Thu Jul 18 14:34:08 UTC 2019


Hi Peng,

On 17.07.19 10:37, Peng Fan wrote:
> 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.

A patchset with 65 patches is very difficult to handle (also for 
yourself) and you are mixing all kind of things into it.

IMHO it would be a very good idea to split this patchset into smaller 
pieces and test/review/merge them separately. I guess this would also 
increase the chance that me and other developers join to test and review 
this.

What about some split like this?
* Generic clock changes on top of Lukasz's CCF patches
* Generic Driver changes (pinctrl, i2c, pll14xx, ...)
* Support and changes for i.MX8MM
* Support and changes for i.MX8MN
* Changes/Fixes for i.MX8M/i.MX8MQ

Thanks,
Frieder

> 
> 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
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> https://lists.denx.de/listinfo/u-boot
> 


More information about the U-Boot mailing list