configs/kontron_bl_imx8mm_defconfig: new defconfig

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>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
[Arnout: explicitly set BR2_cortex_a53=y]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Heiko Thiery 2022-01-31 16:30:23 +01:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 3675131e6c
commit ed5bbb7606
8 changed files with 511 additions and 0 deletions

View File

@ -1180,7 +1180,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/

View File

@ -0,0 +1,4 @@
label buildroot
kernel /boot/Image
devicetree /boot/freescale/imx8mm-kontron-n801x-s.dtb
append root=PARTUUID=%PARTUUID% rootwait rw

View File

@ -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%
}
}

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -0,0 +1,59 @@
# Architecture
BR2_aarch64=y
BR2_cortex_a53=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