[v6,2/2] configs/imx8mn_bsh_smm_s2_pro_defconfig: new defconfig

Message ID 20220909125528.897612-3-dario.binacchi@amarulasolutions.com
State New
Headers show
Series
  • Add support for BSH smm s2 [pro] boards
Related show

Commit Message

Dario Binacchi Sept. 9, 2022, 12:55 p.m. UTC
From: Michael Trimarchi <michael@amarulasolutions.com>

BSH SMM S2 PRO (SystemMaster S2 Pro) Board is an add-on board which
provide input and output interfaces to a dedicated carrier board. It is
designed mainly to provide graphical/video and connectivity interfaces
to the appliance.

Board support package includes the following components:
- mainline Linux kernel 5.19.7
- mainline U-Boot 2022-07
- Default packages from buildroot

https://www.apertis.org/reference_hardware/imx8mn_bsh_smm_s2pro_setup/

Add Ariel D'Alessandro and Dario Binacchi as co-maintainer, we work
together on platform mainline

Build and tested using:
docker pull registry.gitlab.com/buildroot.org/buildroot/base:20220105.2314

Cc: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Heiko Thiery <heiko.thiery@gmail.com>
Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
Tested-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
Changes in v6:
- Change offset in imx-boot partition of genimage.cfg from 33k to 32k.

Changes in v5:
- Update the commit description.
- Bump the kernel version to 5.19.7.

Changes in v4:
- Update the commit description.
- Bump the kernel version to 5.18.19.

Changes in v3:
- Update the commit description.
- Bump U-Boot to version 2022-07.

Changes in v2:
- Change commit subject line.
- Use the buildroot's output directory if the binaries directory is
  not passed as a parameter to the `flash.sh' script.
- Replace the linux.config file with an architectural defconfig and
  a config fragment for the changes.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
 DEVELOPERS                                    |  4 +
 .../imx8mn-bsh-smm-s2/linux.fragment          |  0
 board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf |  4 +
 board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh      | 23 ++++++
 board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg  | 17 +++++
 board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh |  7 ++
 board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh |  3 +
 board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt    | 73 +++++++++++++++++++
 configs/imx8mn_bsh_smm_s2_defconfig           |  2 +-
 configs/imx8mn_bsh_smm_s2_pro_defconfig       | 41 +++++++++++
 10 files changed, 173 insertions(+), 1 deletion(-)
 rename board/bsh/{ => common}/imx8mn-bsh-smm-s2/linux.fragment (100%)
 create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
 create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
 create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
 create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
 create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
 create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
 create mode 100644 configs/imx8mn_bsh_smm_s2_pro_defconfig

Comments

Heiko Thiery Sept. 9, 2022, 1:23 p.m. UTC | #1
Hi,

Am Fr., 9. Sept. 2022 um 14:55 Uhr schrieb Dario Binacchi
<dario.binacchi@amarulasolutions.com>:
>
> From: Michael Trimarchi <michael@amarulasolutions.com>
>
> BSH SMM S2 PRO (SystemMaster S2 Pro) Board is an add-on board which
> provide input and output interfaces to a dedicated carrier board. It is
> designed mainly to provide graphical/video and connectivity interfaces
> to the appliance.
>
> Board support package includes the following components:
> - mainline Linux kernel 5.19.7
> - mainline U-Boot 2022-07
> - Default packages from buildroot
>
> https://www.apertis.org/reference_hardware/imx8mn_bsh_smm_s2pro_setup/
>
> Add Ariel D'Alessandro and Dario Binacchi as co-maintainer, we work
> together on platform mainline
>
> Build and tested using:
> docker pull registry.gitlab.com/buildroot.org/buildroot/base:20220105.2314
>
> Cc: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> Cc: Jagan Teki <jagan@amarulasolutions.com>
> Cc: Heiko Thiery <heiko.thiery@gmail.com>
> Cc: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Reviewed-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> Signed-off-by: Michael Trimarchi <michael@amarulasolutions.com>
> Tested-by: Ariel D'Alessandro <ariel.dalessandro@collabora.com>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

Reviewed-by: Heiko Thiery <heiko.thiery@gmail.com>

> ---
> Changes in v6:
> - Change offset in imx-boot partition of genimage.cfg from 33k to 32k.
>
> Changes in v5:
> - Update the commit description.
> - Bump the kernel version to 5.19.7.
>
> Changes in v4:
> - Update the commit description.
> - Bump the kernel version to 5.18.19.
>
> Changes in v3:
> - Update the commit description.
> - Bump U-Boot to version 2022-07.
>
> Changes in v2:
> - Change commit subject line.
> - Use the buildroot's output directory if the binaries directory is
>   not passed as a parameter to the `flash.sh' script.
> - Replace the linux.config file with an architectural defconfig and
>   a config fragment for the changes.
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>  DEVELOPERS                                    |  4 +
>  .../imx8mn-bsh-smm-s2/linux.fragment          |  0
>  board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf |  4 +
>  board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh      | 23 ++++++
>  board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg  | 17 +++++
>  board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh |  7 ++
>  board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh |  3 +
>  board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt    | 73 +++++++++++++++++++
>  configs/imx8mn_bsh_smm_s2_defconfig           |  2 +-
>  configs/imx8mn_bsh_smm_s2_pro_defconfig       | 41 +++++++++++
>  10 files changed, 173 insertions(+), 1 deletion(-)
>  rename board/bsh/{ => common}/imx8mn-bsh-smm-s2/linux.fragment (100%)
>  create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
>  create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
>  create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
>  create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
>  create mode 100755 board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
>  create mode 100644 board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
>  create mode 100644 configs/imx8mn_bsh_smm_s2_pro_defconfig
>
> diff --git a/DEVELOPERS b/DEVELOPERS
> index d63cb22cce1d..cb2c10d322fb 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -216,6 +216,8 @@ F:  configs/snps_archs38_haps_defconfig
>  F:     configs/snps_archs38_hsdk_defconfig
>
>  N:     Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
> +F:     board/bsh/
> +F:     configs/imx8mn_bsh_smm_s2_pro_defconfig
>  F:     package/axfsutils/
>  F:     package/mali-t76x/
>
> @@ -675,6 +677,7 @@ F:  package/xinetd/
>  N:     Dario Binacchi <dario.binacchi@amarulasolutions.com>
>  F:     board/bsh/
>  F:     configs/imx8mn_bsh_smm_s2_defconfig
> +F:     configs/imx8mn_bsh_smm_s2_pro_defconfig
>  F:     package/uuu/
>
>  N:     Dario Binacchi <dariobin@libero.it>
> @@ -2108,6 +2111,7 @@ F:        package/python-pyzmq/
>  N:     Michael Trimarchi <michael@amarulasolutions.com>
>  F:     board/bsh/
>  F:     configs/imx8mn_bsh_smm_s2_defconfig
> +F:     configs/imx8mn_bsh_smm_s2_pro_defconfig
>  F:     package/python-spidev/
>
>  N:     Michael Vetter <jubalh@iodoru.org>
> diff --git a/board/bsh/imx8mn-bsh-smm-s2/linux.fragment b/board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment
> similarity index 100%
> rename from board/bsh/imx8mn-bsh-smm-s2/linux.fragment
> rename to board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf b/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
> new file mode 100644
> index 000000000000..911135474253
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
> @@ -0,0 +1,4 @@
> +label buildroot
> +  kernel /boot/Image
> +  devicetree /boot/freescale/imx8mn-bsh-smm-s2pro.dtb
> +  append root=PARTUUID=%PARTUUID% rootwait rw
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
> new file mode 100755
> index 000000000000..17b20f009771
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
> @@ -0,0 +1,23 @@
> +#!/bin/bash
> +
> +if [ $# -eq 0 ]; then
> +    OUTPUT_DIR=output
> +else
> +    OUTPUT_DIR=$1
> +fi
> +
> +if ! test -d "${OUTPUT_DIR}" ; then
> +    echo "ERROR: no output directory specified."
> +    echo "Usage: $0 OUTPUT_DIR"
> +    echo ""
> +    echo "Arguments:"
> +    echo "    OUTPUT_DIR    The Buildroot output directory."
> +    exit 1
> +fi
> +
> +IMAGES_DIR=${OUTPUT_DIR}/images
> +
> +${OUTPUT_DIR}/host/bin/uuu -v -b emmc_all \
> +  ${IMAGES_DIR}/flash.bin \
> +  ${IMAGES_DIR}/sdcard.img
> +
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg b/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
> new file mode 100644
> index 000000000000..10c52548cdfa
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
> @@ -0,0 +1,17 @@
> +image sdcard.img {
> +       hdimage {
> +               partition-table-type = "gpt"
> +       }
> +
> +       partition imx-boot {
> +               in-partition-table = "no"
> +               image = "flash.bin"
> +               offset = 32K
> +       }
> +
> +       partition rootfs {
> +               offset = 8M
> +               image = "rootfs.ext4"
> +               partition-uuid = %PARTUUID%
> +       }
> +}
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
> new file mode 100755
> index 000000000000..bf8861f6a914
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
> @@ -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"
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
> new file mode 100755
> index 000000000000..3452fd4501f8
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +support/scripts/genimage.sh -c ${BINARIES_DIR}/genimage.cfg
> diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt b/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
> new file mode 100644
> index 000000000000..5763f164fe13
> --- /dev/null
> +++ b/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
> @@ -0,0 +1,73 @@
> +i.MX8MN BSH SMM S2 PRO
> +======================
> +
> +How to build it
> +---------------
> +
> +Configure buildroot:
> +
> +  $ make imx8mn_bsh_smm_s2_pro_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
> +    ├── Image
> +    ├── flash.bin
> +    ├── ddr3*
> +    ├── rootfs.ext2
> +    ├── rootfs.ext4 -> rootfs.ext2
> +    ├── rootfs.tar
> +    ├── sdcard.img
> +    ├── u-boot.bin
> +    ├── u-boot-nodtb.bin
> +    └── u-boot-spl.bin
> +
> +
> +Preparing the board
> +-------------------
> +
> +Plug the USB type A to micro B cable into the USB Debug
> +Connector (DBG UART). Use serial port settings 115200 8N1
> +to access the debug console.
> +
> +Plug another USB type A to micro B cable into the USB-OTG
> +Connector (USB1). This connection is used to flash the board
> +firmware using the Freescale/NXP UUU tool.
> +
> +Connect the power supply/adaptor to the DC Power Jack (labelled
> ++5V).
> +
> +
> +Flashing the emmc card image
> +----------------------------
> +
> +Power up the board by switching on the Power ON Switch, which is
> +placed right next to the DC Jack.
> +
> +Enter the following U-Boot commands on the debug serial console:
> +
> +  $ fastboot usb 0
> +
> +Flash the images on eMMC. On your computer, run:
> +
> +  $ board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh output/
> +
> +
> +Booting the board
> +-----------------
> +
> +By default the bootloader will search for the first valid image,
> +starting with the internal eMMC.
> diff --git a/configs/imx8mn_bsh_smm_s2_defconfig b/configs/imx8mn_bsh_smm_s2_defconfig
> index 7f6023c64b45..298eba2c25f0 100644
> --- a/configs/imx8mn_bsh_smm_s2_defconfig
> +++ b/configs/imx8mn_bsh_smm_s2_defconfig
> @@ -6,7 +6,7 @@ BR2_LINUX_KERNEL=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19.7"
>  BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
> -BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/imx8mn-bsh-smm-s2/linux.fragment"
> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
>  BR2_LINUX_KERNEL_DTS_SUPPORT=y
>  BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-bsh-smm-s2"
>  BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y
> diff --git a/configs/imx8mn_bsh_smm_s2_pro_defconfig b/configs/imx8mn_bsh_smm_s2_pro_defconfig
> new file mode 100644
> index 000000000000..97796dd01277
> --- /dev/null
> +++ b/configs/imx8mn_bsh_smm_s2_pro_defconfig
> @@ -0,0 +1,41 @@
> +BR2_aarch64=y
> +BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
> +BR2_ROOTFS_POST_BUILD_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh"
> +BR2_LINUX_KERNEL=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION=y
> +BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19.7"
> +BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
> +BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
> +BR2_LINUX_KERNEL_DTS_SUPPORT=y
> +BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-bsh-smm-s2pro"
> +BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y
> +BR2_LINUX_KERNEL_INSTALL_TARGET=y
> +BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
> +BR2_PACKAGE_FREESCALE_IMX=y
> +BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y
> +BR2_PACKAGE_FIRMWARE_IMX=y
> +BR2_PACKAGE_FIRMWARE_IMX_DDR3=y
> +BR2_TARGET_ROOTFS_EXT2=y
> +BR2_TARGET_ROOTFS_EXT2_4=y
> +BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30a60000"
> +BR2_TARGET_UBOOT=y
> +BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION=y
> +BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.07"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mn_bsh_smm_s2pro"
> +BR2_TARGET_UBOOT_NEEDS_DTC=y
> +BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
> +BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
> +BR2_TARGET_UBOOT_NEEDS_ATF_BL31=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
> +BR2_PACKAGE_HOST_GENIMAGE=y
> +BR2_PACKAGE_HOST_UUU=y
> --
> 2.32.0
>

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index d63cb22cce1d..cb2c10d322fb 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -216,6 +216,8 @@  F:	configs/snps_archs38_haps_defconfig
 F:	configs/snps_archs38_hsdk_defconfig
 
 N:	Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
+F:	board/bsh/
+F:	configs/imx8mn_bsh_smm_s2_pro_defconfig
 F:	package/axfsutils/
 F:	package/mali-t76x/
 
@@ -675,6 +677,7 @@  F:	package/xinetd/
 N:	Dario Binacchi <dario.binacchi@amarulasolutions.com>
 F:	board/bsh/
 F:	configs/imx8mn_bsh_smm_s2_defconfig
+F:	configs/imx8mn_bsh_smm_s2_pro_defconfig
 F:	package/uuu/
 
 N:	Dario Binacchi <dariobin@libero.it>
@@ -2108,6 +2111,7 @@  F:	package/python-pyzmq/
 N:	Michael Trimarchi <michael@amarulasolutions.com>
 F:	board/bsh/
 F:	configs/imx8mn_bsh_smm_s2_defconfig
+F:	configs/imx8mn_bsh_smm_s2_pro_defconfig
 F:	package/python-spidev/
 
 N:	Michael Vetter <jubalh@iodoru.org>
diff --git a/board/bsh/imx8mn-bsh-smm-s2/linux.fragment b/board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment
similarity index 100%
rename from board/bsh/imx8mn-bsh-smm-s2/linux.fragment
rename to board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf b/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
new file mode 100644
index 000000000000..911135474253
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/extlinux.conf
@@ -0,0 +1,4 @@ 
+label buildroot
+  kernel /boot/Image
+  devicetree /boot/freescale/imx8mn-bsh-smm-s2pro.dtb
+  append root=PARTUUID=%PARTUUID% rootwait rw
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
new file mode 100755
index 000000000000..17b20f009771
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh
@@ -0,0 +1,23 @@ 
+#!/bin/bash
+
+if [ $# -eq 0 ]; then
+    OUTPUT_DIR=output
+else
+    OUTPUT_DIR=$1
+fi
+
+if ! test -d "${OUTPUT_DIR}" ; then
+    echo "ERROR: no output directory specified."
+    echo "Usage: $0 OUTPUT_DIR"
+    echo ""
+    echo "Arguments:"
+    echo "    OUTPUT_DIR    The Buildroot output directory."
+    exit 1
+fi
+
+IMAGES_DIR=${OUTPUT_DIR}/images
+
+${OUTPUT_DIR}/host/bin/uuu -v -b emmc_all \
+  ${IMAGES_DIR}/flash.bin \
+  ${IMAGES_DIR}/sdcard.img
+
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg b/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
new file mode 100644
index 000000000000..10c52548cdfa
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/genimage.cfg
@@ -0,0 +1,17 @@ 
+image sdcard.img {
+	hdimage {
+		partition-table-type = "gpt"
+	}
+
+	partition imx-boot {
+		in-partition-table = "no"
+		image = "flash.bin"
+		offset = 32K
+	}
+
+	partition rootfs {
+		offset = 8M
+		image = "rootfs.ext4"
+		partition-uuid = %PARTUUID%
+	}
+}
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
new file mode 100755
index 000000000000..bf8861f6a914
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh
@@ -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"
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh b/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
new file mode 100755
index 000000000000..3452fd4501f8
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh
@@ -0,0 +1,3 @@ 
+#!/bin/sh
+
+support/scripts/genimage.sh -c ${BINARIES_DIR}/genimage.cfg
diff --git a/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt b/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
new file mode 100644
index 000000000000..5763f164fe13
--- /dev/null
+++ b/board/bsh/imx8mn-bsh-smm-s2-pro/readme.txt
@@ -0,0 +1,73 @@ 
+i.MX8MN BSH SMM S2 PRO
+======================
+
+How to build it
+---------------
+
+Configure buildroot:
+
+  $ make imx8mn_bsh_smm_s2_pro_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
+    ├── Image
+    ├── flash.bin
+    ├── ddr3*
+    ├── rootfs.ext2
+    ├── rootfs.ext4 -> rootfs.ext2
+    ├── rootfs.tar
+    ├── sdcard.img
+    ├── u-boot.bin
+    ├── u-boot-nodtb.bin
+    └── u-boot-spl.bin
+
+
+Preparing the board
+-------------------
+
+Plug the USB type A to micro B cable into the USB Debug
+Connector (DBG UART). Use serial port settings 115200 8N1
+to access the debug console.
+
+Plug another USB type A to micro B cable into the USB-OTG
+Connector (USB1). This connection is used to flash the board
+firmware using the Freescale/NXP UUU tool.
+
+Connect the power supply/adaptor to the DC Power Jack (labelled
++5V).
+
+
+Flashing the emmc card image
+----------------------------
+
+Power up the board by switching on the Power ON Switch, which is
+placed right next to the DC Jack.
+
+Enter the following U-Boot commands on the debug serial console:
+
+  $ fastboot usb 0
+
+Flash the images on eMMC. On your computer, run:
+
+  $ board/bsh/imx8mn-bsh-smm-s2-pro/flash.sh output/
+
+
+Booting the board
+-----------------
+
+By default the bootloader will search for the first valid image,
+starting with the internal eMMC.
diff --git a/configs/imx8mn_bsh_smm_s2_defconfig b/configs/imx8mn_bsh_smm_s2_defconfig
index 7f6023c64b45..298eba2c25f0 100644
--- a/configs/imx8mn_bsh_smm_s2_defconfig
+++ b/configs/imx8mn_bsh_smm_s2_defconfig
@@ -6,7 +6,7 @@  BR2_LINUX_KERNEL=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION=y
 BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19.7"
 BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
-BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/imx8mn-bsh-smm-s2/linux.fragment"
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
 BR2_LINUX_KERNEL_DTS_SUPPORT=y
 BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-bsh-smm-s2"
 BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y
diff --git a/configs/imx8mn_bsh_smm_s2_pro_defconfig b/configs/imx8mn_bsh_smm_s2_pro_defconfig
new file mode 100644
index 000000000000..97796dd01277
--- /dev/null
+++ b/configs/imx8mn_bsh_smm_s2_pro_defconfig
@@ -0,0 +1,41 @@ 
+BR2_aarch64=y
+BR2_TARGET_GENERIC_GETTY_PORT="ttymxc3"
+BR2_ROOTFS_POST_BUILD_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-build.sh"
+BR2_ROOTFS_POST_IMAGE_SCRIPT="board/bsh/imx8mn-bsh-smm-s2-pro/post-image.sh"
+BR2_LINUX_KERNEL=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION=y
+BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.19.7"
+BR2_LINUX_KERNEL_USE_ARCH_DEFAULT_CONFIG=y
+BR2_LINUX_KERNEL_CONFIG_FRAGMENT_FILES="board/bsh/common/imx8mn-bsh-smm-s2/linux.fragment"
+BR2_LINUX_KERNEL_DTS_SUPPORT=y
+BR2_LINUX_KERNEL_INTREE_DTS_NAME="freescale/imx8mn-bsh-smm-s2pro"
+BR2_LINUX_KERNEL_DTB_KEEP_DIRNAME=y
+BR2_LINUX_KERNEL_INSTALL_TARGET=y
+BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
+BR2_PACKAGE_FREESCALE_IMX=y
+BR2_PACKAGE_FREESCALE_IMX_PLATFORM_IMX8MN=y
+BR2_PACKAGE_FIRMWARE_IMX=y
+BR2_PACKAGE_FIRMWARE_IMX_DDR3=y
+BR2_TARGET_ROOTFS_EXT2=y
+BR2_TARGET_ROOTFS_EXT2_4=y
+BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION=y
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_CUSTOM_VERSION_VALUE="v2.5"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="imx8mn"
+BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="IMX_BOOT_UART_BASE=0x30a60000"
+BR2_TARGET_UBOOT=y
+BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION=y
+BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2022.07"
+BR2_TARGET_UBOOT_BOARD_DEFCONFIG="imx8mn_bsh_smm_s2pro"
+BR2_TARGET_UBOOT_NEEDS_DTC=y
+BR2_TARGET_UBOOT_NEEDS_PYLIBFDT=y
+BR2_TARGET_UBOOT_NEEDS_OPENSSL=y
+BR2_TARGET_UBOOT_NEEDS_ATF_BL31=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
+BR2_PACKAGE_HOST_GENIMAGE=y
+BR2_PACKAGE_HOST_UUU=y