mbox series

[U-Boot,00/41] imx: add i.MX8QXP support

Message ID 20180528122526.20597-1-peng.fan@nxp.com
Headers show
Series imx: add i.MX8QXP support | expand

Message

Peng Fan May 28, 2018, 12:24 p.m. UTC
This patchset is to upstream i.MX8QXP and mek board support, with some
drivers update to support i.MX8QXP. The information about the processor
could be found
https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8x-family-arm-cortex-a35-3d-graphics-4k-video-dsp-error-correcting-code-on-ddr:i.MX8X

The architecture of i.MX8QXP is different from i.MX6/7/8M, inside i.MX8QXP,
there is a dedicated processor(SCU) used for power/clock/pin/
pad/resource management/thermal and etc. The ACore need to communicate
with SCU using SCFW API. The SCFW API is exported by SCFW, so we directly
import it into U-Boot source code.

Gao Pan (1):
  imx: lpi2c: fix clock issue when NACK detected

Peng Fan (32):
  imx: import SCFW API
  imx: add Kconfig entry for i.MX8
  arm: build mach-imx for i.MX8
  imx8: add IPC communication support between ACore and SCU
  arm: global_data: introduce ipc_channel_handle
  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
  imx8: add basic cpu support
  imx8: add boot device detection
  imx8: implement mmc_get_env_dev
  imx8: implement imx_get_mac_from_fuse
  imx8: implement get_board_serial
  imx8: add mmu and dram related functiions
  imx8: add bootaux support
  imx8: add arch_cpu_init
  imx8: add clock driver
  imx8: add iomux configuration code
  serial_lpuart: Update lpuart driver to support i.MX8
  net: fec: do not access reserved register for i.MX8
  gpio: mxc_gpio: add support for i.MX8
  pinctrl: Add pinctrl driver for i.MX8
  power: Add power domain driver for i.MX8
  power: Add PD device lookup interface to power domain uclass
  power-domain: add dummy functions when CONFIG_POWER_DOMAIN not defined
  dm: core: device: enable power domain in probe
  drivers: regulator: fixed: add off-on-delay-us
  log: include command header file
  i2c-mux: pca954x: support pca9646 i2c switch
  dts: imx8qxp: Add DTS and binding header files
  imx: 8qxp_mek: Add i.MX8QXP MEK board support

Ye Li (8):
  fsl_esdhc: Update usdhc driver to support i.MX8
  serial: lpuart: Enable RX and TX FIFO
  imx_lpi2c: Update lpi2c driver to support imx8
  lpi2c: Fix bus stop problem in xfer
  lpi2c: Add bus busy error handling
  net: fec_mxc: Add the init_clk_fec function
  sata: Add i.MX8 SATA support
  mmc: fsl_esdhc: fix sd/mmc ddr mode clock setting issue

 arch/arm/Kconfig                                   |    8 +
 arch/arm/Makefile                                  |    2 +-
 arch/arm/dts/Makefile                              |    2 +
 arch/arm/dts/fsl-imx8qxp-mek.dts                   |  416 +++++
 arch/arm/dts/fsl-imx8qxp.dtsi                      | 1593 ++++++++++++++++++++
 arch/arm/include/asm/arch-imx/cpu.h                |    5 +
 arch/arm/include/asm/arch-imx8/clock.h             |   36 +
 arch/arm/include/asm/arch-imx8/cpu.h               |   26 +
 arch/arm/include/asm/arch-imx8/fsl_mu_hal.h        |   54 +
 arch/arm/include/asm/arch-imx8/gpio.h              |   22 +
 arch/arm/include/asm/arch-imx8/i2c.h               |   34 +
 arch/arm/include/asm/arch-imx8/imx-regs.h          |  119 ++
 arch/arm/include/asm/arch-imx8/imx8-pins.h         |   15 +
 arch/arm/include/asm/arch-imx8/imx8qm_pads.h       |  295 ++++
 arch/arm/include/asm/arch-imx8/imx8qxp_pads.h      |  200 +++
 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/ipc.h           |   67 +
 arch/arm/include/asm/arch-imx8/sci/rpc.h           |  131 ++
 arch/arm/include/asm/arch-imx8/sci/sci.h           |   39 +
 arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h   |  160 ++
 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h  |  523 +++++++
 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h   |  568 +++++++
 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h    |  686 +++++++++
 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h    |  759 ++++++++++
 arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h |  306 ++++
 arch/arm/include/asm/arch-imx8/sci/types.h         |  862 +++++++++++
 arch/arm/include/asm/arch-imx8/sys_proto.h         |   19 +
 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                         |    1 +
 arch/arm/mach-imx/imx8/Kconfig                     |   26 +
 arch/arm/mach-imx/imx8/Makefile                    |   13 +
 arch/arm/mach-imx/imx8/clock.c                     |  361 +++++
 arch/arm/mach-imx/imx8/cpu.c                       |  783 ++++++++++
 arch/arm/mach-imx/imx8/fsl_mu_hal.c                |   28 +
 arch/arm/mach-imx/imx8/iomux.c                     |   47 +
 arch/arm/mach-imx/imx8/sci/ipc.c                   |  100 ++
 arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h           |   54 +
 arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c      |   76 +
 arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h          |   76 +
 arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c     |  515 +++++++
 arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h           |   68 +
 arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c      |  475 ++++++
 arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h            |   73 +
 arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c       |  460 ++++++
 arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h            |   83 +
 arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c       |  645 ++++++++
 arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h         |   67 +
 arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.c    |  365 +++++
 board/freescale/imx8qxp_mek/Kconfig                |   14 +
 board/freescale/imx8qxp_mek/MAINTAINERS            |    6 +
 board/freescale/imx8qxp_mek/Makefile               |    7 +
 board/freescale/imx8qxp_mek/imx8qxp_mek.c          |  159 ++
 configs/imx8qxp_mek_defconfig                      |   47 +
 drivers/ata/Kconfig                                |    6 +
 drivers/ata/Makefile                               |    1 +
 drivers/ata/ahci.c                                 |   25 +
 drivers/ata/sata_imx.c                             |   64 +
 drivers/core/device.c                              |    7 +
 drivers/gpio/mxc_gpio.c                            |   30 +-
 drivers/i2c/imx_lpi2c.c                            |   82 +-
 drivers/i2c/muxes/pca954x.c                        |    9 +-
 drivers/mmc/fsl_esdhc.c                            |   32 +-
 drivers/net/fec_mxc.c                              |    9 +-
 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                 |   42 +
 drivers/pinctrl/nxp/pinctrl-scu.c                  |   72 +
 drivers/power/domain/Kconfig                       |    6 +
 drivers/power/domain/Makefile                      |    1 +
 drivers/power/domain/imx8-power-domain.c           |  315 ++++
 drivers/power/domain/power-domain-uclass.c         |   42 +
 drivers/power/regulator/fixed.c                    |    6 +
 drivers/serial/serial_lpuart.c                     |   48 +-
 include/configs/imx8qxp_mek.h                      |  157 ++
 include/dt-bindings/clock/imx8qxp-clock.h          |  533 +++++++
 include/dt-bindings/pinctrl/pads-imx8qm.h          |  975 ++++++++++++
 include/dt-bindings/pinctrl/pads-imx8qxp.h         |  770 ++++++++++
 include/dt-bindings/soc/imx8_pd.h                  |  197 +++
 include/dt-bindings/soc/imx_rsrc.h                 |  560 +++++++
 include/fsl_lpuart.h                               |    2 +-
 .../asm/arch-mx7ulp => include}/imx_lpi2c.h        |    0
 include/log.h                                      |    1 +
 include/power-domain.h                             |   52 +
 88 files changed, 15691 insertions(+), 157 deletions(-)
 create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
 create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
 create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
 create mode 100644 arch/arm/include/asm/arch-imx8/cpu.h
 create mode 100644 arch/arm/include/asm/arch-imx8/fsl_mu_hal.h
 create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
 create mode 100644 arch/arm/include/asm/arch-imx8/i2c.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/imx8qm_pads.h
 create mode 100644 arch/arm/include/asm/arch-imx8/imx8qxp_pads.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 100755 arch/arm/include/asm/arch-imx8/sci/ipc.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/rpc.h
 create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
 create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h
 create mode 100755 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/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/fsl_mu_hal.c
 create mode 100644 arch/arm/mach-imx/imx8/iomux.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/ipc.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h
 create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.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/imx8qxp_mek.c
 create mode 100644 configs/imx8qxp_mek_defconfig
 create mode 100644 drivers/ata/sata_imx.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/dt-bindings/clock/imx8qxp-clock.h
 create mode 100644 include/dt-bindings/pinctrl/pads-imx8qm.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
 rename {arch/arm/include/asm/arch-mx7ulp => include}/imx_lpi2c.h (100%)

Comments

Peng Fan June 12, 2018, 9:43 a.m. UTC | #1
Hi Stefano, Fabio,

Sorry for the bother in patch 1, that patch is big. So ask here.
Do you have any comments on the patchset?

Thanks,
Peng

> -----Original Message-----
> From: Peng Fan
> Sent: 2018年5月28日 20:25
> To: sbabic@denx.de; Fabio Estevam <fabio.estevam@nxp.com>
> Cc: u-boot@lists.denx.de; Peng Fan <peng.fan@nxp.com>
> Subject: [PATCH 00/41] imx: add i.MX8QXP support
> 
> This patchset is to upstream i.MX8QXP and mek board support, with some
> drivers update to support i.MX8QXP. The information about the processor could
> be found
> https://www.nxp.com/products/processors-and-microcontrollers/applications-p
> rocessors/i.mx-applications-processors/i.mx-8-processors/i.mx-8x-family-arm-co
> rtex-a35-3d-graphics-4k-video-dsp-error-correcting-code-on-ddr:i.MX8X
> 
> The architecture of i.MX8QXP is different from i.MX6/7/8M, inside i.MX8QXP,
> there is a dedicated processor(SCU) used for power/clock/pin/ pad/resource
> management/thermal and etc. The ACore need to communicate with SCU using
> SCFW API. The SCFW API is exported by SCFW, so we directly import it into
> U-Boot source code.
> 
> Gao Pan (1):
>   imx: lpi2c: fix clock issue when NACK detected
> 
> Peng Fan (32):
>   imx: import SCFW API
>   imx: add Kconfig entry for i.MX8
>   arm: build mach-imx for i.MX8
>   imx8: add IPC communication support between ACore and SCU
>   arm: global_data: introduce ipc_channel_handle
>   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
>   imx8: add basic cpu support
>   imx8: add boot device detection
>   imx8: implement mmc_get_env_dev
>   imx8: implement imx_get_mac_from_fuse
>   imx8: implement get_board_serial
>   imx8: add mmu and dram related functiions
>   imx8: add bootaux support
>   imx8: add arch_cpu_init
>   imx8: add clock driver
>   imx8: add iomux configuration code
>   serial_lpuart: Update lpuart driver to support i.MX8
>   net: fec: do not access reserved register for i.MX8
>   gpio: mxc_gpio: add support for i.MX8
>   pinctrl: Add pinctrl driver for i.MX8
>   power: Add power domain driver for i.MX8
>   power: Add PD device lookup interface to power domain uclass
>   power-domain: add dummy functions when CONFIG_POWER_DOMAIN not
> defined
>   dm: core: device: enable power domain in probe
>   drivers: regulator: fixed: add off-on-delay-us
>   log: include command header file
>   i2c-mux: pca954x: support pca9646 i2c switch
>   dts: imx8qxp: Add DTS and binding header files
>   imx: 8qxp_mek: Add i.MX8QXP MEK board support
> 
> Ye Li (8):
>   fsl_esdhc: Update usdhc driver to support i.MX8
>   serial: lpuart: Enable RX and TX FIFO
>   imx_lpi2c: Update lpi2c driver to support imx8
>   lpi2c: Fix bus stop problem in xfer
>   lpi2c: Add bus busy error handling
>   net: fec_mxc: Add the init_clk_fec function
>   sata: Add i.MX8 SATA support
>   mmc: fsl_esdhc: fix sd/mmc ddr mode clock setting issue
> 
>  arch/arm/Kconfig                                   |    8 +
>  arch/arm/Makefile                                  |    2 +-
>  arch/arm/dts/Makefile                              |    2 +
>  arch/arm/dts/fsl-imx8qxp-mek.dts                   |  416 +++++
>  arch/arm/dts/fsl-imx8qxp.dtsi                      | 1593
> ++++++++++++++++++++
>  arch/arm/include/asm/arch-imx/cpu.h                |    5 +
>  arch/arm/include/asm/arch-imx8/clock.h             |   36 +
>  arch/arm/include/asm/arch-imx8/cpu.h               |   26 +
>  arch/arm/include/asm/arch-imx8/fsl_mu_hal.h        |   54 +
>  arch/arm/include/asm/arch-imx8/gpio.h              |   22 +
>  arch/arm/include/asm/arch-imx8/i2c.h               |   34 +
>  arch/arm/include/asm/arch-imx8/imx-regs.h          |  119 ++
>  arch/arm/include/asm/arch-imx8/imx8-pins.h         |   15 +
>  arch/arm/include/asm/arch-imx8/imx8qm_pads.h       |  295 ++++
>  arch/arm/include/asm/arch-imx8/imx8qxp_pads.h      |  200 +++
>  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/ipc.h           |   67 +
>  arch/arm/include/asm/arch-imx8/sci/rpc.h           |  131 ++
>  arch/arm/include/asm/arch-imx8/sci/sci.h           |   39 +
>  arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h   |  160 ++
>  arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h  |  523 +++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h   |  568 +++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h    |  686 +++++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h    |  759 ++++++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h |  306 ++++
>  arch/arm/include/asm/arch-imx8/sci/types.h         |  862 +++++++++++
>  arch/arm/include/asm/arch-imx8/sys_proto.h         |   19 +
>  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                         |    1 +
>  arch/arm/mach-imx/imx8/Kconfig                     |   26 +
>  arch/arm/mach-imx/imx8/Makefile                    |   13 +
>  arch/arm/mach-imx/imx8/clock.c                     |  361 +++++
>  arch/arm/mach-imx/imx8/cpu.c                       |  783
> ++++++++++
>  arch/arm/mach-imx/imx8/fsl_mu_hal.c                |   28 +
>  arch/arm/mach-imx/imx8/iomux.c                     |   47 +
>  arch/arm/mach-imx/imx8/sci/ipc.c                   |  100 ++
>  arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h           |   54 +
>  arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c      |   76 +
>  arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h          |   76 +
>  arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c     |  515 +++++++
>  arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h           |   68 +
>  arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c      |  475 ++++++
>  arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h            |   73 +
>  arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c       |  460 ++++++
>  arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h            |   83 +
>  arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c       |  645 ++++++++
>  arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h         |   67 +
>  arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.c    |  365 +++++
>  board/freescale/imx8qxp_mek/Kconfig                |   14 +
>  board/freescale/imx8qxp_mek/MAINTAINERS            |    6 +
>  board/freescale/imx8qxp_mek/Makefile               |    7 +
>  board/freescale/imx8qxp_mek/imx8qxp_mek.c          |  159 ++
>  configs/imx8qxp_mek_defconfig                      |   47 +
>  drivers/ata/Kconfig                                |    6 +
>  drivers/ata/Makefile                               |    1 +
>  drivers/ata/ahci.c                                 |   25 +
>  drivers/ata/sata_imx.c                             |   64 +
>  drivers/core/device.c                              |    7 +
>  drivers/gpio/mxc_gpio.c                            |   30 +-
>  drivers/i2c/imx_lpi2c.c                            |   82 +-
>  drivers/i2c/muxes/pca954x.c                        |    9 +-
>  drivers/mmc/fsl_esdhc.c                            |   32 +-
>  drivers/net/fec_mxc.c                              |    9 +-
>  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                 |   42 +
>  drivers/pinctrl/nxp/pinctrl-scu.c                  |   72 +
>  drivers/power/domain/Kconfig                       |    6 +
>  drivers/power/domain/Makefile                      |    1 +
>  drivers/power/domain/imx8-power-domain.c           |  315 ++++
>  drivers/power/domain/power-domain-uclass.c         |   42 +
>  drivers/power/regulator/fixed.c                    |    6 +
>  drivers/serial/serial_lpuart.c                     |   48 +-
>  include/configs/imx8qxp_mek.h                      |  157 ++
>  include/dt-bindings/clock/imx8qxp-clock.h          |  533 +++++++
>  include/dt-bindings/pinctrl/pads-imx8qm.h          |  975 ++++++++++++
>  include/dt-bindings/pinctrl/pads-imx8qxp.h         |  770 ++++++++++
>  include/dt-bindings/soc/imx8_pd.h                  |  197 +++
>  include/dt-bindings/soc/imx_rsrc.h                 |  560 +++++++
>  include/fsl_lpuart.h                               |    2 +-
>  .../asm/arch-mx7ulp => include}/imx_lpi2c.h        |    0
>  include/log.h                                      |    1 +
>  include/power-domain.h                             |   52 +
>  88 files changed, 15691 insertions(+), 157 deletions(-)  create mode 100644
> arch/arm/dts/fsl-imx8qxp-mek.dts  create mode 100644
> arch/arm/dts/fsl-imx8qxp.dtsi  create mode 100644
> arch/arm/include/asm/arch-imx8/clock.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/cpu.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/fsl_mu_hal.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/i2c.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/imx8qm_pads.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/imx8qxp_pads.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 100755 arch/arm/include/asm/arch-imx8/sci/ipc.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/rpc.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h
>  create mode 100755 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/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/fsl_mu_hal.c
>  create mode 100644 arch/arm/mach-imx/imx8/iomux.c  create mode
> 100644 arch/arm/mach-imx/imx8/sci/ipc.c  create mode 100644
> arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.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/imx8qxp_mek.c
>  create mode 100644 configs/imx8qxp_mek_defconfig  create mode 100644
> drivers/ata/sata_imx.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/dt-bindings/clock/imx8qxp-clock.h
>  create mode 100644 include/dt-bindings/pinctrl/pads-imx8qm.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
>  rename {arch/arm/include/asm/arch-mx7ulp => include}/imx_lpi2c.h (100%)
> 
> --
> 2.14.1
Fabio Estevam June 12, 2018, 2:07 p.m. UTC | #2
Hi Peng,

On Tue, Jun 12, 2018 at 6:43 AM, Peng Fan <peng.fan@nxp.com> wrote:
> Hi Stefano, Fabio,
>
> Sorry for the bother in patch 1, that patch is big. So ask here.
> Do you have any comments on the patchset?

It would be better if you could split this 41 patch series into smaller pieces.

For example: you could send driver related patches to each subsystem
maintainer separately instead of being part of this the huge series.

I will try to provide some feedback during this week.

Thanks for working on this.
Peng Fan June 15, 2018, 6:45 a.m. UTC | #3
Hi Fabio

> -----Original Message-----
> From: Fabio Estevam [mailto:festevam@gmail.com]
> Sent: 2018年6月12日 22:08
> To: Peng Fan <peng.fan@nxp.com>
> Cc: sbabic@denx.de; Fabio Estevam <fabio.estevam@nxp.com>;
> u-boot@lists.denx.de
> Subject: Re: [U-Boot] [PATCH 00/41] imx: add i.MX8QXP support
> 
> Hi Peng,
> 
> On Tue, Jun 12, 2018 at 6:43 AM, Peng Fan <peng.fan@nxp.com> wrote:
> > Hi Stefano, Fabio,
> >
> > Sorry for the bother in patch 1, that patch is big. So ask here.
> > Do you have any comments on the patchset?
> 
> It would be better if you could split this 41 patch series into smaller pieces.
> 
> For example: you could send driver related patches to each subsystem
> maintainer separately instead of being part of this the huge series.

Ok. I'll split them into small patchset in next version.

> 
> I will try to provide some feedback during this week.

Thanks.

Thanks,
Peng.
> 
> Thanks for working on this.
Stefano Babic June 27, 2018, 8:13 a.m. UTC | #4
Hi Peng,


On 28/05/2018 14:24, Peng Fan wrote:
> This patchset is to upstream i.MX8QXP and mek board support, with some
> drivers update to support i.MX8QXP. The information about the processor
> could be found
> https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applications-processors/i.mx-8-processors/i.mx-8x-family-arm-cortex-a35-3d-graphics-4k-video-dsp-error-correcting-code-on-ddr:i.MX8X
> 
> The architecture of i.MX8QXP is different from i.MX6/7/8M, inside i.MX8QXP,
> there is a dedicated processor(SCU) used for power/clock/pin/
> pad/resource management/thermal and etc. The ACore need to communicate
> with SCU using SCFW API. The SCFW API is exported by SCFW, so we directly
> import it into U-Boot source code.
> 

first at all, thanks for this. It is a huge work, and all of us want to
get the MX8 into U-Boot. I would like to plan how we can introduce the
architecture in U-Boot.

First at all, I beg you to split the huge series into small pieces. It
is quite difficult to review. I suggest you extract parts that are not
related to MX8. Some of patches in the series can be already be merged
because unrelated.

For example, I2C patches:

lpi2c: Fix bus stop problem in xfer
lpi2c: Add bus busy error handling

They can be simply merged because they fix issues. Some other Ye's patch
fall into this category and can be merged independently foro mi.MX8.

I will also ask to split Patch 1 in small and easier to review pieces.

Best regards,
Stefano

> Gao Pan (1):
>   imx: lpi2c: fix clock issue when NACK detected
> 
> Peng Fan (32):
>   imx: import SCFW API
>   imx: add Kconfig entry for i.MX8
>   arm: build mach-imx for i.MX8
>   imx8: add IPC communication support between ACore and SCU
>   arm: global_data: introduce ipc_channel_handle
>   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
>   imx8: add basic cpu support
>   imx8: add boot device detection
>   imx8: implement mmc_get_env_dev
>   imx8: implement imx_get_mac_from_fuse
>   imx8: implement get_board_serial
>   imx8: add mmu and dram related functiions
>   imx8: add bootaux support
>   imx8: add arch_cpu_init
>   imx8: add clock driver
>   imx8: add iomux configuration code
>   serial_lpuart: Update lpuart driver to support i.MX8
>   net: fec: do not access reserved register for i.MX8
>   gpio: mxc_gpio: add support for i.MX8
>   pinctrl: Add pinctrl driver for i.MX8
>   power: Add power domain driver for i.MX8
>   power: Add PD device lookup interface to power domain uclass
>   power-domain: add dummy functions when CONFIG_POWER_DOMAIN not defined
>   dm: core: device: enable power domain in probe
>   drivers: regulator: fixed: add off-on-delay-us
>   log: include command header file
>   i2c-mux: pca954x: support pca9646 i2c switch
>   dts: imx8qxp: Add DTS and binding header files
>   imx: 8qxp_mek: Add i.MX8QXP MEK board support
> 
> Ye Li (8):
>   fsl_esdhc: Update usdhc driver to support i.MX8
>   serial: lpuart: Enable RX and TX FIFO
>   imx_lpi2c: Update lpi2c driver to support imx8
>   lpi2c: Fix bus stop problem in xfer
>   lpi2c: Add bus busy error handling
>   net: fec_mxc: Add the init_clk_fec function
>   sata: Add i.MX8 SATA support
>   mmc: fsl_esdhc: fix sd/mmc ddr mode clock setting issue
> 
>  arch/arm/Kconfig                                   |    8 +
>  arch/arm/Makefile                                  |    2 +-
>  arch/arm/dts/Makefile                              |    2 +
>  arch/arm/dts/fsl-imx8qxp-mek.dts                   |  416 +++++
>  arch/arm/dts/fsl-imx8qxp.dtsi                      | 1593 ++++++++++++++++++++
>  arch/arm/include/asm/arch-imx/cpu.h                |    5 +
>  arch/arm/include/asm/arch-imx8/clock.h             |   36 +
>  arch/arm/include/asm/arch-imx8/cpu.h               |   26 +
>  arch/arm/include/asm/arch-imx8/fsl_mu_hal.h        |   54 +
>  arch/arm/include/asm/arch-imx8/gpio.h              |   22 +
>  arch/arm/include/asm/arch-imx8/i2c.h               |   34 +
>  arch/arm/include/asm/arch-imx8/imx-regs.h          |  119 ++
>  arch/arm/include/asm/arch-imx8/imx8-pins.h         |   15 +
>  arch/arm/include/asm/arch-imx8/imx8qm_pads.h       |  295 ++++
>  arch/arm/include/asm/arch-imx8/imx8qxp_pads.h      |  200 +++
>  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/ipc.h           |   67 +
>  arch/arm/include/asm/arch-imx8/sci/rpc.h           |  131 ++
>  arch/arm/include/asm/arch-imx8/sci/sci.h           |   39 +
>  arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h   |  160 ++
>  arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h  |  523 +++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h   |  568 +++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h    |  686 +++++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h    |  759 ++++++++++
>  arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h |  306 ++++
>  arch/arm/include/asm/arch-imx8/sci/types.h         |  862 +++++++++++
>  arch/arm/include/asm/arch-imx8/sys_proto.h         |   19 +
>  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                         |    1 +
>  arch/arm/mach-imx/imx8/Kconfig                     |   26 +
>  arch/arm/mach-imx/imx8/Makefile                    |   13 +
>  arch/arm/mach-imx/imx8/clock.c                     |  361 +++++
>  arch/arm/mach-imx/imx8/cpu.c                       |  783 ++++++++++
>  arch/arm/mach-imx/imx8/fsl_mu_hal.c                |   28 +
>  arch/arm/mach-imx/imx8/iomux.c                     |   47 +
>  arch/arm/mach-imx/imx8/sci/ipc.c                   |  100 ++
>  arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h           |   54 +
>  arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c      |   76 +
>  arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h          |   76 +
>  arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c     |  515 +++++++
>  arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h           |   68 +
>  arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c      |  475 ++++++
>  arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h            |   73 +
>  arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c       |  460 ++++++
>  arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h            |   83 +
>  arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c       |  645 ++++++++
>  arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h         |   67 +
>  arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.c    |  365 +++++
>  board/freescale/imx8qxp_mek/Kconfig                |   14 +
>  board/freescale/imx8qxp_mek/MAINTAINERS            |    6 +
>  board/freescale/imx8qxp_mek/Makefile               |    7 +
>  board/freescale/imx8qxp_mek/imx8qxp_mek.c          |  159 ++
>  configs/imx8qxp_mek_defconfig                      |   47 +
>  drivers/ata/Kconfig                                |    6 +
>  drivers/ata/Makefile                               |    1 +
>  drivers/ata/ahci.c                                 |   25 +
>  drivers/ata/sata_imx.c                             |   64 +
>  drivers/core/device.c                              |    7 +
>  drivers/gpio/mxc_gpio.c                            |   30 +-
>  drivers/i2c/imx_lpi2c.c                            |   82 +-
>  drivers/i2c/muxes/pca954x.c                        |    9 +-
>  drivers/mmc/fsl_esdhc.c                            |   32 +-
>  drivers/net/fec_mxc.c                              |    9 +-
>  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                 |   42 +
>  drivers/pinctrl/nxp/pinctrl-scu.c                  |   72 +
>  drivers/power/domain/Kconfig                       |    6 +
>  drivers/power/domain/Makefile                      |    1 +
>  drivers/power/domain/imx8-power-domain.c           |  315 ++++
>  drivers/power/domain/power-domain-uclass.c         |   42 +
>  drivers/power/regulator/fixed.c                    |    6 +
>  drivers/serial/serial_lpuart.c                     |   48 +-
>  include/configs/imx8qxp_mek.h                      |  157 ++
>  include/dt-bindings/clock/imx8qxp-clock.h          |  533 +++++++
>  include/dt-bindings/pinctrl/pads-imx8qm.h          |  975 ++++++++++++
>  include/dt-bindings/pinctrl/pads-imx8qxp.h         |  770 ++++++++++
>  include/dt-bindings/soc/imx8_pd.h                  |  197 +++
>  include/dt-bindings/soc/imx_rsrc.h                 |  560 +++++++
>  include/fsl_lpuart.h                               |    2 +-
>  .../asm/arch-mx7ulp => include}/imx_lpi2c.h        |    0
>  include/log.h                                      |    1 +
>  include/power-domain.h                             |   52 +
>  88 files changed, 15691 insertions(+), 157 deletions(-)
>  create mode 100644 arch/arm/dts/fsl-imx8qxp-mek.dts
>  create mode 100644 arch/arm/dts/fsl-imx8qxp.dtsi
>  create mode 100644 arch/arm/include/asm/arch-imx8/clock.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/cpu.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/fsl_mu_hal.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/i2c.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/imx8qm_pads.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/imx8qxp_pads.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 100755 arch/arm/include/asm/arch-imx8/sci/ipc.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/rpc.h
>  create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
>  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h
>  create mode 100755 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/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/fsl_mu_hal.c
>  create mode 100644 arch/arm/mach-imx/imx8/iomux.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/ipc.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h
>  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.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/imx8qxp_mek.c
>  create mode 100644 configs/imx8qxp_mek_defconfig
>  create mode 100644 drivers/ata/sata_imx.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/dt-bindings/clock/imx8qxp-clock.h
>  create mode 100644 include/dt-bindings/pinctrl/pads-imx8qm.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
>  rename {arch/arm/include/asm/arch-mx7ulp => include}/imx_lpi2c.h (100%)
>
Peng Fan July 7, 2018, 12:55 p.m. UTC | #5
Hi Stefano,

> -----Original Message-----
> From: Stefano Babic [mailto:sbabic@denx.de]
> Sent: 2018年6月27日 16:14
> To: Peng Fan <peng.fan@nxp.com>; sbabic@denx.de; Fabio Estevam
> <fabio.estevam@nxp.com>
> Cc: u-boot@lists.denx.de; Anatolij Gustschin <agust@denx.de>
> Subject: Re: [PATCH 00/41] imx: add i.MX8QXP support
> 
> Hi Peng,
> 
> 
> On 28/05/2018 14:24, Peng Fan wrote:
> > This patchset is to upstream i.MX8QXP and mek board support, with some
> > drivers update to support i.MX8QXP. The information about the
> > processor could be found
> > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww
> > .nxp.com%2Fproducts%2Fprocessors-and-microcontrollers%2Fapplications-p
> > rocessors%2Fi.mx-applications-processors%2Fi.mx-8-processors%2Fi.mx-8x
> > -family-arm-cortex-a35-3d-graphics-4k-video-dsp-error-correcting-code-
> >
> on-ddr%3Ai.MX8X&data=02%7C01%7Cpeng.fan%40nxp.com%7C1aeecdf44004
> 48a1ee
> >
> aa08d5dc05ea14%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636
> 6568403
> >
> 29616566&sdata=Fgi%2FTq16goRxKyLtVkFQwW7VfZEhFwKnIXAEuqRNPZo%3D
> &reserv
> > ed=0
> >
> > The architecture of i.MX8QXP is different from i.MX6/7/8M, inside
> > i.MX8QXP, there is a dedicated processor(SCU) used for
> > power/clock/pin/ pad/resource management/thermal and etc. The ACore
> > need to communicate with SCU using SCFW API. The SCFW API is exported
> > by SCFW, so we directly import it into U-Boot source code.
> >
> 
> first at all, thanks for this. It is a huge work, and all of us want to get the MX8
> into U-Boot. I would like to plan how we can introduce the architecture in
> U-Boot.
> 
> First at all, I beg you to split the huge series into small pieces. It is quite difficult
> to review. I suggest you extract parts that are not related to MX8. Some of
> patches in the series can be already be merged because unrelated.
> 
> For example, I2C patches:
> 
> lpi2c: Fix bus stop problem in xfer
> lpi2c: Add bus busy error handling
> 
> They can be simply merged because they fix issues. Some other Ye's patch fall
> into this category and can be merged independently foro mi.MX8.

I'll spit them into small patches.
> 
> I will also ask to split Patch 1 in small and easier to review pieces.

The first patch which is the SCFW API is generated from SCFW.
I need to find a way to cleanup.

Thanks,
Peng.

> 
> Best regards,
> Stefano
> 
> > Gao Pan (1):
> >   imx: lpi2c: fix clock issue when NACK detected
> >
> > Peng Fan (32):
> >   imx: import SCFW API
> >   imx: add Kconfig entry for i.MX8
> >   arm: build mach-imx for i.MX8
> >   imx8: add IPC communication support between ACore and SCU
> >   arm: global_data: introduce ipc_channel_handle
> >   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
> >   imx8: add basic cpu support
> >   imx8: add boot device detection
> >   imx8: implement mmc_get_env_dev
> >   imx8: implement imx_get_mac_from_fuse
> >   imx8: implement get_board_serial
> >   imx8: add mmu and dram related functiions
> >   imx8: add bootaux support
> >   imx8: add arch_cpu_init
> >   imx8: add clock driver
> >   imx8: add iomux configuration code
> >   serial_lpuart: Update lpuart driver to support i.MX8
> >   net: fec: do not access reserved register for i.MX8
> >   gpio: mxc_gpio: add support for i.MX8
> >   pinctrl: Add pinctrl driver for i.MX8
> >   power: Add power domain driver for i.MX8
> >   power: Add PD device lookup interface to power domain uclass
> >   power-domain: add dummy functions when CONFIG_POWER_DOMAIN not
> defined
> >   dm: core: device: enable power domain in probe
> >   drivers: regulator: fixed: add off-on-delay-us
> >   log: include command header file
> >   i2c-mux: pca954x: support pca9646 i2c switch
> >   dts: imx8qxp: Add DTS and binding header files
> >   imx: 8qxp_mek: Add i.MX8QXP MEK board support
> >
> > Ye Li (8):
> >   fsl_esdhc: Update usdhc driver to support i.MX8
> >   serial: lpuart: Enable RX and TX FIFO
> >   imx_lpi2c: Update lpi2c driver to support imx8
> >   lpi2c: Fix bus stop problem in xfer
> >   lpi2c: Add bus busy error handling
> >   net: fec_mxc: Add the init_clk_fec function
> >   sata: Add i.MX8 SATA support
> >   mmc: fsl_esdhc: fix sd/mmc ddr mode clock setting issue
> >
> >  arch/arm/Kconfig                                   |    8 +
> >  arch/arm/Makefile                                  |    2 +-
> >  arch/arm/dts/Makefile                              |    2 +
> >  arch/arm/dts/fsl-imx8qxp-mek.dts                   |  416 +++++
> >  arch/arm/dts/fsl-imx8qxp.dtsi                      | 1593
> ++++++++++++++++++++
> >  arch/arm/include/asm/arch-imx/cpu.h                |    5 +
> >  arch/arm/include/asm/arch-imx8/clock.h             |   36 +
> >  arch/arm/include/asm/arch-imx8/cpu.h               |   26 +
> >  arch/arm/include/asm/arch-imx8/fsl_mu_hal.h        |   54 +
> >  arch/arm/include/asm/arch-imx8/gpio.h              |   22 +
> >  arch/arm/include/asm/arch-imx8/i2c.h               |   34 +
> >  arch/arm/include/asm/arch-imx8/imx-regs.h          |  119 ++
> >  arch/arm/include/asm/arch-imx8/imx8-pins.h         |   15 +
> >  arch/arm/include/asm/arch-imx8/imx8qm_pads.h       |  295 ++++
> >  arch/arm/include/asm/arch-imx8/imx8qxp_pads.h      |  200 +++
> >  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/ipc.h           |   67 +
> >  arch/arm/include/asm/arch-imx8/sci/rpc.h           |  131 ++
> >  arch/arm/include/asm/arch-imx8/sci/sci.h           |   39 +
> >  arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h   |  160 ++
> >  arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h  |  523 +++++++
> >  arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h   |  568 +++++++
> >  arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h    |  686 +++++++++
> >  arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h    |  759 ++++++++++
> >  arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h |  306 ++++
> >  arch/arm/include/asm/arch-imx8/sci/types.h         |  862
> +++++++++++
> >  arch/arm/include/asm/arch-imx8/sys_proto.h         |   19 +
> >  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                         |    1 +
> >  arch/arm/mach-imx/imx8/Kconfig                     |   26 +
> >  arch/arm/mach-imx/imx8/Makefile                    |   13 +
> >  arch/arm/mach-imx/imx8/clock.c                     |  361 +++++
> >  arch/arm/mach-imx/imx8/cpu.c                       |  783
> ++++++++++
> >  arch/arm/mach-imx/imx8/fsl_mu_hal.c                |   28 +
> >  arch/arm/mach-imx/imx8/iomux.c                     |   47 +
> >  arch/arm/mach-imx/imx8/sci/ipc.c                   |  100 ++
> >  arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h           |   54 +
> >  arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c      |   76 +
> >  arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h          |   76 +
> >  arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c     |  515 +++++++
> >  arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h           |   68 +
> >  arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c      |  475 ++++++
> >  arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h            |   73 +
> >  arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c       |  460 ++++++
> >  arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h            |   83 +
> >  arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c       |  645 ++++++++
> >  arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h         |   67 +
> >  arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.c    |  365 +++++
> >  board/freescale/imx8qxp_mek/Kconfig                |   14 +
> >  board/freescale/imx8qxp_mek/MAINTAINERS            |    6 +
> >  board/freescale/imx8qxp_mek/Makefile               |    7 +
> >  board/freescale/imx8qxp_mek/imx8qxp_mek.c          |  159 ++
> >  configs/imx8qxp_mek_defconfig                      |   47 +
> >  drivers/ata/Kconfig                                |    6 +
> >  drivers/ata/Makefile                               |    1 +
> >  drivers/ata/ahci.c                                 |   25 +
> >  drivers/ata/sata_imx.c                             |   64 +
> >  drivers/core/device.c                              |    7 +
> >  drivers/gpio/mxc_gpio.c                            |   30 +-
> >  drivers/i2c/imx_lpi2c.c                            |   82 +-
> >  drivers/i2c/muxes/pca954x.c                        |    9 +-
> >  drivers/mmc/fsl_esdhc.c                            |   32 +-
> >  drivers/net/fec_mxc.c                              |    9 +-
> >  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                 |   42 +
> >  drivers/pinctrl/nxp/pinctrl-scu.c                  |   72 +
> >  drivers/power/domain/Kconfig                       |    6 +
> >  drivers/power/domain/Makefile                      |    1 +
> >  drivers/power/domain/imx8-power-domain.c           |  315 ++++
> >  drivers/power/domain/power-domain-uclass.c         |   42 +
> >  drivers/power/regulator/fixed.c                    |    6 +
> >  drivers/serial/serial_lpuart.c                     |   48 +-
> >  include/configs/imx8qxp_mek.h                      |  157 ++
> >  include/dt-bindings/clock/imx8qxp-clock.h          |  533 +++++++
> >  include/dt-bindings/pinctrl/pads-imx8qm.h          |  975
> ++++++++++++
> >  include/dt-bindings/pinctrl/pads-imx8qxp.h         |  770 ++++++++++
> >  include/dt-bindings/soc/imx8_pd.h                  |  197 +++
> >  include/dt-bindings/soc/imx_rsrc.h                 |  560 +++++++
> >  include/fsl_lpuart.h                               |    2 +-
> >  .../asm/arch-mx7ulp => include}/imx_lpi2c.h        |    0
> >  include/log.h                                      |    1 +
> >  include/power-domain.h                             |   52 +
> >  88 files changed, 15691 insertions(+), 157 deletions(-)  create mode
> > 100644 arch/arm/dts/fsl-imx8qxp-mek.dts  create mode 100644
> > arch/arm/dts/fsl-imx8qxp.dtsi  create mode 100644
> > arch/arm/include/asm/arch-imx8/clock.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/cpu.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/fsl_mu_hal.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/gpio.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/i2c.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/imx8qm_pads.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/imx8qxp_pads.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 100755 arch/arm/include/asm/arch-imx8/sci/ipc.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/rpc.h
> >  create mode 100644 arch/arm/include/asm/arch-imx8/sci/sci.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/irq/api.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/misc/api.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pad/api.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/pm/api.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/rm/api.h
> >  create mode 100755 arch/arm/include/asm/arch-imx8/sci/svc/timer/api.h
> >  create mode 100755 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/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/fsl_mu_hal.c
> >  create mode 100644 arch/arm/mach-imx/imx8/iomux.c  create mode
> 100644
> > arch/arm/mach-imx/imx8/sci/ipc.c  create mode 100644
> > arch/arm/mach-imx/imx8/sci/svc/irq/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/irq/rpc_clnt.c
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/misc/rpc_clnt.c
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pad/rpc_clnt.c
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/pm/rpc_clnt.c
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/rm/rpc_clnt.c
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc.h
> >  create mode 100644 arch/arm/mach-imx/imx8/sci/svc/timer/rpc_clnt.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/imx8qxp_mek.c
> >  create mode 100644 configs/imx8qxp_mek_defconfig  create mode
> 100644
> > drivers/ata/sata_imx.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/dt-bindings/clock/imx8qxp-clock.h
> >  create mode 100644 include/dt-bindings/pinctrl/pads-imx8qm.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
> >  rename {arch/arm/include/asm/arch-mx7ulp => include}/imx_lpi2c.h
> > (100%)
> >
> 
> 
> --
> ================================================================
> =====
> 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@denx.de
> ================================================================
> =====