[Buildroot] [PATCH v3 2/4] configs/stm32mp157*: use trusted configuration

Shlomi Vaknin shlomi.39sd at gmail.com
Mon Oct 12 20:11:13 UTC 2020


Hi Bartek,

‫בתאריך יום ב׳, 12 באוק׳ 2020 ב-21:08 מאת ‪Bartosz Bilas‬‏ <‪
b.bilas at grinn-global.com‬‏>:‬

> Hi Shlomi,
> On 07.10.2020 16:49, Shlomi Vaknin wrote:
>
> Adding support for trusted configuration for stm32mp157c-dk2 and stm32mp157a-dk1.
> This patch change using uboot spl as fsbl to using arm trusted firmware.
> The reason for this change is that st recommends to use this configuration (or optee)
> and not the basic.
>
>
> In addition, this commit enables gadget support in `linux.config`.
>
> This should be committed as a separate patch because it's not related to
> the trusted configuration at all.
>
> In addition, removing partition-type from genimage.cfg is mandatory,
> since it creates a hybrid MBR partition table which causes ATF to not find ssbl parition.
>
> Signed-off-by: Shlomi Vaknin <shlomi.39sd at gmail.com> <shlomi.39sd at gmail.com>
> ---
>  .../{genimage.cfg => genimage.cfg.template}   |  7 ++-
>  .../common/stm32mp157/post-image.sh           | 43 +++++++++++++++++++
>  .../stm32mp157a-dk1/linux.config              | 24 ++++-------
>  .../stm32mp157c-dk2/linux.config              | 20 ++++-----
>  configs/stm32mp157a_dk1_defconfig             | 14 +++---
>  configs/stm32mp157c_dk2_defconfig             | 14 +++---
>  6 files changed, 78 insertions(+), 44 deletions(-)
>  rename board/stmicroelectronics/common/stm32mp157/{genimage.cfg => genimage.cfg.template} (63%)
>  create mode 100755 board/stmicroelectronics/common/stm32mp157/post-image.sh
>
> diff --git a/board/stmicroelectronics/common/stm32mp157/genimage.cfg b/board/stmicroelectronics/common/stm32mp157/genimage.cfg.template
> similarity index 63%
> rename from board/stmicroelectronics/common/stm32mp157/genimage.cfg
> rename to board/stmicroelectronics/common/stm32mp157/genimage.cfg.template
> index d1ce530cc5..f341c19f2f 100644
> --- a/board/stmicroelectronics/common/stm32mp157/genimage.cfg
> +++ b/board/stmicroelectronics/common/stm32mp157/genimage.cfg.template
> @@ -4,20 +4,19 @@ image sdcard.img {
>  	}
>
>  	partition fsbl1 {
> -		image = "u-boot-spl.stm32"
> +		image = "%ATFBIN%"
>  	}
>
>  	partition fsbl2 {
> -		image = "u-boot-spl.stm32"
> +		image = "%ATFBIN%"
>  	}
>
>  	partition ssbl {
> -		image = "u-boot.img"
> +		image = "u-boot.stm32"
>  	}
>
>  	partition rootfs {
>  		image = "rootfs.ext4"
> -		partition-type = 0x83
>  		bootable = "yes"
>  	}
>  }
> diff --git a/board/stmicroelectronics/common/stm32mp157/post-image.sh b/board/stmicroelectronics/common/stm32mp157/post-image.sh
> new file mode 100755
> index 0000000000..c00a5c6f6c
> --- /dev/null
> +++ b/board/stmicroelectronics/common/stm32mp157/post-image.sh
> @@ -0,0 +1,43 @@
> +#!/usr/bin/env bash
> +
> +#
> +# atf_image extracts the ATF binary image from DTB_FILE_NAME that appears in
> +# BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES in ${BR_CONFIG},
> +# then prints the corresponding file name for the genimage
> +# configuration file
> +#
> +atf_image()
> +{
> +	local ATF_VARIABLES="$(sed -n 's/^BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="\([\/a-zA-Z0-9_=. \-]*\)"$/\1/p' ${BR2_CONFIG})"
> +
> +	if grep -Eq "DTB_FILE_NAME=stm32mp157c-dk2.dtb" <<< ${ATF_VARIABLES}; then
> +		echo "tf-a-stm32mp157c-dk2.stm32"
> +	elif grep -Eq "DTB_FILE_NAME=stm32mp157a-dk1.dtb" <<< ${ATF_VARIABLES}; then
> +                echo "tf-a-stm32mp157a-dk1.stm32"
> +	fi
> +}
> +
> +main()
> +{
> +	local ATFBIN="$(atf_image)"
> +	local GENIMAGE_CFG="$(mktemp --suffix genimage.cfg)"
> +	local GENIMAGE_TMP="${BUILD_DIR}/genimage.tmp"
> +
> +	sed -e "s/%ATFBIN%/${ATFBIN}/" \
> +		board/stmicroelectronics/common/stm32mp157/genimage.cfg.template > ${GENIMAGE_CFG}
> +
> +	rm -rf "${GENIMAGE_TMP}"
> +
> +	genimage \
> +		--rootpath "${TARGET_DIR}" \
> +		--tmppath "${GENIMAGE_TMP}" \
> +		--inputpath "${BINARIES_DIR}" \
> +		--outputpath "${BINARIES_DIR}" \
> +		--config "${GENIMAGE_CFG}"
> +
> +	rm -f ${GENIMAGE_CFG}
> +
> +	exit $?
> +}
> +
> +main $@
> diff --git a/board/stmicroelectronics/stm32mp157a-dk1/linux.config b/board/stmicroelectronics/stm32mp157a-dk1/linux.config
> index 95c834e431..47729ea97c 100644
> --- a/board/stmicroelectronics/stm32mp157a-dk1/linux.config
> +++ b/board/stmicroelectronics/stm32mp157a-dk1/linux.config
> @@ -47,15 +47,10 @@ CONFIG_CAN=y
>  CONFIG_CAN_M_CAN=y
>  CONFIG_DEVTMPFS=y
>  CONFIG_DEVTMPFS_MOUNT=y
> -CONFIG_DMA_CMA=y
> -CONFIG_CMA_SIZE_MBYTES=128
>  CONFIG_SIMPLE_PM_BUS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_CMDLINE_PARTS=y
>  CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_M25P80=y
> -CONFIG_MTD_NAND=y
> -CONFIG_MTD_NAND_STM32_FMC2=y
>  CONFIG_MTD_SPI_NOR=y
>  # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
>  CONFIG_MTD_UBI=y
> @@ -107,13 +102,6 @@ CONFIG_REGULATOR_STPMIC1=y
>  CONFIG_DRM=y
>  CONFIG_DRM_STM=y
>  CONFIG_DRM_STM_DSI=y
> -# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set
> -# CONFIG_DRM_SII902X is not set
> -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
> -# CONFIG_LCD_CLASS_DEVICE is not set
> -# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
> -# CONFIG_BACKLIGHT_GENERIC is not set
> -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
>  CONFIG_SOUND=y
>  CONFIG_SND=y
>  CONFIG_SND_DYNAMIC_MINORS=y
> @@ -129,12 +117,17 @@ CONFIG_USB_DWC2=y
>  CONFIG_USB_CHIPIDEA=y
>  CONFIG_USB_CHIPIDEA_HOST=y
>  CONFIG_USB_ISP1760=y
> +CONFIG_USB_ISP1760_HOST_ROLE=y
>  CONFIG_USB_HSIC_USB3503=y
>  CONFIG_USB_GPIO_VBUS=y
>  CONFIG_USB_ISP1301=y
>  CONFIG_USB_ULPI=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_CONFIGFS=m
> +CONFIG_USB_CONFIGFS_ACM=y
> +CONFIG_USB_CONFIGFS_ECM=y
> +CONFIG_USB_CONFIGFS_MASS_STORAGE=y
>  CONFIG_TYPEC=y
> -CONFIG_TYPEC_STUSB=y
>  CONFIG_MMC=y
>  CONFIG_MMC_BLOCK_MINORS=16
>  CONFIG_MMC_ARMMMCI=y
> @@ -157,15 +150,12 @@ CONFIG_STM32_IPCC=y
>  CONFIG_REMOTEPROC=y
>  CONFIG_STM32_RPROC=y
>  CONFIG_RPMSG_VIRTIO=y
> -CONFIG_RPMSG_TTY=y
>  CONFIG_IIO=y
>  CONFIG_IIO_SW_TRIGGER=y
>  CONFIG_SD_ADC_MODULATOR=y
>  CONFIG_STM32_ADC_CORE=y
>  CONFIG_STM32_ADC=y
> -CONFIG_STM32_ADC_TEMP=y
>  CONFIG_STM32_DFSDM_ADC=y
> -CONFIG_STM32_LPTIMER_CNT=y
>  CONFIG_STM32_DAC=y
>  CONFIG_IIO_HRTIMER_TRIGGER=y
>  CONFIG_IIO_STM32_LPTIMER_TRIGGER=y
> @@ -179,4 +169,6 @@ CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
>  CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_DMA_CMA=y
> +CONFIG_CMA_SIZE_MBYTES=128
>  CONFIG_PRINTK_TIME=y
>
> Are these changes related to the trusted configuration or it's a result of
> resync with newer kernel configuration?
>

The changes are the effect of running linux-update-defconfig after adding
the gadget support. I remember that I looked at some of the variables that
were removed, and found out that they are no longer exist in the kernel.

>
>
diff --git a/board/stmicroelectronics/stm32mp157c-dk2/linux.config
b/board/stmicroelectronics/stm32mp157c-dk2/linux.config
> index 878a0c39f1..c03eb748b4 100644
> --- a/board/stmicroelectronics/stm32mp157c-dk2/linux.config
> +++ b/board/stmicroelectronics/stm32mp157c-dk2/linux.config
> @@ -47,15 +47,10 @@ CONFIG_CAN=y
>  CONFIG_CAN_M_CAN=y
>  CONFIG_DEVTMPFS=y
>  CONFIG_DEVTMPFS_MOUNT=y
> -CONFIG_DMA_CMA=y
> -CONFIG_CMA_SIZE_MBYTES=128
>  CONFIG_SIMPLE_PM_BUS=y
>  CONFIG_MTD=y
>  CONFIG_MTD_CMDLINE_PARTS=y
>  CONFIG_MTD_BLOCK=y
> -CONFIG_MTD_M25P80=y
> -CONFIG_MTD_NAND=y
> -CONFIG_MTD_NAND_STM32_FMC2=y
>  CONFIG_MTD_SPI_NOR=y
>  # CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
>  CONFIG_MTD_UBI=y
> @@ -82,7 +77,6 @@ CONFIG_SERIAL_STM32_CONSOLE=y
>  CONFIG_SERIAL_DEV_BUS=y
>  CONFIG_HW_RANDOM=y
>  CONFIG_I2C_CHARDEV=y
> -CONFIG_I2C_MUX=y
>  CONFIG_I2C_STM32F7=y
>  CONFIG_SPI=y
>  CONFIG_SPI_STM32=y
> @@ -109,8 +103,6 @@ CONFIG_DRM_STM=y
>  CONFIG_DRM_STM_DSI=y
>  CONFIG_DRM_PANEL_ORISETECH_OTM8009A=y
>  CONFIG_DRM_SII902X=y
> -CONFIG_BACKLIGHT_LCD_SUPPORT=y
> -# CONFIG_LCD_CLASS_DEVICE is not set
>  CONFIG_BACKLIGHT_CLASS_DEVICE=y
>  # CONFIG_BACKLIGHT_GENERIC is not set
>  CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
> @@ -129,12 +121,17 @@ CONFIG_USB_DWC2=y
>  CONFIG_USB_CHIPIDEA=y
>  CONFIG_USB_CHIPIDEA_HOST=y
>  CONFIG_USB_ISP1760=y
> +CONFIG_USB_ISP1760_HOST_ROLE=y
>  CONFIG_USB_HSIC_USB3503=y
>  CONFIG_USB_GPIO_VBUS=y
>  CONFIG_USB_ISP1301=y
>  CONFIG_USB_ULPI=y
> +CONFIG_USB_GADGET=y
> +CONFIG_USB_CONFIGFS=m
> +CONFIG_USB_CONFIGFS_ACM=y
> +CONFIG_USB_CONFIGFS_ECM=y
> +CONFIG_USB_CONFIGFS_MASS_STORAGE=y
>  CONFIG_TYPEC=y
> -CONFIG_TYPEC_STUSB=y
>  CONFIG_MMC=y
>  CONFIG_MMC_BLOCK_MINORS=16
>  CONFIG_MMC_ARMMMCI=y
> @@ -157,15 +154,12 @@ CONFIG_STM32_IPCC=y
>  CONFIG_REMOTEPROC=y
>  CONFIG_STM32_RPROC=y
>  CONFIG_RPMSG_VIRTIO=y
> -CONFIG_RPMSG_TTY=y
>  CONFIG_IIO=y
>  CONFIG_IIO_SW_TRIGGER=y
>  CONFIG_SD_ADC_MODULATOR=y
>  CONFIG_STM32_ADC_CORE=y
>  CONFIG_STM32_ADC=y
> -CONFIG_STM32_ADC_TEMP=y
>  CONFIG_STM32_DFSDM_ADC=y
> -CONFIG_STM32_LPTIMER_CNT=y
>  CONFIG_STM32_DAC=y
>  CONFIG_IIO_HRTIMER_TRIGGER=y
>  CONFIG_IIO_STM32_LPTIMER_TRIGGER=y
> @@ -179,4 +173,6 @@ CONFIG_MSDOS_FS=y
>  CONFIG_VFAT_FS=y
>  CONFIG_TMPFS=y
>  CONFIG_TMPFS_POSIX_ACL=y
> +CONFIG_DMA_CMA=y
> +CONFIG_CMA_SIZE_MBYTES=128
>  CONFIG_PRINTK_TIME=y
>
> same here.
>
> diff --git a/configs/stm32mp157a_dk1_defconfig b/configs/stm32mp157a_dk1_defconfig
> index f172539c02..cdbb5a8cdf 100644
> --- a/configs/stm32mp157a_dk1_defconfig
> +++ b/configs/stm32mp157a_dk1_defconfig
> @@ -2,8 +2,7 @@ BR2_arm=y
>  BR2_cortex_a7=y
>  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y
>  BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157a-dk1/overlay/"
> -BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
> -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/common/stm32mp157/genimage.cfg"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp157/post-image.sh"
>  BR2_LINUX_KERNEL=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7.10"
> @@ -16,15 +15,18 @@ BR2_TARGET_ROOTFS_EXT2=y
>  BR2_TARGET_ROOTFS_EXT2_4=y
>  BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
>  # BR2_TARGET_ROOTFS_TAR is not set
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157a-dk1.dtb"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y
>  BR2_TARGET_UBOOT=y
>  BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
>  BR2_TARGET_UBOOT_CUSTOM_VERSION=y
>  BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07"
> -BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_basic"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/stm32mp157a-dk1/uboot-fragment.config"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
> -BR2_TARGET_UBOOT_FORMAT_IMG=y
> -BR2_TARGET_UBOOT_SPL=y
> -BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.stm32"
> +BR2_TARGET_UBOOT_FORMAT_STM32=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157a-dk1"
>  BR2_PACKAGE_HOST_GENIMAGE=y
> diff --git a/configs/stm32mp157c_dk2_defconfig b/configs/stm32mp157c_dk2_defconfig
> index 49cfb0733c..6251491e0f 100644
> --- a/configs/stm32mp157c_dk2_defconfig
> +++ b/configs/stm32mp157c_dk2_defconfig
> @@ -2,8 +2,7 @@ BR2_arm=y
>  BR2_cortex_a7=y
>  BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_5_7=y
>  BR2_ROOTFS_OVERLAY="board/stmicroelectronics/stm32mp157c-dk2/overlay/"
> -BR2_ROOTFS_POST_IMAGE_SCRIPT="support/scripts/genimage.sh"
> -BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/stmicroelectronics/common/stm32mp157/genimage.cfg"
> +BR2_ROOTFS_POST_IMAGE_SCRIPT="board/stmicroelectronics/common/stm32mp157/post-image.sh"
>  BR2_LINUX_KERNEL=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION=y
>  BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.7.10"
> @@ -16,15 +15,18 @@ BR2_TARGET_ROOTFS_EXT2=y
>  BR2_TARGET_ROOTFS_EXT2_4=y
>  BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
>  # BR2_TARGET_ROOTFS_TAR is not set
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE=y
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_PLATFORM="stm32mp1"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_ADDITIONAL_VARIABLES="STM32MP_SDMMC=1 AARCH32_SP=sp_min DTB_FILE_NAME=stm32mp157c-dk2.dtb"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_IMAGES="*.stm32"
> +BR2_TARGET_ARM_TRUSTED_FIRMWARE_NEEDS_DTC=y
>  BR2_TARGET_UBOOT=y
>  BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
>  BR2_TARGET_UBOOT_CUSTOM_VERSION=y
>  BR2_TARGET_UBOOT_CUSTOM_VERSION_VALUE="2020.07"
> -BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_basic"
> +BR2_TARGET_UBOOT_BOARD_DEFCONFIG="stm32mp15_trusted"
>  BR2_TARGET_UBOOT_CONFIG_FRAGMENT_FILES="board/stmicroelectronics/stm32mp157c-dk2/uboot-fragment.config"
>  # BR2_TARGET_UBOOT_FORMAT_BIN is not set
> -BR2_TARGET_UBOOT_FORMAT_IMG=y
> -BR2_TARGET_UBOOT_SPL=y
> -BR2_TARGET_UBOOT_SPL_NAME="spl/u-boot-spl.stm32"
> +BR2_TARGET_UBOOT_FORMAT_STM32=y
>  BR2_TARGET_UBOOT_CUSTOM_MAKEOPTS="DEVICE_TREE=stm32mp157c-dk2"
>  BR2_PACKAGE_HOST_GENIMAGE=y
>
> Best
> Bartek
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20201012/9e5a455b/attachment.html>


More information about the buildroot mailing list