Cover Letter Detail
Show a cover letter.
GET /api/covers/2219575/?format=api
{ "id": 2219575, "url": "http://patchwork.ozlabs.org/api/covers/2219575/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/cover/20260403135205.26979-1-ansuelsmth@gmail.com/", "project": { "id": 18, "url": "http://patchwork.ozlabs.org/api/projects/18/?format=api", "name": "U-Boot", "link_name": "uboot", "list_id": "u-boot.lists.denx.de", "list_email": "u-boot@lists.denx.de", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260403135205.26979-1-ansuelsmth@gmail.com>", "list_archive_url": null, "date": "2026-04-03T13:51:57", "name": "[v5,0/6] misc: fs_loader: reorg and split to FS and FW loader + FIP loader", "submitter": { "id": 71108, "url": "http://patchwork.ozlabs.org/api/people/71108/?format=api", "name": "Christian Marangi", "email": "ansuelsmth@gmail.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/cover/20260403135205.26979-1-ansuelsmth@gmail.com/mbox/", "series": [ { "id": 498633, "url": "http://patchwork.ozlabs.org/api/series/498633/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=498633", "date": "2026-04-03T13:51:57", "name": "misc: fs_loader: reorg and split to FS and FW loader + FIP loader", "version": 5, "mbox": "http://patchwork.ozlabs.org/series/498633/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/covers/2219575/comments/", "headers": { "Return-Path": "<u-boot-bounces@lists.denx.de>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=ZT2t6LNv;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=85.214.62.61; helo=phobos.denx.de;\n envelope-from=u-boot-bounces@lists.denx.de; receiver=patchwork.ozlabs.org)", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de", "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.b=\"ZT2t6LNv\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=gmail.com", "phobos.denx.de;\n spf=pass smtp.mailfrom=ansuelsmth@gmail.com" ], "Received": [ "from phobos.denx.de (phobos.denx.de [85.214.62.61])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fnKsf1vw3z1yCs\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 04 Apr 2026 00:52:22 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 5F53883DC9;\n\tFri, 3 Apr 2026 15:52:18 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id 2909183CF5; Fri, 3 Apr 2026 15:52:17 +0200 (CEST)", "from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com\n [IPv6:2a00:1450:4864:20::32a])\n (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id C5D0A83642\n for <u-boot@lists.denx.de>; Fri, 3 Apr 2026 15:52:14 +0200 (CEST)", "by mail-wm1-x32a.google.com with SMTP id\n 5b1f17b1804b1-486ff201041so18945105e9.1\n for <u-boot@lists.denx.de>; Fri, 03 Apr 2026 06:52:14 -0700 (PDT)", "from Ansuel-XPS24 ([217.202.87.54])\n by smtp.googlemail.com with ESMTPSA id\n 5b1f17b1804b1-4888a7162cesm196732895e9.13.2026.04.03.06.52.11\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Fri, 03 Apr 2026 06:52:13 -0700 (PDT)" ], "X-Spam-Checker-Version": "SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de", "X-Spam-Level": "", "X-Spam-Status": "No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,\n DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,\n RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham\n autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1775224334; x=1775829134; darn=lists.denx.de;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=c5pl+pqJuImQHWyIGgd9nOw/+G5uiuyC0P5x1XkwVOo=;\n b=ZT2t6LNvxvD/eZwdCc3gdL9g6EDWPS+f4udSvC0oSOp/fP3c4LWxIUgXvIG+8avydJ\n v/CjoveKxFgxbxueBYKh5pi20rWeXDcZk/MqGTIkMdgjockP4w1uykI4S8WqRlsCW0NI\n Q15StUiwJSFA/PTL5JNH0lxiY524fgoUSby1hrUdZeufb5H2M6LVH2czSS8JsVYay/wk\n GuxOdq1i1m0IzC48Lsnc/+id3lPctSv27Im5mus1i7Bkl6C8VCdAhAni4cwo0sze/Yur\n GFoL5zBIlPV2n6B4H9X59pqZWeHpWEBN7YPQ8YC/cSc7wXTaQmIKFaacBMFD6N0bQEpA\n DApQ==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1775224334; x=1775829134;\n h=content-transfer-encoding:mime-version:message-id:date:subject:to\n :from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n :reply-to;\n bh=c5pl+pqJuImQHWyIGgd9nOw/+G5uiuyC0P5x1XkwVOo=;\n b=BMRD3EMEU8KgXtHre6G6+Q2P0NBf9nqbRkoRcww719FGrJJh3ZyExP+up5YDrt8Lty\n IKehCydwQP8FZYWSRsiwuwkinz8/9rNcwmTyGU16z+RLbhHvDcpSkPZYRJaUk/mpsBk1\n Te1in/DD2z0TdRvCx/BNbcWCuEn4yQaWIe8Sovd69D7XmUH7SwoRjrY25CRVomUWJqJi\n qj1mUn17rfjmYyfU2pL8hx2wXdxDWDtmrbHO2qR1zWVBd1SzBqUMHJ9/u8ZyZ/Jcff4f\n v3C9lDeHgH2BRU5H9RxIkdElMok+ogIFukGQwWzR3DJwMYVmtHvZh0MNzQFhD5MdH3MP\n fBeQ==", "X-Forwarded-Encrypted": "i=1;\n AJvYcCWFqMQSNVabiHhYruwhCxJuJIlwQ1R2KMaRVhLORz796TEViMf7J8SzO9FLCmGLFXWEqc/WZiQ=@lists.denx.de", "X-Gm-Message-State": "AOJu0YyAEMoq4fz5BvvR9dRcVcW3EdTZXA2sji1PpMN9LxEXHLf090nQ\n YGkbJfgzZ8IwfHjuZhzesqwhmQ1hEKMd0h+DUOZLpkqxvftPIX1Gnb7A", "X-Gm-Gg": "ATEYQzy9yzTbHRJZ5bHMUxQcAs+rD5kvgTGsfwKDfWk/DXjc0pbnC2SQRz345dHzBs1\n s+5VVf1TRj5Sq/Z2i54DDSuw/1wmQlkMZtg5fI0ESGM4T92eI9mgE8sdolZsnjVyCwaxns6nt2K\n zwJe6HS1h6ZDdqqReKfnHpFX/pVo6giEC6gX/Cjve5XoHkgW4kNPqga5nTjnM/CixZi/pShU2L0\n LB/XmAaBXA3EgA4c6QaU4IBCedqpvWtaxTY24u58DmmJg+zNdzBktHPBR4yMc3cx/XvkmLERodH\n 1PrCZGMk+OZsZG6J7jC0dQ7AQ44g/QGGXZhi10TnjmPYkE3u+QFLRT6zJJVJR35yrDWObu7l2RW\n pAe3ErCNXghlCue33aaDiPGFWAYP51HnPyiRnVd/Wz4HLPgsoSAnrZacm+YOFwPBMO6GSjM2fcQ\n 5WPjjpXaOFfUCm16ib7Ea047s=", "X-Received": "by 2002:a05:600c:5292:b0:487:1826:d89b with SMTP id\n 5b1f17b1804b1-488996ecd1cmr53568995e9.9.1775224333850;\n Fri, 03 Apr 2026 06:52:13 -0700 (PDT)", "From": "Christian Marangi <ansuelsmth@gmail.com>", "To": "Tom Rini <trini@konsulko.com>, Simon Glass <sjg@chromium.org>,\n Christian Marangi <ansuelsmth@gmail.com>,\n Casey Connolly <casey.connolly@linaro.org>,\n Quentin Schulz <quentin.schulz@cherry.de>, Peng Fan <peng.fan@nxp.com>,\n Justin Klaassen <justin@tidylabs.net>,\n Neha Malcom Francis <n-francis@ti.com>,\n Heinrich Schuchardt <xypron.glpk@gmx.de>,\n Jamie Gibbons <jamie.gibbons@microchip.com>,\n Leo Yu-Chi Liang <ycliang@andestech.com>, Harsha Vardhan V M <h-vm@ti.com>,\n Weijie Gao <weijie.gao@mediatek.com>,\n Marek Vasut <marek.vasut+renesas@mailbox.org>,\n Patrice Chotard <patrice.chotard@foss.st.com>, Yao Zi <me@ziyao.cc>,\n Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>,\n \"Lucien.Jheng\" <lucienzx159@gmail.com>, u-boot@lists.denx.de", "Subject": "[PATCH v5 0/6] misc: fs_loader: reorg and split to FS and FW loader +\n FIP loader", "Date": "Fri, 3 Apr 2026 15:51:57 +0200", "Message-ID": "<20260403135205.26979-1-ansuelsmth@gmail.com>", "X-Mailer": "git-send-email 2.53.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-BeenThere": "u-boot@lists.denx.de", "X-Mailman-Version": "2.1.39", "Precedence": "list", "List-Id": "U-Boot discussion <u-boot.lists.denx.de>", "List-Unsubscribe": "<https://lists.denx.de/options/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=unsubscribe>", "List-Archive": "<https://lists.denx.de/pipermail/u-boot/>", "List-Post": "<mailto:u-boot@lists.denx.de>", "List-Help": "<mailto:u-boot-request@lists.denx.de?subject=help>", "List-Subscribe": "<https://lists.denx.de/listinfo/u-boot>,\n <mailto:u-boot-request@lists.denx.de?subject=subscribe>", "Errors-To": "u-boot-bounces@lists.denx.de", "Sender": "\"U-Boot\" <u-boot-bounces@lists.denx.de>", "X-Virus-Scanned": "clamav-milter 0.103.8 at phobos.denx.de", "X-Virus-Status": "Clean" }, "content": "This series mainly rework the FS loader to permit reading firmware from\ncontainer that are not exactly a readable filesystem.\n\nAlso splitting out the generic firmware loader infra from the\nfilesystem-specific code will make adding new loader types easier.\n\nOne scenario is when a firmware is shipped in a FIP container as\na generic blob with an UUID.\n\nFIP are mostly used on ARM in the context of ATF.\nIn such context U-Boot is loaded as BL31 and the PHY firmware\ncan't be stored in the FIT image for the kernel as U-Boot should\nnot depend on the presence of the kernel to correctly enable PHY\nfor Ethernet port.\n\nTo handle such case the PHY firmware is stored in FIP with a\npredictable UUID.\n\nOne example is with Airoha 8811H firmware where the FIP can\nhave a blob with UUID \"d39d2cf2-9bd0-3ca7-93e9-e71b4f9250b2\".\n(generated from command \"uuidgen -n @dns --md5 --name en8811h.bin\")\n\nWith these example DTS entry:\n\nfs_loader0: fip-loader {\n\tbootph-all;\n\tcompatible = \"u-boot,fip-loader\";\n\tphandlepart = <&mmc0 0>;\n\tpartoffset = <0x100>;\n};\n\nmdio {\n en8811: ethernet-phy@f {\n reg = <0xf>;\n firmware-name = \"d39d2cf2-9bd0-3ca7-93e9-e71b4f9250b2\";\n firmware-loader = <&fs_loader0>;\n };\n};\n\nAnd PHY driver using the get_fw_loader_from_node() and the\ncommon request_firmware_into_buf() it's possible to\nload the PHY firmware transparently by just declaring\nthe required entry in the DTS.\n\nget_fw_loader_from_node() is implemented to actual get the\nloader from DT. This was something that was already in mind\nfrom when the FS loader was implemented but then it was\nnever implemented in favor of a single loader per device.\n\nThe first patch is a minor fixup for something that probably\nwon't ever happen.\n\nThe second one is a good reworking of the FS and FW loader\nmoving the internal struct to a dedicated header. (this is\nreally to enforce what drivers should use and what\ndriver should not mess with)\n\nThen there is the request_firmware_size() new OP to get only\nthe size of the firmware. Useful for case where the firmware\nsize is not always the same and change across different version.\n(the patter might be get size -> alloc buffer -> get firmware).\n\nThen the FIP loader as a basic parser of FIP. This only\nread the FIP header, loop all the entry and search for a\nmatching UUID. If nothing is found then no firmware blob.\nVery simple implementation.\n\nThis is being CI tested on [0]\n\n[0] https://github.com/u-boot/u-boot/pull/884\n\nChanges v5:\n- Fix unment dependency for config flag\n- Move request_firmware_size before FIP loader\n- Add documentation patch\n- Improve get_fw_loader_from_node() implementation\n- use min() instead of custom MIN()\n- Fix handling of some return value\nChanges v4:\n- Rebase on top of next\nChanges v3:\n- Add review tag where possible\n- Check blk_dread ret\n- Generalize mount_ubifs with generic_fw_loader_ubi_select\n- Fix some typo\n- Drop useless ubifs umount (nothing is mounted in FIP)\nChanges v2:\n- Better handle header include to fix compilation error\n on some devices\n- Fix typo for ubifs fix commit\n\nChristian Marangi (6):\n misc: fs_loader: fix ubifs not unmounted on dev_get_priv error\n misc: fs_loader: reorganize and split to FS and FW loader\n misc: fw_loader: implement generic get_fw_loader_from_node()\n misc: fw_loader: implement request_firmware_size() OP\n misc: fw_loader: introduce FIP loader driver\n doc: dtbinding: Update documentation for Generic Firmware loader\n\n .../misc/{fs_loader.txt => fw_loader.txt} | 15 +-\n drivers/misc/Kconfig | 16 +\n drivers/misc/Makefile | 2 +-\n drivers/misc/fw_loader/Makefile | 5 +\n drivers/misc/fw_loader/fip_loader.c | 578 ++++++++++++++++++\n drivers/misc/{ => fw_loader}/fs_loader.c | 193 ++----\n drivers/misc/fw_loader/fw_loader.c | 196 ++++++\n drivers/misc/fw_loader/internal.h | 64 ++\n include/dm/uclass-id.h | 3 +-\n include/fs_loader.h | 47 +-\n include/fw_loader.h | 43 ++\n 11 files changed, 983 insertions(+), 179 deletions(-)\n rename doc/device-tree-bindings/misc/{fs_loader.txt => fw_loader.txt} (77%)\n create mode 100644 drivers/misc/fw_loader/Makefile\n create mode 100644 drivers/misc/fw_loader/fip_loader.c\n rename drivers/misc/{ => fw_loader}/fs_loader.c (59%)\n create mode 100644 drivers/misc/fw_loader/fw_loader.c\n create mode 100644 drivers/misc/fw_loader/internal.h" }