Message ID | 20180528122526.20597-1-peng.fan@nxp.com |
---|---|
Headers | show |
Series | imx: add i.MX8QXP support | expand |
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
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.
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.
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%) >
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 > ================================================================ > =====