[U-Boot] [PATCH 00/23] imx: add i.MX8M support and i.MX8MQ EVK

Stefano Babic sbabic at denx.de
Mon Dec 4 12:37:29 UTC 2017


Hi Peng,

On 01/12/2017 04:28, Peng Fan wrote:
> Hi Stefano,
> 
> I plan to send out V2 patchset today or tommorw. 
> 

Sorry for late answer - I gon on with review for V2.

> About 
> https://patchwork.ozlabs.org/patch/842122/          imx: mx8m: add ddr register memory map
> https://patchwork.ozlabs.org/patch/842167/           imx: add i.MX8MQ EVK support
> 
> it is hard for me to convert using structure about the ddr script.
> It was released by SoC team, and lots registers there.
> For now, even if I struggle to convert to use structure, it will be pain
> if SoC team released new script.
> 
> So is it possible that ddr_init in spl_dram_init is marked as "TODO" in the board patch,
> and ddr related part is removed this V2 patchset?
> 

I understand your point, but on the other side merging this stuff is
messy and IMHO is worse for the project and for MX8M itself. In fact, a
big advantage for current i.MX tree is that it is easy and
straightforward to add a new board. Of course, the big number of i.MX6
boards (89 in 2017.11) is first due to the fact that this SOC has well
matched customer's expectations, but it also because it is not obscured
to add a new custom board, even if it is not strictly derived from a NXP
Eval Board. And this is a big advantage in the long term because NXP
customers rely on the fact that a SOC is well supported, not just if it
is in a couple of eval boards.

The patches (at least V1, I will start now with V2) show a "dump" of
registers for the DDR controller - there is no logic and, you can guess,
it does not help a lot if further boards are added. And even worse,
users are looking to NXP boards as reference, and new boards will be
just a copy&paste of the first one. And nobody will easy understand
issues, because a hex dump is not really helpful.

So I have to say, no, I won't be happy if blobs are pushed to U-Boot tree.

Best regards,
Stefano



> I hope the i.MX8M patchset could be in next release.
> 
> Thanks,
> Peng.
> 
>> -----Original Message-----
>> From: U-Boot [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Peng Fan
>> Sent: Wednesday, November 29, 2017 1:31 PM
>> To: Stefano Babic <sbabic at denx.de>; Fabio Estevam
>> <fabio.estevam at nxp.com>
>> Cc: u-boot at lists.denx.de
>> Subject: Re: [U-Boot] [PATCH 00/23] imx: add i.MX8M support and i.MX8MQ
>> EVK
>>
>> Hi Stefano,
>>
>>> -----Original Message-----
>>> From: Stefano Babic [mailto:sbabic at denx.de]
>>> Sent: Tuesday, November 28, 2017 10:46 PM
>>> To: Peng Fan <peng.fan at nxp.com>; sbabic at denx.de; Fabio Estevam
>>> <fabio.estevam at nxp.com>
>>> Cc: u-boot at lists.denx.de; van.freenix at gmail.com
>>> Subject: Re: [PATCH 00/23] imx: add i.MX8M support and i.MX8MQ EVK
>>>
>>> Hi Peng,
>>>
>>> On 28/11/2017 13:31, Peng Fan wrote:
>>>> This patchset is to add i.MX8M and i.MX8MQ-EVK support
>>>>
>>>
>>> Thanks for sharing this.
>>>
>>>> patch: "power: pmic.h: include dm/ofnode.h" and
>>>> "power: pmic/regulator allow dm be omited by SPL" is previously
>>>> reviewed in mailist to not merged. Pick it up.
>>>
>>>
>>> Ok, I'll merge these two independently from the rest.
>>
>> Thanks. I should say if no issue, you may pick it up. Then I'll not include these
>> two patches in V2.
>>
>>>
>>>
>>>> The board support is a large patch because of the ddr related code.
>>>> If it is not good,
>>>
>>> You agree, it is not good. Anyway, I think one goal will be to have a
>>> platform like we have for i.MX6. Nowadays, it is easy and
>>> straightforward to add a new
>>> i.MX6 board. I set this goal for i.MX8, too.
>>
>> i.MX8M is actually like i.MX6/7, it is different from i.MX8QM and else. You could
>> see there is no scu api in this patchset.
>>
>>>
>>>> please first review/pick-up other patches if they  are ok.
>>>
>>> I'll do it.
>>
>> Thanks,
>> Peng.
>>
>>>
>>>>
>>>> Peng Fan (23):
>>>>   imx: add i.MX8M into Kconfig
>>>>   imx: mx8m: add register definition header file
>>>>   imx: mx8m: add pin header file
>>>>   imx: mx8m: add clock driver
>>>>   imx: add sip function
>>>>   imx: boot_mode: add USB_BOOT entry
>>>>   imx: cpu: update cpu file to support i.MX8M
>>>>   imx: spl: implement spl_boot_device for i.MX8M
>>>>   power: pmic.h: include dm/ofnode.h
>>>>   imx: add i.MX8MQ SoC Revision and is_mx8m helper
>>>>   imx: add pad settings bit definition for i.MX8M
>>>>   imx: mx8m: add soc related settings and files
>>>>   imx: makefile: compile files for i.MX8M
>>>>   misc: ocotp: add i.MX8M support
>>>>   mmc: fsl_esdhc: support i.MX8M
>>>>   imx: lcdif: include i.MX8M
>>>>   gpio: mxc: add i.MX8M support
>>>>   imx: mx8m: add ddr register memory map
>>>>   net: fec: do not access reserved register for i.MX8M
>>>>   net: fec: fix build warnings for 64bits support
>>>>   power: pmic/regulator allow dm be omitted by SPL
>>>>   imx: imx8mq: add dtsi file
>>>>   imx: add i.MX8MQ EVK support
>>>>
>>>>  arch/arm/Kconfig                                   |    8 +
>>>>  arch/arm/Makefile                                  |    4 +-
>>>>  arch/arm/dts/Makefile                              |    2 +
>>>>  arch/arm/dts/fsl-imx8-ca53.dtsi                    |   92 ++
>>>>  arch/arm/dts/fsl-imx8mq-evk.dts                    |  597 ++++++++++
>>>>  arch/arm/dts/fsl-imx8mq.dtsi                       |  961 ++++++++++++++++
>>>>  arch/arm/include/asm/arch-imx/cpu.h                |    6 +-
>>>>  arch/arm/include/asm/arch-mx8m/clock.h             |  864 +++++++++++++++
>>>>  arch/arm/include/asm/arch-mx8m/crm_regs.h          |   10 +
>>>>  arch/arm/include/asm/arch-mx8m/ddr_memory_map.h    |  496
>> +++++++++
>>>>  arch/arm/include/asm/arch-mx8m/gpio.h              |   12 +
>>>>  arch/arm/include/asm/arch-mx8m/imx-regs.h          |  298 +++++
>>>>  arch/arm/include/asm/arch-mx8m/mx8mq_pins.h        |  623 +++++++++++
>>>>  arch/arm/include/asm/arch-mx8m/sys_proto.h         |   17 +
>>>>  arch/arm/include/asm/mach-imx/boot_mode.h          |    1 +
>>>>  arch/arm/include/asm/mach-imx/iomux-v3.h           |   22 +-
>>>>  arch/arm/include/asm/mach-imx/regs-lcdif.h         |   11 +-
>>>>  arch/arm/include/asm/mach-imx/sys_proto.h          |    4 +
>>>>  arch/arm/mach-imx/Makefile                         |   13 +-
>>>>  arch/arm/mach-imx/cpu.c                            |   11 +-
>>>>  arch/arm/mach-imx/mx8m/Kconfig                     |   22 +
>>>>  arch/arm/mach-imx/mx8m/Makefile                    |    8 +
>>>>  arch/arm/mach-imx/mx8m/clock.c                     |  782 +++++++++++++
>>>>  arch/arm/mach-imx/mx8m/clock_slice.c               |  820 ++++++++++++++
>>>>  arch/arm/mach-imx/mx8m/lowlevel_init.S             |   63 ++
>>>>  arch/arm/mach-imx/mx8m/soc.c                       |  544 +++++++++
>>>>  arch/arm/mach-imx/sip.c                            |   23 +
>>>>  arch/arm/mach-imx/spl.c                            |   23 +-
>>>>  board/freescale/mx8mq_evk/Kconfig                  |   12 +
>>>>  board/freescale/mx8mq_evk/Makefile                 |   12 +
>>>>  board/freescale/mx8mq_evk/ddr/ddr.h                |   36 +
>>>>  board/freescale/mx8mq_evk/ddr/ddr_init.c           |  257 +++++
>>>>  board/freescale/mx8mq_evk/ddr/ddrphy_train.c       | 1154
>>> ++++++++++++++++++++
>>>>  board/freescale/mx8mq_evk/ddr/helper.c             |  102 ++
>>>>  .../mx8mq_evk/ddr/wait_ddrphy_training_complete.c  |   97 ++
>>>>  board/freescale/mx8mq_evk/mx8mq_evk.c              |  154 +++
>>>>  board/freescale/mx8mq_evk/spl.c                    |  227 ++++
>>>>  configs/mx8mq_evk_defconfig                        |   28 +
>>>>  drivers/gpio/mxc_gpio.c                            |   22 +-
>>>>  drivers/misc/mxc_ocotp.c                           |    7 +
>>>>  drivers/mmc/fsl_esdhc.c                            |   12 +-
>>>>  drivers/net/fec_mxc.c                              |   78 +-
>>>>  drivers/power/pmic/Makefile                        |    4 +-
>>>>  drivers/power/regulator/Makefile                   |    2 +-
>>>>  include/configs/mx8mq_evk.h                        |  265 +++++
>>>>  include/dt-bindings/clock/imx8mq-clock.h           |  612 +++++++++++
>>>>  include/dt-bindings/pinctrl/pins-imx8mq.h          |  632 +++++++++++
>>>>  include/power/pmic.h                               |    1 +
>>>>  48 files changed, 9992 insertions(+), 59 deletions(-)  create mode
>>>> 100644 arch/arm/dts/fsl-imx8-ca53.dtsi  create mode 100644
>>>> arch/arm/dts/fsl-imx8mq-evk.dts  create mode 100644
>>>> arch/arm/dts/fsl-imx8mq.dtsi  create mode 100644
>>>> arch/arm/include/asm/arch-mx8m/clock.h
>>>>  create mode 100644 arch/arm/include/asm/arch-mx8m/crm_regs.h
>>>>  create mode 100644 arch/arm/include/asm/arch-
>>> mx8m/ddr_memory_map.h
>>>>  create mode 100644 arch/arm/include/asm/arch-mx8m/gpio.h
>>>>  create mode 100644 arch/arm/include/asm/arch-mx8m/imx-regs.h
>>>>  create mode 100755 arch/arm/include/asm/arch-mx8m/mx8mq_pins.h
>>>>  create mode 100644 arch/arm/include/asm/arch-mx8m/sys_proto.h
>>>>  create mode 100644 arch/arm/mach-imx/mx8m/Kconfig  create mode
>>> 100644
>>>> arch/arm/mach-imx/mx8m/Makefile  create mode 100644
>>>> arch/arm/mach-imx/mx8m/clock.c  create mode 100644
>>>> arch/arm/mach-imx/mx8m/clock_slice.c
>>>>  create mode 100644 arch/arm/mach-imx/mx8m/lowlevel_init.S
>>>>  create mode 100644 arch/arm/mach-imx/mx8m/soc.c  create mode 100644
>>>> arch/arm/mach-imx/sip.c  create mode 100644
>>>> board/freescale/mx8mq_evk/Kconfig  create mode 100644
>>>> board/freescale/mx8mq_evk/Makefile
>>>>  create mode 100644 board/freescale/mx8mq_evk/ddr/ddr.h
>>>>  create mode 100644 board/freescale/mx8mq_evk/ddr/ddr_init.c
>>>>  create mode 100644 board/freescale/mx8mq_evk/ddr/ddrphy_train.c
>>>>  create mode 100644 board/freescale/mx8mq_evk/ddr/helper.c
>>>>  create mode 100644
>>>> board/freescale/mx8mq_evk/ddr/wait_ddrphy_training_complete.c
>>>>  create mode 100644 board/freescale/mx8mq_evk/mx8mq_evk.c
>>>>  create mode 100644 board/freescale/mx8mq_evk/spl.c  create mode
>>>> 100644 configs/mx8mq_evk_defconfig  create mode 100644
>>>> include/configs/mx8mq_evk.h  create mode 100644
>>>> include/dt-bindings/clock/imx8mq-clock.h
>>>>  create mode 100644 include/dt-bindings/pinctrl/pins-imx8mq.h
>>>>
>>>
>>> Best regards,
>>> Stefano
>>>
>>> --
>>>
>> ============================================================
>>> =========
>>> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
>>> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
>>> Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
>>>
>> ============================================================
>>> =========
>> _______________________________________________
>> U-Boot mailing list
>> U-Boot at lists.denx.de
>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.
>> denx.de%2Flistinfo%2Fu-
>> boot&data=02%7C01%7CPeng.Fan%40nxp.com%7C2c2c661b9887419a527a08d5
>> 36ea7fe7%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636475303156
>> 402838&sdata=EIsETRROSA%2FWmf5uLHIeQPAW4lNIJxTLf18q4EudmCc%3D&r
>> eserved=0


-- 
=====================================================================
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================


More information about the U-Boot mailing list