Re: [PATCH] arm64: imx: Add support for imx8mp-beacon-kit
On Sun, Feb 12, 2023 at 12:08 PM Tom Rini wrote: > > On Sun, Feb 12, 2023 at 12:02:26PM -0600, Adam Ford wrote: > > On Sun, Feb 12, 2023 at 11:47 AM Tom Rini wrote: > > > > > > On Sun, Feb 12, 2023 at 11:36:38AM -0600, Adam Ford wrote: > > > > > > > Beacon Embedded has an i.MX8M Plus development kit which consists > > > > of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, > > > > and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual > > > > Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet > > > > PHY. The device trees are already queued for inclusion in Linux 6.3. > > > > > > > > Signed-off-by: Adam Ford > > > [snip] > > > > diff --git a/board/beacon/imx8mp/README b/board/beacon/imx8mp/README > > > > new file mode 100644 > > > > index 00..47999bb038 > > > > --- /dev/null > > > > +++ b/board/beacon/imx8mp/README > > > > > > Our rST docs have gotten to the point I think where we should say no to > > > new board README files, this belongs under doc/board/ > > > > OK. I'll work on that. > > > > > > > > [snip] > > > > +#define CFG_EXTRA_ENV_SETTINGS \ > > > > + "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > > > + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > > > + "image=Image\0" \ > > > > + "console=ttymxc1,115200\0" \ > > > > + "fdt_addr_r=0x4300\0" \ > > > > + "fdt_addr=0x4300\0" \ > > > > + "boot_fdt=try\0" \ > > > > + "boot_fit=no\0" \ > > > > + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ > > > > + "bootm_size=0x1000\0" \ > > > > + "mmcdev=1\0" \ > > > > + "mmcpart=1\0" \ > > > > + "optargs=audit=0 video=LVDS-1:d video=LVDS-2:d\0" \ > > > > + "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ > > > > + "mmcargs=setenv bootargs console=${console} " \ > > > > + " root=PARTUUID=${uuid} rootwait rw ${mtdparts} ${optargs}\0" \ > > > > + "bootscript=echo Running bootscript from mmc ...; " \ > > > > + "source\0" \ > > > > + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} > > > > ${image}\0" \ > > > > + "loadfdt=echo ${fdt_file}; fatload mmc ${mmcdev}:${mmcpart} > > > > ${fdt_addr_r} ${fdt_file}\0" \ > > > > + "mmcboot=echo Booting from mmc ...; " \ > > > > + "run finduuid; run mmcargs; " \ > > > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; > > > > then " \ > > > > + "bootm ${loadaddr}; " \ > > > > + "else " \ > > > > + "if run loadfdt; then " \ > > > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > > > + "else " \ > > > > + "echo WARN: Cannot load the DT; " \ > > > > + "fi; " \ > > > > + "fi;\0" \ > > > > + "netargs=setenv bootargs ${jh_clk} console=${console} " \ > > > > + "root=/dev/nfs " \ > > > > + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ > > > > + "netboot=echo Booting from net ...; " \ > > > > + "run netargs; " \ > > > > + "if test ${ip_dyn} = yes; then " \ > > > > + "setenv get_cmd dhcp; " \ > > > > + "else " \ > > > > + "setenv get_cmd tftp; " \ > > > > + "fi; " \ > > > > + "${get_cmd} ${loadaddr} ${image}; " \ > > > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; > > > > then " \ > > > > + "bootm ${loadaddr}; " \ > > > > + "else " \ > > > > + "if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \ > > > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > > > + "else " \ > > > > + "echo WARN: Cannot load the DT; " \ > > > > + "fi; " \ > > > > + "fi;\0" > > > > > > And this should all be plain text environment (see board/*/*/*.env for > > > > I didn't even know this was a thing, but after reviewing what others > > are doing, I like this much better. > > That's good to hear. > > > > examples), and please put it somewhere on your TODO list to migrate > > > other platforms README and environments, thanks! > > > > Is there a deadline? > > Neither has a firm deadline at this point, thanks! Tom, I pushed a V2 and CC'd you. If you're OK with both the env file and the rst file for this board, I'll do the same thing for the other Beacon and LogicPD boards. I just don't want to do the work until I know my first attempt at these new files is acceptable. Thanks, adam > > -- > Tom
Re: [PATCH] arm64: imx: Add support for imx8mp-beacon-kit
On Sun, Feb 12, 2023 at 12:02:26PM -0600, Adam Ford wrote: > On Sun, Feb 12, 2023 at 11:47 AM Tom Rini wrote: > > > > On Sun, Feb 12, 2023 at 11:36:38AM -0600, Adam Ford wrote: > > > > > Beacon Embedded has an i.MX8M Plus development kit which consists > > > of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, > > > and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual > > > Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet > > > PHY. The device trees are already queued for inclusion in Linux 6.3. > > > > > > Signed-off-by: Adam Ford > > [snip] > > > diff --git a/board/beacon/imx8mp/README b/board/beacon/imx8mp/README > > > new file mode 100644 > > > index 00..47999bb038 > > > --- /dev/null > > > +++ b/board/beacon/imx8mp/README > > > > Our rST docs have gotten to the point I think where we should say no to > > new board README files, this belongs under doc/board/ > > OK. I'll work on that. > > > > > [snip] > > > +#define CFG_EXTRA_ENV_SETTINGS \ > > > + "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > > + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > > + "image=Image\0" \ > > > + "console=ttymxc1,115200\0" \ > > > + "fdt_addr_r=0x4300\0" \ > > > + "fdt_addr=0x4300\0" \ > > > + "boot_fdt=try\0" \ > > > + "boot_fit=no\0" \ > > > + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ > > > + "bootm_size=0x1000\0" \ > > > + "mmcdev=1\0" \ > > > + "mmcpart=1\0" \ > > > + "optargs=audit=0 video=LVDS-1:d video=LVDS-2:d\0" \ > > > + "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ > > > + "mmcargs=setenv bootargs console=${console} " \ > > > + " root=PARTUUID=${uuid} rootwait rw ${mtdparts} ${optargs}\0" \ > > > + "bootscript=echo Running bootscript from mmc ...; " \ > > > + "source\0" \ > > > + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" > > > \ > > > + "loadfdt=echo ${fdt_file}; fatload mmc ${mmcdev}:${mmcpart} > > > ${fdt_addr_r} ${fdt_file}\0" \ > > > + "mmcboot=echo Booting from mmc ...; " \ > > > + "run finduuid; run mmcargs; " \ > > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then > > > " \ > > > + "bootm ${loadaddr}; " \ > > > + "else " \ > > > + "if run loadfdt; then " \ > > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > > + "else " \ > > > + "echo WARN: Cannot load the DT; " \ > > > + "fi; " \ > > > + "fi;\0" \ > > > + "netargs=setenv bootargs ${jh_clk} console=${console} " \ > > > + "root=/dev/nfs " \ > > > + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ > > > + "netboot=echo Booting from net ...; " \ > > > + "run netargs; " \ > > > + "if test ${ip_dyn} = yes; then " \ > > > + "setenv get_cmd dhcp; " \ > > > + "else " \ > > > + "setenv get_cmd tftp; " \ > > > + "fi; " \ > > > + "${get_cmd} ${loadaddr} ${image}; " \ > > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then > > > " \ > > > + "bootm ${loadaddr}; " \ > > > + "else " \ > > > + "if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \ > > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > > + "else " \ > > > + "echo WARN: Cannot load the DT; " \ > > > + "fi; " \ > > > + "fi;\0" > > > > And this should all be plain text environment (see board/*/*/*.env for > > I didn't even know this was a thing, but after reviewing what others > are doing, I like this much better. That's good to hear. > > examples), and please put it somewhere on your TODO list to migrate > > other platforms README and environments, thanks! > > Is there a deadline? Neither has a firm deadline at this point, thanks! -- Tom signature.asc Description: PGP signature
Re: [PATCH] arm64: imx: Add support for imx8mp-beacon-kit
On Sun, Feb 12, 2023 at 11:47 AM Tom Rini wrote: > > On Sun, Feb 12, 2023 at 11:36:38AM -0600, Adam Ford wrote: > > > Beacon Embedded has an i.MX8M Plus development kit which consists > > of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, > > and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual > > Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet > > PHY. The device trees are already queued for inclusion in Linux 6.3. > > > > Signed-off-by: Adam Ford > [snip] > > diff --git a/board/beacon/imx8mp/README b/board/beacon/imx8mp/README > > new file mode 100644 > > index 00..47999bb038 > > --- /dev/null > > +++ b/board/beacon/imx8mp/README > > Our rST docs have gotten to the point I think where we should say no to > new board README files, this belongs under doc/board/ OK. I'll work on that. > > [snip] > > +#define CFG_EXTRA_ENV_SETTINGS \ > > + "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > > + "image=Image\0" \ > > + "console=ttymxc1,115200\0" \ > > + "fdt_addr_r=0x4300\0" \ > > + "fdt_addr=0x4300\0" \ > > + "boot_fdt=try\0" \ > > + "boot_fit=no\0" \ > > + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ > > + "bootm_size=0x1000\0" \ > > + "mmcdev=1\0" \ > > + "mmcpart=1\0" \ > > + "optargs=audit=0 video=LVDS-1:d video=LVDS-2:d\0" \ > > + "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ > > + "mmcargs=setenv bootargs console=${console} " \ > > + " root=PARTUUID=${uuid} rootwait rw ${mtdparts} ${optargs}\0" \ > > + "bootscript=echo Running bootscript from mmc ...; " \ > > + "source\0" \ > > + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ > > + "loadfdt=echo ${fdt_file}; fatload mmc ${mmcdev}:${mmcpart} > > ${fdt_addr_r} ${fdt_file}\0" \ > > + "mmcboot=echo Booting from mmc ...; " \ > > + "run finduuid; run mmcargs; " \ > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ > > + "bootm ${loadaddr}; " \ > > + "else " \ > > + "if run loadfdt; then " \ > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > + "else " \ > > + "echo WARN: Cannot load the DT; " \ > > + "fi; " \ > > + "fi;\0" \ > > + "netargs=setenv bootargs ${jh_clk} console=${console} " \ > > + "root=/dev/nfs " \ > > + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ > > + "netboot=echo Booting from net ...; " \ > > + "run netargs; " \ > > + "if test ${ip_dyn} = yes; then " \ > > + "setenv get_cmd dhcp; " \ > > + "else " \ > > + "setenv get_cmd tftp; " \ > > + "fi; " \ > > + "${get_cmd} ${loadaddr} ${image}; " \ > > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ > > + "bootm ${loadaddr}; " \ > > + "else " \ > > + "if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \ > > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > > + "else " \ > > + "echo WARN: Cannot load the DT; " \ > > + "fi; " \ > > + "fi;\0" > > And this should all be plain text environment (see board/*/*/*.env for I didn't even know this was a thing, but after reviewing what others are doing, I like this much better. > examples), and please put it somewhere on your TODO list to migrate > other platforms README and environments, thanks! Is there a deadline? thanks adam > > -- > Tom
Re: [PATCH] arm64: imx: Add support for imx8mp-beacon-kit
On Sun, Feb 12, 2023 at 11:36:38AM -0600, Adam Ford wrote: > Beacon Embedded has an i.MX8M Plus development kit which consists > of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, > and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual > Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet > PHY. The device trees are already queued for inclusion in Linux 6.3. > > Signed-off-by: Adam Ford [snip] > diff --git a/board/beacon/imx8mp/README b/board/beacon/imx8mp/README > new file mode 100644 > index 00..47999bb038 > --- /dev/null > +++ b/board/beacon/imx8mp/README Our rST docs have gotten to the point I think where we should say no to new board README files, this belongs under doc/board/ [snip] > +#define CFG_EXTRA_ENV_SETTINGS \ > + "scriptaddr=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \ > + "image=Image\0" \ > + "console=ttymxc1,115200\0" \ > + "fdt_addr_r=0x4300\0" \ > + "fdt_addr=0x4300\0" \ > + "boot_fdt=try\0" \ > + "boot_fit=no\0" \ > + "fdt_file=" CONFIG_DEFAULT_FDT_FILE "\0" \ > + "bootm_size=0x1000\0" \ > + "mmcdev=1\0" \ > + "mmcpart=1\0" \ > + "optargs=audit=0 video=LVDS-1:d video=LVDS-2:d\0" \ > + "finduuid=part uuid mmc ${mmcdev}:2 uuid\0" \ > + "mmcargs=setenv bootargs console=${console} " \ > + " root=PARTUUID=${uuid} rootwait rw ${mtdparts} ${optargs}\0" \ > + "bootscript=echo Running bootscript from mmc ...; " \ > + "source\0" \ > + "loadimage=fatload mmc ${mmcdev}:${mmcpart} ${loadaddr} ${image}\0" \ > + "loadfdt=echo ${fdt_file}; fatload mmc ${mmcdev}:${mmcpart} > ${fdt_addr_r} ${fdt_file}\0" \ > + "mmcboot=echo Booting from mmc ...; " \ > + "run finduuid; run mmcargs; " \ > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ > + "bootm ${loadaddr}; " \ > + "else " \ > + "if run loadfdt; then " \ > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > + "else " \ > + "echo WARN: Cannot load the DT; " \ > + "fi; " \ > + "fi;\0" \ > + "netargs=setenv bootargs ${jh_clk} console=${console} " \ > + "root=/dev/nfs " \ > + "ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp\0" \ > + "netboot=echo Booting from net ...; " \ > + "run netargs; " \ > + "if test ${ip_dyn} = yes; then " \ > + "setenv get_cmd dhcp; " \ > + "else " \ > + "setenv get_cmd tftp; " \ > + "fi; " \ > + "${get_cmd} ${loadaddr} ${image}; " \ > + "if test ${boot_fit} = yes || test ${boot_fit} = try; then " \ > + "bootm ${loadaddr}; " \ > + "else " \ > + "if ${get_cmd} ${fdt_addr_r} ${fdt_file}; then " \ > + "booti ${loadaddr} - ${fdt_addr_r}; " \ > + "else " \ > + "echo WARN: Cannot load the DT; " \ > + "fi; " \ > + "fi;\0" And this should all be plain text environment (see board/*/*/*.env for examples), and please put it somewhere on your TODO list to migrate other platforms README and environments, thanks! -- Tom signature.asc Description: PGP signature
[PATCH] arm64: imx: Add support for imx8mp-beacon-kit
Beacon Embedded has an i.MX8M Plus development kit which consists of a SOM + baseboard. The SOM includes Bluetooth, WiFi, QSPI, eMMC, and one Ethernet PHY. The baseboard includes audio, HDMI, USB-C Dual Role port, USB Hub with five ports, a PCIe slot, and a second Ethernet PHY. The device trees are already queued for inclusion in Linux 6.3. Signed-off-by: Adam Ford diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile index d9b719f85d..d812ad4048 100644 --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile @@ -986,6 +986,7 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ imx8mn-beacon-kit.dtb \ imx8mq-mnt-reform2.dtb \ imx8mq-phanbell.dtb \ + imx8mp-beacon-kit.dtb \ imx8mp-dhcom-pdk2.dtb \ imx8mp-evk.dtb \ imx8mp-icore-mx8mp-edimm2.2.dtb \ diff --git a/arch/arm/dts/imx8mp-beacon-kit-u-boot.dtsi b/arch/arm/dts/imx8mp-beacon-kit-u-boot.dtsi new file mode 100644 index 00..0f7c91a078 --- /dev/null +++ b/arch/arm/dts/imx8mp-beacon-kit-u-boot.dtsi @@ -0,0 +1,216 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2022 Logic PD, Inc DBA Beacon EmbeddedWorks + */ + +#include "imx8mp-u-boot.dtsi" + +/ { + wdt-reboot { + compatible = "wdt-reboot"; + wdt = <&wdog1>; + u-boot,dm-spl; + }; + + firmware { + optee { + compatible = "linaro,optee-tz"; + method = "smc"; + }; + }; +}; + +&{/soc@0/bus@3080/i2c@30a2/pmic@25} { + u-boot,dm-spl; +}; + +&{/soc@0/bus@3080/i2c@30a2/pmic@25/regulators} { + u-boot,dm-spl; +}; + +&crypto { + u-boot,dm-spl; +}; + +&eqos { + /delete-property/ assigned-clocks; + /delete-property/ assigned-clock-parents; + /delete-property/ assigned-clock-rates; +}; + +ðphy0 { + reset-gpios = <&gpio4 22 GPIO_ACTIVE_LOW>; + reset-assert-us = <15000>; + reset-deassert-us = <10>; +}; + +&fec { + phy-reset-gpios = <&gpio4 18 GPIO_ACTIVE_LOW>; + phy-reset-duration = <15>; + phy-reset-post-delay = <100>; +}; + +&flexspi { + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_400M>; +}; + +&gpio1 { + u-boot,dm-spl; +}; + +&gpio2 { + u-boot,dm-spl; +}; + +&gpio3 { + u-boot,dm-spl; +}; + +&gpio4 { + u-boot,dm-spl; +}; + +&gpio5 { + u-boot,dm-spl; +}; + +&i2c1 { + u-boot,dm-spl; +}; + +&i2c2 { + u-boot,dm-spl; +}; + +&i2c3 { + u-boot,dm-spl; +}; + +&pca6416 { + compatible = "ti,tca6416"; + label = "exp4"; +}; + +&pca6416_1 { + compatible = "ti,tca6416"; + label = "exp4"; +}; + +&pca6416_3 { + compatible = "ti,tca6416"; + label = "exp2"; +}; + +&pinctrl_i2c1 { + u-boot,dm-spl; +}; + +&pinctrl_pmic { + u-boot,dm-spl; +}; + +&pinctrl_reg_usdhc2_vmmc { + u-boot,dm-spl; +}; + +&pinctrl_uart2 { + u-boot,dm-spl; +}; + +&pinctrl_usdhc2_gpio { + u-boot,dm-spl; +}; + +&pinctrl_usdhc2 { + u-boot,dm-spl; +}; + +&pinctrl_usdhc3 { + u-boot,dm-spl; +}; + +&pinctrl_wdog { + u-boot,dm-spl; +}; + +®_usdhc2_vmmc { + u-boot,dm-spl; + u-boot,off-on-delay-us = <2>; +}; + +&sec_jr0 { + u-boot,dm-spl; +}; + +&sec_jr1 { + u-boot,dm-spl; +}; + +&sec_jr2 { + u-boot,dm-spl; +}; + +&tpm { + compatible = "tcg,tpm_tis-spi"; +}; + +&uart2 { + u-boot,dm-spl; +}; + +&usdhc1 { + u-boot,dm-spl; + assigned-clocks = <&clk IMX8MP_CLK_USDHC1>; + assigned-clock-rates = <4>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_400M>; +}; + +&usdhc2 { + u-boot,dm-spl; + sd-uhs-sdr104; + sd-uhs-ddr50; + assigned-clocks = <&clk IMX8MP_CLK_USDHC2>; + assigned-clock-rates = <4>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_400M>; +}; + +&usdhc3 { + u-boot,dm-spl; + mmc-hs400-1_8v; + mmc-hs400-enhanced-strobe; + assigned-clocks = <&clk IMX8MP_CLK_USDHC3>; + assigned-clock-rates = <4>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_400M>; +}; + +&usb3_0 { + dma-ranges = <0x4000 0x4000 0xc000>; + /delete-property/ power-domains; +}; + +&usb3_1 { + dma-ranges = <0x4000 0x4000 0xc000>; + /delete-property/ power-domains; +}; + +&usb_dwc3_0 { + compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; + assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; + assigned-clock-rates = <4>; +}; + +&usb_dwc3_1 { + compatible = "fsl,imx8mq-dwc3", "snps,dwc3"; + assigned-clocks = <&clk IMX8MP_CLK_HSIO_AXI>; + assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_800M>; + assigned-clock-rates = <4>; +}; + +&usdhc1 { + status = "disabled"; +}; + +&wdog1 { + u-boot,dm-spl; +}; diff --git a/arch/arm/dts/imx8mp-beacon-kit.dts b/arch/arm/dts/imx8