Show a cover letter.

GET /api/1.2/covers/2222311/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2222311,
    "url": "http://patchwork.ozlabs.org/api/1.2/covers/2222311/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/uboot/cover/20260411-qcom_spl-v2-0-9609557cf562@seznam.cz/",
    "project": {
        "id": 18,
        "url": "http://patchwork.ozlabs.org/api/1.2/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": "<20260411-qcom_spl-v2-0-9609557cf562@seznam.cz>",
    "list_archive_url": null,
    "date": "2026-04-11T00:00:05",
    "name": "[v2,00/10] Add SPL support for Qualcomm platforms, starting with sdm845",
    "submitter": {
        "id": 77645,
        "url": "http://patchwork.ozlabs.org/api/1.2/people/77645/?format=api",
        "name": "Michael Srba",
        "email": "michael.srba@seznam.cz"
    },
    "mbox": "http://patchwork.ozlabs.org/project/uboot/cover/20260411-qcom_spl-v2-0-9609557cf562@seznam.cz/mbox/",
    "series": [
        {
            "id": 499535,
            "url": "http://patchwork.ozlabs.org/api/1.2/series/499535/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=499535",
            "date": "2026-04-11T00:00:12",
            "name": "Add SPL support for Qualcomm platforms, starting with sdm845",
            "version": 2,
            "mbox": "http://patchwork.ozlabs.org/series/499535/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2222311/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 secure) header.d=seznam.cz header.i=@seznam.cz header.a=rsa-sha256\n header.s=szn1 header.b=BwCcxHMc;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de\n (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; 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=seznam.cz",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de",
            "phobos.denx.de;\n\tdkim=pass (2048-bit key;\n secure) header.d=seznam.cz header.i=@seznam.cz header.b=\"BwCcxHMc\";\n\tdkim-atps=neutral",
            "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=seznam.cz",
            "phobos.denx.de;\n spf=pass smtp.mailfrom=michael.srba@seznam.cz"
        ],
        "Received": [
            "from phobos.denx.de (phobos.denx.de\n [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01])\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 4ft4cN4nSFz1y2d\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 11 Apr 2026 17:12:20 +1000 (AEST)",
            "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id BFF50842D2;\n\tSat, 11 Apr 2026 09:09:11 +0200 (CEST)",
            "by phobos.denx.de (Postfix, from userid 109)\n id CFC7A840D8; Sat, 11 Apr 2026 02:04:20 +0200 (CEST)",
            "from mxd-1-a04.seznam.cz (mxd-1-a04.seznam.cz\n [IPv6:2a02:598:128:8a00::1000:a04])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))\n (No client certificate requested)\n by phobos.denx.de (Postfix) with ESMTPS id 04FFE84198\n for <u-boot@lists.denx.de>; Sat, 11 Apr 2026 02:04:07 +0200 (CEST)",
            "from email.seznam.cz by smtpc-mxd-7644845457-4tx79\n (smtpc-mxd-7644845457-4tx79 [2a02:598:128:8a00::1000:a04])\n id 422ba5bf1925f1d6438269e1; Sat, 11 Apr 2026 02:03:39 +0200 (CEST)",
            "from [127.0.0.1] (ip-111-27.static.ccinternet.cz [147.161.27.111])\n by smtpd-relay-6597cc8696-xddnz (szn-email-smtpd/2.0.72) with ESMTPA\n id 0a7991fd-9c34-4b94-9fc6-c1b0cb1dd09b;\n Sat, 11 Apr 2026 02:02:59 +0200"
        ],
        "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; d=seznam.cz; s=szn1;\n t=1775865819; bh=YmgKgCwRJ8CCaanRmonO1vX5dDbX/YRK2dE1yXZg9hE=;\n h=From:Subject:Date:Message-Id:MIME-Version:Content-Type:\n Content-Transfer-Encoding:To:Cc;\n b=BwCcxHMczhlLHwj6SeV5qUXPNJ9Cnrqp8MOPsU0DAo2uis7ivBi30gn4XJCnPNy8Y\n FjkT3BZw4OCWlvcuX134EDrMokDi42MdVkVrKJNMRu+uatCFRkQt2fYgPvpmc1UGEm\n T/93Fv8IjMKbj4+OW7PdD/trbNgj1rqptkFGreT+TfUoyGV2l/tF8w8GV9vMwJtUJk\n VfBM8boTuBUlh7qkz3kcwEybrnESAJ2WHQK0o+3RCa/1vI9QftILzk5FArggkHwVW0\n 2/iTyP+TLPRufNgD4JhTis/0zs678LnfAfBK8wkRaT5ilTSKwylTPlIpi4RsawMb+X\n kHzFnJFcfhztw==",
        "From": "michael.srba@seznam.cz",
        "Subject": "[PATCH v2 00/10] Add SPL support for Qualcomm platforms, starting\n with sdm845",
        "Date": "Sat, 11 Apr 2026 02:00:05 +0200",
        "Message-Id": "<20260411-qcom_spl-v2-0-9609557cf562@seznam.cz>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "7bit",
        "X-B4-Tracking": "v=1; b=H4sIAAWP2WkC/0WNyw6CMBBFf4XM2ppSakVX/ochpoyj1MjDDjYK4\n d+lGOPyJOeeOwKTd8SwT0bwFBy7tplBrRLAyjZXEu48MyipjNQyEw9s6xN3dyFzZXKdlVanCLP\n eebq415I6Fl/mZ3kj7OM+GpXjvvXv5Suk0ftl9T8bUiHFjgwqi8Zs8u2BaWhsvcYBimmaPjU1Z\n p6yAAAA",
        "X-Change-ID": "20260403-qcom_spl-0826843ba41c",
        "To": "u-boot@lists.denx.de, Sumit Garg <sumit.garg@kernel.org>,\n u-boot-qcom@groups.io",
        "Cc": "Tom Rini <trini@konsulko.com>,\n Ilias Apalodimas <ilias.apalodimas@linaro.org>,\n Simon Glass <sjg@chromium.org>, Sughosh Ganu <sughosh.ganu@arm.com>,\n Anshul Dalal <anshuld@ti.com>, Peng Fan <peng.fan@nxp.com>,\n Mattijs Korpershoek <mkorpershoek@kernel.org>,\n Quentin Schulz <quentin.schulz@cherry.de>,\n Heinrich Schuchardt <xypron.glpk@gmx.de>, Andrew Davis <afd@ti.com>,\n Hrushikesh Salunke <h-salunke@ti.com>,\n Dario Binacchi <dario.binacchi@amarulasolutions.com>, Ye Li <ye.li@nxp.com>,\n Andre Przywara <andre.przywara@arm.com>,\n Alif Zakuan Yuslaimi <alif.zakuan.yuslaimi@altera.com>,\n Leo Yu-Chi Liang <ycliang@andestech.com>,\n Andrew Goodbody <andrew.goodbody@linaro.org>, Dhruva Gole <d-gole@ti.com>,\n Kaustabh Chakraborty <kauschluss@disroot.org>,\n Jerome Forissier <jerome.forissier@arm.com>,\n Heiko Schocher <hs@nabladev.com>,\n Marek Vasut <marek.vasut+renesas@mailbox.org>,\n Lukasz Majewski <lukma@denx.de>,\n Mateusz Kulikowski <mateusz.kulikowski@gmail.com>,\n Dinesh Maniyam <dinesh.maniyam@altera.com>,\n Neil Armstrong <neil.armstrong@linaro.org>,\n Patrice Chotard <patrice.chotard@foss.st.com>,\n Patrick Delaunay <patrick.delaunay@foss.st.com>,\n Michal Simek <michal.simek@amd.com>, Yao Zi <me@ziyao.cc>,\n Peter Korsgaard <peter@korsgaard.com>,\n Rayagonda Kokatanur <rayagonda.kokatanur@broadcom.com>,\n Casey Connolly <casey.connolly@linaro.org>,\n Tingting Meng <tingting.meng@altera.com>,\n Tien Fong Chee <tien.fong.chee@altera.com>, Alice Guo <alice.guo@nxp.com>,\n George Chan <gchan9527@gmail.com>,\n Balaji Selvanathan <balaji.selvanathan@oss.qualcomm.com>,\n Alexey Charkov <alchark@gmail.com>, Ronald Wahl <ronald.wahl@legrand.com>,\n Michael Srba <Michael.Srba@seznam.cz>",
        "X-Mailer": "b4 0.15.1",
        "X-Mailman-Approved-At": "Sat, 11 Apr 2026 09:08:55 +0200",
        "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": "[ context ]\n\nDifferent generations of Qualcomm SoCs have differences in the boot\nprocess. msm8916 (and similar) are quite straightforward:\n[EL3]bootrom->sbl1->tz->[EL2]hyp->[EL1]aboot->linux (omitting non-AP\ncores). msm8998, sdm845, kodiak and simiar are a bit more involved:\n[EL3]bootrom->xbl_sec->[EL1]xbl_loader->[EL3]tz->[EL2]hyp->[EL1]uefi\n->ABL->linux. Newer platforms like hamoa are even more involved.\n\nCurrently, u-boot proper can run in place of Linux, in place\nof aboot, or in place of hyp. The option to run in place\nof Linux is necessary because >99% of OEMs do not consider\nthe sale of a device to an end user a transfer of ownership,\nthat is, they sell the device with a hash of their public key\npre-burnt in the fuses.\n\n[ end of context ]\n\nU-Boot SPL, as it will be built using the defconfig added in this series,\nreplaces xbl_loader. If support for msm8916 or a similar platform\nis added, it would replace sbl1. This will obviously only work on\nthe <1% of devices whose manufacturers consider the sale a transfer\nof ownership, and of course most SBCs.\n\nUnfortunately, starting with (iirc) msm8998, and getting progressively\nworse, Qualcomm no longer consider a sale of their SoC a transfer\nof ownership either. While it's possible to execute your code\nin EL3 using either jtag or a patched devcfg, the former is impractical\nwhile the latter is irrelevant for the purposes of running u-boot SPL\nsince the devcfg is parsed by trustzone. (this of course only applies\nto the <1% of the devices where the OEM didn't lock the device down\nprior to sale)\n\nGiven the above, this series uses an unintended feature in old builds\nof xbl_sec which allows us to elevate to EL3. We also check if we\nhappen to already be running in EL3, in which case we proceed normally.\nThis can be the case e.g if JTAG was used to jump to u-boot SPL in EL3,\nwhich may be the only option on e.g. kodiak. (Running in EL1 is not\nreally viable, because xbl_sec+xbl_loader are effectively sbl1 split\nin half and replacing only one doesn't make much sense)\n\nFor now, only usb dfu is supported to load the next stage. Since we\ndon't support ram initialization, the next stage will need to run from\nSRAM too, which is currently not supported. Additional patches will\nbe needed to make that work, at which point it will be possible\nto use u-boot as a ufs/emmc programmer with zero proprietary code\nin the boot chain (sans bootrom and part of xbl_sec, but the latter and\ntechnically even the former could be skipped with JTAG)\n\nSigned-off-by: Michael Srba <Michael.Srba@seznam.cz>\n---\nChanges in v2:\n- fix spmi and of_live patches (missing help text, remove --, wording\n  issues, drivers/spmi/Makefile), add bootstage_start()/bootstage_accum()\n- fix conflict with upstream-added cmd_u-boot-spl-elf (and copy endianness\n  handling), improve help text for SPL_REMAKE_ELF_LDSCRIPT\n- split \"mach-snapdragon: support building SPL\" into smaller patches\n- fix three SYS_MALLOC_LEN definitions; remove the conditional one, it was\n  a leftover from related-but-separate effort to make u-boot proper work\n  without dram\n- s/#if CONFIG_SPL_TARGET_SDM845/#if defined(CONFIG_SPL_TARGET_SDM845)/\n- fix \"&rpmhcc: clock-controller\" (probably accidental ctrl+z)\n- change el3_ret_point to (el3_ret_point - _start); I'd swear when I was\n  writing this I had to do it that way because for some bizzare reason\n  el3_ret_point was relative and _start was absolute, but now I tested\n  it again and they're both relative to the start of .text. (making _start\n  0, but it's still cleaner this way)\n- fix empty comment in el3_payload\n- fix documentation style errors\n- change KConfig as options as suggested (hardcode computed values, remove\n  macro variables, move QCOM_SPL options under ARCH_SNAPDRAGON with\n  SPL_BUILD conditionals; IMEM_START/END were dropped since they were\n  a leftover from related-but-separate effort to make u-boot proper work\n  without dram\n- don't mess with SYS_SOC, it's clearly a bad idea; make the board .dtsi\n  include sdm845-u-boot.dtsi\n- split board.c and don't compile spl parts into u-boot proper and\n  vice versa\n- properly test clean build\n- Link to v1: https://patch.msgid.link/20260404-qcom_spl-v1-0-9e6c2ac66587@seznam.cz\n\n---\nMichael Srba (10):\n      Makefile: add SPL_REMAKE_ELF_LDSCRIPT feature\n      of_live: support in SPL\n      drivers: allow clk_stub and spmi in SPL\n      mach-snapdragon: boot0.h: split out msm8916_boot0.h\n      mach-snapdragon: add u-boot-spl-elf-sdm845.lds\n      mach-snapdragon: Kconfig: changes / additions to support SPL\n      mach-snapdragon: boot0.h: add sdm845_spl_boot0.h\n      mach-snapdragon: add board-spl.c and split out common code\n      qualcomm: add defconfig, env and docs for SPL on sdm845\n      dts: add u-boot specific sdm845 .dtsi a .dtsi for shift-axolotl\n\n Makefile                                           |  28 ++\n arch/arm/Kconfig                                   |  31 +-\n arch/arm/dts/sdm845-shift-axolotl-u-boot.dtsi      |   2 +\n arch/arm/dts/sdm845-u-boot.dtsi                    |  16 +\n arch/arm/mach-snapdragon/Kconfig                   |  44 ++-\n arch/arm/mach-snapdragon/Makefile                  |   8 +\n arch/arm/mach-snapdragon/board.c                   | 358 +--------------------\n arch/arm/mach-snapdragon/board_common.c            |  56 ++++\n arch/arm/mach-snapdragon/board_spl.c               |  35 ++\n arch/arm/mach-snapdragon/include/mach/boot0.h      |  61 +---\n .../mach-snapdragon/include/mach/msm8916_boot0.h   |  54 ++++\n .../include/mach/sdm845_spl_boot0.h                | 120 +++++++\n arch/arm/mach-snapdragon/mem_map.c                 | 318 ++++++++++++++++++\n arch/arm/mach-snapdragon/qcom-priv.h               |   4 +-\n arch/arm/mach-snapdragon/u-boot-spl-elf-sdm845.lds |  25 ++\n board/qualcomm/sdm845_spl.env                      |   2 +\n common/spl/Kconfig                                 |   9 +\n common/spl/spl.c                                   |  11 +\n configs/sdm845_spl_defconfig                       | 131 ++++++++\n doc/board/qualcomm/index.rst                       |   1 +\n doc/board/qualcomm/spl.rst                         |  87 +++++\n drivers/Makefile                                   |   2 +-\n drivers/clk/Kconfig                                |   6 +\n drivers/spmi/Kconfig                               |   6 +\n drivers/spmi/Makefile                              |   2 +-\n dts/Kconfig                                        |   6 +\n lib/Makefile                                       |   2 +-\n 27 files changed, 1013 insertions(+), 412 deletions(-)\n---\nbase-commit: 93f84ee022a8401421cdaab84fe7d106d83fdb4a\nchange-id: 20260403-qcom_spl-0826843ba41c\n\nBest regards,\n--  \nMichael Srba <Michael.Srba@seznam.cz>"
}