From 6c19d25a736dfd9b885be8d446efc472d7981ae6 Mon Sep 17 00:00:00 2001 From: Christophe Priouzeau Date: Mon, 6 Jun 2022 14:31:10 +0200 Subject: [PATCH] Add stm32mp13 machine support Rename stm32mp1-disco and stm32mp1-eval on stm32mp15-disco and stm32mp15-eval Signed-off-by: Christophe Priouzeau Change-Id: Id28971e6d1fc895e39440b229d9cbe8d5a1af162 --- conf/eula/stm32mp13-disco | 1 + .../include/st-machine-common-stm32mp.inc | 55 ++++----- .../st-machine-extlinux-config-stm32mp.inc | 5 + .../include/st-machine-features-stm32mp.inc | 17 +++ ...machine-flashlayout-extensible-stm32mp.inc | 12 +- .../st-machine-flashlayout-stm32mp.inc | 12 +- conf/machine/stm32mp1.conf | 7 ++ conf/machine/stm32mp13-disco.conf | 79 ++++++++++++ conf/machine/stm32mp15-disco.conf | 10 +- conf/machine/stm32mp15-eval.conf | 21 +++- ...card-config-for-stm32mp13x_evd-board.patch | 115 ++++++++++++++++++ recipes-bsp/alsa/alsa-lib_%.bbappend | 1 + .../linux-firmware/linux-firmware_%.bbappend | 6 + 13 files changed, 292 insertions(+), 49 deletions(-) create mode 120000 conf/eula/stm32mp13-disco create mode 100644 conf/machine/stm32mp13-disco.conf create mode 100644 recipes-bsp/alsa/alsa-lib/0002-conf-add-card-config-for-stm32mp13x_evd-board.patch diff --git a/conf/eula/stm32mp13-disco b/conf/eula/stm32mp13-disco new file mode 120000 index 0000000..ab103d9 --- /dev/null +++ b/conf/eula/stm32mp13-disco @@ -0,0 +1 @@ +ST_EULA_SLA \ No newline at end of file diff --git a/conf/machine/include/st-machine-common-stm32mp.inc b/conf/machine/include/st-machine-common-stm32mp.inc index 956ea81..d47eac9 100644 --- a/conf/machine/include/st-machine-common-stm32mp.inc +++ b/conf/machine/include/st-machine-common-stm32mp.inc @@ -16,7 +16,12 @@ MACHINEOVERRIDES .= ":stm32mpcommon" # ========================================================================= # SOC # ========================================================================= -STM32MP_SOC_NAME = "stm32mp15" +STM32MP_SOC_NAME = "" +STM32MP_SOC_NAME:append:stm32mp15common = " stm32mp15 " +STM32MP_SOC_NAME:append:stm32mp13common = " stm32mp13 " +# Take care of nativesdk override use case +STM32MP_SOC_NAME:append:class-nativesdk = " stm32mp15 " +STM32MP_SOC_NAME:append:class-nativesdk = " stm32mp13 " # ========================================================================= # boot scheme @@ -34,7 +39,7 @@ BOOTDEVICE_LABELS ??= "emmc nand-4-256 nor-sdcard sdcard" # Machine settings # ========================================================================= # Default machine feature -MACHINE_FEATURES = "usbhost usbgadget alsa screen ext2" +MACHINE_FEATURES = "usbhost usbgadget alsa screen ext2 pci" MACHINE_FEATURES:append = " ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)} " MACHINE_FEATURES:append = " tpm2 " @@ -48,7 +53,7 @@ DISTRO_EXTRA_RRECOMMENDS:remove = " ${@bb.utils.contains('COMBINED_FEATURES', 'i MACHINE_FEATURES:append = " ${@bb.utils.contains_any('BOOTDEVICE_LABELS', ['emmc', 'sdcard'], 'autoresize', '', d)} " # Use FIP image for boot loaders -MACHINE_FEATURES += "fip" +MACHINE_FEATURES:append = " fip" # Default serial consoles (TTYs) to enable using getty # Before kernel 4.18, serial console are ttyS3 but after is ttySTM0 @@ -514,19 +519,21 @@ ST_CMD_LINE_DEBUG_TRACE ?= "loglevel=1 quiet" EXTRA_IMAGEDEPENDS += "virtual/bootloader" # Define default U-Boot config -UBOOT_CONFIG += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'trusted_stm32mp15', '', d)}" -# The 'basic' config is only available for stm32mp1 machines -UBOOT_CONFIG:append:stm32mp1common = " basic_stm32mp15 " +UBOOT_CONFIG = "" + +# STM32mp15 +UBOOT_CONFIG:append:stm32mp15common = " ${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'trusted_stm32mp15', '', d)} " + +# STM32mp13 +UBOOT_CONFIG:append:stm32mp13common = " ${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', 'trusted_stm32mp13', '', d)} " # Select u-boot binary that needs specific devicetree suffix (from UBOOT_DEVICETREE) -# For legacy mode keep the 'u-boot.stm32' but for FIP feature we need both # 'u-boot-nodtb.bin' and 'u-boot.dtb' : prefer 'u-boot.dtb' binary as 'u-boot-nodtb.bin' # doesn't need any devicetree suffix (specific case for 'u-boot-nodtb' binary # implemented on u-boot-stm32mp recipe) -BINARY_NAME = "${@bb.utils.contains('MACHINE_FEATURES', 'fip', 'u-boot.dtb', 'u-boot.stm32', d)}" # Define u-boot defconfig and binary to use for each UBOOT_CONFIG -UBOOT_CONFIG[basic_stm32mp15] = "stm32mp15_basic_defconfig,,u-boot.img" -UBOOT_CONFIG[trusted_stm32mp15] = "stm32mp15_trusted_defconfig,,${BINARY_NAME}" +UBOOT_CONFIG[trusted_stm32mp15] = "stm32mp15_defconfig,,u-boot.dtb" +UBOOT_CONFIG[trusted_stm32mp13] = "stm32mp13_defconfig,,u-boot.dtb" # List of U-Boot device tree to use UBOOT_DEVICETREE = "${STM32MP_DEVICETREE}" @@ -539,21 +546,13 @@ UBOOT_SPLASH_LANDSCAPE_IMAGE = "splash_landscape" UBOOT_MTDPART_CHECK_ENABLE ?= "${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trusted', d.getVarFlag('UBOOT_CONFIG', 'trusted_stm32mp15').split(',')[0], '', d)}" # Set U-Boot MTD partition configurations UBOOT_MTDPART_NAND_BOOT ?= "${@','.join(['%sk(%s)' % (align_size(d, 'NAND', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'nand-4-256').split()])}" -UBOOT_MTDPART_NAND_TEE ?= "${@','.join(['%sk(%s)' % (align_size(d, 'NAND', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'nand-4-256').split()])}" UBOOT_MTDPART_NOR_BOOT ?= "${@','.join(['%sk(%s)' % (align_size(d, 'NOR', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'nor-sdcard').split()])}" -UBOOT_MTDPART_NOR_TEE ?= "${@','.join(['%sk(%s)' % (align_size(d, 'NOR', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'nor-sdcard').split()])}" UBOOT_MTDPART_SPINAND_BOOT ?= "${@','.join(['%sk(%s)' % (align_size(d, 'SPINAND', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'spinand-2-128').split()])}" -UBOOT_MTDPART_SPINAND_TEE ?= "${@','.join(['%sk(%s)' % (align_size(d, 'SPINAND', l.split(',')[2], l.split(',')[4]), l.split(',')[1]) for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'spinand-2-128').split()])}" - -UBOOT_MTDPART_4LEGACY += "${@'CONFIG_MTDPARTS_NAND0_TEE=${UBOOT_MTDPART_NAND_TEE}' if bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', True, False, d) and bb.utils.contains('BOOTSCHEME_LABELS', 'optee', True, False, d) else ''}" -UBOOT_MTDPART_4LEGACY += "${@'CONFIG_MTDPARTS_NOR0_TEE=${UBOOT_MTDPART_NOR_TEE}' if bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', True, False, d) and bb.utils.contains('BOOTSCHEME_LABELS', 'optee', True, False, d) else ''}" -UBOOT_MTDPART_4LEGACY += "${@'CONFIG_MTDPARTS_SPINAND0_TEE=${UBOOT_MTDPART_SPINAND_TEE}' if bb.utils.contains('BOOTDEVICE_LABELS', 'spinand-2-128', True, False, d) and bb.utils.contains('BOOTSCHEME_LABELS', 'optee', True, False, d) else ''}" UBOOT_MTDPART_CHECK ?= "\ ${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'CONFIG_MTDPARTS_NAND0_BOOT=${UBOOT_MTDPART_NAND_BOOT}', '', d)} \ ${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', 'CONFIG_MTDPARTS_NOR0_BOOT=${UBOOT_MTDPART_NOR_BOOT}', '', d)} \ ${@bb.utils.contains('BOOTDEVICE_LABELS', 'spinand-2-128', 'CONFIG_MTDPARTS_SPINAND0_BOOT=${UBOOT_MTDPART_SPINAND_BOOT}', '', d)} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', '${UBOOT_MTDPART_4LEGACY}', d)} \ " PREFERRED_PROVIDER_u-boot-fw-utils:stm32mp1common = "libubootenv" @@ -573,16 +572,14 @@ EXTRA_IMAGEDEPENDS += "${@bb.utils.contains_any('BOOTSCHEME_LABELS', 'optee trus TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'optee', '', d)}" TF_A_CONFIG += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'trusted', '', d)}" # Manage specific config settings -TF_A_CONFIG_4LEGACY += "serialboot" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', 'emmc', '', d)}" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'nand', '', d)}" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', 'nor', '', d)}" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', 'sdcard', '', d)}" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'spinand-2-128', 'spinand', '', d)}" -TF_A_CONFIG_4FIP += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor', 'nor', '', d)}" -TF_A_CONFIG_4FIP += "uart" -TF_A_CONFIG_4FIP += "usb" -TF_A_CONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'fip', '${TF_A_CONFIG_4FIP}', '${TF_A_CONFIG_4LEGACY}', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'emmc', 'emmc', '', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nand-4-256', 'nand', '', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor-sdcard', 'nor', '', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'sdcard', 'sdcard', '', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'spinand-2-128', 'spinand', '', d)}" +TF_A_CONFIG += "${@bb.utils.contains('BOOTDEVICE_LABELS', 'nor', 'nor', '', d)}" +TF_A_CONFIG += "uart" +TF_A_CONFIG += "usb" # Append SSP config to TF_A_CONFIG TF_A_SSP_ENABLE ?= "0" @@ -617,7 +614,7 @@ FIP_CONFIG[trusted] ?= "tfa,${FIP_DEVICETREE_TRUSTED}" # List of device tree to use for fip binary creation FIP_DEVICETREE_OPTEE ?= "${STM32MP_DEVICETREE}" -FIP_DEVICETREE_TRUSTED ?= "${STM32MP_DEVICETREE}" +FIP_DEVICETREE_TRUSTED ?= "${@' '.join(d for d in '${STM32MP_DEVICETREE}'.split() if 'stm32mp15' in d)}" # Define fiptool wrapper name FIPTOOL_WRAPPER ?= "fiptool-stm32mp" diff --git a/conf/machine/include/st-machine-extlinux-config-stm32mp.inc b/conf/machine/include/st-machine-extlinux-config-stm32mp.inc index 420bc48..74a69dd 100644 --- a/conf/machine/include/st-machine-extlinux-config-stm32mp.inc +++ b/conf/machine/include/st-machine-extlinux-config-stm32mp.inc @@ -14,6 +14,7 @@ UBOOT_EXTLINUX_INITRD ?= "${@bb.utils.contains('COMBINED_FEATURES', 'initrd', '/ # Define default SPLASH SCREEN UBOOT_EXTLINUX_SPLASH ?= "${UBOOT_SPLASH_LANDSCAPE_IMAGE}" UBOOT_EXTLINUX_SPLASH:stm32mp15 ?= "${UBOOT_SPLASH_PORTRAIT_IMAGE}" +UBOOT_EXTLINUX_SPLASH:stm32mp13 ?= "${UBOOT_SPLASH_LANDSCAPE_IMAGE}" UBOOT_EXTLINUX_KERNEL_ARGS ?= "rootwait rw" UBOOT_EXTLINUX_KERNEL_ARGS:append = " ${@bb.utils.contains('ST_DEBUG_TRACE', '1', '', '${ST_CMD_LINE_DEBUG_TRACE}', d)} " @@ -84,6 +85,8 @@ UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157c-ev1] += "stm32mp157c-ev1-m4-exam UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-dk2] += "stm32mp157f-dk2-m4-examples" UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp157f-ev1] += "stm32mp157f-ev1-m4-examples" +UBOOT_EXTLINUX_TARGETS_EXTRA_CONFIG[stm32mp135f-dk] += "stm32mp135f-dk-a7-examples" + # ----------------------------------------------------------------------------- # Configure A7 examples labels # ----------------------------------------------------------------------------- @@ -93,6 +96,8 @@ UBOOT_EXTLINUX_FDT:stm32mp157c-ev1-a7-examples = "/stm32mp157c-ev1-a7-examples.d UBOOT_EXTLINUX_FDT:stm32mp157f-dk2-a7-examples = "/stm32mp157f-dk2-a7-examples.dtb" UBOOT_EXTLINUX_FDT:stm32mp157f-ev1-a7-examples = "/stm32mp157f-ev1-a7-examples.dtb" +UBOOT_EXTLINUX_FDT:stm32mp135f-dk-a7-examples = "/stm32mp135f-dk-a7-examples.dtb" + # ----------------------------------------------------------------------------- # Configure M4 examples labels # ----------------------------------------------------------------------------- diff --git a/conf/machine/include/st-machine-features-stm32mp.inc b/conf/machine/include/st-machine-features-stm32mp.inc index bd451dd..6eb4a0e 100644 --- a/conf/machine/include/st-machine-features-stm32mp.inc +++ b/conf/machine/include/st-machine-features-stm32mp.inc @@ -9,6 +9,7 @@ include conf/machine/include/gpu_vivante.inc # please add "gpu" to MACHINE_FEATURES in machine conf file GPU_LIST ?= "\ gcnano-driver-stm32mp \ + ${GPU_USERLAND_LIBRARIES_INSTALL} \ " GPU_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'gpu', '${GPU_LIST}', '', d)} " @@ -48,12 +49,26 @@ OPTEE_BINARY ?= "\ " OPTEE_BINARY_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'optee', '${OPTEE_BINARY}', '', d)} " +# ========================================================================= +# pci +# ========================================================================= +PCI_LIST ?= "" +PCI_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'pci', '${PCI_LIST}', '', d)} " + # ========================================================================= # wifi # ========================================================================= WIFI_LIST ?= "" WIFI_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'wifi', '${WIFI_LIST}', '', d)} " +# ========================================================================= +# g0 +# ========================================================================= +G0_LIST ?= "\ + stm32mp-g0 \ + " +G0_IMAGE_INSTALL = "${@bb.utils.contains('MACHINE_FEATURES', 'usbg0', '${G0_LIST}', '', d)} " + # ========================================================================= # Image appends # ========================================================================= @@ -67,5 +82,7 @@ MACHINE_EXTRA_RRECOMMENDS:append = " \ ${BLUETOOTH_IMAGE_INSTALL} \ ${M4COPRO_IMAGE_INSTALL} \ ${OPTEE_IMAGE_INSTALL} \ + ${PCI_IMAGE_INSTALL} \ ${WIFI_IMAGE_INSTALL} \ + ${G0_IMAGE_INSTALL} \ " diff --git a/conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc b/conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc index 483bb5d..2e3dd6b 100644 --- a/conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc +++ b/conf/machine/include/st-machine-flashlayout-extensible-stm32mp.inc @@ -2,8 +2,8 @@ # Add specific scheme to provide flashlayout that will make rootfs extensible to # remaining device free space -# NOTE: this scheme is ONLY compatible with disco board and trusted bootscheme -FLASHLAYOUT_BOOTSCHEME_LABELS += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'trusted', 'extensible', '', d)}" +# NOTE: this scheme is ONLY compatible with disco board and optee bootscheme +FLASHLAYOUT_BOOTSCHEME_LABELS += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'extensible', '', d)}" # ----------------------------------------------------------------------------- # Define config labels @@ -17,7 +17,7 @@ FLASHLAYOUT_TYPE_LABELS:extensible = "${@d.getVar('STM32MP_DT_FILES_DK') or 'non # ----------------------------------------------------------------------------- # Define partitions to use -# NOTE: extensible scheme is ONLY compatible with sdcard and trusted bootscheme +# NOTE: extensible scheme is ONLY compatible with sdcard and optee bootscheme # So we only set partition labels for this particular configuration # ----------------------------------------------------------------------------- FLASHLAYOUT_PARTITION_LABELS:extensible = "\ @@ -29,9 +29,9 @@ FLASHLAYOUT_PARTITION_LABELS:extensible:remove = "userfs" # ----------------------------------------------------------------------------- # The 'extensible' bootscheme is a trick to generate flashlayout files without -# userfs partition for trusted bootscheme ONLY. So rootfs partition will be +# userfs partition for optee bootscheme ONLY. So rootfs partition will be # extended up to the end of memory device, leaving plenty of space for user to # install more applications via 'apt-get' -# Make sure to use 'trusted' bootscheme for binary naming instead of 'extensible' +# Make sure to use 'optee' bootscheme for binary naming instead of 'extensible' # each time it is required -FLASHLAYOUT_PARTITION_REPLACE_PATTERNS:extensible:prepend = "extensible;trusted " +FLASHLAYOUT_PARTITION_REPLACE_PATTERNS:extensible:prepend = "extensible;optee " diff --git a/conf/machine/include/st-machine-flashlayout-stm32mp.inc b/conf/machine/include/st-machine-flashlayout-stm32mp.inc index fce8039..0cba722 100644 --- a/conf/machine/include/st-machine-flashlayout-stm32mp.inc +++ b/conf/machine/include/st-machine-flashlayout-stm32mp.inc @@ -98,19 +98,25 @@ FLASHLAYOUT_CONFIG_LABELS:remove = "${@bb.utils.contains('ST_EXAMPLE_IMAGE', '1' # EMMC # Set flashlayout file generation to eval board (mother and daughter) only FLASHLAYOUT_TYPE_LABELS:emmc = "${DEVICE_BOARD_ENABLE:EMMC}" +FLASHLAYOUT_TYPE_LABELS:trusted:emmc = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:EMMC}'.split() if 'stm32mp15' in d)}" # NAND # Set flashlayout file generation to eval board only FLASHLAYOUT_TYPE_LABELS:nand-4-256 = "${DEVICE_BOARD_ENABLE:NAND}" +FLASHLAYOUT_TYPE_LABELS:trusted:nand-4-256 = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:NAND}'.split() if 'stm32mp15' in d)}" # NOR # Set flashlayout file generation to eval board only FLASHLAYOUT_TYPE_LABELS:nor = "${DEVICE_BOARD_ENABLE:NOR}" +FLASHLAYOUT_TYPE_LABELS:trusted:nor = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:NOR}'.split() if 'stm32mp15' in d)}" FLASHLAYOUT_TYPE_LABELS:nor-sdcard = "${DEVICE_BOARD_ENABLE:NOR}" +FLASHLAYOUT_TYPE_LABELS:trusted:nor-sdcard = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:NOR}'.split() if 'stm32mp15' in d)}" # SDCARD # Set flashlayout file generation for all boards FLASHLAYOUT_TYPE_LABELS:sdcard = "${DEVICE_BOARD_ENABLE:SDCARD}" +FLASHLAYOUT_TYPE_LABELS:trusted:sdcard = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:SDCARD}'.split() if 'stm32mp15' in d)}" # SPINAND # Set flashlayout file generation for all boards FLASHLAYOUT_TYPE_LABELS:spinand-2-128 = "${DEVICE_BOARD_ENABLE:SPINAND}" +FLASHLAYOUT_TYPE_LABELS:trusted:spinand-2-128 = "${@' '.join(d for d in '${DEVICE_BOARD_ENABLE:SPINAND}'.split() if 'stm32mp15' in d)}" # ----------------------------------------------------------------------------- # Define partitions to consider for flashlayout file generation @@ -133,38 +139,32 @@ FLASHLAYOUT_PARTITION_IMAGES ?= "" FLASHLAYOUT_PARTITION_LABELS:optee:emmc = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'emmc').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'emmc').split()]), d)} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'emmc').split()])} \ " FLASHLAYOUT_PARTITION_LABELS:optee:nand-4-256 = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'nand-4-256').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'nand-4-256').split()]), d)} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'nand-4-256').split()])} \ " FLASHLAYOUT_PARTITION_LABELS:optee:nor = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'nor').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'nor').split()]), d)} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'nor').split()])} \ " FLASHLAYOUT_PARTITION_LABELS:optee:nor-sdcard = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'nor-sdcard').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'nor-sdcard').split()]), d)} \ empty \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'nor-sdcard').split()])} \ " FLASHLAYOUT_PARTITION_LABELS:optee:sdcard = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'sdcard').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'sdcard').split()]), d)} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'sdcard').split()])} \ " FLASHLAYOUT_PARTITION_LABELS:optee:spinand-2-128 = "\ ${FLASHLAYOUT_PROGRAMMER_SECTIONS} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_BOOTLOADER_CONFIG', 'spinand-2-128').split()])} \ - ${@bb.utils.contains('MACHINE_FEATURES', 'fip', '', ' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_OPTEE_CONFIG', 'spinand-2-128').split()]), d)} \ ${@' '.join(['%s' % l.split(',')[1] for l in d.getVarFlag('PARTITIONS_CONFIG', 'spinand-2-128').split()])} \ " diff --git a/conf/machine/stm32mp1.conf b/conf/machine/stm32mp1.conf index 8c4d659..181237a 100644 --- a/conf/machine/stm32mp1.conf +++ b/conf/machine/stm32mp1.conf @@ -9,6 +9,7 @@ include conf/machine/include/st-machine-providers-stm32mp.inc # Define specific familly common machine name MACHINEOVERRIDES .= ":stm32mp1common" MACHINEOVERRIDES .= ":stm32mp15common" +MACHINEOVERRIDES .= ":stm32mp13common" # ========================================================================= # Chip architecture @@ -40,6 +41,8 @@ STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2" STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1" STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1" +STM32MP_DT_FILES_DK += "stm32mp135d-dk stm32mp135f-dk" + # ========================================================================= # Machine features # ========================================================================= @@ -49,6 +52,7 @@ MACHINE_FEATURES += "bluetooth" MACHINE_FEATURES += "wifi" MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == '1' else ''}" MACHINE_FEATURES += "m4copro" +MACHINE_FEATURES += "usbg0" # Bluetooth BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343" @@ -67,6 +71,9 @@ LINUX_A7_EXAMPLES_DT += "stm32mp157c-ev1-a7-examples" LINUX_A7_EXAMPLES_DT += "stm32mp157f-dk2-a7-examples" LINUX_A7_EXAMPLES_DT += "stm32mp157f-ev1-a7-examples" +LINUX_A7_EXAMPLES_DT += "stm32mp135f-dk-a7-examples" +LINUX_A7_EXAMPLES_DT += "stm32mp135d-dk-a7-examples" + # ========================================================================= # M4 copro # ========================================================================= diff --git a/conf/machine/stm32mp13-disco.conf b/conf/machine/stm32mp13-disco.conf new file mode 100644 index 0000000..b6b48a2 --- /dev/null +++ b/conf/machine/stm32mp13-disco.conf @@ -0,0 +1,79 @@ +#@TYPE: Machine +#@NAME: stm32mp1-disco +#@DESCRIPTION: [EXAMPLE] STM32MP135F-DK board ONLY with Optee boot and SDcard support +#@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python + +include conf/machine/include/st-machine-common-stm32mp.inc +include conf/machine/include/st-machine-providers-stm32mp.inc + +# Define specific familly common machine name +MACHINEOVERRIDES .= ":stm32mp1common:stm32mp13common" + +# ========================================================================= +# Chip architecture +# ========================================================================= +DEFAULTTUNE = "cortexa7thf-neon-vfpv4" +include conf/machine/include/arm/armv7a/tune-cortexa7.inc + +# ========================================================================= +# boot scheme +# ========================================================================= +BOOTSCHEME_LABELS += "optee" + +# ========================================================================= +# boot device +# ========================================================================= +# Define the boot device supported +#BOOTDEVICE_LABELS += "emmc" +#BOOTDEVICE_LABELS += "nand-4-256" +#BOOTDEVICE_LABELS += "nor-sdcard" +BOOTDEVICE_LABELS += "sdcard" + +# ========================================================================= +# Machine settings +# ========================================================================= +# Define list of devicetree per board +STM32MP_DT_FILES_DK += "stm32mp135d-dk" +STM32MP_DT_FILES_DK += "stm32mp135f-dk" + +# ========================================================================= +# Machine features +# ========================================================================= +MACHINE_FEATURES += "splashscreen" +MACHINE_FEATURES += "watchdog" +MACHINE_FEATURES += "bluetooth" +MACHINE_FEATURES += "wifi" +MACHINE_FEATURES += "nosmp" +MACHINE_FEATURES += "usbg0" + +# Bluetooth +BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343" +# Wifi +WIFI_LIST += "linux-firmware-bcm43430" + +# ========================================================================= +# Kernel +# ========================================================================= + +# Define the devicetree for Linux A7 examples +LINUX_A7_EXAMPLES_DT += "stm32mp135f-dk-a7-examples" +LINUX_A7_EXAMPLES_DT += "stm32mp135d-dk-a7-examples" + + +# ========================================================================= +# WIC for sdcard raw image +# ========================================================================= +WIC_CREATE_EXTRA_ARGS = "--no-fstab-update" +WKS_FILE_DEPENDS ?= " \ + virtual/bootloader \ + virtual/trusted-firmware-a \ + ${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', 'virtual/optee-os', '', d)} \ + st-image-bootfs \ + ${@bb.utils.contains('ST_VENDORFS','1','st-image-vendorfs', '', d)} \ + st-image-userfs \ +" +OPTEE_WIC_FILE = "${@bb.utils.contains('ST_VENDORFS','1','sdcard-stm32mp135f-dk-optee-vendorfs-1GB.wks.in','sdcard-stm32mp135f-dk-optee-1GB.wks.in',d)}" + +# for generated a WIC file, please uncomment the 2 following lines or add them to local.conf +#WKS_IMAGE_FSTYPES += "wic wic.bz2 wic.bmap" +#WKS_FILE += "${OPTEE_WIC_FILE}" diff --git a/conf/machine/stm32mp15-disco.conf b/conf/machine/stm32mp15-disco.conf index 2845612..f55186b 100644 --- a/conf/machine/stm32mp15-disco.conf +++ b/conf/machine/stm32mp15-disco.conf @@ -1,6 +1,6 @@ #@TYPE: Machine #@NAME: stm32mp15-disco -#@DESCRIPTION: [EXAMPLE] STM32MP157C-DK2 board ONLY with Trusted boot and SDcard support +#@DESCRIPTION: [EXAMPLE] STM32MP157C-DK2 board ONLY with Optee boot and SDcard support #@NEEDED_BSPLAYERS: layers/meta-openembedded/meta-oe layers/meta-openembedded/meta-python include conf/machine/include/st-machine-common-stm32mp.inc @@ -18,8 +18,8 @@ include conf/machine/include/arm/armv7a/tune-cortexa7.inc # ========================================================================= # boot scheme # ========================================================================= -BOOTSCHEME_LABELS += "trusted" -#BOOTSCHEME_LABELS += "optee" +#BOOTSCHEME_LABELS += "trusted" +BOOTSCHEME_LABELS += "optee" # ========================================================================= # boot device @@ -36,7 +36,7 @@ BOOTDEVICE_LABELS += "sdcard" # Define list of devicetree per board #STM32MP_DT_FILES_DK += "stm32mp157a-dk1 stm32mp157d-dk1" #STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2" -STM32MP_DT_FILES_DK += "stm32mp157c-dk2" +STM32MP_DT_FILES_DK += "stm32mp157f-dk2" #STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1" #STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1" @@ -102,4 +102,4 @@ OPTEE_WIC_FILE = "${@bb.utils.contains('ST_VENDORFS','1','sdcard-stm32mp157c-dk2 # for generated a WIC file, please uncomment the 2 following lines or add them to local.conf #WKS_IMAGE_FSTYPES += "wic wic.bz2 wic.bmap" -#WKS_FILE += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', '${OPTEE_WIC_FILE}', '${TRUSTED_WIC_FILE}', d)}" \ No newline at end of file +#WKS_FILE += "${@bb.utils.contains('BOOTSCHEME_LABELS', 'optee', '${OPTEE_WIC_FILE}', '${TRUSTED_WIC_FILE}', d)}" diff --git a/conf/machine/stm32mp15-eval.conf b/conf/machine/stm32mp15-eval.conf index d15465c..1b3e441 100644 --- a/conf/machine/stm32mp15-eval.conf +++ b/conf/machine/stm32mp15-eval.conf @@ -38,7 +38,7 @@ BOOTDEVICE_LABELS += "sdcard" #STM32MP_DT_FILES_DK += "stm32mp157c-dk2 stm32mp157f-dk2" #STM32MP_DT_FILES_ED += "stm32mp157c-ed1 stm32mp157f-ed1" #STM32MP_DT_FILES_EV += "stm32mp157a-ev1 stm32mp157c-ev1 stm32mp157d-ev1 stm32mp157f-ev1" -STM32MP_DT_FILES_EV += "stm32mp157c-ev1" +STM32MP_DT_FILES_EV += "stm32mp157f-ev1" # ========================================================================= # Machine features @@ -51,7 +51,6 @@ MACHINE_FEATURES += "${@'gpu' if d.getVar('ACCEPT_EULA_'+d.getVar('MACHINE')) == MACHINE_FEATURES += "m4copro" MACHINE_FEATURES += "fit" -MACHINE_FEATURES:remove = "fip" # Bluetooth #BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343" @@ -104,4 +103,20 @@ TRUSTED_WIC_FILE = "${@bb.utils.contains('ST_VENDORFS','1','sdcard-stm32mp157c-e # for generated a WIC file, please uncomment the 2 following lines or add them to local.conf #WKS_IMAGE_FSTYPES += "wic wic.bz2 wic.bmap" -#WKS_FILE += "${TRUSTED_WIC_FILE}" \ No newline at end of file +#WKS_FILE += "${TRUSTED_WIC_FILE}" + +# --------------------------------- +# Usage of FIT Image signed +# --------------------------------- +# Need to have MACHINE_FEATURES += "fit" +# Need to uncomment the follwing variable +# NOTE: you can specify another directlry to keep same key at each new compilation (UBOOT_SIGN_KEYDIR) + +# keys name in keydir (eg. "ubootfit.crt", "ubootfit.key") +#UBOOT_SIGN_KEYNAME = "ubootfit" +#UBOOT_MKIMAGE_DTCOPTS = "-I dts -O dtb -p 2000" +#UBOOT_SIGN_ENABLE = "1" +#UBOOT_SIGN_KEYDIR = "${DEPLOY_DIR_IMAGE}" + +#FIT_GENERATE_KEYS = "1" + diff --git a/recipes-bsp/alsa/alsa-lib/0002-conf-add-card-config-for-stm32mp13x_evd-board.patch b/recipes-bsp/alsa/alsa-lib/0002-conf-add-card-config-for-stm32mp13x_evd-board.patch new file mode 100644 index 0000000..75cc9f3 --- /dev/null +++ b/recipes-bsp/alsa/alsa-lib/0002-conf-add-card-config-for-stm32mp13x_evd-board.patch @@ -0,0 +1,115 @@ +From a4ddabdfdf684f39f7cd3f4d7b29be5f12c8ed5d Mon Sep 17 00:00:00 2001 +From: Christophe Priouzeau +Date: Fri, 7 Jan 2022 09:24:37 +0100 +Subject: [PATCH 2/2] conf: add card config for stm32mp13x_evd board + +Add card configuration file for STM32MP13x-EVD board. + +Signed-off-by: Olivier Moysan +--- + src/conf/cards/Makefile.am | 3 +- + src/conf/cards/STM32MP13EV1.conf | 65 ++++++++++++++++++++++++++++++++ + src/conf/cards/aliases.conf | 1 + + 3 files changed, 68 insertions(+), 1 deletion(-) + create mode 100644 src/conf/cards/STM32MP13EV1.conf + +diff --git a/src/conf/cards/Makefile.am b/src/conf/cards/Makefile.am +index c29d831..2ed47ad 100644 +--- a/src/conf/cards/Makefile.am ++++ b/src/conf/cards/Makefile.am +@@ -60,7 +60,8 @@ cfg_files = aliases.conf \ + VXPocket.conf \ + VXPocket440.conf \ + STM32MP15EV.conf \ +- STM32MP15DK.conf ++ STM32MP15DK.conf \ ++ STM32MP13EV1.conf + + if BUILD_ALISP + cfg_files += aliases.alisp +diff --git a/src/conf/cards/STM32MP13EV1.conf b/src/conf/cards/STM32MP13EV1.conf +new file mode 100644 +index 0000000..332bdbc +--- /dev/null ++++ b/src/conf/cards/STM32MP13EV1.conf +@@ -0,0 +1,65 @@ ++ ++ ++STM32MP13EV1.pcm.front.0 { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type asym ++ playback.pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++} ++ ++ ++ ++STM32MP13EV1.pcm.default { ++ @args [ CARD ] ++ @args.CARD { type string } ++ type asym ++ playback.pcm { ++ type hw ++ card $CARD ++ device 0 ++ } ++ capture.pcm { ++ type hw ++ card $CARD ++ device 1 ++ } ++} ++ ++ ++ ++STM32MP13EV1.pcm.iec958.0 { ++ @args [ CARD AES0 AES1 AES2 AES3 ] ++ @args.CARD { type string } ++ @args.AES0 { type integer } ++ @args.AES1 { type integer } ++ @args.AES2 { type integer } ++ @args.AES3 { type integer } ++ type asym ++ playback.pcm { ++ type iec958 ++ slave.pcm { ++ type hw ++ card $CARD ++ device 2 ++ } ++ type hooks ++ hooks.0 { ++ type ctl_elems ++ hook_args [ ++ { ++ interface PCM ++ name "IEC958 Playback Default" ++ device 2 ++ lock true ++ preserve true ++ value [ $AES0 $AES1 $AES2 $AES3 ] ++ } ++ ] ++ } ++ } ++} ++ +diff --git a/src/conf/cards/aliases.conf b/src/conf/cards/aliases.conf +index b282549..d1897c9 100644 +--- a/src/conf/cards/aliases.conf ++++ b/src/conf/cards/aliases.conf +@@ -59,6 +59,7 @@ pistachio cards.pistachio-card + VC4-HDMI cards.vc4-hdmi + STM32MP15-EV cards.STM32MP15EV + STM32MP15-DK cards.STM32MP15DK ++STM32MP13-EV1 cards.STM32MP13EV1 + + + +-- +2.25.1 + diff --git a/recipes-bsp/alsa/alsa-lib_%.bbappend b/recipes-bsp/alsa/alsa-lib_%.bbappend index 3c20692..05a2e1d 100644 --- a/recipes-bsp/alsa/alsa-lib_%.bbappend +++ b/recipes-bsp/alsa/alsa-lib_%.bbappend @@ -1,4 +1,5 @@ FILESEXTRAPATHS:prepend:stm32mpcommon := "${THISDIR}/${PN}:" SRC_URI:append:stm32mpcommon = " \ file://0001-conf-add-card-configs-for-stm32mp15x-boards.patch \ + file://0002-conf-add-card-config-for-stm32mp13x_evd-board.patch \ " diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend index da474c4..1e08c8f 100644 --- a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend +++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend @@ -10,19 +10,25 @@ SRCREV_FORMAT = "linux-firmware-murata" do_install:append:stm32mpcommon() { # Install calibration file install -m 0644 ${WORKDIR}/nvram-murata/cyfmac43430-sdio.1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt + # Install calibration file (stm32mp15) install -m 0644 ${WORKDIR}/nvram-murata/cyfmac43430-sdio.1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp157c-dk2.txt install -m 0644 ${WORKDIR}/nvram-murata/cyfmac43430-sdio.1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp157f-dk2.txt + # Install calibration file (stm32mp13) + install -m 0644 ${WORKDIR}/nvram-murata/cyfmac43430-sdio.1DX.txt ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp135f-dk.txt #take newest murata firmware install -m 0644 ${WORKDIR}/murata/cyfmac43430-sdio.bin ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin install -m 0644 ${WORKDIR}/murata/cyfmac43430-sdio.1DX.clm_blob ${D}${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.clm_blob } + FILES:${PN}-bcm43430:append:stm32mpcommon = " \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.txt \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp157c-dk2.txt \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp157f-dk2.txt \ + ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.st,stm32mp135f-dk.txt \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.clm_blob \ ${nonarch_base_libdir}/firmware/brcm/brcmfmac43430-sdio.bin \ " + RDEPENDS:${PN}-bcm43430:remove:stm32mpcommon = " ${PN}-cypress-license "