Re: [PATCH] imx: imx8mp: Add support for Polyhex Debix Model A SBC
On 5/22/2023 6:58 AM, Gilles Talis wrote: + * Copyright 2022 Ideas on Board Oy Time? This was taken as is from the kernel. Hence, the reason why the date is unchanged. Then it is fine to keep as it is. Just note this in commit log. Regards, Peng.
Re: [PATCH] imx: imx8mp: Add support for Polyhex Debix Model A SBC
Hi Peng, Le jeu. 11 mai 2023 à 20:47, Peng Fan a écrit : > > Hi Gilles, > > only some minor comments, overall looks good. Thanks for the review. Will fix all comments, but one (see below). > > On 4/13/2023 9:17 PM, Gilles Talis wrote: > > Add support for the Polyhex Debix Model A SBC board. > > It is an industrial grade single board computer based on > > NXP's i.MX 8M Plus. > > Currently supported interfaces are: > > - Serial console > > - Micro SD > > - eQOS and FEC Ethernet > > > > imx8mp-debix-model-a.dts is taken from Linux 6.3-rc6. > > > > Signed-off-by: Gilles Talis > > --- > > arch/arm/dts/Makefile |1 + > > arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi | 140 ++ > > arch/arm/dts/imx8mp-debix-model-a.dts | 507 + > > arch/arm/mach-imx/imx8m/Kconfig |8 + > > board/polyhex/imx8mp_debix_model_a/Kconfig| 15 + > > .../polyhex/imx8mp_debix_model_a/MAINTAINERS |8 + > > board/polyhex/imx8mp_debix_model_a/Makefile | 12 + > > .../imx8mp_debix_model_a.c| 54 + > > .../imximage-8mp-lpddr4.cfg |9 + > > .../imx8mp_debix_model_a/lpddr4_timing.c | 1843 + > > board/polyhex/imx8mp_debix_model_a/spl.c | 129 ++ > > configs/imx8mp_debix_model_a_defconfig| 110 + > > include/configs/imx8mp_debix_model_a.h| 54 + > > 13 files changed, 2890 insertions(+) > > create mode 100644 arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi > > create mode 100644 arch/arm/dts/imx8mp-debix-model-a.dts > > create mode 100644 board/polyhex/imx8mp_debix_model_a/Kconfig > > create mode 100644 board/polyhex/imx8mp_debix_model_a/MAINTAINERS > > create mode 100644 board/polyhex/imx8mp_debix_model_a/Makefile > > create mode 100644 > > board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c > > create mode 100644 > > board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg > > create mode 100644 board/polyhex/imx8mp_debix_model_a/lpddr4_timing.c > > create mode 100644 board/polyhex/imx8mp_debix_model_a/spl.c > > create mode 100644 configs/imx8mp_debix_model_a_defconfig > > create mode 100644 include/configs/imx8mp_debix_model_a.h > > > > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > > index 337bee7e1e..5e1dd627d7 100644 > > --- a/arch/arm/dts/Makefile > > +++ b/arch/arm/dts/Makefile > > @@ -997,6 +997,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ > > imx8mq-phanbell.dtb \ > > imx8mp-beacon-kit.dtb \ > > imx8mp-data-modul-edm-sbc.dtb \ > > + imx8mp-debix-model-a.dtb \ > > imx8mp-dhcom-pdk2.dtb \ > > imx8mp-dhcom-pdk3.dtb \ > > imx8mp-evk.dtb \ > > diff --git a/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi > > b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi > > new file mode 100644 > > index 00..97c011895f > > --- /dev/null > > +++ b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi > > @@ -0,0 +1,140 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * Copyright 2019, 2021 NXP > > Need update time? > > > + */ > > + > > +#include "imx8mp-u-boot.dtsi" > > + > > [.] > > > index 00..58dae612b4 > > --- /dev/null > > +++ b/arch/arm/dts/imx8mp-debix-model-a.dts > > @@ -0,0 +1,507 @@ > > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > > +/* > > + * Copyright 2019 NXP > > + * Copyright 2022 Ideas on Board Oy > > Time? This was taken as is from the kernel. Hence, the reason why the date is unchanged. > > > + */ > > + > > +/dts-v1/; > > + > > +#include > > +#include > > +#include > > + > > +#include "imx8mp.dtsi" > > + > > [] > > > > diff --git a/board/polyhex/imx8mp_debix_model_a/Makefile > > b/board/polyhex/imx8mp_debix_model_a/Makefile > > new file mode 100644 > > index 00..dffaccedb8 > > --- /dev/null > > +++ b/board/polyhex/imx8mp_debix_model_a/Makefile > > @@ -0,0 +1,12 @@ > > +# > > +# Copyright 2019 NXP > > Time? > > > +# > > +# SPDX-License-Identifier: GPL-2.0+ > > +# > > + > > +obj-y += imx8mp_debix_model_a.o > > + > > +ifdef CONFIG_SPL_BUILD > > +obj-y += spl.o > > +obj-$(CONFIG_IMX8M_LPDDR4) += lpddr4_timing.o > > +endif > > diff --git a/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c > > b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c > > new file mode 100644 > > index 00..ff73510ad6 > > --- /dev/null > > +++ b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c > > @@ -0,0 +1,54 @@ > > +// SPDX-License-Identifier: GPL-2.0+ > > +/* > > + * Copyright 2019 NXP > > Ditto > > > + */ > > + > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > +#include > > Sort the headers > > > + > > +DECLARE_GLOBAL_DATA_PTR; > > + > > +static void setup_fec(void) > > +{ > > + struct iomuxc_gpr_base_regs *gpr = > > + (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR;
Re: [PATCH] imx: imx8mp: Add support for Polyhex Debix Model A SBC
Hi Gilles, only some minor comments, overall looks good. On 4/13/2023 9:17 PM, Gilles Talis wrote: Add support for the Polyhex Debix Model A SBC board. It is an industrial grade single board computer based on NXP's i.MX 8M Plus. Currently supported interfaces are: - Serial console - Micro SD - eQOS and FEC Ethernet imx8mp-debix-model-a.dts is taken from Linux 6.3-rc6. Signed-off-by: Gilles Talis --- arch/arm/dts/Makefile |1 + arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi | 140 ++ arch/arm/dts/imx8mp-debix-model-a.dts | 507 + arch/arm/mach-imx/imx8m/Kconfig |8 + board/polyhex/imx8mp_debix_model_a/Kconfig| 15 + .../polyhex/imx8mp_debix_model_a/MAINTAINERS |8 + board/polyhex/imx8mp_debix_model_a/Makefile | 12 + .../imx8mp_debix_model_a.c| 54 + .../imximage-8mp-lpddr4.cfg |9 + .../imx8mp_debix_model_a/lpddr4_timing.c | 1843 + board/polyhex/imx8mp_debix_model_a/spl.c | 129 ++ configs/imx8mp_debix_model_a_defconfig| 110 + include/configs/imx8mp_debix_model_a.h| 54 + 13 files changed, 2890 insertions(+) create mode 100644 arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi create mode 100644 arch/arm/dts/imx8mp-debix-model-a.dts create mode 100644 board/polyhex/imx8mp_debix_model_a/Kconfig create mode 100644 board/polyhex/imx8mp_debix_model_a/MAINTAINERS create mode 100644 board/polyhex/imx8mp_debix_model_a/Makefile create mode 100644 board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c create mode 100644 board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg create mode 100644 board/polyhex/imx8mp_debix_model_a/lpddr4_timing.c create mode 100644 board/polyhex/imx8mp_debix_model_a/spl.c create mode 100644 configs/imx8mp_debix_model_a_defconfig create mode 100644 include/configs/imx8mp_debix_model_a.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 337bee7e1e..5e1dd627d7 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -997,6 +997,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ imx8mq-phanbell.dtb \ imx8mp-beacon-kit.dtb \ imx8mp-data-modul-edm-sbc.dtb \ + imx8mp-debix-model-a.dtb \ imx8mp-dhcom-pdk2.dtb \ imx8mp-dhcom-pdk3.dtb \ imx8mp-evk.dtb \ diff --git a/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi new file mode 100644 index 00..97c011895f --- /dev/null +++ b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2019, 2021 NXP Need update time? + */ + +#include "imx8mp-u-boot.dtsi" + [.] index 00..58dae612b4 --- /dev/null +++ b/arch/arm/dts/imx8mp-debix-model-a.dts @@ -0,0 +1,507 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2019 NXP + * Copyright 2022 Ideas on Board Oy Time? + */ + +/dts-v1/; + +#include +#include +#include + +#include "imx8mp.dtsi" + [] diff --git a/board/polyhex/imx8mp_debix_model_a/Makefile b/board/polyhex/imx8mp_debix_model_a/Makefile new file mode 100644 index 00..dffaccedb8 --- /dev/null +++ b/board/polyhex/imx8mp_debix_model_a/Makefile @@ -0,0 +1,12 @@ +# +# Copyright 2019 NXP Time? +# +# SPDX-License-Identifier: GPL-2.0+ +# + +obj-y += imx8mp_debix_model_a.o + +ifdef CONFIG_SPL_BUILD +obj-y += spl.o +obj-$(CONFIG_IMX8M_LPDDR4) += lpddr4_timing.o +endif diff --git a/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c new file mode 100644 index 00..ff73510ad6 --- /dev/null +++ b/board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2019 NXP Ditto + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include Sort the headers + +DECLARE_GLOBAL_DATA_PTR; + +static void setup_fec(void) +{ + struct iomuxc_gpr_base_regs *gpr = + (struct iomuxc_gpr_base_regs *)IOMUXC_GPR_BASE_ADDR; + + /* Enable RGMII TX clk output */ + setbits_le32(&gpr->gpr[1], BIT(22)); +} + +#if CONFIG_IS_ENABLED(NET) +int board_phy_config(struct phy_device *phydev) +{ + if (phydev->drv->config) + phydev->drv->config(phydev); + return 0; +} +#endif + +int board_init(void) +{ + int ret = 0; + + if (IS_ENABLED(CONFIG_FEC_MXC)) + setup_fec(); + + return ret; +} + +int board_late_init(void) +{ + return 0; +} diff --git a/board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg b/board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg new file mode 100644 index 00..6dedf1724a --- /dev/null +++ b/board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg @@ -0,0 +1,9 @@ +/*
[PATCH] imx: imx8mp: Add support for Polyhex Debix Model A SBC
Add support for the Polyhex Debix Model A SBC board. It is an industrial grade single board computer based on NXP's i.MX 8M Plus. Currently supported interfaces are: - Serial console - Micro SD - eQOS and FEC Ethernet imx8mp-debix-model-a.dts is taken from Linux 6.3-rc6. Signed-off-by: Gilles Talis --- arch/arm/dts/Makefile |1 + arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi | 140 ++ arch/arm/dts/imx8mp-debix-model-a.dts | 507 + arch/arm/mach-imx/imx8m/Kconfig |8 + board/polyhex/imx8mp_debix_model_a/Kconfig| 15 + .../polyhex/imx8mp_debix_model_a/MAINTAINERS |8 + board/polyhex/imx8mp_debix_model_a/Makefile | 12 + .../imx8mp_debix_model_a.c| 54 + .../imximage-8mp-lpddr4.cfg |9 + .../imx8mp_debix_model_a/lpddr4_timing.c | 1843 + board/polyhex/imx8mp_debix_model_a/spl.c | 129 ++ configs/imx8mp_debix_model_a_defconfig| 110 + include/configs/imx8mp_debix_model_a.h| 54 + 13 files changed, 2890 insertions(+) create mode 100644 arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi create mode 100644 arch/arm/dts/imx8mp-debix-model-a.dts create mode 100644 board/polyhex/imx8mp_debix_model_a/Kconfig create mode 100644 board/polyhex/imx8mp_debix_model_a/MAINTAINERS create mode 100644 board/polyhex/imx8mp_debix_model_a/Makefile create mode 100644 board/polyhex/imx8mp_debix_model_a/imx8mp_debix_model_a.c create mode 100644 board/polyhex/imx8mp_debix_model_a/imximage-8mp-lpddr4.cfg create mode 100644 board/polyhex/imx8mp_debix_model_a/lpddr4_timing.c create mode 100644 board/polyhex/imx8mp_debix_model_a/spl.c create mode 100644 configs/imx8mp_debix_model_a_defconfig create mode 100644 include/configs/imx8mp_debix_model_a.h diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index 337bee7e1e..5e1dd627d7 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -997,6 +997,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ imx8mq-phanbell.dtb \ imx8mp-beacon-kit.dtb \ imx8mp-data-modul-edm-sbc.dtb \ + imx8mp-debix-model-a.dtb \ imx8mp-dhcom-pdk2.dtb \ imx8mp-dhcom-pdk3.dtb \ imx8mp-evk.dtb \ diff --git a/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi new file mode 100644 index 00..97c011895f --- /dev/null +++ b/arch/arm/dts/imx8mp-debix-model-a-u-boot.dtsi @@ -0,0 +1,140 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2019, 2021 NXP + */ + +#include "imx8mp-u-boot.dtsi" + +/ { + wdt-reboot { + compatible = "wdt-reboot"; + wdt = <&wdog1>; + bootph-pre-ram; + }; + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; +}; + +&crypto { + bootph-pre-ram; +}; + +ðphy0 { + reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>; + reset-delay-us = <15000>; + reset-post-delay-us = <10>; +}; + +&fec { + phy-reset-gpios = <&gpio4 19 GPIO_ACTIVE_LOW>; + phy-reset-duration = <15>; + phy-reset-post-delay = <100>; +}; + +&gpio1 { + bootph-pre-ram; +}; + +&gpio2 { + bootph-pre-ram; +}; + +&gpio3 { + bootph-pre-ram; +}; + +&gpio4 { + bootph-pre-ram; +}; + +&gpio5 { + bootph-pre-ram; +}; + +&i2c1 { + bootph-pre-ram; +}; + +&pinctrl_i2c1 { + bootph-pre-ram; +}; + +&pinctrl_pmic { + bootph-pre-ram; +}; + +&pinctrl_uart2 { + bootph-pre-ram; +}; + +&pinctrl_usdhc2_gpio { + bootph-pre-ram; +}; + +&pinctrl_usdhc2 { + bootph-pre-ram; +}; + +&pinctrl_usdhc3 { + bootph-pre-ram; +}; + +&pinctrl_wdog { + bootph-pre-ram; +}; + +&pmic { + bootph-pre-ram; + + regulators { + bootph-pre-ram; + }; +}; + +®_usdhc2_vmmc { + u-boot,off-on-delay-us = <2>; +}; + +®_usdhc2_vmmc { + bootph-pre-ram; +}; + +&uart2 { + bootph-pre-ram; +}; + +&sec_jr0 { + bootph-pre-ram; +}; + +&sec_jr1 { + bootph-pre-ram; +}; + +&sec_jr2 { + bootph-pre-ram; +}; + +&usdhc1 { + bootph-pre-ram; +}; + +&usdhc2 { + bootph-pre-ram; + sd-uhs-sdr104; + sd-uhs-ddr50; +}; + +&usdhc3 { + bootph-pre-ram; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; +}; + +&wdog1 { + bootph-pre-ram; +}; diff --git a/arch/arm/dts/imx8mp-debix-model-a.dts b/arch/arm/dts/imx8mp-debix-model-a.dts new file mode 100644 index 00..58dae612b4 --- /dev/null +++ b/arch/arm/dts/imx8mp-debix-model-a.dts @@ -0,0 +1,507 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright 2019 NXP + * Copyright 2022 Ideas on Board Oy + */ + +/dts-v1/; + +#include +#include +#include + +#include "imx8mp.dtsi" + +/ { + model = "Polyhex Debix Model A i.MX8MPlus board"; + compatible = "polyhex,imx8mp-debix-model-a", "p