[U-Boot] [PATCH 00/41] imx: add i.MX8QXP support
Stefano Babic
sbabic at denx.de
Wed Jun 27 08:13:44 UTC 2018
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%)
>
--
=====================================================================
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de
=====================================================================
More information about the U-Boot
mailing list