Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.2/patches/2234553/?format=api
{ "id": 2234553, "url": "http://patchwork.ozlabs.org/api/1.2/patches/2234553/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260507-b4-mmu-unmap-fixes-v3-1-aac7726d87d5@linaro.org/", "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": "<20260507-b4-mmu-unmap-fixes-v3-1-aac7726d87d5@linaro.org>", "list_archive_url": null, "date": "2026-05-07T19:58:08", "name": "[v3,1/4] armv8: mmu: add a function to help debug TLB lookups", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "5ff33ac58191d96273b4e8b3e52752fd4b918eae", "submitter": { "id": 90679, "url": "http://patchwork.ozlabs.org/api/1.2/people/90679/?format=api", "name": "Casey Connolly", "email": "casey.connolly@linaro.org" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/1.2/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260507-b4-mmu-unmap-fixes-v3-1-aac7726d87d5@linaro.org/mbox/", "series": [ { "id": 503261, "url": "http://patchwork.ozlabs.org/api/1.2/series/503261/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=503261", "date": "2026-05-07T19:58:07", "name": "armv8: mmu: fix region unmapping and optimise set_one_region()", "version": 3, "mbox": "http://patchwork.ozlabs.org/series/503261/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2234553/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2234553/checks/", "tags": {}, "related": [], "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=linaro.org header.i=@linaro.org header.a=rsa-sha256\n header.s=google header.b=wFmSQ39w;\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=linaro.org", "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=linaro.org header.i=@linaro.org header.b=\"wFmSQ39w\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=none dis=none) header.from=linaro.org", "phobos.denx.de;\n spf=pass smtp.mailfrom=casey.connolly@linaro.org" ], "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 4gBNNV56Y1z1yKd\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 08 May 2026 05:58:34 +1000 (AEST)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 8CBE784BF5;\n\tThu, 7 May 2026 21:58:27 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id 2418A84BE0; Thu, 7 May 2026 21:58:25 +0200 (CEST)", "from mail-wm1-x331.google.com (mail-wm1-x331.google.com\n [IPv6:2a00:1450:4864:20::331])\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 2DFC784BD4\n for <u-boot@lists.denx.de>; Thu, 7 May 2026 21:58:23 +0200 (CEST)", "by mail-wm1-x331.google.com with SMTP id\n 5b1f17b1804b1-4890d945eb4so15608835e9.0\n for <u-boot@lists.denx.de>; Thu, 07 May 2026 12:58:23 -0700 (PDT)", "from lion.localdomain (p4fc3dd86.dip0.t-ipconnect.de.\n [79.195.221.134]) by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-48e538d2878sm235344265e9.15.2026.05.07.12.58.21\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Thu, 07 May 2026 12:58:21 -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,RCVD_IN_DNSWL_BLOCKED,\n SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=linaro.org; s=google; t=1778183902; x=1778788702; darn=lists.denx.de;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:from:to:cc:subject:date:message-id\n :reply-to; bh=DSQjV9y7mbSdVGWtNrpYx0Of8/i/OdE4zb/JPgBqKOI=;\n b=wFmSQ39wmKkwpSJokesVG0J0QYojSASuXex7+h7QgEKzn4S4fnVdUdK7so9SPc7Cqn\n V690lN5ssnzXdJgzHTKQhPNiuLpkMxLSIfueyucVTCy4lcFDynuoNrUj1R/HSOfl2z6w\n c5YtgXnhMzexReA4XrKMNfjQTQS3yWIfS1LHUP2dXcy1XaYIx7lMk2FtUmXFG67QI8oM\n V6hO37Y8MmxDZY0x+/pyYHj+a8pxnRBjgA2qXZ+yzWqP/Vi81B2mjxiIqoWmwXnVDNZQ\n skSp+Uhb9BYbGzpzjym6Knj2Wf1zJKPyzwR8SGvaVeSo3D6LIrCjxsJzzQ7riWQSUUyr\n QU2A==", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1778183902; x=1778788702;\n h=cc:to:in-reply-to:references:message-id:content-transfer-encoding\n :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to\n :cc:subject:date:message-id:reply-to;\n bh=DSQjV9y7mbSdVGWtNrpYx0Of8/i/OdE4zb/JPgBqKOI=;\n b=OY9KcBUFWi97PDocqa5vZJt0+Vuf/rOHmio5KyKrHWO3rvtFkH7Wr1MVbhCFW8neeq\n sPkiswCF3vm35ThukDI9qrT0igU4Iz8TrP6MneJvuGjZypxerA9njmmLsY9Z1ni46v3n\n 9mVgiQc6ItlLmozxLxtlmkfYN/rRfVZigQ2yBjPCgcDnc5kZmQn6yu2q9vM36syX2Mpq\n 1vdlPGkDSOPpH8tbjcJN46kIC8WwTt3q55Dpnc8I0fD7P7PKEftYYdk60jCDhiOA9Dsb\n ZIFUVvCZMbjGU1IDMGq9U9V8Ydel0q8A7KFpigDOl0TccrwKOYyfuk8h88MK0azk3pN7\n T3Qw==", "X-Gm-Message-State": "AOJu0YwbrslhFcuE3FnafXDmBRKeSwM75ZiSLzsMek8Lv46IcPawpT/Q\n jURuvx2Nrg6pMRd3vtDlgXy4mQl9D4D+rVB+VOVigJWlS6aKySRa7Lf7JMWIibGhcvQ=", "X-Gm-Gg": "AeBDiev5LnD1iXmAZHn5Kc76sYh42COY2izYPacW6peQuvsQWUxck7gKW81fjCJOP7Q\n ESjIGLpuyWh7zzL2TWYlROiOC9VTISezdSnSMo8vCzMd30h0l4J4QzdfHaR2MEIC8P8hfJq+w35\n NYpr5rlqxIcjHt5rEgjJ/pFfnRgN9nYkfGp5bZrXIzo21G9Gwm/mxFwygnZ2rm0iqGmJxQoOMy3\n NOunfuhIaY3ieshHgaa0rSNILus3AnG26Wc7gS0VX5Fp7HecHF9s0M5lUUVGfKVraiJfYhCXXPP\n KXbyFKy5fogdmjkGrmamDneTsDoW4x08G9YLLSAOcV3etLZpsN98yltIIOC4dQxmrmKo848HJtP\n qc++xHXHc9E/2kRUrPBuDlsQ0WvBDP1YVupWUUsDtCOEPbnoPM2Riwum40aUYaJHVjx9YPqPGPU\n rsI3kukcfGax/2cVJHhzRIX3r2e/8Q4PY0omdt0IrRnJoKVCgHAOI+9UhGkYbQ2DnHQGK+", "X-Received": "by 2002:a05:600c:4e56:b0:489:1abb:5559 with SMTP id\n 5b1f17b1804b1-48e5dfd6508mr63507005e9.5.1778183902561;\n Thu, 07 May 2026 12:58:22 -0700 (PDT)", "From": "Casey Connolly <casey.connolly@linaro.org>", "Date": "Thu, 07 May 2026 21:58:08 +0200", "Subject": "[PATCH v3 1/4] armv8: mmu: add a function to help debug TLB\n lookups", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "Message-Id": "<20260507-b4-mmu-unmap-fixes-v3-1-aac7726d87d5@linaro.org>", "References": "<20260507-b4-mmu-unmap-fixes-v3-0-aac7726d87d5@linaro.org>", "In-Reply-To": "<20260507-b4-mmu-unmap-fixes-v3-0-aac7726d87d5@linaro.org>", "To": "u-boot@lists.denx.de", "Cc": "Tom Rini <trini@konsulko.com>, Anshul Dalal <anshuld@ti.com>,\n Casey Connolly <casey.connolly@linaro.org>,\n Ilias Apalodimas <ilias.apalodimas@linaro.org>, Dhruva Gole <d-gole@ti.com>,\n Mark Kettenis <kettenis@openbsd.org>,\n Patrice Chotard <patrice.chotard@foss.st.com>,\n Sumit Garg <sumit.garg@kernel.org>", "X-Mailer": "b4 0.16-dev", "X-Developer-Signature": "v=1; a=openpgp-sha256; l=3001;\n i=casey.connolly@linaro.org; h=from:subject:message-id;\n bh=ihdmhMvN7Ul+L2ZRsYR5ALXhN7ULEibmzAbYek1owPY=;\n b=owGbwMvMwCFYaeA6f6eBkTjjabUkhsw/727/Efs3tT+xW/Z6ousr5jOHTFjbQn6fyNjH2VC4U\n 1LL4ANjRykLgyAHg6yYIov4iWWWTWsv22tsX3ABZg4rE8gQBi5OAZjIMx6G32zTKrz/RfHMOXUk\n fZ9nC2dHjr5OcOOkGbOLhN4cEe+2rmT4xaTNe5NLo/bEGb0XE/pZT29pcu05aiWoUzNzX95GWcc\n HagA=", "X-Developer-Key": "i=casey.connolly@linaro.org; a=openpgp;\n fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47", "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": "Implement a super basic software TLB walk which can look up a single\naddress in the TLB and print each stage of the translation. This is\nhelpful for debugging TLB issues and will be compiled out if unused.\n\nSigned-off-by: Casey Connolly <casey.connolly@linaro.org>\n---\n arch/arm/cpu/armv8/cache_v8.c | 49 ++++++++++++++++++++++++++++++++++++++++\n arch/arm/include/asm/armv8/mmu.h | 7 ++++++\n 2 files changed, 56 insertions(+)", "diff": "diff --git a/arch/arm/cpu/armv8/cache_v8.c b/arch/arm/cpu/armv8/cache_v8.c\nindex 39479df7b21f..368c622cd18e 100644\n--- a/arch/arm/cpu/armv8/cache_v8.c\n+++ b/arch/arm/cpu/armv8/cache_v8.c\n@@ -733,8 +733,57 @@ void dump_pagetable(u64 ttbr, u64 tcr)\n \t va_bits, va_bits < 39 ? 3 : 4);\n \twalk_pagetable(ttbr, tcr, pagetable_print_entry, NULL);\n }\n \n+/* Do a software pagetable walk for the given address */\n+void tlb_debug_lookup(u64 addr)\n+{\n+\tu64 tcr = get_tcr(NULL, NULL);\n+\tu64 va_bits = 64 - (tcr & (BIT(6) - 1));\n+\tu64 ttbr = gd->arch.tlb_addr, *pte;\n+\tint lshift, level = va_bits < 39 ? 1 : 0;\n+\n+\tprintf(\"Performing software TLB lookup of address %#010llx va_bits: %lld\\n\", addr, va_bits);\n+\n+\taddr = ALIGN_DOWN(addr, 0x1000);\n+\tpte = ((u64 *)ttbr);\n+\tfor (int i = level; i < 4; i++) {\n+\t\tint indent = (i - level + 1) * 2;\n+\t\tlshift = level2shift(i);\n+\t\tu32 idx = (addr >> lshift) & 0x1FF;\n+\t\tu64 _addr;\n+\n+\t\tprintf(\"%*sPTE: %#010llx. addr[%d:%d]: %#05x (offset %#07x)\\n\", indent, \"\", (u64)pte,\n+\t\t lshift + 8, lshift, idx, idx * 8);\n+\t\tprintf(\"%*sL%d: %#010llx -> \", indent, \"\", i, (u64)(&pte[idx]));\n+\n+\t\tpte = &pte[idx];\n+\t\t_addr = *pte & GENMASK_ULL(va_bits, PAGE_SHIFT);\n+\n+\t\tswitch (pte_type(pte)) {\n+\t\tcase PTE_TYPE_FAULT:\n+\t\t\tprintf(\"UNMAPPED!\\n\");\n+\t\t\treturn;\n+\t\tcase PTE_TYPE_BLOCK:\n+\t\t\tprintf(\"BLOCK (%#010llx)\\n\", _addr);\n+\t\t\tbreak;\n+\t\tcase PTE_TYPE_TABLE: // || PTE_TYPE_PAGE\n+\t\t\tif (i < 3) {\n+\t\t\t\tprintf(\"TABLE (%#010llx)\\n\", _addr);\n+\t\t\t\tpte = (u64 *)_addr;\n+\t\t\t\tcontinue;\n+\t\t\t} else { // Page\n+\t\t\t\tprintf(\"PAGE (%#010llx)\\n\", _addr);\n+\t\t\t}\n+\t\t\tbreak;\n+\t\t}\n+\n+\t\t// We did the lookup!\n+\t\tprintf(\"%*s[%#010llx - %#010llx]\\n\", indent + 2, \"\", _addr, _addr + (1 << lshift));\n+\t\treturn;\n+\t}\n+}\n+\n /* Returns the estimated required size of all page tables */\n __weak u64 get_page_table_size(void)\n {\n \tu64 one_pt = MAX_PTE_ENTRIES * sizeof(u64);\ndiff --git a/arch/arm/include/asm/armv8/mmu.h b/arch/arm/include/asm/armv8/mmu.h\nindex 8aa5f9721c4a..ee81619a1843 100644\n--- a/arch/arm/include/asm/armv8/mmu.h\n+++ b/arch/arm/include/asm/armv8/mmu.h\n@@ -186,8 +186,15 @@ void walk_pagetable(u64 ttbr, u64 tcr, pte_walker_cb_t cb, void *priv);\n * @tcr: TCR value to use\n */\n void dump_pagetable(u64 ttbr, u64 tcr);\n \n+/**\n+ * tlb_debug_lookup() - Perform a software TLB walk printing each stage\n+ *\n+ * @addr: the address to look-up in the TLB.\n+ */\n+void tlb_debug_lookup(u64 addr);\n+\n struct mm_region {\n \tu64 virt;\n \tu64 phys;\n \tu64 size;\n", "prefixes": [ "v3", "1/4" ] }