public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Andre Przywara <andre.przywara@arm.com>
To: u-boot@lists.denx.de
Subject: [U-Boot]  [PATCH V5 31/31] imx: add i.MX8MQ EVK support
Date: Wed, 20 Jun 2018 12:37:47 +0100	[thread overview]
Message-ID: <3e93f06e-b70b-90e4-e7d1-e35e48136f53@arm.com> (raw)
In-Reply-To: <070f9f1eb36ab6365440a8c227a751eb6e7771af.camel@paulk.fr>

(resending trimmed version to pass the U-Boot size limit filter ...)

Hi,

On 20/06/18 09:57, Paul Kocialkowski wrote:
> Hi there,
> 
> On Wed, 2018-01-10 at 13:20 +0800, Peng Fan wrote:
>> Add i.MX8MQ EVK support. SPL will initialize ddr and load ddr phy
>> firmware. Then loading FIT image, ATF to OCRAM, U-Boot and DTB to
>> DRAM.
> 
> First off, I'd like to express my gratitude for this port: the i.MX8
> looks like a great platform and it's really nice to see support for it
> land in U-Boot!
> 
> Regarding the integration of i.MX8 with upstream software in general:
> are there plans to upstream the ARM Trusted Firmware port for i.MX8?
> It would be great to have both U-Boot and ATF upstream support to
> achieve a boot chain with (mostly-)free and upstream software.

The support for i.MX8QX and i.MX8QM has been merged into the official
ATF repo yesterday:
https://github.com/ARM-software/arm-trusted-firmware/pull/1410

I am bit lost in the naming here (i.MX8QM vs i.MX8MQ), but I think that
should answer your question.

> On that note, are there proprietary components involved in the boot
> process, other than the already-identified DDR training firmware for the
> DDR PHY?
> 
> About that DDR PHY firmware: to what extent is it necessary? It is
> common that DDR link training is required for socketed DRAM chips, but
> properly-tuned static per-board configuration is usually enough for
> soldered DRAM chips. Is the i.MX8 and exception to that? If not, would
> it be possible to provide such a static configuration mode, that does
> not involved any firmware for link training?

I agree on not wanting a blob for that, although that depends a bit on
what it does: If it's an not-signed binary, that just does the training
and then goes out of the way, and shipping the binary is reasonably
licensed, then it might be beneficial to have it, at least for now.
AFAIK actual DRAM training for a wide range of chips is not trivial, so
there is probably some value in that blob.
For specific boards with soldered chips: can't we dump the results of
the training and use that for a static configuration? It is my
understanding that the DRAM controller parameters depend on actual
voltage and also temperature, but we might get some good enough values
for a reasonable range of both? This would make this blob optional then,
and people could decide for their own.

Cheers,
Andre.

> Perhaps the PHY link training code (with the firmware) could be kept
> around as a fallback, disabled by default. Also, I see lots of
> undocumented registers in the process. Does it seem feasable to document
> these? This currently does not really like the source form of the
> software.
> 
> Having a firmware in the boot process is a fatal flaw when it comes to
> software freedom, as it prevents having a fully free boot chain. Since
> some projects (e.g. the Purism Librem 5) are aiming at using the i.MX8
> for this precise reason, this is a serious (if not fatal) drawback.
> 
> Moreover, it is really not convenient to have a non-free firmware that
> must be carried around with U-Boot and prevents user from just cloning
> u-boot, building and running (by adding an extra step that complicates
> the process and makes it different from other platforms that do not
> require such a blob).
> 
> Thanks in advance for your time and consideration of these questions!
> 
> Cheers,
> 
> Paul
> 
>> The boot log with Arm trusted firmware console enabled:
>> "
>> U-Boot SPL 2018.01-00038-gbd426c08ea (Jan 10 2018 - 13:14:56)
>> PMIC:  PFUZE100 ID=0x10
>> Normal Boot
>> Trying to boot from MMC2
>> NOTICE:  Configureing TZASC380
>> NOTICE:  BL31: v1.4(release):o8.0.0_1.3.0_8m-prc-20171211-6-g54fb0797-dirty
>> NOTICE:  BL31: Built : 07:17:16, Jan  8 2018
>> NOTICE:  sip svc init
>>
>> U-Boot 2018.01-00038-gbd426c08ea (Jan 10 2018 - 13:14:56 +0800)
>>
>> CPU:   Freescale i.MX8MQ rev2.0 at 1000 MHz
>> Reset cause: POR
>> Model: Freescale i.MX8MQ EVK
>> DRAM:  3 GiB
>> MMC:   FSL_SDHC: 0, FSL_SDHC: 1
>> Using default environment
>>
>> In:    serial
>> Out:   serial
>> Err:   serial
>> Net:   No ethernet found.
>> Hit any key to stop autoboot:  0
>> u-boot=>
>> "
>>
>> Signed-off-by: Peng Fan <peng.fan@nxp.com>
>> Cc: Fabio Estevam <fabio.estevam@nxp.com>
>> Cc: Stefano Babic <sbabic@denx.de>
>> ---
>>  arch/arm/dts/Makefile                        |    2 +
>>  arch/arm/dts/fsl-imx8mq-evk.dts              |  424 +++++++++
>>  arch/arm/include/asm/arch-mx8m/ddr.h         |    9 +
>>  arch/arm/mach-imx/mx8m/Kconfig               |   12 +
>>  board/freescale/mx8mq_evk/Kconfig            |   12 +
>>  board/freescale/mx8mq_evk/Makefile           |   12 +
>>  board/freescale/mx8mq_evk/README             |   47 +
>>  board/freescale/mx8mq_evk/ddr/ddr_init.c     |  246 +++++
>>  board/freescale/mx8mq_evk/ddr/ddrphy_train.c | 1272 ++++++++++++++++++++++++++
>>  board/freescale/mx8mq_evk/ddr/helper.c       |  101 ++
>>  board/freescale/mx8mq_evk/mx8mq_evk.c        |  156 ++++
>>  board/freescale/mx8mq_evk/spl.c              |  230 +++++
>>  configs/mx8mq_evk_defconfig                  |   27 +
>>  include/configs/mx8mq_evk.h                  |  269 ++++++
>>  14 files changed, 2819 insertions(+)
>>  create mode 100644 arch/arm/dts/fsl-imx8mq-evk.dts
>>  create mode 100644 board/freescale/mx8mq_evk/Kconfig
>>  create mode 100644 board/freescale/mx8mq_evk/Makefile
>>  create mode 100644 board/freescale/mx8mq_evk/README
>>  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/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
>>

  reply	other threads:[~2018-06-20 11:37 UTC|newest]

Thread overview: 94+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-10  5:20 [U-Boot] [PATCH V5 00/31] imx: add i.MX8M support and i.MX8MQ EVK Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 01/31] arm: imx: Rework i.MX specific commands to be excluded from SPL Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 02/31] imx: add i.MX8M into Kconfig Peng Fan
2018-01-21 15:53   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 03/31] imx: mx8m: add register definition header file Peng Fan
2018-01-21 15:54   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 04/31] imx: mx8m: add pin " Peng Fan
2018-01-21 15:53   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 05/31] imx: mx8m: add clock driver Peng Fan
2018-01-21 16:28   ` Stefano Babic
2018-01-23  8:58     ` Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 06/31] imx: add sip function Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 07/31] imx: boot_mode: add USB_BOOT entry Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 08/31] imx: cpu: update cpu file to support i.MX8M Peng Fan
2018-01-21 16:28   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 09/31] imx: spl: implement spl_boot_device for i.MX8M Peng Fan
2018-01-21 16:29   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 10/31] imx: add i.MX8MQ SoC Revision and is_mx8m helper Peng Fan
2018-01-21 16:30   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 11/31] imx: add pad settings bit definition for i.MX8M Peng Fan
2018-01-21 16:30   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 12/31] imx: cpu: move speed/temp to common cpu Peng Fan
2018-01-21 16:30   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 13/31] imx: cpu: add cpu speed/grade for i.MX8M Peng Fan
2018-01-21 16:31   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 14/31] imx: refactor imx_get_mac_from_fuse Peng Fan
2018-01-21 16:31   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 15/31] imx: cleanup bootaux Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 16/31] imx: bootaux: support i.MX8M Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 17/31] imx: mx7: move get_boot_device to cpu.c Peng Fan
2018-01-21 16:33   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 18/31] imx: cpu: support get_boot_device for i.MX8M Peng Fan
2018-01-21 16:33   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 19/31] imx: mx7: move mmc env code to mmc_env.c Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 20/31] imx: mx8m: add soc related settings and files Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 21/31] imx: makefile: compile files for i.MX8M Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 22/31] misc: ocotp: add i.MX8M support Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 23/31] mmc: fsl_esdhc: support i.MX8M Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 24/31] imx: lcdif: include i.MX8M Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 25/31] gpio: mxc: add i.MX8M support Peng Fan
2018-01-21 16:33   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 26/31] net: fec: do not access reserved register for i.MX8M Peng Fan
2018-01-21 16:34   ` Stefano Babic
2018-01-10  5:20 ` [U-Boot] [PATCH V5 27/31] net: fec: fix build warnings for 64bits support Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 28/31] imx: imx8mq: add dtsi file Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 29/31] power: pmic/regulator allow dm be omitted by SPL Peng Fan
2018-01-17 12:16   ` Jaehoon Chung
2018-01-10  5:20 ` [U-Boot] [PATCH V5 30/31] imx: mx8m: add ddr controller memory map Peng Fan
2018-01-10  5:20 ` [U-Boot] [PATCH V5 31/31] imx: add i.MX8MQ EVK support Peng Fan
2018-01-22 14:00   ` Stefano Babic
2018-01-22 15:23     ` Fabio Estevam
2018-01-22 16:20       ` Stefano Babic
2018-01-31 10:25         ` Fabio Estevam
2018-01-31 10:30           ` Stefano Babic
2018-02-04  9:42             ` Stefano Babic
2018-02-22 16:40               ` Fabio Estevam
2018-02-23  6:02                 ` Peng Fan
2018-02-23 13:37                   ` Fabio Estevam
2018-03-20 19:46                   ` Fabio Estevam
2018-03-21  9:07                     ` Peng Fan
2018-02-23  9:46                 ` Stefano Babic
2018-02-23 13:21                   ` Fabio Estevam
2018-01-23  2:24     ` Peng Fan
2018-01-23  9:52       ` Stefano Babic
     [not found]   ` <88fee187-cf7f-cd2a-659a-eb67ba814178@denx.de>
2018-01-23  1:54     ` Peng Fan
2018-01-23 10:02       ` Stefano Babic
2018-06-20  8:57   ` Paul Kocialkowski
2018-06-20 11:37     ` Andre Przywara [this message]
2018-06-20 11:54       ` Paul Kocialkowski
2018-06-20 12:08         ` Paul Kocialkowski
2018-06-20 11:56     ` Peng Fan
2018-06-20 15:24       ` Paul Kocialkowski
2018-06-20 16:12         ` Andre Przywara
2018-06-20 17:16           ` Paul Kocialkowski
2018-06-21  1:07             ` André Przywara
2018-06-21 18:29               ` Todd Weaver
2018-06-21  7:08           ` Wolfgang Denk
2018-01-10 13:08 ` [U-Boot] [PATCH V5 00/31] imx: add i.MX8M support and i.MX8MQ EVK Diego Dorta
2018-01-11  1:16   ` Peng Fan
2018-01-11 12:36     ` Diego Dorta
2018-01-13 10:55       ` Peng Fan
2018-01-16 12:15         ` Diego Dorta
2018-01-16 12:25           ` Peng Fan
2018-01-17 14:59             ` Diego Dorta
2018-01-18  1:13               ` Peng Fan
2018-01-18 14:58                 ` Diego Dorta
2018-01-18  1:24 ` Peng Fan
2018-01-18  8:50   ` Stefano Babic
2018-01-18  8:58     ` Peng Fan
2018-01-22 13:04 ` Diego Dorta
2018-08-31  6:27   ` Jon Nettleton
2018-09-06 13:37     ` Fabio Estevam
2018-09-07  6:03       ` Jon Nettleton
2018-09-07  6:09         ` Peng Fan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3e93f06e-b70b-90e4-e7d1-e35e48136f53@arm.com \
    --to=andre.przywara@arm.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox