@@ -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/
new file mode 100644
@@ -0,0 +1,4 @@
+label buildroot
+ kernel /boot/Image
+ devicetree /boot/freescale/imx8mm-kontron-n801x-s.dtb
+ append root=PARTUUID=%PARTUUID% rootwait rw
new file mode 100644
@@ -0,0 +1,18 @@
+image sdcard.img {
+ hdimage {
+ partition-table-type = "gpt"
+ gpt-location = 16K
+ }
+
+ partition imx-boot {
+ in-partition-table = "no"
+ image = "flash.bin"
+ offset = 33K
+ }
+
+ partition rootfs {
+ image = "rootfs.ext4"
+ offset = 8M
+ partition-uuid = %PARTUUID%
+ }
+}
new file mode 100644
@@ -0,0 +1,31 @@
+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
+
+Patch submitted upstream:
+https://patchwork.ozlabs.org/project/uboot/patch/20220112085755.7396-1-heiko.thiery@gmail.com/
+
+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
+
new file mode 100644
@@ -0,0 +1,305 @@
+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.
+
+Patch submitted upstream:
+https://patchwork.ozlabs.org/project/uboot/patch/20220112085755.7396-2-heiko.thiery@gmail.com/
+
+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
+
new file mode 100755
@@ -0,0 +1,7 @@
+#!/bin/sh
+BOARD_DIR="$(dirname $0)"
+PARTUUID="$($HOST_DIR/bin/uuidgen)"
+
+install -d "$TARGET_DIR/boot/extlinux/"
+sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/extlinux.conf" > "$TARGET_DIR/boot/extlinux/extlinux.conf"
+sed "s/%PARTUUID%/$PARTUUID/g" "$BOARD_DIR/genimage.cfg" > "$BINARIES_DIR/genimage.cfg"
new file mode 100644
@@ -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
new file mode 100644
@@ -0,0 +1,59 @@
+# 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"
+
+# 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_DTB_KEEP_DIRNAME=y
+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_ROOTFS_POST_BUILD_SCRIPT="board/kontron/bl-imx8mm/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
+BR2_ROOTFS_POST_SCRIPT_ARGS="-c $(BINARIES_DIR)/genimage.cfg"
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_UBOOT_TOOLS=y
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> --- v3: - change offset value to use capitol 'K' value (thanks Guilio) - add info to uboot patches about submitting to upstream v2: - switch to extlinux - directly call genimage.sh - remove post-image.sh - remove BR2_PACKAGE_HOST_UBOOT_TOOLS_BOOT_SCRIPT - add BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME DEVELOPERS | 2 + board/kontron/bl-imx8mm/extlinux.conf | 4 + board/kontron/bl-imx8mm/genimage.cfg | 18 ++ ...m-kontron-n801x-s-convert-options-to.patch | 31 ++ ...m-kontron-n801x-s-add-common-board-u.patch | 305 ++++++++++++++++++ board/kontron/bl-imx8mm/post-build.sh | 7 + board/kontron/bl-imx8mm/readme.txt | 85 +++++ configs/kontron_bl_imx8mm_defconfig | 59 ++++ 8 files changed, 511 insertions(+) create mode 100644 board/kontron/bl-imx8mm/extlinux.conf 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 100644 board/kontron/bl-imx8mm/readme.txt create mode 100644 configs/kontron_bl_imx8mm_defconfig