mbox series

[U-Boot,PULL] Please pull u-boot-imx

Message ID 14cd8556-8d61-f80c-3b5d-e36a777ad52b@denx.de
State Changes Requested
Delegated to: Tom Rini
Headers show
Series [U-Boot,PULL] Please pull u-boot-imx | expand

Pull-request

git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20181023

Message

Stefano Babic Oct. 23, 2018, 7:52 a.m. UTC
Hi Tom,

please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !

The tree contains fixes for i.MX6 and improvement in docs, but the most
important part is the introduction of the i.MX8 architecture (thanks to
Peng and Antolji for their work !). Build on Travis reported no error,
but I get a build issue with the VF610 boards - this will be require a
fix in next days. i.MX8 can be built following exactly the instruction
of the README file (NXP firmware requires to acknowledge the EULA).

The following changes since commit 0a60a81ba3860946551cb79aa6486aa076e357f3:

  Kconfig: sandbox: enable cmd_avb and dependencies (2018-10-07 13:34:19
-0400)

are available in the Git repository at:

  git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20181023

for you to fetch changes up to 4684fa8bdd7bb38ef54cc4c60ec12c649536f288:

  serial: mxc: Add match string for i.mx6 quad/dual lite serial
(2018-10-22 18:56:17 +0200)

----------------------------------------------------------------
Merged imx8 architecture + fixes for mx6

----------------------------------------------------------------
Anatolij Gustschin (3):
      imx8: cpu: add function for reading FEC MAC from fuse
      imx8: cpu: add uclass based CPU driver
      i2c: imx_lpi2c: fix typo and register base address format

Bernhard Messerklinger (1):
      serial: mxc: Add match string for i.mx6 quad/dual lite serial

Breno Matheus Lima (7):
      doc: imx: reorganize i.MX documentation
      doc: imx: Move SPD related info to the appropriate doc
      doc: imx: mkimage: reorganize i.MX mkimage documentation
      doc: imx: Reorganize i.MX SoC common documentation
      doc: imx: hab: Reorganize High Assurance Boot documentation
      doc: imx: misc: Reorganize miscellaneous documentation
      doc: imx: Improve i.MX documentation naming

Dan Cimpoca (1):
      board: ge: bx50v3: fix initialization of i2c bus0

Fabien Lahoudere (1):
      board: ge: bx50v3: Change maintainer

Fabio Estevam (4):
      pico-imx7d: Make SPL binary fit into 64kB
      pico-imx7d: Add USB Host support
      colibri_imx7: prime get_ram_size() using imx_ddr_size()
      configs: mx7: Remove CONFIG_DBG_MONITOR

Ian Ray (2):
      board: ge: bx50v3: correct LDB clock
      board: ge: bx50v3: b{4,6}50v3 modeline

Marcel Ziswiler (1):
      imx: mx7: fix potential overflow in imx_ddr_size()

Marek Vasut (3):
      arm: imx: mx5: Make videoskip available on MX5
      arm: mx5: Add LDB clock config code
      arm: mx5: Add M53Menlo board

Otavio Salvador (2):
      pico-imx6ul, pico-imx7d: Use eMMC user partition by default
      pico-imx6ul, pico-imx7d: Enable USB and PXE boot support

Peng Fan (33):
      dt-bindings: pinctrl: add i.MX8QXP pads definition
      dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QXP clocks
definition
      dt-bindings: soc: add i.MX8QXP pm and rsrc definition
      imx8: add scfw macro definition
      imx: add Kconfig entry for i.MX8QXP
      arm: build mach-imx for i.MX8
      arm: global_data: add scu_dev for i.MX8
      misc: add i.MX8 misc driver
      misc: imx8: add scfw api impementation
      imx: boot_mode: Add FLEXSPI boot entry
      imx8: add imx-regs header file
      imx8: pins: include i.MX8QXP pin header when CONFIG_IMX8QXP defined
      imx: add i.MX8 cpu type
      armv8: add cpu core helper functions
      imx8: add basic cpu support
      imx8: add boot device detection
      imx8: implement mmc_get_env_dev
      imx8: add mmu and dram related functions
      imx8: add arch_cpu_init arch_cpu_init_dm
      imx8: add iomux configuration api
      imx8: add dummy clock
      gpio: mxc_gpio: add support for i.MX8
      pinctrl: Add pinctrl driver for i.MX8
      power: Add power domain driver for i.MX8
      clk: imx: add clk driver for i.MX8QXP
      serial_lpuart: Update lpuart driver to support i.MX8
      serial: lpuart: support uclass clk api
      mmc: fsl_esdhc: add uclass clk support
      arm: dts: introduce dtsi for i.MX8QXP
      imx: add i.MX8QXP MEK board support
      tools: add i.MX8/8X image support
      arm: imx: include imx8image support
      imx: imx8qxp_mek: update to build image in U-Boot

Rui Miguel Silva (4):
      imx: mx7: avoid some initialization if low level is skipped
      optee: adjust dependencies and default values for dram
      warp7: include: configs: set skip low level init
      warp7: configs: add bl33 defconfig

Sébastien Szymanski (1):
      ARM: opos6ul: make the board boot again

Xiaoliang Yang (1):
      Kconfig: Convert CONFIG_IMX_WATCHDOG to Kconfig

Ye Li (2):
      serial: lpuart: Enable RX and TX FIFO
      fsl_esdhc: Update usdhc driver to support i.MX8

 arch/arm/Kconfig                                      |   8 +
 arch/arm/Makefile                                     |   2 +-
 arch/arm/dts/Makefile                                 |   2 +
 arch/arm/dts/fsl-imx8-ca35.dtsi                       |  66 +++++++
 arch/arm/dts/fsl-imx8dx.dtsi                          | 499
+++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8dxp.dtsi                         |  11 ++
 arch/arm/dts/fsl-imx8qxp-mek.dts                      | 246
++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8qxp.dtsi                         |  51 ++++++
 arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi               |  28 +++
 arch/arm/dts/imx6ul-opos6ul.dtsi                      |   2 -
 arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi            |  24 +++
 arch/arm/dts/imx6ul-opos6uldev.dts                    |   2 -
 arch/arm/include/asm/arch-imx/cpu.h                   |   6 +
 arch/arm/include/asm/arch-imx8/clock.h                |  27 +++
 arch/arm/include/asm/arch-imx8/gpio.h                 |  21 +++
 arch/arm/include/asm/arch-imx8/imx-regs.h             |  46 +++++
 arch/arm/include/asm/arch-imx8/imx8-pins.h            |  15 ++
 arch/arm/include/asm/arch-imx8/iomux.h                |  40 +++++
 arch/arm/include/asm/arch-imx8/power-domain.h         |  15 ++
 arch/arm/include/asm/arch-imx8/sci/rpc.h              | 158
+++++++++++++++++
 arch/arm/include/asm/arch-imx8/sci/sci.h              |  88 ++++++++++
 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h     |  30 ++++
 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h      |  57 ++++++
 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h       |  44 +++++
 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h       |  69 ++++++++
 arch/arm/include/asm/arch-imx8/sci/types.h            | 220
++++++++++++++++++++++++
 arch/arm/include/asm/arch-imx8/sys_proto.h            |  19 ++
 arch/arm/include/asm/arch-mx5/clock.h                 |   1 +
 arch/arm/include/asm/armv8/cpu.h                      |  26 +++
 arch/arm/include/asm/global_data.h                    |   4 +
 arch/arm/include/asm/mach-imx/boot_mode.h             |   1 +
 arch/arm/include/asm/mach-imx/sys_proto.h             |   3 +
 arch/arm/mach-imx/Makefile                            |  22 ++-
 arch/arm/mach-imx/imx8/Kconfig                        |  26 +++
 arch/arm/mach-imx/imx8/Makefile                       |   7 +
 arch/arm/mach-imx/imx8/clock.c                        |  21 +++
 arch/arm/mach-imx/imx8/cpu.c                          | 646
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-imx/imx8/iomux.c                        |  43 +++++
 arch/arm/mach-imx/mx5/Kconfig                         |   6 +
 arch/arm/mach-imx/mx5/clock.c                         |  29 ++++
 arch/arm/mach-imx/mx7/ddr.c                           |   4 +
 arch/arm/mach-imx/mx7/soc.c                           |   2 +
 arch/arm/mach-imx/syscounter.c                        |   2 +
 board/freescale/imx8qxp_mek/Kconfig                   |  14 ++
 board/freescale/imx8qxp_mek/MAINTAINERS               |   6 +
 board/freescale/imx8qxp_mek/Makefile                  |   7 +
 board/freescale/imx8qxp_mek/README                    |  55 ++++++
 board/freescale/imx8qxp_mek/imx8qxp_mek.c             | 170
++++++++++++++++++
 board/freescale/imx8qxp_mek/imximage.cfg              |  25 +++
 board/freescale/mx8mq_evk/README                      |  81 +++++++++
 board/ge/bx50v3/MAINTAINERS                           |   2 +-
 board/ge/bx50v3/bx50v3.c                              |  38 ++--
 board/menlo/m53menlo/Kconfig                          |  15 ++
 board/menlo/m53menlo/MAINTAINERS                      |   7 +
 board/menlo/m53menlo/Makefile                         |   9 +
 board/menlo/m53menlo/imximage.cfg                     |  91 ++++++++++
 board/menlo/m53menlo/m53menlo.c                       | 513
++++++++++++++++++++++++++++++++++++++++++++++++++++++
 board/technexion/pico-imx7d/pico-imx7d.c              |  29 +++-
 board/toradex/colibri_imx7/colibri_imx7.c             |   2 +-
 common/image.c                                        |   1 +
 configs/aristainetos2_defconfig                       |   1 +
 configs/aristainetos2b_defconfig                      |   1 +
 configs/aristainetos_defconfig                        |   1 +
 configs/dh_imx6_defconfig                             |   1 +
 configs/display5_defconfig                            |   1 +
 configs/display5_factory_defconfig                    |   1 +
 configs/ge_bx50v3_defconfig                           |   1 +
 configs/imx8qxp_mek_defconfig                         |  52 ++++++
 configs/kp_imx6q_tpc_defconfig                        |   1 +
 configs/m53menlo_defconfig                            |  60 +++++++
 configs/mx53ppd_defconfig                             |   1 +
 configs/pico-hobbit-imx7d_defconfig                   |   1 -
 configs/pico-imx7d_defconfig                          |   1 -
 configs/pico-pi-imx7d_defconfig                       |   1 -
 configs/tqma6s_wru4_mmc_defconfig                     |   1 +
 configs/warp7_bl33_defconfig                          |  42 +++++
 configs/warp7_defconfig                               |   2 +
 configs/warp_defconfig                                |   1 +
 doc/{README.imx25 => imx/common/imx25.txt}            |   0
 doc/{README.imx27 => imx/common/imx27.txt}            |   0
 doc/{README.imx5 => imx/common/imx5.txt}              |   0
 doc/{README.imx6 => imx/common/imx6.txt}              |  25 ---
 doc/{README.mxs => imx/common/mxs.txt}                |   0
 doc/imx/hab/habv4/encrypted_boot.txt                  |  43 +++++
 doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} |  44 -----
 doc/{README.sdp => imx/misc/sdp.txt}                  |  22 ++-
 doc/{README.imximage => imx/mkimage/imximage.txt}     |   0
 doc/{README.mxsimage => imx/mkimage/mxsimage.txt}     |   0
 drivers/clk/Kconfig                                   |   1 +
 drivers/clk/Makefile                                  |   1 +
 drivers/clk/imx/Kconfig                               |   6 +
 drivers/clk/imx/Makefile                              |   5 +
 drivers/clk/imx/clk-imx8.c                            | 393
++++++++++++++++++++++++++++++++++++++++++
 drivers/gpio/mxc_gpio.c                               |  30 +++-
 drivers/i2c/imx_lpi2c.c                               |   4 +-
 drivers/misc/Makefile                                 |   1 +
 drivers/misc/imx8/Makefile                            |   3 +
 drivers/misc/imx8/scu.c                               | 266
++++++++++++++++++++++++++++
 drivers/misc/imx8/scu_api.c                           | 367
+++++++++++++++++++++++++++++++++++++++
 drivers/mmc/fsl_esdhc.c                               |  34 +++-
 drivers/pinctrl/nxp/Kconfig                           |  18 ++
 drivers/pinctrl/nxp/Makefile                          |   2 +
 drivers/pinctrl/nxp/pinctrl-imx.c                     | 209
++++++++++++----------
 drivers/pinctrl/nxp/pinctrl-imx.h                     |  16 ++
 drivers/pinctrl/nxp/pinctrl-imx8.c                    |  40 +++++
 drivers/pinctrl/nxp/pinctrl-scu.c                     |  66 +++++++
 drivers/power/domain/Kconfig                          |   8 +-
 drivers/power/domain/Makefile                         |   1 +
 drivers/power/domain/imx8-power-domain.c              | 315
++++++++++++++++++++++++++++++++++
 drivers/serial/serial_lpuart.c                        | 143
++++++++++++----
 drivers/serial/serial_mxc.c                           |   1 +
 drivers/watchdog/Kconfig                              |   7 +
 include/configs/aristainetos-common.h                 |   3 -
 include/configs/cl-som-imx7.h                         |   2 -
 include/configs/colibri-imx6ull.h                     |   1 -
 include/configs/colibri_imx7.h                        |   3 -
 include/configs/dh_imx6.h                             |   2 -
 include/configs/display5.h                            |   2 -
 include/configs/ge_bx50v3.h                           |   2 -
 include/configs/imx8qxp_mek.h                         | 157
+++++++++++++++++
 include/configs/kp_imx6q_tpc.h                        |   2 -
 include/configs/m53menlo.h                            | 246
++++++++++++++++++++++++++
 include/configs/mx53ppd.h                             |   2 -
 include/configs/mx7dsabresd.h                         |   1 -
 include/configs/pico-imx6ul.h                         |   6 +-
 include/configs/pico-imx7d.h                          |   6 +-
 include/configs/tqma6_wru4.h                          |   2 -
 include/configs/warp.h                                |   2 -
 include/configs/warp7.h                               |  11 ++
 include/dt-bindings/clock/imx8qxp-clock.h             | 583
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/dt-bindings/pinctrl/pads-imx8qxp.h            | 757
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/dt-bindings/soc/imx8_pd.h                     | 188
++++++++++++++++++++
 include/dt-bindings/soc/imx_rsrc.h                    | 557
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/fsl_lpuart.h                                  |   2 +-
 include/image.h                                       |   1 +
 include/imx8image.h                                   | 273
+++++++++++++++++++++++++++++
 lib/optee/Kconfig                                     |   8 +-
 scripts/config_whitelist.txt                          |   2 -
 tools/Makefile                                        |   1 +
 tools/imagetool.h                                     |   1 +
 tools/imx8image.c                                     | 961
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/mkimage.c                                       |   7 +
 142 files changed, 9454 insertions(+), 282 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8-ca35.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dx.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dxp.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
 create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
 create mode 100644 arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi
 create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
 create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx-regs.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx8-pins.h
 create mode 100644 arch/arm/include/asm/arch-imx8/iomux.h
 create mode 100644 arch/arm/include/asm/arch-imx8/power-domain.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/rpc.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/types.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sys_proto.h
 create mode 100644 arch/arm/include/asm/armv8/cpu.h
 create mode 100644 arch/arm/mach-imx/imx8/Kconfig
 create mode 100644 arch/arm/mach-imx/imx8/Makefile
 create mode 100644 arch/arm/mach-imx/imx8/clock.c
 create mode 100644 arch/arm/mach-imx/imx8/cpu.c
 create mode 100644 arch/arm/mach-imx/imx8/iomux.c
 create mode 100644 board/freescale/imx8qxp_mek/Kconfig
 create mode 100644 board/freescale/imx8qxp_mek/MAINTAINERS
 create mode 100644 board/freescale/imx8qxp_mek/Makefile
 create mode 100644 board/freescale/imx8qxp_mek/README
 create mode 100644 board/freescale/imx8qxp_mek/imx8qxp_mek.c
 create mode 100644 board/freescale/imx8qxp_mek/imximage.cfg
 create mode 100644 board/freescale/mx8mq_evk/README
 create mode 100644 board/menlo/m53menlo/Kconfig
 create mode 100644 board/menlo/m53menlo/MAINTAINERS
 create mode 100644 board/menlo/m53menlo/Makefile
 create mode 100644 board/menlo/m53menlo/imximage.cfg
 create mode 100644 board/menlo/m53menlo/m53menlo.c
 create mode 100644 configs/imx8qxp_mek_defconfig
 create mode 100644 configs/m53menlo_defconfig
 create mode 100644 configs/warp7_bl33_defconfig
 rename doc/{README.imx25 => imx/common/imx25.txt} (100%)
 rename doc/{README.imx27 => imx/common/imx27.txt} (100%)
 rename doc/{README.imx5 => imx/common/imx5.txt} (100%)
 rename doc/{README.imx6 => imx/common/imx6.txt} (73%)
 rename doc/{README.mxs => imx/common/mxs.txt} (100%)
 create mode 100644 doc/imx/hab/habv4/encrypted_boot.txt
 rename doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} (68%)
 rename doc/{README.sdp => imx/misc/sdp.txt} (82%)
 rename doc/{README.imximage => imx/mkimage/imximage.txt} (100%)
 rename doc/{README.mxsimage => imx/mkimage/mxsimage.txt} (100%)
 create mode 100644 drivers/clk/imx/Kconfig
 create mode 100644 drivers/clk/imx/Makefile
 create mode 100644 drivers/clk/imx/clk-imx8.c
 create mode 100644 drivers/misc/imx8/Makefile
 create mode 100644 drivers/misc/imx8/scu.c
 create mode 100644 drivers/misc/imx8/scu_api.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-imx8.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-scu.c
 create mode 100644 drivers/power/domain/imx8-power-domain.c
 create mode 100644 include/configs/imx8qxp_mek.h
 create mode 100644 include/configs/m53menlo.h
 create mode 100644 include/dt-bindings/clock/imx8qxp-clock.h
 create mode 100644 include/dt-bindings/pinctrl/pads-imx8qxp.h
 create mode 100644 include/dt-bindings/soc/imx8_pd.h
 create mode 100644 include/dt-bindings/soc/imx_rsrc.h
 create mode 100644 include/imx8image.h
 create mode 100644 tools/imx8image.c

Best regards,
Stefano

Comments

Tom Rini Oct. 23, 2018, 2:29 p.m. UTC | #1
On Tue, Oct 23, 2018 at 09:52:58AM +0200, Stefano Babic wrote:

> Hi Tom,
> 
> please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !
> 
> The tree contains fixes for i.MX6 and improvement in docs, but the most
> important part is the introduction of the i.MX8 architecture (thanks to
> Peng and Antolji for their work !). Build on Travis reported no error,
> but I get a build issue with the VF610 boards - this will be require a
> fix in next days. i.MX8 can be built following exactly the instruction
> of the README file (NXP firmware requires to acknowledge the EULA).

I know the i.MX8 stuff has been kicking around for a while so.. OK, yes,
I won't be too upset about pushing it so late in the cycle.  But, my
travis builds do see an error:
https://travis-ci.org/trini/u-boot/jobs/445069389#L1038 which is "Fail
open first container file ahab-container.img" for imx8qxp_mek and I also
see that locally.  This feels like the same class of error that we have
to deal with on other AArch64 platforms, namely of throwing a user
visible error that what they just built will not boot due to lack of
other files.

Also:
$ ./tools/genboardscfg.py -o /dev/null
WARNING: no status info for 'warp7_bl33'
WARNING: no maintainers for 'warp7_bl33'

which I would have just fixed-up, but since we need to address that
imx8qxp_mek problem, please update the appropriate MAINTAINERS file too
for warp7_bl33.  Thanks!
Stefano Babic Oct. 23, 2018, 2:42 p.m. UTC | #2
Hi Tom,

On 23/10/18 16:29, Tom Rini wrote:
> On Tue, Oct 23, 2018 at 09:52:58AM +0200, Stefano Babic wrote:
> 
>> Hi Tom,
>>
>> please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !
>>
>> The tree contains fixes for i.MX6 and improvement in docs, but the most
>> important part is the introduction of the i.MX8 architecture (thanks to
>> Peng and Antolji for their work !). Build on Travis reported no error,
>> but I get a build issue with the VF610 boards - this will be require a
>> fix in next days. i.MX8 can be built following exactly the instruction
>> of the README file (NXP firmware requires to acknowledge the EULA).
> 
> I know the i.MX8 stuff has been kicking around for a while so.. OK, yes,
> I won't be too upset about pushing it so late in the cycle.  But, my
> travis builds do see an error:
> https://travis-ci.org/trini/u-boot/jobs/445069389#L1038 which is "Fail
> open first container file ahab-container.img" for imx8qxp_mek and I also
> see that locally.

I know: to build i.MX8, we need to download external firmware. In fact,
we have to provide the files according to board/freescale/mx8mq_evk/README.

Near "imx-atf" (this is not a problem, loaded and built), we need two
additional "closed" firmware, that is firmware-imx (currently, 7.6) and
imx-sc-firmware. They can be downloaded but they underly the acknowledge
of NXP's EULA. They are self extracting scripts and we could hack it to
have an automatic build, but I *guess* this breaks the license. I do not
know if we are allowed to do this, and both of these firmwares do not
provide a way to "implicitely" skip the EULA as we do in OE by setting a
variable in local.conf.

>  This feels like the same class of error that we have
> to deal with on other AArch64 platforms, namely of throwing a user
> visible error that what they just built will not boot due to lack of
> other files.

I am unsure: mkimage packs all files together as part of the build, when
they are available. User cannot even try to boot, because the build
stops if these files are not available. The error at mkimage step is
saying us that build is not complete due to missing files (atf,
firmware-imx and imx-sc-firmware).

> 
> Also:
> $ ./tools/genboardscfg.py -o /dev/null
> WARNING: no status info for 'warp7_bl33'
> WARNING: no maintainers for 'warp7_bl33'

I have not seen, thanks, this must be fixed.

> 
> which I would have just fixed-up, but since we need to address that
> imx8qxp_mek problem, please update the appropriate MAINTAINERS file too
> for warp7_bl33.  Thanks!

Regards,
Stefano
Tom Rini Oct. 23, 2018, 2:52 p.m. UTC | #3
On Tue, Oct 23, 2018 at 04:42:53PM +0200, Stefano Babic wrote:
> Hi Tom,
> 
> On 23/10/18 16:29, Tom Rini wrote:
> > On Tue, Oct 23, 2018 at 09:52:58AM +0200, Stefano Babic wrote:
> > 
> >> Hi Tom,
> >>
> >> please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !
> >>
> >> The tree contains fixes for i.MX6 and improvement in docs, but the most
> >> important part is the introduction of the i.MX8 architecture (thanks to
> >> Peng and Antolji for their work !). Build on Travis reported no error,
> >> but I get a build issue with the VF610 boards - this will be require a
> >> fix in next days. i.MX8 can be built following exactly the instruction
> >> of the README file (NXP firmware requires to acknowledge the EULA).
> > 
> > I know the i.MX8 stuff has been kicking around for a while so.. OK, yes,
> > I won't be too upset about pushing it so late in the cycle.  But, my
> > travis builds do see an error:
> > https://travis-ci.org/trini/u-boot/jobs/445069389#L1038 which is "Fail
> > open first container file ahab-container.img" for imx8qxp_mek and I also
> > see that locally.
> 
> I know: to build i.MX8, we need to download external firmware. In fact,
> we have to provide the files according to board/freescale/mx8mq_evk/README.
> 
> Near "imx-atf" (this is not a problem, loaded and built), we need two
> additional "closed" firmware, that is firmware-imx (currently, 7.6) and
> imx-sc-firmware. They can be downloaded but they underly the acknowledge
> of NXP's EULA. They are self extracting scripts and we could hack it to
> have an automatic build, but I *guess* this breaks the license. I do not
> know if we are allowed to do this, and both of these firmwares do not
> provide a way to "implicitely" skip the EULA as we do in OE by setting a
> variable in local.conf.
> 
> >  This feels like the same class of error that we have
> > to deal with on other AArch64 platforms, namely of throwing a user
> > visible error that what they just built will not boot due to lack of
> > other files.
> 
> I am unsure: mkimage packs all files together as part of the build, when
> they are available. User cannot even try to boot, because the build
> stops if these files are not available. The error at mkimage step is
> saying us that build is not complete due to missing files (atf,
> firmware-imx and imx-sc-firmware).

Yup, this is the same problem we have in other platforms.  Take a look
at board/sunxi/mksunxi_fit_atf.sh or tools/k3_fit_atf.sh for what we do
on some other platforms so that CI build completes but it's clear to the
end user that the binary will not work and what they need to do / read
to get a functional build.  There's also
arch/arm/mach-omap2/config_secure.mk as an example of all the fun we
have for building the secure TI platforms that more closely follow the
problem you have here, namely of needing EULA'd packages (and in those
cases, also NDA, iirc) installed to complete a functional build.  I
think you'll need to do something closer to the xxxx_fit_atf.sh scripts
in this case, to check for required blobs and if not found, not call
mkimage and echo something loud and visible to the user.
Stefano Babic Oct. 24, 2018, 1:38 p.m. UTC | #4
Hi Tom,

new PR (and new tag: u-boot-imx-20181024) with the fixes we discussed:

- fix build i.MX8 for Travis
- fix warnings (Warp)

The following changes since commit 0a60a81ba3860946551cb79aa6486aa076e357f3:

  Kconfig: sandbox: enable cmd_avb and dependencies (2018-10-07 13:34:19
-0400)

are available in the Git repository at:

  git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20181024

for you to fetch changes up to cf0f7fde7b2cd3944364c1e70a65603cdd3fa889:

  imx: mkimage: avoid stop CI when required files not exists (2018-10-24
13:23:36 +0200)

----------------------------------------------------------------
Merged imx8 architecture, fix build for imx8 + warnings

----------------------------------------------------------------
Anatolij Gustschin (3):
      imx8: cpu: add function for reading FEC MAC from fuse
      imx8: cpu: add uclass based CPU driver
      i2c: imx_lpi2c: fix typo and register base address format

Bernhard Messerklinger (1):
      serial: mxc: Add match string for i.mx6 quad/dual lite serial

Breno Matheus Lima (7):
      doc: imx: reorganize i.MX documentation
      doc: imx: Move SPD related info to the appropriate doc
      doc: imx: mkimage: reorganize i.MX mkimage documentation
      doc: imx: Reorganize i.MX SoC common documentation
      doc: imx: hab: Reorganize High Assurance Boot documentation
      doc: imx: misc: Reorganize miscellaneous documentation
      doc: imx: Improve i.MX documentation naming

Dan Cimpoca (1):
      board: ge: bx50v3: fix initialization of i2c bus0

Fabien Lahoudere (1):
      board: ge: bx50v3: Change maintainer

Fabio Estevam (5):
      pico-imx7d: Make SPL binary fit into 64kB
      pico-imx7d: Add USB Host support
      colibri_imx7: prime get_ram_size() using imx_ddr_size()
      configs: mx7: Remove CONFIG_DBG_MONITOR
      warp7: MAINTAINERS: Add an entry for warp7_bl33_defconfig

Ian Ray (2):
      board: ge: bx50v3: correct LDB clock
      board: ge: bx50v3: b{4,6}50v3 modeline

Marcel Ziswiler (1):
      imx: mx7: fix potential overflow in imx_ddr_size()

Marek Vasut (3):
      arm: imx: mx5: Make videoskip available on MX5
      arm: mx5: Add LDB clock config code
      arm: mx5: Add M53Menlo board

Otavio Salvador (2):
      pico-imx6ul, pico-imx7d: Use eMMC user partition by default
      pico-imx6ul, pico-imx7d: Enable USB and PXE boot support

Peng Fan (34):
      dt-bindings: pinctrl: add i.MX8QXP pads definition
      dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QXP clocks
definition
      dt-bindings: soc: add i.MX8QXP pm and rsrc definition
      imx8: add scfw macro definition
      imx: add Kconfig entry for i.MX8QXP
      arm: build mach-imx for i.MX8
      arm: global_data: add scu_dev for i.MX8
      misc: add i.MX8 misc driver
      misc: imx8: add scfw api impementation
      imx: boot_mode: Add FLEXSPI boot entry
      imx8: add imx-regs header file
      imx8: pins: include i.MX8QXP pin header when CONFIG_IMX8QXP defined
      imx: add i.MX8 cpu type
      armv8: add cpu core helper functions
      imx8: add basic cpu support
      imx8: add boot device detection
      imx8: implement mmc_get_env_dev
      imx8: add mmu and dram related functions
      imx8: add arch_cpu_init arch_cpu_init_dm
      imx8: add iomux configuration api
      imx8: add dummy clock
      gpio: mxc_gpio: add support for i.MX8
      pinctrl: Add pinctrl driver for i.MX8
      power: Add power domain driver for i.MX8
      clk: imx: add clk driver for i.MX8QXP
      serial_lpuart: Update lpuart driver to support i.MX8
      serial: lpuart: support uclass clk api
      mmc: fsl_esdhc: add uclass clk support
      arm: dts: introduce dtsi for i.MX8QXP
      imx: add i.MX8QXP MEK board support
      tools: add i.MX8/8X image support
      arm: imx: include imx8image support
      imx: imx8qxp_mek: update to build image in U-Boot
      imx: mkimage: avoid stop CI when required files not exists

Rui Miguel Silva (4):
      imx: mx7: avoid some initialization if low level is skipped
      optee: adjust dependencies and default values for dram
      warp7: include: configs: set skip low level init
      warp7: configs: add bl33 defconfig

Sébastien Szymanski (1):
      ARM: opos6ul: make the board boot again

Xiaoliang Yang (1):
      Kconfig: Convert CONFIG_IMX_WATCHDOG to Kconfig

Ye Li (2):
      serial: lpuart: Enable RX and TX FIFO
      fsl_esdhc: Update usdhc driver to support i.MX8

 arch/arm/Kconfig                                      |   8 +
 arch/arm/Makefile                                     |   2 +-
 arch/arm/dts/Makefile                                 |   2 +
 arch/arm/dts/fsl-imx8-ca35.dtsi                       |  66 +++++++
 arch/arm/dts/fsl-imx8dx.dtsi                          | 499
+++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8dxp.dtsi                         |  11 ++
 arch/arm/dts/fsl-imx8qxp-mek.dts                      | 246
++++++++++++++++++++++++++
 arch/arm/dts/fsl-imx8qxp.dtsi                         |  51 ++++++
 arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi               |  28 +++
 arch/arm/dts/imx6ul-opos6ul.dtsi                      |   2 -
 arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi            |  24 +++
 arch/arm/dts/imx6ul-opos6uldev.dts                    |   2 -
 arch/arm/include/asm/arch-imx/cpu.h                   |   6 +
 arch/arm/include/asm/arch-imx8/clock.h                |  27 +++
 arch/arm/include/asm/arch-imx8/gpio.h                 |  21 +++
 arch/arm/include/asm/arch-imx8/imx-regs.h             |  46 +++++
 arch/arm/include/asm/arch-imx8/imx8-pins.h            |  15 ++
 arch/arm/include/asm/arch-imx8/iomux.h                |  40 +++++
 arch/arm/include/asm/arch-imx8/power-domain.h         |  15 ++
 arch/arm/include/asm/arch-imx8/sci/rpc.h              | 158
+++++++++++++++++
 arch/arm/include/asm/arch-imx8/sci/sci.h              |  88 +++++++++
 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h     |  30 ++++
 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h      |  57 ++++++
 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h       |  44 +++++
 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h       |  69 ++++++++
 arch/arm/include/asm/arch-imx8/sci/types.h            | 220
+++++++++++++++++++++++
 arch/arm/include/asm/arch-imx8/sys_proto.h            |  19 ++
 arch/arm/include/asm/arch-mx5/clock.h                 |   1 +
 arch/arm/include/asm/armv8/cpu.h                      |  26 +++
 arch/arm/include/asm/global_data.h                    |   4 +
 arch/arm/include/asm/mach-imx/boot_mode.h             |   1 +
 arch/arm/include/asm/mach-imx/sys_proto.h             |   3 +
 arch/arm/mach-imx/Makefile                            |  26 ++-
 arch/arm/mach-imx/imx8/Kconfig                        |  26 +++
 arch/arm/mach-imx/imx8/Makefile                       |   7 +
 arch/arm/mach-imx/imx8/clock.c                        |  21 +++
 arch/arm/mach-imx/imx8/cpu.c                          | 646
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 arch/arm/mach-imx/imx8/iomux.c                        |  43 +++++
 arch/arm/mach-imx/mx5/Kconfig                         |   6 +
 arch/arm/mach-imx/mx5/clock.c                         |  29 +++
 arch/arm/mach-imx/mx7/ddr.c                           |   4 +
 arch/arm/mach-imx/mx7/soc.c                           |   2 +
 arch/arm/mach-imx/syscounter.c                        |   2 +
 board/freescale/imx8qxp_mek/Kconfig                   |  14 ++
 board/freescale/imx8qxp_mek/MAINTAINERS               |   6 +
 board/freescale/imx8qxp_mek/Makefile                  |   7 +
 board/freescale/imx8qxp_mek/README                    |  55 ++++++
 board/freescale/imx8qxp_mek/imx8qxp_mek.c             | 170
++++++++++++++++++
 board/freescale/imx8qxp_mek/imximage.cfg              |  25 +++
 board/freescale/mx8mq_evk/README                      |  81 +++++++++
 board/ge/bx50v3/MAINTAINERS                           |   2 +-
 board/ge/bx50v3/bx50v3.c                              |  38 ++--
 board/menlo/m53menlo/Kconfig                          |  15 ++
 board/menlo/m53menlo/MAINTAINERS                      |   7 +
 board/menlo/m53menlo/Makefile                         |   9 +
 board/menlo/m53menlo/imximage.cfg                     |  91 ++++++++++
 board/menlo/m53menlo/m53menlo.c                       | 513
+++++++++++++++++++++++++++++++++++++++++++++++++++++
 board/technexion/pico-imx7d/pico-imx7d.c              |  29 ++-
 board/toradex/colibri_imx7/colibri_imx7.c             |   2 +-
 board/warp7/MAINTAINERS                               |   1 +
 common/image.c                                        |   1 +
 configs/aristainetos2_defconfig                       |   1 +
 configs/aristainetos2b_defconfig                      |   1 +
 configs/aristainetos_defconfig                        |   1 +
 configs/dh_imx6_defconfig                             |   1 +
 configs/display5_defconfig                            |   1 +
 configs/display5_factory_defconfig                    |   1 +
 configs/ge_bx50v3_defconfig                           |   1 +
 configs/imx8qxp_mek_defconfig                         |  52 ++++++
 configs/kp_imx6q_tpc_defconfig                        |   1 +
 configs/m53menlo_defconfig                            |  60 +++++++
 configs/mx53ppd_defconfig                             |   1 +
 configs/pico-hobbit-imx7d_defconfig                   |   1 -
 configs/pico-imx7d_defconfig                          |   1 -
 configs/pico-pi-imx7d_defconfig                       |   1 -
 configs/tqma6s_wru4_mmc_defconfig                     |   1 +
 configs/warp7_bl33_defconfig                          |  42 +++++
 configs/warp7_defconfig                               |   2 +
 configs/warp_defconfig                                |   1 +
 doc/{README.imx25 => imx/common/imx25.txt}            |   0
 doc/{README.imx27 => imx/common/imx27.txt}            |   0
 doc/{README.imx5 => imx/common/imx5.txt}              |   0
 doc/{README.imx6 => imx/common/imx6.txt}              |  25 ---
 doc/{README.mxs => imx/common/mxs.txt}                |   0
 doc/imx/hab/habv4/encrypted_boot.txt                  |  43 +++++
 doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} |  44 -----
 doc/{README.sdp => imx/misc/sdp.txt}                  |  22 ++-
 doc/{README.imximage => imx/mkimage/imximage.txt}     |   0
 doc/{README.mxsimage => imx/mkimage/mxsimage.txt}     |   0
 drivers/clk/Kconfig                                   |   1 +
 drivers/clk/Makefile                                  |   1 +
 drivers/clk/imx/Kconfig                               |   6 +
 drivers/clk/imx/Makefile                              |   5 +
 drivers/clk/imx/clk-imx8.c                            | 393
+++++++++++++++++++++++++++++++++++++++++
 drivers/gpio/mxc_gpio.c                               |  30 +++-
 drivers/i2c/imx_lpi2c.c                               |   4 +-
 drivers/misc/Makefile                                 |   1 +
 drivers/misc/imx8/Makefile                            |   3 +
 drivers/misc/imx8/scu.c                               | 266
++++++++++++++++++++++++++++
 drivers/misc/imx8/scu_api.c                           | 367
++++++++++++++++++++++++++++++++++++++
 drivers/mmc/fsl_esdhc.c                               |  34 +++-
 drivers/pinctrl/nxp/Kconfig                           |  18 ++
 drivers/pinctrl/nxp/Makefile                          |   2 +
 drivers/pinctrl/nxp/pinctrl-imx.c                     | 209
++++++++++++----------
 drivers/pinctrl/nxp/pinctrl-imx.h                     |  16 ++
 drivers/pinctrl/nxp/pinctrl-imx8.c                    |  40 +++++
 drivers/pinctrl/nxp/pinctrl-scu.c                     |  66 +++++++
 drivers/power/domain/Kconfig                          |   8 +-
 drivers/power/domain/Makefile                         |   1 +
 drivers/power/domain/imx8-power-domain.c              | 315
+++++++++++++++++++++++++++++++++
 drivers/serial/serial_lpuart.c                        | 143 ++++++++++++---
 drivers/serial/serial_mxc.c                           |   1 +
 drivers/watchdog/Kconfig                              |   7 +
 include/configs/aristainetos-common.h                 |   3 -
 include/configs/cl-som-imx7.h                         |   2 -
 include/configs/colibri-imx6ull.h                     |   1 -
 include/configs/colibri_imx7.h                        |   3 -
 include/configs/dh_imx6.h                             |   2 -
 include/configs/display5.h                            |   2 -
 include/configs/ge_bx50v3.h                           |   2 -
 include/configs/imx8qxp_mek.h                         | 157
+++++++++++++++++
 include/configs/kp_imx6q_tpc.h                        |   2 -
 include/configs/m53menlo.h                            | 246
++++++++++++++++++++++++++
 include/configs/mx53ppd.h                             |   2 -
 include/configs/mx7dsabresd.h                         |   1 -
 include/configs/pico-imx6ul.h                         |   6 +-
 include/configs/pico-imx7d.h                          |   6 +-
 include/configs/tqma6_wru4.h                          |   2 -
 include/configs/warp.h                                |   2 -
 include/configs/warp7.h                               |  11 ++
 include/dt-bindings/clock/imx8qxp-clock.h             | 583
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/dt-bindings/pinctrl/pads-imx8qxp.h            | 757
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/dt-bindings/soc/imx8_pd.h                     | 188
++++++++++++++++++++
 include/dt-bindings/soc/imx_rsrc.h                    | 557
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/fsl_lpuart.h                                  |   2 +-
 include/image.h                                       |   1 +
 include/imx8image.h                                   | 273
++++++++++++++++++++++++++++
 lib/optee/Kconfig                                     |   8 +-
 scripts/config_whitelist.txt                          |   2 -
 tools/Makefile                                        |   1 +
 tools/imagetool.h                                     |   1 +
 tools/imx8_cntr_image.sh                              |  32 ++++
 tools/imx8image.c                                     | 961
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 tools/mkimage.c                                       |   7 +
 144 files changed, 9491 insertions(+), 282 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8-ca35.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dx.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8dxp.dtsi
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
 create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
 create mode 100644 arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi
 create mode 100644 arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi
 create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
 create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx-regs.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx8-pins.h
 create mode 100644 arch/arm/include/asm/arch-imx8/iomux.h
 create mode 100644 arch/arm/include/asm/arch-imx8/power-domain.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/rpc.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/types.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sys_proto.h
 create mode 100644 arch/arm/include/asm/armv8/cpu.h
 create mode 100644 arch/arm/mach-imx/imx8/Kconfig
 create mode 100644 arch/arm/mach-imx/imx8/Makefile
 create mode 100644 arch/arm/mach-imx/imx8/clock.c
 create mode 100644 arch/arm/mach-imx/imx8/cpu.c
 create mode 100644 arch/arm/mach-imx/imx8/iomux.c
 create mode 100644 board/freescale/imx8qxp_mek/Kconfig
 create mode 100644 board/freescale/imx8qxp_mek/MAINTAINERS
 create mode 100644 board/freescale/imx8qxp_mek/Makefile
 create mode 100644 board/freescale/imx8qxp_mek/README
 create mode 100644 board/freescale/imx8qxp_mek/imx8qxp_mek.c
 create mode 100644 board/freescale/imx8qxp_mek/imximage.cfg
 create mode 100644 board/freescale/mx8mq_evk/README
 create mode 100644 board/menlo/m53menlo/Kconfig
 create mode 100644 board/menlo/m53menlo/MAINTAINERS
 create mode 100644 board/menlo/m53menlo/Makefile
 create mode 100644 board/menlo/m53menlo/imximage.cfg
 create mode 100644 board/menlo/m53menlo/m53menlo.c
 create mode 100644 configs/imx8qxp_mek_defconfig
 create mode 100644 configs/m53menlo_defconfig
 create mode 100644 configs/warp7_bl33_defconfig
 rename doc/{README.imx25 => imx/common/imx25.txt} (100%)
 rename doc/{README.imx27 => imx/common/imx27.txt} (100%)
 rename doc/{README.imx5 => imx/common/imx5.txt} (100%)
 rename doc/{README.imx6 => imx/common/imx6.txt} (73%)
 rename doc/{README.mxs => imx/common/mxs.txt} (100%)
 create mode 100644 doc/imx/hab/habv4/encrypted_boot.txt
 rename doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} (68%)
 rename doc/{README.sdp => imx/misc/sdp.txt} (82%)
 rename doc/{README.imximage => imx/mkimage/imximage.txt} (100%)
 rename doc/{README.mxsimage => imx/mkimage/mxsimage.txt} (100%)
 create mode 100644 drivers/clk/imx/Kconfig
 create mode 100644 drivers/clk/imx/Makefile
 create mode 100644 drivers/clk/imx/clk-imx8.c
 create mode 100644 drivers/misc/imx8/Makefile
 create mode 100644 drivers/misc/imx8/scu.c
 create mode 100644 drivers/misc/imx8/scu_api.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-imx8.c
 create mode 100644 drivers/pinctrl/nxp/pinctrl-scu.c
 create mode 100644 drivers/power/domain/imx8-power-domain.c
 create mode 100644 include/configs/imx8qxp_mek.h
 create mode 100644 include/configs/m53menlo.h
 create mode 100644 include/dt-bindings/clock/imx8qxp-clock.h
 create mode 100644 include/dt-bindings/pinctrl/pads-imx8qxp.h
 create mode 100644 include/dt-bindings/soc/imx8_pd.h
 create mode 100644 include/dt-bindings/soc/imx_rsrc.h
 create mode 100644 include/imx8image.h
 create mode 100755 tools/imx8_cntr_image.sh
 create mode 100644 tools/imx8image.c

On 23/10/18 16:52, Tom Rini wrote:
> On Tue, Oct 23, 2018 at 04:42:53PM +0200, Stefano Babic wrote:
>> Hi Tom,
>>
>> On 23/10/18 16:29, Tom Rini wrote:
>>> On Tue, Oct 23, 2018 at 09:52:58AM +0200, Stefano Babic wrote:
>>>
>>>> Hi Tom,
>>>>
>>>> please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !
>>>>
>>>> The tree contains fixes for i.MX6 and improvement in docs, but the most
>>>> important part is the introduction of the i.MX8 architecture (thanks to
>>>> Peng and Antolji for their work !). Build on Travis reported no error,
>>>> but I get a build issue with the VF610 boards - this will be require a
>>>> fix in next days. i.MX8 can be built following exactly the instruction
>>>> of the README file (NXP firmware requires to acknowledge the EULA).
>>>
>>> I know the i.MX8 stuff has been kicking around for a while so.. OK, yes,
>>> I won't be too upset about pushing it so late in the cycle.  But, my
>>> travis builds do see an error:
>>> https://travis-ci.org/trini/u-boot/jobs/445069389#L1038 which is "Fail
>>> open first container file ahab-container.img" for imx8qxp_mek and I also
>>> see that locally.
>>
>> I know: to build i.MX8, we need to download external firmware. In fact,
>> we have to provide the files according to board/freescale/mx8mq_evk/README.
>>
>> Near "imx-atf" (this is not a problem, loaded and built), we need two
>> additional "closed" firmware, that is firmware-imx (currently, 7.6) and
>> imx-sc-firmware. They can be downloaded but they underly the acknowledge
>> of NXP's EULA. They are self extracting scripts and we could hack it to
>> have an automatic build, but I *guess* this breaks the license. I do not
>> know if we are allowed to do this, and both of these firmwares do not
>> provide a way to "implicitely" skip the EULA as we do in OE by setting a
>> variable in local.conf.
>>
>>>  This feels like the same class of error that we have
>>> to deal with on other AArch64 platforms, namely of throwing a user
>>> visible error that what they just built will not boot due to lack of
>>> other files.
>>
>> I am unsure: mkimage packs all files together as part of the build, when
>> they are available. User cannot even try to boot, because the build
>> stops if these files are not available. The error at mkimage step is
>> saying us that build is not complete due to missing files (atf,
>> firmware-imx and imx-sc-firmware).
> 
> Yup, this is the same problem we have in other platforms.  Take a look
> at board/sunxi/mksunxi_fit_atf.sh or tools/k3_fit_atf.sh for what we do
> on some other platforms so that CI build completes but it's clear to the
> end user that the binary will not work and what they need to do / read
> to get a functional build.  There's also
> arch/arm/mach-omap2/config_secure.mk as an example of all the fun we
> have for building the secure TI platforms that more closely follow the
> problem you have here, namely of needing EULA'd packages (and in those
> cases, also NDA, iirc) installed to complete a functional build.  I
> think you'll need to do something closer to the xxxx_fit_atf.sh scripts
> in this case, to check for required blobs and if not found, not call
> mkimage and echo something loud and visible to the user.
> 

Regards,
Stefano
Stefano Babic Oct. 25, 2018, 8:37 a.m. UTC | #5
Hi Tom,

please just wait a little for this. Fix for i.MX8 is still WIP, and now
it is in test. I will send a new PR later.

Thanks,
Stefano

On 24/10/18 15:38, Stefano Babic wrote:
> Hi Tom,
> 
> new PR (and new tag: u-boot-imx-20181024) with the fixes we discussed:
> 
> - fix build i.MX8 for Travis
> - fix warnings (Warp)
> 
> The following changes since commit 0a60a81ba3860946551cb79aa6486aa076e357f3:
> 
>   Kconfig: sandbox: enable cmd_avb and dependencies (2018-10-07 13:34:19
> -0400)
> 
> are available in the Git repository at:
> 
>   git://www.denx.de/git/u-boot-imx.git tags/u-boot-imx-20181024
> 
> for you to fetch changes up to cf0f7fde7b2cd3944364c1e70a65603cdd3fa889:
> 
>   imx: mkimage: avoid stop CI when required files not exists (2018-10-24
> 13:23:36 +0200)
> 
> ----------------------------------------------------------------
> Merged imx8 architecture, fix build for imx8 + warnings
> 
> ----------------------------------------------------------------
> Anatolij Gustschin (3):
>       imx8: cpu: add function for reading FEC MAC from fuse
>       imx8: cpu: add uclass based CPU driver
>       i2c: imx_lpi2c: fix typo and register base address format
> 
> Bernhard Messerklinger (1):
>       serial: mxc: Add match string for i.mx6 quad/dual lite serial
> 
> Breno Matheus Lima (7):
>       doc: imx: reorganize i.MX documentation
>       doc: imx: Move SPD related info to the appropriate doc
>       doc: imx: mkimage: reorganize i.MX mkimage documentation
>       doc: imx: Reorganize i.MX SoC common documentation
>       doc: imx: hab: Reorganize High Assurance Boot documentation
>       doc: imx: misc: Reorganize miscellaneous documentation
>       doc: imx: Improve i.MX documentation naming
> 
> Dan Cimpoca (1):
>       board: ge: bx50v3: fix initialization of i2c bus0
> 
> Fabien Lahoudere (1):
>       board: ge: bx50v3: Change maintainer
> 
> Fabio Estevam (5):
>       pico-imx7d: Make SPL binary fit into 64kB
>       pico-imx7d: Add USB Host support
>       colibri_imx7: prime get_ram_size() using imx_ddr_size()
>       configs: mx7: Remove CONFIG_DBG_MONITOR
>       warp7: MAINTAINERS: Add an entry for warp7_bl33_defconfig
> 
> Ian Ray (2):
>       board: ge: bx50v3: correct LDB clock
>       board: ge: bx50v3: b{4,6}50v3 modeline
> 
> Marcel Ziswiler (1):
>       imx: mx7: fix potential overflow in imx_ddr_size()
> 
> Marek Vasut (3):
>       arm: imx: mx5: Make videoskip available on MX5
>       arm: mx5: Add LDB clock config code
>       arm: mx5: Add M53Menlo board
> 
> Otavio Salvador (2):
>       pico-imx6ul, pico-imx7d: Use eMMC user partition by default
>       pico-imx6ul, pico-imx7d: Enable USB and PXE boot support
> 
> Peng Fan (34):
>       dt-bindings: pinctrl: add i.MX8QXP pads definition
>       dt-bindings: clock: dt-bindings: pinctrl: add i.MX8QXP clocks
> definition
>       dt-bindings: soc: add i.MX8QXP pm and rsrc definition
>       imx8: add scfw macro definition
>       imx: add Kconfig entry for i.MX8QXP
>       arm: build mach-imx for i.MX8
>       arm: global_data: add scu_dev for i.MX8
>       misc: add i.MX8 misc driver
>       misc: imx8: add scfw api impementation
>       imx: boot_mode: Add FLEXSPI boot entry
>       imx8: add imx-regs header file
>       imx8: pins: include i.MX8QXP pin header when CONFIG_IMX8QXP defined
>       imx: add i.MX8 cpu type
>       armv8: add cpu core helper functions
>       imx8: add basic cpu support
>       imx8: add boot device detection
>       imx8: implement mmc_get_env_dev
>       imx8: add mmu and dram related functions
>       imx8: add arch_cpu_init arch_cpu_init_dm
>       imx8: add iomux configuration api
>       imx8: add dummy clock
>       gpio: mxc_gpio: add support for i.MX8
>       pinctrl: Add pinctrl driver for i.MX8
>       power: Add power domain driver for i.MX8
>       clk: imx: add clk driver for i.MX8QXP
>       serial_lpuart: Update lpuart driver to support i.MX8
>       serial: lpuart: support uclass clk api
>       mmc: fsl_esdhc: add uclass clk support
>       arm: dts: introduce dtsi for i.MX8QXP
>       imx: add i.MX8QXP MEK board support
>       tools: add i.MX8/8X image support
>       arm: imx: include imx8image support
>       imx: imx8qxp_mek: update to build image in U-Boot
>       imx: mkimage: avoid stop CI when required files not exists
> 
> Rui Miguel Silva (4):
>       imx: mx7: avoid some initialization if low level is skipped
>       optee: adjust dependencies and default values for dram
>       warp7: include: configs: set skip low level init
>       warp7: configs: add bl33 defconfig
> 
> Sébastien Szymanski (1):
>       ARM: opos6ul: make the board boot again
> 
> Xiaoliang Yang (1):
>       Kconfig: Convert CONFIG_IMX_WATCHDOG to Kconfig
> 
> Ye Li (2):
>       serial: lpuart: Enable RX and TX FIFO
>       fsl_esdhc: Update usdhc driver to support i.MX8
> 
>  arch/arm/Kconfig                                      |   8 +
>  arch/arm/Makefile                                     |   2 +-
>  arch/arm/dts/Makefile                                 |   2 +
>  arch/arm/dts/fsl-imx8-ca35.dtsi                       |  66 +++++++
>  arch/arm/dts/fsl-imx8dx.dtsi                          | 499
> +++++++++++++++++++++++++++++++++++++++++++++++++++
>  arch/arm/dts/fsl-imx8dxp.dtsi                         |  11 ++
>  arch/arm/dts/fsl-imx8qxp-mek.dts                      | 246
> ++++++++++++++++++++++++++
>  arch/arm/dts/fsl-imx8qxp.dtsi                         |  51 ++++++
>  arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi               |  28 +++
>  arch/arm/dts/imx6ul-opos6ul.dtsi                      |   2 -
>  arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi            |  24 +++
>  arch/arm/dts/imx6ul-opos6uldev.dts                    |   2 -
>  arch/arm/include/asm/arch-imx/cpu.h                   |   6 +
>  arch/arm/include/asm/arch-imx8/clock.h                |  27 +++
>  arch/arm/include/asm/arch-imx8/gpio.h                 |  21 +++
>  arch/arm/include/asm/arch-imx8/imx-regs.h             |  46 +++++
>  arch/arm/include/asm/arch-imx8/imx8-pins.h            |  15 ++
>  arch/arm/include/asm/arch-imx8/iomux.h                |  40 +++++
>  arch/arm/include/asm/arch-imx8/power-domain.h         |  15 ++
>  arch/arm/include/asm/arch-imx8/sci/rpc.h              | 158
> +++++++++++++++++
>  arch/arm/include/asm/arch-imx8/sci/sci.h              |  88 +++++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h     |  30 ++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h      |  57 ++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h       |  44 +++++
>  arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h       |  69 ++++++++
>  arch/arm/include/asm/arch-imx8/sci/types.h            | 220
> +++++++++++++++++++++++
>  arch/arm/include/asm/arch-imx8/sys_proto.h            |  19 ++
>  arch/arm/include/asm/arch-mx5/clock.h                 |   1 +
>  arch/arm/include/asm/armv8/cpu.h                      |  26 +++
>  arch/arm/include/asm/global_data.h                    |   4 +
>  arch/arm/include/asm/mach-imx/boot_mode.h             |   1 +
>  arch/arm/include/asm/mach-imx/sys_proto.h             |   3 +
>  arch/arm/mach-imx/Makefile                            |  26 ++-
>  arch/arm/mach-imx/imx8/Kconfig                        |  26 +++
>  arch/arm/mach-imx/imx8/Makefile                       |   7 +
>  arch/arm/mach-imx/imx8/clock.c                        |  21 +++
>  arch/arm/mach-imx/imx8/cpu.c                          | 646
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  arch/arm/mach-imx/imx8/iomux.c                        |  43 +++++
>  arch/arm/mach-imx/mx5/Kconfig                         |   6 +
>  arch/arm/mach-imx/mx5/clock.c                         |  29 +++
>  arch/arm/mach-imx/mx7/ddr.c                           |   4 +
>  arch/arm/mach-imx/mx7/soc.c                           |   2 +
>  arch/arm/mach-imx/syscounter.c                        |   2 +
>  board/freescale/imx8qxp_mek/Kconfig                   |  14 ++
>  board/freescale/imx8qxp_mek/MAINTAINERS               |   6 +
>  board/freescale/imx8qxp_mek/Makefile                  |   7 +
>  board/freescale/imx8qxp_mek/README                    |  55 ++++++
>  board/freescale/imx8qxp_mek/imx8qxp_mek.c             | 170
> ++++++++++++++++++
>  board/freescale/imx8qxp_mek/imximage.cfg              |  25 +++
>  board/freescale/mx8mq_evk/README                      |  81 +++++++++
>  board/ge/bx50v3/MAINTAINERS                           |   2 +-
>  board/ge/bx50v3/bx50v3.c                              |  38 ++--
>  board/menlo/m53menlo/Kconfig                          |  15 ++
>  board/menlo/m53menlo/MAINTAINERS                      |   7 +
>  board/menlo/m53menlo/Makefile                         |   9 +
>  board/menlo/m53menlo/imximage.cfg                     |  91 ++++++++++
>  board/menlo/m53menlo/m53menlo.c                       | 513
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  board/technexion/pico-imx7d/pico-imx7d.c              |  29 ++-
>  board/toradex/colibri_imx7/colibri_imx7.c             |   2 +-
>  board/warp7/MAINTAINERS                               |   1 +
>  common/image.c                                        |   1 +
>  configs/aristainetos2_defconfig                       |   1 +
>  configs/aristainetos2b_defconfig                      |   1 +
>  configs/aristainetos_defconfig                        |   1 +
>  configs/dh_imx6_defconfig                             |   1 +
>  configs/display5_defconfig                            |   1 +
>  configs/display5_factory_defconfig                    |   1 +
>  configs/ge_bx50v3_defconfig                           |   1 +
>  configs/imx8qxp_mek_defconfig                         |  52 ++++++
>  configs/kp_imx6q_tpc_defconfig                        |   1 +
>  configs/m53menlo_defconfig                            |  60 +++++++
>  configs/mx53ppd_defconfig                             |   1 +
>  configs/pico-hobbit-imx7d_defconfig                   |   1 -
>  configs/pico-imx7d_defconfig                          |   1 -
>  configs/pico-pi-imx7d_defconfig                       |   1 -
>  configs/tqma6s_wru4_mmc_defconfig                     |   1 +
>  configs/warp7_bl33_defconfig                          |  42 +++++
>  configs/warp7_defconfig                               |   2 +
>  configs/warp_defconfig                                |   1 +
>  doc/{README.imx25 => imx/common/imx25.txt}            |   0
>  doc/{README.imx27 => imx/common/imx27.txt}            |   0
>  doc/{README.imx5 => imx/common/imx5.txt}              |   0
>  doc/{README.imx6 => imx/common/imx6.txt}              |  25 ---
>  doc/{README.mxs => imx/common/mxs.txt}                |   0
>  doc/imx/hab/habv4/encrypted_boot.txt                  |  43 +++++
>  doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} |  44 -----
>  doc/{README.sdp => imx/misc/sdp.txt}                  |  22 ++-
>  doc/{README.imximage => imx/mkimage/imximage.txt}     |   0
>  doc/{README.mxsimage => imx/mkimage/mxsimage.txt}     |   0
>  drivers/clk/Kconfig                                   |   1 +
>  drivers/clk/Makefile                                  |   1 +
>  drivers/clk/imx/Kconfig                               |   6 +
>  drivers/clk/imx/Makefile                              |   5 +
>  drivers/clk/imx/clk-imx8.c                            | 393
> +++++++++++++++++++++++++++++++++++++++++
>  drivers/gpio/mxc_gpio.c                               |  30 +++-
>  drivers/i2c/imx_lpi2c.c                               |   4 +-
>  drivers/misc/Makefile                                 |   1 +
>  drivers/misc/imx8/Makefile                            |   3 +
>  drivers/misc/imx8/scu.c                               | 266
> ++++++++++++++++++++++++++++
>  drivers/misc/imx8/scu_api.c                           | 367
> ++++++++++++++++++++++++++++++++++++++
>  drivers/mmc/fsl_esdhc.c                               |  34 +++-
>  drivers/pinctrl/nxp/Kconfig                           |  18 ++
>  drivers/pinctrl/nxp/Makefile                          |   2 +
>  drivers/pinctrl/nxp/pinctrl-imx.c                     | 209
> ++++++++++++----------
>  drivers/pinctrl/nxp/pinctrl-imx.h                     |  16 ++
>  drivers/pinctrl/nxp/pinctrl-imx8.c                    |  40 +++++
>  drivers/pinctrl/nxp/pinctrl-scu.c                     |  66 +++++++
>  drivers/power/domain/Kconfig                          |   8 +-
>  drivers/power/domain/Makefile                         |   1 +
>  drivers/power/domain/imx8-power-domain.c              | 315
> +++++++++++++++++++++++++++++++++
>  drivers/serial/serial_lpuart.c                        | 143 ++++++++++++---
>  drivers/serial/serial_mxc.c                           |   1 +
>  drivers/watchdog/Kconfig                              |   7 +
>  include/configs/aristainetos-common.h                 |   3 -
>  include/configs/cl-som-imx7.h                         |   2 -
>  include/configs/colibri-imx6ull.h                     |   1 -
>  include/configs/colibri_imx7.h                        |   3 -
>  include/configs/dh_imx6.h                             |   2 -
>  include/configs/display5.h                            |   2 -
>  include/configs/ge_bx50v3.h                           |   2 -
>  include/configs/imx8qxp_mek.h                         | 157
> +++++++++++++++++
>  include/configs/kp_imx6q_tpc.h                        |   2 -
>  include/configs/m53menlo.h                            | 246
> ++++++++++++++++++++++++++
>  include/configs/mx53ppd.h                             |   2 -
>  include/configs/mx7dsabresd.h                         |   1 -
>  include/configs/pico-imx6ul.h                         |   6 +-
>  include/configs/pico-imx7d.h                          |   6 +-
>  include/configs/tqma6_wru4.h                          |   2 -
>  include/configs/warp.h                                |   2 -
>  include/configs/warp7.h                               |  11 ++
>  include/dt-bindings/clock/imx8qxp-clock.h             | 583
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  include/dt-bindings/pinctrl/pads-imx8qxp.h            | 757
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  include/dt-bindings/soc/imx8_pd.h                     | 188
> ++++++++++++++++++++
>  include/dt-bindings/soc/imx_rsrc.h                    | 557
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  include/fsl_lpuart.h                                  |   2 +-
>  include/image.h                                       |   1 +
>  include/imx8image.h                                   | 273
> ++++++++++++++++++++++++++++
>  lib/optee/Kconfig                                     |   8 +-
>  scripts/config_whitelist.txt                          |   2 -
>  tools/Makefile                                        |   1 +
>  tools/imagetool.h                                     |   1 +
>  tools/imx8_cntr_image.sh                              |  32 ++++
>  tools/imx8image.c                                     | 961
> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  tools/mkimage.c                                       |   7 +
>  144 files changed, 9491 insertions(+), 282 deletions(-)
>  create mode 100644 arch/arm/dts/fsl-imx8-ca35.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8dx.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8dxp.dtsi
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
>  create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
>  create mode 100644 arch/arm/dts/imx6ul-opos6ul-u-boot.dtsi
>  create mode 100644 arch/arm/dts/imx6ul-opos6uldev-u-boot.dtsi
>  create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/imx-regs.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/imx8-pins.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/iomux.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/power-domain.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/rpc.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/types.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sys_proto.h
>  create mode 100644 arch/arm/include/asm/armv8/cpu.h
>  create mode 100644 arch/arm/mach-imx/imx8/Kconfig
>  create mode 100644 arch/arm/mach-imx/imx8/Makefile
>  create mode 100644 arch/arm/mach-imx/imx8/clock.c
>  create mode 100644 arch/arm/mach-imx/imx8/cpu.c
>  create mode 100644 arch/arm/mach-imx/imx8/iomux.c
>  create mode 100644 board/freescale/imx8qxp_mek/Kconfig
>  create mode 100644 board/freescale/imx8qxp_mek/MAINTAINERS
>  create mode 100644 board/freescale/imx8qxp_mek/Makefile
>  create mode 100644 board/freescale/imx8qxp_mek/README
>  create mode 100644 board/freescale/imx8qxp_mek/imx8qxp_mek.c
>  create mode 100644 board/freescale/imx8qxp_mek/imximage.cfg
>  create mode 100644 board/freescale/mx8mq_evk/README
>  create mode 100644 board/menlo/m53menlo/Kconfig
>  create mode 100644 board/menlo/m53menlo/MAINTAINERS
>  create mode 100644 board/menlo/m53menlo/Makefile
>  create mode 100644 board/menlo/m53menlo/imximage.cfg
>  create mode 100644 board/menlo/m53menlo/m53menlo.c
>  create mode 100644 configs/imx8qxp_mek_defconfig
>  create mode 100644 configs/m53menlo_defconfig
>  create mode 100644 configs/warp7_bl33_defconfig
>  rename doc/{README.imx25 => imx/common/imx25.txt} (100%)
>  rename doc/{README.imx27 => imx/common/imx27.txt} (100%)
>  rename doc/{README.imx5 => imx/common/imx5.txt} (100%)
>  rename doc/{README.imx6 => imx/common/imx6.txt} (73%)
>  rename doc/{README.mxs => imx/common/mxs.txt} (100%)
>  create mode 100644 doc/imx/hab/habv4/encrypted_boot.txt
>  rename doc/{README.mxc_hab => imx/hab/habv4/secure_boot.txt} (68%)
>  rename doc/{README.sdp => imx/misc/sdp.txt} (82%)
>  rename doc/{README.imximage => imx/mkimage/imximage.txt} (100%)
>  rename doc/{README.mxsimage => imx/mkimage/mxsimage.txt} (100%)
>  create mode 100644 drivers/clk/imx/Kconfig
>  create mode 100644 drivers/clk/imx/Makefile
>  create mode 100644 drivers/clk/imx/clk-imx8.c
>  create mode 100644 drivers/misc/imx8/Makefile
>  create mode 100644 drivers/misc/imx8/scu.c
>  create mode 100644 drivers/misc/imx8/scu_api.c
>  create mode 100644 drivers/pinctrl/nxp/pinctrl-imx8.c
>  create mode 100644 drivers/pinctrl/nxp/pinctrl-scu.c
>  create mode 100644 drivers/power/domain/imx8-power-domain.c
>  create mode 100644 include/configs/imx8qxp_mek.h
>  create mode 100644 include/configs/m53menlo.h
>  create mode 100644 include/dt-bindings/clock/imx8qxp-clock.h
>  create mode 100644 include/dt-bindings/pinctrl/pads-imx8qxp.h
>  create mode 100644 include/dt-bindings/soc/imx8_pd.h
>  create mode 100644 include/dt-bindings/soc/imx_rsrc.h
>  create mode 100644 include/imx8image.h
>  create mode 100755 tools/imx8_cntr_image.sh
>  create mode 100644 tools/imx8image.c
> 
> On 23/10/18 16:52, Tom Rini wrote:
>> On Tue, Oct 23, 2018 at 04:42:53PM +0200, Stefano Babic wrote:
>>> Hi Tom,
>>>
>>> On 23/10/18 16:29, Tom Rini wrote:
>>>> On Tue, Oct 23, 2018 at 09:52:58AM +0200, Stefano Babic wrote:
>>>>
>>>>> Hi Tom,
>>>>>
>>>>> please pull from u-boot-imx (tag: u-boot-imx-20181023) thanks !
>>>>>
>>>>> The tree contains fixes for i.MX6 and improvement in docs, but the most
>>>>> important part is the introduction of the i.MX8 architecture (thanks to
>>>>> Peng and Antolji for their work !). Build on Travis reported no error,
>>>>> but I get a build issue with the VF610 boards - this will be require a
>>>>> fix in next days. i.MX8 can be built following exactly the instruction
>>>>> of the README file (NXP firmware requires to acknowledge the EULA).
>>>>
>>>> I know the i.MX8 stuff has been kicking around for a while so.. OK, yes,
>>>> I won't be too upset about pushing it so late in the cycle.  But, my
>>>> travis builds do see an error:
>>>> https://travis-ci.org/trini/u-boot/jobs/445069389#L1038 which is "Fail
>>>> open first container file ahab-container.img" for imx8qxp_mek and I also
>>>> see that locally.
>>>
>>> I know: to build i.MX8, we need to download external firmware. In fact,
>>> we have to provide the files according to board/freescale/mx8mq_evk/README.
>>>
>>> Near "imx-atf" (this is not a problem, loaded and built), we need two
>>> additional "closed" firmware, that is firmware-imx (currently, 7.6) and
>>> imx-sc-firmware. They can be downloaded but they underly the acknowledge
>>> of NXP's EULA. They are self extracting scripts and we could hack it to
>>> have an automatic build, but I *guess* this breaks the license. I do not
>>> know if we are allowed to do this, and both of these firmwares do not
>>> provide a way to "implicitely" skip the EULA as we do in OE by setting a
>>> variable in local.conf.
>>>
>>>>  This feels like the same class of error that we have
>>>> to deal with on other AArch64 platforms, namely of throwing a user
>>>> visible error that what they just built will not boot due to lack of
>>>> other files.
>>>
>>> I am unsure: mkimage packs all files together as part of the build, when
>>> they are available. User cannot even try to boot, because the build
>>> stops if these files are not available. The error at mkimage step is
>>> saying us that build is not complete due to missing files (atf,
>>> firmware-imx and imx-sc-firmware).
>>
>> Yup, this is the same problem we have in other platforms.  Take a look
>> at board/sunxi/mksunxi_fit_atf.sh or tools/k3_fit_atf.sh for what we do
>> on some other platforms so that CI build completes but it's clear to the
>> end user that the binary will not work and what they need to do / read
>> to get a functional build.  There's also
>> arch/arm/mach-omap2/config_secure.mk as an example of all the fun we
>> have for building the secure TI platforms that more closely follow the
>> problem you have here, namely of needing EULA'd packages (and in those
>> cases, also NDA, iirc) installed to complete a functional build.  I
>> think you'll need to do something closer to the xxxx_fit_atf.sh scripts
>> in this case, to check for required blobs and if not found, not call
>> mkimage and echo something loud and visible to the user.
>>
> 
> Regards,
> Stefano
>