From patchwork Wed Apr 29 14:18:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dario Binacchi X-Patchwork-Id: 4588 Return-Path: X-Original-To: linux-amarula@patchwork.amarulasolutions.com Delivered-To: linux-amarula@patchwork.amarulasolutions.com Received: from mail-wm1-f70.google.com (mail-wm1-f70.google.com [209.85.128.70]) by ganimede.amarulasolutions.com (Postfix) with ESMTPS id 8A276432AC for ; Wed, 29 Apr 2026 16:19:21 +0200 (CEST) Received: by mail-wm1-f70.google.com with SMTP id 5b1f17b1804b1-488dcaf2f2fsf114763405e9.0 for ; Wed, 29 Apr 2026 07:19:21 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1777472361; cv=pass; d=google.com; s=arc-20240605; b=Ly93tWwhclYwQ+9DMSrJnU4gR08WnQAaAdJOEcio11bO2Odav28mDKMPwdS8WfRLnw 9oeyFlbXxSyzVuxRj6PQp7i8jT0Olh00umYp54PDY9OhvICEN+NQYQHxnIvMNm8TtDJQ GnRnQyUwS4n6lv33ErdkIryisFx7Kzw9x0y6cInEtMNIvPpta88d4MCtT3gH388DDOxT phQcvpFw+t5cd/9z07x59sVupV3CoIFbhJTT7atQnZaZMPzjttc9E/RQN7UA+lPQXIOO K682IjsnpUvnuVkA5x4Fx+MxZAqU5UrpFbMih6a5uEdso7yXuduCujBsb2oEmFWoW8X9 F+9Q== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=DPd6/6R7N2Xn0Oc/WUhjPODWSU+m8bWwdFfWsqYdhxo=; fh=wzFDviRZYhE1gPfRvSfNj0NAcsMvgLc14tJujIOdCA4=; b=MDZphoorbu4jxm7RN01jK8kOr6oiTx1OnTNmu2npmrImC7lDw+m3qoNfPN+iH53Wdb frFYOItsGHDW9sehqgDWrhKteBkPY5F6oFMjDnJnZYMdWyYBP8WKQjJEwEWitD8E8vLO 7Vt9559iihszypLdGRIdkYMLrj+x3fPtp0Sb4h1qHWJmb4sOwuCmmBN5JbrSnQ4lDOJB fuCcL8nqpeBkrLtvPPzA1plwiQmugPZAwr0IDmCK7HRqn5M4/KWoF/BYl6KaCmqFmREv 1jGF9TPmUzznpykb2WJj7cNSQo8pAdCtj0jJHSLypXFRkrGeElj5y+KTNDc7vhkIPFFe moFw==; darn=patchwork.amarulasolutions.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pSJU5Bus; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amarulasolutions.com; s=google; t=1777472361; x=1778077161; darn=patchwork.amarulasolutions.com; h=list-unsubscribe:list-archive:list-help:list-post:list-id :mailing-list:precedence:x-original-authentication-results :x-original-sender:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=DPd6/6R7N2Xn0Oc/WUhjPODWSU+m8bWwdFfWsqYdhxo=; b=osOQ5cAiTrxGYKEmUPHjCOEMo/USTDtbdPi2GoCuGecJhDeHZXrxVin6Ekv5Lr4ael EB5xJmGaLn7nGZs2+TvlwBnRV7vX+XoZlO6nH7MZy+nAxa72EoSMsBR2SL8Kw6se5EzZ dHq+vJS0tgddRu3v9HvWukuAtjDV0MIcilxSs= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777472361; x=1778077161; h=list-unsubscribe:list-archive:list-help:list-post :x-spam-checked-in-group:list-id:mailing-list:precedence :x-original-authentication-results:x-original-sender:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from:x-gm-gg :x-beenthere:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=DPd6/6R7N2Xn0Oc/WUhjPODWSU+m8bWwdFfWsqYdhxo=; b=O37k3cRN5Ck4ZjwqiMuymiSh0O715+M9UN1ijBus48VkXu3UeXQBxgOvjcS3XtBhhN j1I/o/KhHwwoK9ZF/rxUMZPwfK4WHOYhnEkKt4W12K4TCUEGMmL+9epO0JMzAM8cfBw4 C6heZX11vhLofpOUqtVfWkk3L1Ko5noT+TPFzSdRjq9JpJYwJf9ofvczqjFlSvQHeqhz X4T9X7oxF+7rPQLouZzsoprpofp9lDTMhpa76JT6+xQRmbz+r0leoIvJz9/l+ru0KKc7 tq6K7yw9iNkIOb3dPaWLPB2L9wA6r2wsk1tQ4hC1j8OchTQtOCxfocg2SQpaYeNQQaxn HMgg== X-Forwarded-Encrypted: i=2; AFNElJ9Rg5UEbHyjxV+oWOwOmHTfVrdY5j4g3yP/zsBTMO8elgbOEu+HFyt0CUBcNXv2jEDsxO87BHj+ipEYX48W@patchwork.amarulasolutions.com X-Gm-Message-State: AOJu0YyhDgcrTsawihyuBfxO3Wbv+IZEAdrQDvTClH4gTwp7JS9syf3q yPjrUixB2l0UGksrKcmH2Xzupn2BxB+U572wPEkZzuVz86Njkpsqv73Z7RNUeL0rZlRDKp7s+Jn I7A== X-Received: by 2002:a05:600c:19cd:b0:489:1a63:509c with SMTP id 5b1f17b1804b1-48a777b953amr126139155e9.0.1777472361032; Wed, 29 Apr 2026 07:19:21 -0700 (PDT) X-BeenThere: linux-amarula@amarulasolutions.com; h="AUV6zMOP6y0yM2TEcr8G13ndwX8rbj7/g2XSigjHHV1QvTjGfg==" Received: by 2002:a05:600c:648a:b0:488:9454:b51 with SMTP id 5b1f17b1804b1-488f4a708aals57458245e9.0.-pod-prod-05-eu; Wed, 29 Apr 2026 07:19:19 -0700 (PDT) X-Received: by 2002:a05:600c:1e8b:b0:48a:f18:ece4 with SMTP id 5b1f17b1804b1-48a77b176b3mr119646115e9.24.1777472358922; Wed, 29 Apr 2026 07:19:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1777472358; cv=none; d=google.com; s=arc-20240605; b=UqY0ur01VT2xZpVTm1HvoOnGFDg9ynlJo1Y7LCzgVn7od46SY827wcdabcARijnhGv UvwKf0C3Gs1hh2oJp8A6c5P/Dr0tf4kUufCt/gozOOBvfUIbbapypSCT1PDnHICkB0/C m/fGiDyja4BsrTyxM8MP24B39dp/mzwPGYvOm9QRlHxO2wUULSjZx71oIj5jgPLvAPNS hLuBnkBcvYznOWJgBXuWAEny61G8zngga2xqM2hqUkC+IvEAlVx3t7Q4yjid3RtIoRt6 +voAtp76AHFqWqaUb7h/uQ/Nl10hsXOZknhEwnRsiN6kfXF7289i1WTaPjjSicbKaEZf jENQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=HEMHV0hdSHCnmEXd/zcUcgczA5P9RVz76BTISJhNaFE=; fh=PVQ6qK/apE8apMCQLUsBZ5FgEk1zvaf7+lv3UFNLduQ=; b=WfJOaPMi5PLyBSur1ujyxTC1r4U5h3Dmii5SgHfdMwumo6gYbHOwPUUz2IuJ6jwEql GVQHf5ihEXdCjKZi7ZO5yJgJzpvC8Q6mY+pI6zDUiKJ5yUWZo2dhs8KlrKIgocLi7aw3 RxLMTdKqu7FBqZvkrCh35Ol8UrqavYLL2aGiYqu7EL0xNMJAJN2Y8U0yJA0LwLEmikjn 8jfYiAuWTewtAX3s5sT+ICFirdi7U2kW8vi5n/MQkmDE1Vv/ZOUAo321tQK3cx31lJqq e53dOKuw8BvCZAf5KPL6y2hK+4wEB2ZVcvEyRtxSPP/rKo7PN6QIRoL5giesjK5P3nss m8NA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pSJU5Bus; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Received: from mail-sor-f41.google.com (mail-sor-f41.google.com. [209.85.220.41]) by mx.google.com with SMTPS id 5b1f17b1804b1-48a7c5df0e5sor5590215e9.14.2026.04.29.07.19.18 for (Google Transport Security); Wed, 29 Apr 2026 07:19:18 -0700 (PDT) Received-SPF: pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) client-ip=209.85.220.41; X-Gm-Gg: AeBDieuTlCefdT/lQFfGeQPf+Xbig+ElR/O4pTtWpwEyNcapAIuABAcCG1v4h4Z798c DUocro9BPmh4AWJkXdUWE/8KQBvXqKYlsSi4Hg4bq0ltiiQkzYFfUR14jHjnbbZw4syQLLJHmME 7K07j2rZCLcdMXg79MA6Zy1A9sr3ZAX2Sdrb4ZqAyyoxpb2wtQ2vnjBZjWnBWzuf8ws1wVPKWX1 qskYfKRcIk7f4dQ+NTpgdmTy+oW4LMfAF3J9Enm4v6d2TAKROEqVe3rWesA1ANna5HdgO1NqrnI 81WGjTP0QHIEP4MI/B6b2etarSZsuaehTXJ3EGHK9HYm5HWPujNRdt6KLRBye7zPF1ia6l5FgTr ZH7PCmq/Oo7aICQCzJRs38K3NwRladybzvXTK3gOYpwJHev0RSjlA4WOGTyZSyRVMJpSmF8lLaY 9b/VAyi4Nv4KJFKrdyUuYDTgBG0ya6Cxrj8cm+1B+AYZM4DVs4YBDdcXMlPd18vxixMa/J+pVk7 1MI683zXKcIm9N0OxmCtuPNN0G+qnb+TMtwJwoZc6vzueDcCOfXjbT0zey99RDbEPXR0UG0aEX+ L/hIJrwIRaOVzrWWb9LuMcI/IapN3w7HtBQUvNCv+NV5Kg== X-Received: by 2002:a05:600c:630f:b0:488:9fb7:376d with SMTP id 5b1f17b1804b1-48a77b1b815mr125561125e9.28.1777472358350; Wed, 29 Apr 2026 07:19:18 -0700 (PDT) Received: from dario-ThinkPad-P14s-Gen-5.homenet.telecomitalia.it (host-82-56-22-134.retail.telecomitalia.it. [82.56.22.134]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48a7c57b5fcsm59572785e9.5.2026.04.29.07.19.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 07:19:17 -0700 (PDT) From: Dario Binacchi To: swupdate@googlegroups.com Cc: linux-amarula@amarulasolutions.com, Dario Binacchi Subject: [meta-swupdate-boards][PATCH 1/1] New board: STM32MP257F-EV1 Date: Wed, 29 Apr 2026 16:18:57 +0200 Message-ID: <20260429141857.616450-2-dario.binacchi@amarulasolutions.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260429141857.616450-1-dario.binacchi@amarulasolutions.com> References: <20260429141857.616450-1-dario.binacchi@amarulasolutions.com> MIME-Version: 1.0 X-Original-Sender: dario.binacchi@amarulasolutions.com X-Original-Authentication-Results: mx.google.com; dkim=pass header.i=@amarulasolutions.com header.s=google header.b=pSJU5Bus; spf=pass (google.com: domain of dario.binacchi@amarulasolutions.com designates 209.85.220.41 as permitted sender) smtp.mailfrom=dario.binacchi@amarulasolutions.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=amarulasolutions.com; dara=neutral header.i=@amarulasolutions.com Content-Type: text/plain; charset="UTF-8" Precedence: list Mailing-list: list linux-amarula@amarulasolutions.com; contact linux-amarula+owners@amarulasolutions.com List-ID: X-Spam-Checked-In-Group: linux-amarula@amarulasolutions.com X-Google-Group-Id: 476853432473 List-Post: , List-Help: , List-Archive: List-Unsubscribe: , The STM32MP257F-EV1 is an evaluation board based on the STM32MP25 microprocessor. More information can be found at: https://www.st.com/en/evaluation-tools/stm32mp257f-ev1.html Unlike other boards that typically rely on the U-Boot environment to select the correct boot bank after an update, this board manages the boot selection process through the Firmware Update (FWU) metadata stored in dedicated partitions. This is achieved via the new fwumdata script handler (CONFIG_FWUMDATA_HANDLER). Therefore, a version of swupdate and meta-swupdate including this feature is required. Signed-off-by: Dario Binacchi --- README.md | 10 ++ .../update-image/stm32mp25-eval/emmcsetup.lua | 11 ++ .../stm32mp25-eval/sw-description | 43 +++++++ .../swupdate/stm32mp25-eval/09-swupdate-args | 9 ++ .../swupdate/stm32mp25-eval/defconfig | 110 ++++++++++++++++++ .../swupdate/stm32mp25-eval/swupdate.cfg | 41 +++++++ 6 files changed, 224 insertions(+) create mode 100644 recipes-extended/images/update-image/stm32mp25-eval/emmcsetup.lua create mode 100644 recipes-extended/images/update-image/stm32mp25-eval/sw-description create mode 100644 recipes-support/swupdate/swupdate/stm32mp25-eval/09-swupdate-args create mode 100644 recipes-support/swupdate/swupdate/stm32mp25-eval/defconfig create mode 100644 recipes-support/swupdate/swupdate/stm32mp25-eval/swupdate.cfg diff --git a/README.md b/README.md index 4348cf05c853..1b9930284e30 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,16 @@ Above will enable U-boot which Raspberry Pi does not default to, and instead boots straight to Linux. U-boot is required to do the "swapping" of partitions in the "dual-copy" layout. +For usage with STMicroelectronics STM32MP one must add the following to +`local.conf`: + + SWUPDATE_IMAGES_NOAPPEND_MACHINE[core-image-full-cmdline]="0" + SWUPDATE_IMAGES_NOAPPEND_DISTRO[core-image-full-cmdline]="0" + +Above will ensure that meta-swupdate can correctly locate the rootfs +artifacts, as OpenSTLinux appends both the distribution and machine +names to the image files. + Maintainer ---------- diff --git a/recipes-extended/images/update-image/stm32mp25-eval/emmcsetup.lua b/recipes-extended/images/update-image/stm32mp25-eval/emmcsetup.lua new file mode 100644 index 000000000000..a619596ee5d4 --- /dev/null +++ b/recipes-extended/images/update-image/stm32mp25-eval/emmcsetup.lua @@ -0,0 +1,11 @@ +function preinst() + local out = "Pre installed script called" + + return true, out +end + +function postinst() + local out = "Post installed script called" + + return true, out +end diff --git a/recipes-extended/images/update-image/stm32mp25-eval/sw-description b/recipes-extended/images/update-image/stm32mp25-eval/sw-description new file mode 100644 index 000000000000..b530cac3d087 --- /dev/null +++ b/recipes-extended/images/update-image/stm32mp25-eval/sw-description @@ -0,0 +1,43 @@ +software = +{ + version = "0.1.0"; + + @@MACHINE@@ = { + hardware-compatibility: [ "1.0" ]; + stable: { + copy1: { + images: ( + { + filename = "core-image-full-cmdline-@@DISTRO@@-@@MACHINE@@.rootfs.ext4.gz"; + sha256 = "$swupdate_get_sha256(core-image-full-cmdline-@@DISTRO@@-@@MACHINE@@.rootfs.ext4.gz)"; + compressed = "zlib"; + type = "raw"; + device = "/dev/mmcblk0p11"; + } + ); + scripts: ( + { type = "fwumdata"; + properties: { active = "1"; } + } + ); + + }; + copy2: { + images: ( + { + filename = "core-image-full-cmdline-@@DISTRO@@-@@MACHINE@@.rootfs.ext4.gz"; + sha256 = "$swupdate_get_sha256(core-image-full-cmdline-@@DISTRO@@-@@MACHINE@@.rootfs.ext4.gz)"; + compressed = "zlib"; + type = "raw"; + device = "/dev/mmcblk0p12"; + } + ); + scripts: ( + { type = "fwumdata"; + properties: { active = "2"; } + } + ); + }; + }; + }; +}; diff --git a/recipes-support/swupdate/swupdate/stm32mp25-eval/09-swupdate-args b/recipes-support/swupdate/swupdate/stm32mp25-eval/09-swupdate-args new file mode 100644 index 000000000000..307e75c971c3 --- /dev/null +++ b/recipes-support/swupdate/swupdate/stm32mp25-eval/09-swupdate-args @@ -0,0 +1,9 @@ +rootfs=`swupdate -g` + +if [ $rootfs == '/dev/mmcblk0p11' ]; then + selection="-e stable,copy2" +else + selection="-e stable,copy1" +fi + +SWUPDATE_ARGS="-v -H @MACHINE@:1.0 ${selection} -f /etc/swupdate.cfg" diff --git a/recipes-support/swupdate/swupdate/stm32mp25-eval/defconfig b/recipes-support/swupdate/swupdate/stm32mp25-eval/defconfig new file mode 100644 index 000000000000..98a5a429f90e --- /dev/null +++ b/recipes-support/swupdate/swupdate/stm32mp25-eval/defconfig @@ -0,0 +1,110 @@ +# +# Automatically generated file; DO NOT EDIT. +# Swupdate Configuration +# + +# +# Swupdate Settings +# + +# +# General Configuration +# +CONFIG_SYSTEMD=y +CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate.cfg" +CONFIG_SCRIPTS=y +CONFIG_HW_COMPATIBILITY=y +CONFIG_HW_COMPATIBILITY_FILE="/etc/hwrevision" +CONFIG_SW_VERSIONS_FILE="/etc/sw-versions" + +# +# Socket Paths +# +CONFIG_SOCKET_CTRL_PATH="" +CONFIG_SOCKET_PROGRESS_PATH="" +CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/" +# CONFIG_MTD is not set +CONFIG_LUA=y +CONFIG_LUAPKG="lua" +# CONFIG_FEATURE_SYSLOG is not set + +# +# Build Options +# +CONFIG_CROSS_COMPILE="" +CONFIG_SYSROOT="" +CONFIG_EXTRA_LDLIBS="" + +# +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_WERROR is not set +# CONFIG_NOCLEANUP is not set +# CONFIG_BOOTLOADER_EBG is not set +# CONFIG_UBOOT is not set +# CONFIG_BOOTLOADER_GRUB is not set +# CONFIG_BOOTLOADER_CBOOT is not set +CONFIG_DOWNLOAD=y +CONFIG_HASH_VERIFY=y +# CONFIG_SIGNED_IMAGES is not set +CONFIG_ENCRYPTED_IMAGES=y +CONFIG_SURICATTA=y + +# +# Suricatta +# + +# +# Features +# +CONFIG_SURICATTA_SSL=y + + +# +# Server +# +CONFIG_SURICATTA_HAWKBIT=y +# CONFIG_SURICATTA_SERVER_NONE is not set +CONFIG_WEBSERVER=y + +# +# Webserver Features +# +CONFIG_MONGOOSE=y + +# +# Mongoose Feature +# +CONFIG_MONGOOSELUA=y +# CONFIG_MONGOOSEIPV6 is not set +CONFIG_MONGOOSESSL=y + +# +# Compressors (zlib always on) +# +CONFIG_GUNZIP=y +# CONFIG_XZ is not set +# CONFIG_ZSTD is not set + +# Parser Features +# +CONFIG_LIBCONFIG=y +CONFIG_PARSERROOT="" +CONFIG_JSON=y +# CONFIG_LUAEXTERNAL is not set +# CONFIG_SETSWDESCRIPTION is not set + +# +# Image Handlers +# +CONFIG_RAW=y +CONFIG_LUASCRIPTHANDLER=y +CONFIG_SHELLSCRIPTHANDLER=y +CONFIG_FWUMDATA_HANDLER=y +# CONFIG_HANDLER_IN_LUA is not set +CONFIG_RDIFFHANDLER=y +CONFIG_HANDLER_IN_LUA=y +# CONFIG_EMBEDDED_LUA_HANDLER is not set +CONFIG_ARCHIVE=y +# CONFIG_REMOTE_HANDLER is not set diff --git a/recipes-support/swupdate/swupdate/stm32mp25-eval/swupdate.cfg b/recipes-support/swupdate/swupdate/stm32mp25-eval/swupdate.cfg new file mode 100644 index 000000000000..c5a473de861a --- /dev/null +++ b/recipes-support/swupdate/swupdate/stm32mp25-eval/swupdate.cfg @@ -0,0 +1,41 @@ +globals : +{ + verbose = true; + loglevel = 5; + syslog = true; + postupdatecmd = "(sleep 2 && reboot)&"; +}; + +download : +{ + retries = 3; + timeout = 1800; +}; + +identify : ( + { name = "board"; value = "stm32mp25-eval"; } +); + +suricatta : +{ + + tenant = "default"; + id = "stm32mp25-eval"; + confirm = 0; + url = "http://papero:8080"; + polldelay = 360; + nocheckcert = true; + retry = 4; + retrywait = 200; + loglevel = 10; + userid = 0; + groupid = 0; + max_artifacts = 1; +}; + +webserver : +{ + document_root = "/www"; + userid = 0; + groupid = 0; +};