Message ID | 20220112184821.916646-1-heiko.thiery@gmail.com |
---|---|
State | Changes Requested |
Headers | show |
Series | configs/kontron_bl_imx8mm_defconfig: new defconfig | expand |
Hello, On Wed, 12 Jan 2022 19:48:22 +0100 Heiko Thiery <heiko.thiery@gmail.com> wrote: > diff --git a/board/kontron/bl-imx8mm/boot.cmd b/board/kontron/bl-imx8mm/boot.cmd > new file mode 100644 > index 0000000000..7ce3198dbc > --- /dev/null > +++ b/board/kontron/bl-imx8mm/boot.cmd > @@ -0,0 +1,8 @@ > +echo "Root File Sytem on MMC${devnum}" > +setenv rootfs /dev/mmcblk${devnum}p1 > +setenv bootargs root=${rootfs} rootwait rw ${extrabootargs} > + > +load ${devtype} ${devnum} ${kernel_addr_r} boot/Image > +load ${devtype} ${devnum} ${fdt_addr_r} boot/imx8mm-kontron-n801x-s.dtb > + > +booti ${kernel_addr_r} - ${fdt_addr_r} Have you considered using extlinux.conf ? This is generally much easier than a boot script, and removes the need to generate the boot script. > diff --git a/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch > new file mode 100644 > index 0000000000..ed088dd0f8 > --- /dev/null > +++ b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch > @@ -0,0 +1,28 @@ > +From 95a311af81cd47c44d3d6e3f717f06a06d8f3dfd Mon Sep 17 00:00:00 2001 > +From: Heiko Thiery <heiko.thiery@gmail.com> > +Date: Mon, 10 Jan 2022 14:13:02 +0100 > +Subject: [PATCH 1/2] imx: imx8mm: imx8mm-kontron-n801x-s: convert options to Kconfig I suppose the U-Boot patches are on their way upstream? > diff --git a/board/kontron/bl-imx8mm/post-image.sh b/board/kontron/bl-imx8mm/post-image.sh > new file mode 100755 > index 0000000000..564211c829 > --- /dev/null > +++ b/board/kontron/bl-imx8mm/post-image.sh > @@ -0,0 +1,3 @@ > +#!/bin/sh > + > +support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg Could you call support/scripts/genimage.sh directly as the post-image script, using the BR2_ROOTFS_POST_SCRIPT_ARGS to pass the -c ... argument? We already do that in many defconfigs. > +# Kernel > +BR2_LINUX_KERNEL=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" > +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-kontron-n801x-s" > +BR2_LINUX_KERNEL_INSTALL_TARGET=y > +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y > + > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y > + > +BR2_PACKAGE_FREESCALE_IMX=y > +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y > +BR2_PACKAGE_FIRMWARE_IMX=y > + > +# Filesystem / image > +BR2_TARGET_ROOTFS_EXT2=y > +BR2_TARGET_ROOTFS_EXT2_4=y > +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" > + > +# Bootloader > +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30880000" > +BR2_TARGET_UBOOT=y > +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y > +BR2_TARGET_UBOOT_CUSTOM_VERSION=y > +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" > +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron-sl-mx8mm" > +BR2_TARGET_UBOOT_NEEDS_DTC=y > +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y > +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y > +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y > +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN=y > +BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE=y > +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y > +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="flash.bin" > +BR2_TARGET_UBOOT_SPL=y > + > +# Required host tools to create the SD/eMMC image > +BR2_PACKAGE_HOST_GENIMAGE=y > +BR2_PACKAGE_HOST_UBOOT_TOOLS=y > +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y You need FIT support ? > +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y > +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/kontron/bl-imx8mm/boot.cmd" These would no longer be needed if switching to extlinux.conf. Thanks a lot! Thomas
Hi Heiko, On Thu, Jan 13, 2022 at 6:01 PM Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote: > Have you considered using extlinux.conf ? This is generally much easier > than a boot script, and removes the need to generate the boot script. I used your patch as a reference and modified it as per Thomas' suggestions to add Buildroot support for imx8mm-evk using only upstream components. Please find attached the patch. I haven't submitted it formally yet because the kernel does not always boot. Usually, it hangs at: mmc1 is current device Scanning mmc 1:1... Found /boot/extlinux/extlinux.conf Retrieving file: /boot/extlinux/extlinux.conf 1: imx8mm-evk-buildroot Retrieving file: /boot/Image append: root=/dev/mmcblk0p1 rootwait rw Retrieving file: /boot/imx8mm-evk.dtb Moving Image from 0x40480000 to 0x40600000, end=42770000 ## Flattened Device Tree blob at 43000000 Booting using the fdt blob at 0x43000000 Loading Device Tree to 000000004fff5000, end 000000004ffffd6b ... OK Starting kernel ... (hangs here) Looks like a U-Boot issue that I need to investigate. Thanks for your patch and hope this helps.
On Thu, Jan 13, 2022 at 8:14 PM Fabio Estevam <festevam@gmail.com> wrote: > I haven't submitted it formally yet because the kernel does not always boot. > > Usually, it hangs at: > > mmc1 is current device > Scanning mmc 1:1... > Found /boot/extlinux/extlinux.conf > Retrieving file: /boot/extlinux/extlinux.conf > 1: imx8mm-evk-buildroot > Retrieving file: /boot/Image > append: root=/dev/mmcblk0p1 rootwait rw > Retrieving file: /boot/imx8mm-evk.dtb > Moving Image from 0x40480000 to 0x40600000, end=42770000 > ## Flattened Device Tree blob at 43000000 > Booting using the fdt blob at 0x43000000 > Loading Device Tree to 000000004fff5000, end 000000004ffffd6b ... OK > > Starting kernel ... > (hangs here) > > Looks like a U-Boot issue that I need to investigate. With kernel 5.15.14 it boots fine, so I submitted the patch with 5.15 instead of 5.16. I will investigate the 5.16 boot problem later.
Hi Fabio, Am Fr., 14. Jan. 2022 um 00:14 Uhr schrieb Fabio Estevam <festevam@gmail.com>: > > Hi Heiko, > > On Thu, Jan 13, 2022 at 6:01 PM Thomas Petazzoni > <thomas.petazzoni@bootlin.com> wrote: > > > Have you considered using extlinux.conf ? This is generally much easier > > than a boot script, and removes the need to generate the boot script. > > I used your patch as a reference and modified it as per Thomas' > suggestions to add Buildroot support for imx8mm-evk using only > upstream components. > > Please find attached the patch. > > I haven't submitted it formally yet because the kernel does not always boot. Can you tell me how often this happens? I updated my defconfig with the comments from Thomas. Now I bootet the board with that several times and can not see the behavior you describe. > > Usually, it hangs at: > > mmc1 is current device > Scanning mmc 1:1... > Found /boot/extlinux/extlinux.conf > Retrieving file: /boot/extlinux/extlinux.conf > 1: imx8mm-evk-buildroot > Retrieving file: /boot/Image > append: root=/dev/mmcblk0p1 rootwait rw > Retrieving file: /boot/imx8mm-evk.dtb > Moving Image from 0x40480000 to 0x40600000, end=42770000 > ## Flattened Device Tree blob at 43000000 > Booting using the fdt blob at 0x43000000 > Loading Device Tree to 000000004fff5000, end 000000004ffffd6b ... OK > > Starting kernel ... > (hangs here) > > Looks like a U-Boot issue that I need to investigate. > > Thanks for your patch and hope this helps. Your welcome,
Hi Thomas, Am Do., 13. Jan. 2022 um 22:00 Uhr schrieb Thomas Petazzoni <thomas.petazzoni@bootlin.com>: > > Hello, > > On Wed, 12 Jan 2022 19:48:22 +0100 > Heiko Thiery <heiko.thiery@gmail.com> wrote: > > > diff --git a/board/kontron/bl-imx8mm/boot.cmd b/board/kontron/bl-imx8mm/boot.cmd > > new file mode 100644 > > index 0000000000..7ce3198dbc > > --- /dev/null > > +++ b/board/kontron/bl-imx8mm/boot.cmd > > @@ -0,0 +1,8 @@ > > +echo "Root File Sytem on MMC${devnum}" > > +setenv rootfs /dev/mmcblk${devnum}p1 > > +setenv bootargs root=${rootfs} rootwait rw ${extrabootargs} > > + > > +load ${devtype} ${devnum} ${kernel_addr_r} boot/Image > > +load ${devtype} ${devnum} ${fdt_addr_r} boot/imx8mm-kontron-n801x-s.dtb > > + > > +booti ${kernel_addr_r} - ${fdt_addr_r} > > Have you considered using extlinux.conf ? This is generally much easier > than a boot script, and removes the need to generate the boot script. I will switch to extlinux. > > > diff --git a/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch > > new file mode 100644 > > index 0000000000..ed088dd0f8 > > --- /dev/null > > +++ b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch > > @@ -0,0 +1,28 @@ > > +From 95a311af81cd47c44d3d6e3f717f06a06d8f3dfd Mon Sep 17 00:00:00 2001 > > +From: Heiko Thiery <heiko.thiery@gmail.com> > > +Date: Mon, 10 Jan 2022 14:13:02 +0100 > > +Subject: [PATCH 1/2] imx: imx8mm: imx8mm-kontron-n801x-s: convert options to Kconfig > > I suppose the U-Boot patches are on their way upstream? The patches are already posted upstream: https://patchwork.ozlabs.org/project/uboot/patch/20220112085755.7396-1-heiko.thiery@gmail.com/ https://patchwork.ozlabs.org/project/uboot/patch/20220112085755.7396-2-heiko.thiery@gmail.com/ > > > diff --git a/board/kontron/bl-imx8mm/post-image.sh b/board/kontron/bl-imx8mm/post-image.sh > > new file mode 100755 > > index 0000000000..564211c829 > > --- /dev/null > > +++ b/board/kontron/bl-imx8mm/post-image.sh > > @@ -0,0 +1,3 @@ > > +#!/bin/sh > > + > > +support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg > > Could you call support/scripts/genimage.sh directly as the post-image > script, using the BR2_ROOTFS_POST_SCRIPT_ARGS to pass the -c ... > argument? We already do that in many defconfigs. Ok > > > +# Kernel > > +BR2_LINUX_KERNEL=y > > +BR2_LINUX_KERNEL_CUSTOM_VERSION=y > > +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" > > +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y > > +BR2_LINUX_KERNEL_DTS_SUPPORT=y > > +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-kontron-n801x-s" > > +BR2_LINUX_KERNEL_INSTALL_TARGET=y > > +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y > > + > > +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y > > + > > +BR2_PACKAGE_FREESCALE_IMX=y > > +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y > > +BR2_PACKAGE_FIRMWARE_IMX=y > > + > > +# Filesystem / image > > +BR2_TARGET_ROOTFS_EXT2=y > > +BR2_TARGET_ROOTFS_EXT2_4=y > > +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" > > + > > +# Bootloader > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y > > +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30880000" > > +BR2_TARGET_UBOOT=y > > +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y > > +BR2_TARGET_UBOOT_CUSTOM_VERSION=y > > +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" > > +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron-sl-mx8mm" > > +BR2_TARGET_UBOOT_NEEDS_DTC=y > > +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y > > +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y > > +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y > > +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN=y > > +BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE=y > > +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y > > +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="flash.bin" > > +BR2_TARGET_UBOOT_SPL=y > > + > > +# Required host tools to create the SD/eMMC image > > +BR2_PACKAGE_HOST_GENIMAGE=y > > +BR2_PACKAGE_HOST_UBOOT_TOOLS=y > > +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y > > You need FIT support ? No .. I will remove it. > > > +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y > > +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/kontron/bl-imx8mm/boot.cmd" > > These would no longer be needed if switching to extlinux.conf. Ok. I will prepare and test the new version. Thanks.
Hi Heiko, On Fri, Jan 14, 2022 at 6:39 AM Heiko Thiery <heiko.thiery@gmail.com> wrote: > Can you tell me how often this happens? I updated my defconfig with > the comments from Thomas. Now I bootet the board with that several > times and can not see the behavior you describe. With a 5.16 kernel it hangs approximately 80% of the times. By using earlycon, I can see the start of kernel messages. It seems to always hang near the imx-sdma driver. [ 0.563618] NFS: Registering the id_resolver key type [ 0.568147] Key type id_resolver registered [ 0.572317] Key type id_legacy registered [ 0.576407] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.583079] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.590661] 9p: Installing v9fs 9p2000 file system support [ 0.631634] Key type asymmetric registered [ 0.632882] Asymmetric key parser 'x509' registered [ 0.637887] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245) [ 0.645224] io scheduler mq-deadline registered [ 0.649771] io scheduler kyber registered [ 0.666398] EINJ: ACPI disabled. [ 0.681930] imx-sdma 302c0000.dma-controller: Direct firmware load for imx/sdma/sdma-imx7d.bin failed with error -2 [ 0.689628] imx-sdma 302c0000.dma-controller: external firmware not found, using ROM firmware [ 0.689635] imx-sdma 302b0000.dma-controller: external firmware not found, using ROM firmware I will investigate this when I have a chance. Thanks
diff --git a/DEVELOPERS b/DEVELOPERS index c0bfde69da..93c5760489 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1179,7 +1179,9 @@ F: package/python-sip/ F: package/uhd/ N: Heiko Thiery <heiko.thiery@gmail.com> +F: board/kontron/bl-imx8mm/ F: board/kontron/pitx-imx8m/ +F: configs/kontron_bl_imx8mm_defconfig F: configs/kontron_pitx_imx8m_defconfig F: package/altera-stapl/ F: package/ipmitool/ diff --git a/board/kontron/bl-imx8mm/boot.cmd b/board/kontron/bl-imx8mm/boot.cmd new file mode 100644 index 0000000000..7ce3198dbc --- /dev/null +++ b/board/kontron/bl-imx8mm/boot.cmd @@ -0,0 +1,8 @@ +echo "Root File Sytem on MMC${devnum}" +setenv rootfs /dev/mmcblk${devnum}p1 +setenv bootargs root=${rootfs} rootwait rw ${extrabootargs} + +load ${devtype} ${devnum} ${kernel_addr_r} boot/Image +load ${devtype} ${devnum} ${fdt_addr_r} boot/imx8mm-kontron-n801x-s.dtb + +booti ${kernel_addr_r} - ${fdt_addr_r} diff --git a/board/kontron/bl-imx8mm/genimage.cfg b/board/kontron/bl-imx8mm/genimage.cfg new file mode 100644 index 0000000000..3a83aa1f03 --- /dev/null +++ b/board/kontron/bl-imx8mm/genimage.cfg @@ -0,0 +1,16 @@ +image sdcard.img { + hdimage { + } + + partition imx-boot { + in-partition-table = "no" + image = "flash.bin" + offset = 33k + } + + partition rootfs { + partition-type = 0x83 + image = "rootfs.ext4" + offset = 8M + } +} diff --git a/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch new file mode 100644 index 0000000000..ed088dd0f8 --- /dev/null +++ b/board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch @@ -0,0 +1,28 @@ +From 95a311af81cd47c44d3d6e3f717f06a06d8f3dfd Mon Sep 17 00:00:00 2001 +From: Heiko Thiery <heiko.thiery@gmail.com> +Date: Mon, 10 Jan 2022 14:13:02 +0100 +Subject: [PATCH 1/2] imx: imx8mm: imx8mm-kontron-n801x-s: convert options to Kconfig + +CONFIG_SPL_MMC and CONFIG_SPL_SERIAL + +Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> +--- + configs/kontron-sl-mx8mm_defconfig | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/configs/kontron-sl-mx8mm_defconfig b/configs/kontron-sl-mx8mm_defconfig +index 35d12fca32..940bf07a92 100644 +--- a/configs/kontron-sl-mx8mm_defconfig ++++ b/configs/kontron-sl-mx8mm_defconfig +@@ -15,6 +15,8 @@ CONFIG_SPL_DM_SPI=y + CONFIG_DEFAULT_DEVICE_TREE="imx8mm-kontron-n801x-s" + CONFIG_SPL_TEXT_BASE=0x7E1000 + CONFIG_TARGET_KONTRON_MX8MM=y ++CONFIG_SPL_MMC=y ++CONFIG_SPL_SERIAL=y + CONFIG_BOOTCOUNT_BOOTLIMIT=3 + CONFIG_SPL=y + CONFIG_DISTRO_DEFAULTS=y +-- +2.30.2 + diff --git a/board/kontron/bl-imx8mm/patches/uboot/0002-imx-imx8mm-imx8mm-kontron-n801x-s-add-common-board-u.patch b/board/kontron/bl-imx8mm/patches/uboot/0002-imx-imx8mm-imx8mm-kontron-n801x-s-add-common-board-u.patch new file mode 100644 index 0000000000..3bc71325c6 --- /dev/null +++ b/board/kontron/bl-imx8mm/patches/uboot/0002-imx-imx8mm-imx8mm-kontron-n801x-s-add-common-board-u.patch @@ -0,0 +1,302 @@ +From ef694c19c074333fd16589ec6ffef3e7ca895186 Mon Sep 17 00:00:00 2001 +From: Heiko Thiery <heiko.thiery@gmail.com> +Date: Wed, 12 Jan 2022 08:44:36 +0100 +Subject: [PATCH 2/2] imx: imx8mm: imx8mm-kontron-n801x-s: add common board + u-boot.dtsi + +When using a board variant that selects the lvds specific dtb the +*.u-boot.dtsi file will not be included. To have a lvds dtb specific +u-boot.dtsi file move this part to a common board u-boot.dtsi file and +include this in the board base u-boot.dtsi and create an additional one +for the lvds variant. + +Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> +--- + .../imx8mm-kontron-n801x-s-lvds-u-boot.dtsi | 6 + + .../dts/imx8mm-kontron-n801x-s-u-boot.dtsi | 124 +---------------- + arch/arm/dts/imx8mm-kontron-n801x-u-boot.dtsi | 128 ++++++++++++++++++ + 3 files changed, 135 insertions(+), 123 deletions(-) + create mode 100644 arch/arm/dts/imx8mm-kontron-n801x-s-lvds-u-boot.dtsi + create mode 100644 arch/arm/dts/imx8mm-kontron-n801x-u-boot.dtsi + +diff --git a/arch/arm/dts/imx8mm-kontron-n801x-s-lvds-u-boot.dtsi b/arch/arm/dts/imx8mm-kontron-n801x-s-lvds-u-boot.dtsi +new file mode 100644 +index 0000000000..4bf75722bf +--- /dev/null ++++ b/arch/arm/dts/imx8mm-kontron-n801x-s-lvds-u-boot.dtsi +@@ -0,0 +1,6 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (C) 2019 Kontron Electronics GmbH ++ */ ++ ++#include "imx8mm-kontron-n801x-u-boot.dtsi" +diff --git a/arch/arm/dts/imx8mm-kontron-n801x-s-u-boot.dtsi b/arch/arm/dts/imx8mm-kontron-n801x-s-u-boot.dtsi +index 22d18e6f1c..4bf75722bf 100644 +--- a/arch/arm/dts/imx8mm-kontron-n801x-s-u-boot.dtsi ++++ b/arch/arm/dts/imx8mm-kontron-n801x-s-u-boot.dtsi +@@ -3,126 +3,4 @@ + * Copyright (C) 2019 Kontron Electronics GmbH + */ + +-#include "imx8mm-u-boot.dtsi" +- +-/ { +- aliases { +- usb0 = &usbotg1; +- usb1 = &usbotg2; +- }; +- +- wdt-reboot { +- compatible = "wdt-reboot"; +- wdt = <&wdog1>; +- u-boot,dm-spl; +- }; +- +- firmware { +- optee { +- compatible = "linaro,optee-tz"; +- method = "smc"; +- }; +- }; +-}; +- +-&fec1 { +- phy-mode = "rgmii-rxid"; +-}; +- +-&i2c1 { +- u-boot,dm-spl; +- u-boot,dm-pre-reloc; +-}; +- +-&i2c2 { +- status = "okay"; +- u-boot,dm-spl; +- u-boot,dm-pre-reloc; +-}; +- +-&pinctrl_ecspi1 { +- u-boot,dm-spl; +-}; +- +-&pinctrl_i2c1 { +- u-boot,dm-spl; +-}; +- +-&pinctrl_pmic { +- u-boot,dm-spl; +- fsl,pins = < +- MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 +- /* Disable Pullup for SD_VSEL */ +- MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x41 +- >; +-}; +- +-&pinctrl_uart3 { +- u-boot,dm-spl; +- u-boot,dm-pre-reloc; +-}; +- +-&pinctrl_usdhc1 { +- u-boot,dm-spl; +-}; +- +-&pinctrl_usdhc1_100mhz { +- u-boot,dm-spl; +-}; +- +-&pinctrl_usdhc1_200mhz { +- u-boot,dm-spl; +-}; +- +-&pinctrl_usdhc2 { +- u-boot,dm-spl; +-}; +- +-&pca9450 { +- u-boot,dm-spl; +-}; +- +-&{/soc@0/bus@30800000/i2c@30a20000/pmic@25/regulators} { +- u-boot,dm-spl; +-}; +- +-&ecspi1 { +- u-boot,dm-spl; +-}; +- +-&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; +-}; +- +-&uart3 { +- u-boot,dm-spl; +- u-boot,dm-pre-reloc; +-}; +- +-&usdhc1 { +- u-boot,dm-spl; +-}; +- +-&usdhc2 { +- u-boot,dm-spl; +-}; +- +-&wdog1 { +- u-boot,dm-spl; +-}; ++#include "imx8mm-kontron-n801x-u-boot.dtsi" +diff --git a/arch/arm/dts/imx8mm-kontron-n801x-u-boot.dtsi b/arch/arm/dts/imx8mm-kontron-n801x-u-boot.dtsi +new file mode 100644 +index 0000000000..22d18e6f1c +--- /dev/null ++++ b/arch/arm/dts/imx8mm-kontron-n801x-u-boot.dtsi +@@ -0,0 +1,128 @@ ++// SPDX-License-Identifier: GPL-2.0+ ++/* ++ * Copyright (C) 2019 Kontron Electronics GmbH ++ */ ++ ++#include "imx8mm-u-boot.dtsi" ++ ++/ { ++ aliases { ++ usb0 = &usbotg1; ++ usb1 = &usbotg2; ++ }; ++ ++ wdt-reboot { ++ compatible = "wdt-reboot"; ++ wdt = <&wdog1>; ++ u-boot,dm-spl; ++ }; ++ ++ firmware { ++ optee { ++ compatible = "linaro,optee-tz"; ++ method = "smc"; ++ }; ++ }; ++}; ++ ++&fec1 { ++ phy-mode = "rgmii-rxid"; ++}; ++ ++&i2c1 { ++ u-boot,dm-spl; ++ u-boot,dm-pre-reloc; ++}; ++ ++&i2c2 { ++ status = "okay"; ++ u-boot,dm-spl; ++ u-boot,dm-pre-reloc; ++}; ++ ++&pinctrl_ecspi1 { ++ u-boot,dm-spl; ++}; ++ ++&pinctrl_i2c1 { ++ u-boot,dm-spl; ++}; ++ ++&pinctrl_pmic { ++ u-boot,dm-spl; ++ fsl,pins = < ++ MX8MM_IOMUXC_GPIO1_IO00_GPIO1_IO0 0x141 ++ /* Disable Pullup for SD_VSEL */ ++ MX8MM_IOMUXC_GPIO1_IO04_GPIO1_IO4 0x41 ++ >; ++}; ++ ++&pinctrl_uart3 { ++ u-boot,dm-spl; ++ u-boot,dm-pre-reloc; ++}; ++ ++&pinctrl_usdhc1 { ++ u-boot,dm-spl; ++}; ++ ++&pinctrl_usdhc1_100mhz { ++ u-boot,dm-spl; ++}; ++ ++&pinctrl_usdhc1_200mhz { ++ u-boot,dm-spl; ++}; ++ ++&pinctrl_usdhc2 { ++ u-boot,dm-spl; ++}; ++ ++&pca9450 { ++ u-boot,dm-spl; ++}; ++ ++&{/soc@0/bus@30800000/i2c@30a20000/pmic@25/regulators} { ++ u-boot,dm-spl; ++}; ++ ++&ecspi1 { ++ u-boot,dm-spl; ++}; ++ ++&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; ++}; ++ ++&uart3 { ++ u-boot,dm-spl; ++ u-boot,dm-pre-reloc; ++}; ++ ++&usdhc1 { ++ u-boot,dm-spl; ++}; ++ ++&usdhc2 { ++ u-boot,dm-spl; ++}; ++ ++&wdog1 { ++ u-boot,dm-spl; ++}; +-- +2.30.2 + diff --git a/board/kontron/bl-imx8mm/post-build.sh b/board/kontron/bl-imx8mm/post-build.sh new file mode 100755 index 0000000000..4574221fe5 --- /dev/null +++ b/board/kontron/bl-imx8mm/post-build.sh @@ -0,0 +1,4 @@ +#!/bin/sh + +mkdir -p $TARGET_DIR/boot/ +cp $BINARIES_DIR/boot.scr $TARGET_DIR/boot/boot.scr diff --git a/board/kontron/bl-imx8mm/post-image.sh b/board/kontron/bl-imx8mm/post-image.sh new file mode 100755 index 0000000000..564211c829 --- /dev/null +++ b/board/kontron/bl-imx8mm/post-image.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +support/scripts/genimage.sh -c $(dirname $0)/genimage.cfg diff --git a/board/kontron/bl-imx8mm/readme.txt b/board/kontron/bl-imx8mm/readme.txt new file mode 100644 index 0000000000..df47ba5174 --- /dev/null +++ b/board/kontron/bl-imx8mm/readme.txt @@ -0,0 +1,85 @@ +Kontron BL i.MX8M Mini +====================== + +https://www.kontron.com/produkte/baseboard-bl-i.mx8m-mini/p158549 + + +How to build it +=============== + +Configure buildroot: + + $ make kontron_bl_imx8mm_defconfig + +Change settings to fit your needs (optional): + + $ make menuconfig + +Compile everything and build the rootfs image: + + $ make + + +Result of the build +=================== + +After building, the output/images directory contains: + + output/images/ + ├── bl31.bin + ├── boot.scr + ├── ddr_fw.bin + ├── flash.bin + ├── Image + ├── imx8mm-kontron-n801x-s.dtb + ├── lpddr4_pmu_train_1d_dmem_201904.bin + ├── lpddr4_pmu_train_1d_dmem_202006.bin + ├── lpddr4_pmu_train_1d_dmem.bin + ├── lpddr4_pmu_train_1d_dmem_pad.bin + ├── lpddr4_pmu_train_1d_fw.bin + ├── lpddr4_pmu_train_1d_imem_201904.bin + ├── lpddr4_pmu_train_1d_imem_202006.bin + ├── lpddr4_pmu_train_1d_imem.bin + ├── lpddr4_pmu_train_1d_imem_pad.bin + ├── lpddr4_pmu_train_2d_dmem_201904.bin + ├── lpddr4_pmu_train_2d_dmem_202006.bin + ├── lpddr4_pmu_train_2d_dmem.bin + ├── lpddr4_pmu_train_2d_dmem_pad.bin + ├── lpddr4_pmu_train_2d_fw.bin + ├── lpddr4_pmu_train_2d_imem_201904.bin + ├── lpddr4_pmu_train_2d_imem_202006.bin + ├── lpddr4_pmu_train_2d_imem.bin + ├── lpddr4_pmu_train_2d_imem_pad.bin + ├── lpddr4_pmu_train_fw.bin + ├── rootfs.ext2 + ├── rootfs.ext4 -> rootfs.ext2 + ├── rootfs.tar + ├── sdcard.img + ├── u-boot.bin + └── u-boot-spl.bin + + +Flashing the SD card image +========================== + +To install the image on a SDCard simply copy sdcard.img to the storage (e.g. SD, eMMC) + + $ sudo dd if=output/images/sdcard.img of=<your-sd-device> + + +Preparing the board +=================== + + * Connect a serial line to the board + * Insert the SD card + * Power-up the board + + +Booting the board +================= + +By default the bootloader will search for the first valid image, starting +with the internal eMMC. To make sure the bootloader loads bootscript from +the correct location (SD card) set the boot_targets environment variable: + + $ setenv boot_targets mmc1 diff --git a/configs/kontron_bl_imx8mm_defconfig b/configs/kontron_bl_imx8mm_defconfig new file mode 100644 index 0000000000..bebc6f0763 --- /dev/null +++ b/configs/kontron_bl_imx8mm_defconfig @@ -0,0 +1,60 @@ +# Architecture +BR2_aarch64=y +BR2_ARM_FPU_VFPV3=y + +BR2_GLOBAL_PATCH_DIR="board/kontron/bl-imx8mm/patches" + +# System +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc2" +BR2_ROOTFS_POST_BUILD_SCRIPT="board/kontron/bl-imx8mm/post-build.sh" +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/kontron/bl-imx8mm/post-image.sh" + +# Kernel +BR2_LINUX_KERNEL=y +BR2_LINUX_KERNEL_CUSTOM_VERSION=y +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.16" +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y +BR2_LINUX_KERNEL_DTS_SUPPORT=y +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mm-kontron-n801x-s" +BR2_LINUX_KERNEL_INSTALL_TARGET=y +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y + +BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_16=y + +BR2_PACKAGE_FREESCALE_IMX=y +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MM=y +BR2_PACKAGE_FIRMWARE_IMX=y + +# Filesystem / image +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_SIZE="120M" + +# Bootloader +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.6" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mm" +BR2_TARGET_ARM_TRUSTED_FIRMWARE_BL31=y +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30880000" +BR2_TARGET_UBOOT=y +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y +BR2_TARGET_UBOOT_CUSTOM_VERSION=y +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.01" +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="kontron-sl-mx8mm" +BR2_TARGET_UBOOT_NEEDS_DTC=y +BR2_TARGET_UBOOT_NEEDS_PYTHON3=y +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=y +BR2_TARGET_UBOOT_NEEDS_ATF_BL31_BIN=y +BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM=y +BR2_TARGET_UBOOT_FORMAT_CUSTOM_NAME="flash.bin" +BR2_TARGET_UBOOT_SPL=y + +# Required host tools to create the SD/eMMC image +BR2_PACKAGE_HOST_GENIMAGE=y +BR2_PACKAGE_HOST_UBOOT_TOOLS=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT=y +BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT_SOURCE="board/kontron/bl-imx8mm/boot.cmd"
The BL i.MX8M Mini is a baseboard that includes the SoM SL i.MX8M Mini. https://www.kontron.com/produkte/baseboard-bl-i.mx8m-mini/p158549 Cc: Frieder Schrempf <frieder.schrempf@kontron.de> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com> --- DEVELOPERS | 2 + board/kontron/bl-imx8mm/boot.cmd | 8 + board/kontron/bl-imx8mm/genimage.cfg | 16 + ...m-kontron-n801x-s-convert-options-to.patch | 28 ++ ...m-kontron-n801x-s-add-common-board-u.patch | 302 ++++++++++++++++++ board/kontron/bl-imx8mm/post-build.sh | 4 + board/kontron/bl-imx8mm/post-image.sh | 3 + board/kontron/bl-imx8mm/readme.txt | 85 +++++ configs/kontron_bl_imx8mm_defconfig | 60 ++++ 9 files changed, 508 insertions(+) create mode 100644 board/kontron/bl-imx8mm/boot.cmd create mode 100644 board/kontron/bl-imx8mm/genimage.cfg create mode 100644 board/kontron/bl-imx8mm/patches/uboot/0001-imx-imx8mm-imx8mm-kontron-n801x-s-convert-options-to.patch create mode 100644 board/kontron/bl-imx8mm/patches/uboot/0002-imx-imx8mm-imx8mm-kontron-n801x-s-add-common-board-u.patch create mode 100755 board/kontron/bl-imx8mm/post-build.sh create mode 100755 board/kontron/bl-imx8mm/post-image.sh create mode 100644 board/kontron/bl-imx8mm/readme.txt create mode 100644 configs/kontron_bl_imx8mm_defconfig