Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217505/?format=api
{ "id": 2217505, "url": "http://patchwork.ozlabs.org/api/patches/2217505/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/patch/20260329231442.332359-1-marek.vasut+renesas@mailbox.org/", "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": "<20260329231442.332359-1-marek.vasut+renesas@mailbox.org>", "list_archive_url": null, "date": "2026-03-29T23:14:12", "name": "[v2] arm: Add ARMv8-M aarch32 support", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "4c10ea99664b7e60959e94406d8a0ff429401a76", "submitter": { "id": 85650, "url": "http://patchwork.ozlabs.org/api/people/85650/?format=api", "name": "Marek Vasut", "email": "marek.vasut+renesas@mailbox.org" }, "delegate": { "id": 3651, "url": "http://patchwork.ozlabs.org/api/users/3651/?format=api", "username": "trini", "first_name": "Tom", "last_name": "Rini", "email": "trini@ti.com" }, "mbox": "http://patchwork.ozlabs.org/project/uboot/patch/20260329231442.332359-1-marek.vasut+renesas@mailbox.org/mbox/", "series": [ { "id": 497940, "url": "http://patchwork.ozlabs.org/api/series/497940/?format=api", "web_url": "http://patchwork.ozlabs.org/project/uboot/list/?series=497940", "date": "2026-03-29T23:14:12", "name": "[v2] arm: Add ARMv8-M aarch32 support", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/497940/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217505/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217505/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 secure) header.d=mailbox.org header.i=@mailbox.org header.a=rsa-sha256\n header.s=mail20150812 header.b=Z8G2ISAQ;\n\tdkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org\n header.a=rsa-sha256 header.s=mail20150812 header.b=TfSBaPLk;\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=reject dis=none) header.from=mailbox.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 secure) header.d=mailbox.org header.i=@mailbox.org header.b=\"Z8G2ISAQ\";\n\tdkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org\n header.b=\"TfSBaPLk\";\n\tdkim-atps=neutral", "phobos.denx.de;\n dmarc=pass (p=reject dis=none) header.from=mailbox.org", "phobos.denx.de;\n spf=pass smtp.mailfrom=marek.vasut+renesas@mailbox.org" ], "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 4fkVb22fhNz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 30 Mar 2026 10:14:54 +1100 (AEDT)", "from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 6858083B48;\n\tMon, 30 Mar 2026 01:14:51 +0200 (CEST)", "by phobos.denx.de (Postfix, from userid 109)\n id CBD2483C5E; Mon, 30 Mar 2026 01:14:50 +0200 (CEST)", "from mout-p-103.mailbox.org (mout-p-103.mailbox.org\n [IPv6:2001:67c:2050:0:465::103])\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 8EDEC8063E\n for <u-boot@lists.denx.de>; Mon, 30 Mar 2026 01:14:48 +0200 (CEST)", "from smtp1.mailbox.org (smtp1.mailbox.org [10.196.197.1])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest\n SHA256)\n (No client certificate requested)\n by mout-p-103.mailbox.org (Postfix) with ESMTPS id 4fkVZv64Bkz9t02;\n Mon, 30 Mar 2026 01:14:47 +0200 (CEST)" ], "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_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2", "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org;\n s=mail20150812; t=1774826087;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding;\n bh=HVGL/NZ6t/FiIHFyzL7S+r7w2+FikcpdFPpXyhuJ/0s=;\n b=Z8G2ISAQFfuBV9bzrwX5DaWWUpyMeutyskfn3kfqEMh8W/CeTh/6EP4pD7DrJAF1qDMsfJ\n MdCoeyOl//tvJihqzPV2M3RUA9oUZdFskDImx1d3xSDMTutwMB6PM+GqxpxKBLUB60ALdI\n NoZV9m7jNXc9nsLHrU4Y2lJbULSfZIJwQ0uIFcHysumBOxp4QPGyV8k12lneSgUpiv8vxh\n 9Gv6fnrdrW6/nKQAecaUl7zqs0f3wjOzGRAjiP03ZoyaGlYjeYH0m04mOpeGlyrixO7fQG\n qNVFugPA1pWu819P0Ln/gY71iqg5zcDwhNRZClqAS449kvDrh9xJX8hheCal5A==", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org;\n s=mail20150812; t=1774826086;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:\n content-transfer-encoding:content-transfer-encoding;\n bh=HVGL/NZ6t/FiIHFyzL7S+r7w2+FikcpdFPpXyhuJ/0s=;\n b=TfSBaPLkZ9maObHaRm+hzX1ncDArWUYq+SHfqEcSWDNxYdLecG0AxP8S0KfI55J01U7Meo\n I4mhb7VfeLXxMjiPkyVzGbhNzecbtY81tSR6X70j2oGp8l6Qbgr1D5jyEEBtzUJz96Kgb5\n MiJI4RmBkkKC0Twxaj1QL+jFziSnMv/4ncq8iT0rLuH2wcsIGP2VHptoZ1HN8E+fhMNrCD\n JJVaoOTSb3lgX8ojGTuCjq4Q1UWm9P2BkXQ/12uhP0baFnp5LeRfLmyb/Gk6SdU7PpghOg\n OuUhnnyTJgz0eIROG32sT/e+mDFAI34Ox5rmB/FDGIAMHxYa8aTMWw9wrYFHhg==" ], "From": "Marek Vasut <marek.vasut+renesas@mailbox.org>", "To": "u-boot@lists.denx.de", "Cc": "Marek Vasut <marek.vasut+renesas@mailbox.org>,\n Casey Connolly <casey.connolly@linaro.org>,\n Heinrich Schuchardt <xypron.glpk@gmx.de>,\n Ilias Apalodimas <ilias.apalodimas@linaro.org>,\n Jerome Forissier <jerome.forissier@arm.com>, Tom Rini <trini@konsulko.com>,\n Udit Kumar <u-kumar1@ti.com>", "Subject": "[PATCH v2] arm: Add ARMv8-M aarch32 support", "Date": "Mon, 30 Mar 2026 01:14:12 +0200", "Message-ID": "<20260329231442.332359-1-marek.vasut+renesas@mailbox.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "X-MBO-RS-META": "mq8wkd6tyoxsfia4qe87ca316ucjb7ju", "X-MBO-RS-ID": "5e0456b4bd4191a6f3b", "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": "Add configuration for ARMv8-M aarch32 core, which are currently\nCortex-M23/M33 cores. These cores are treated similar to ARMv7-M\ncores, except the code has to be compiled with matching compiler\n-march=armv8-m.main flag . These cores have no MMU, they have MPU,\nwhich is currently not configured.\n\nUnlike ARMv7-M, these cores have 512 interrupt vectors. While the\nSYS_ARM_ARCH should be set to 8, it is set to 7 because all of the\ninitialization code is built from from arch/arm/cpu/armv7m and not\narmv8. Furthermore, CONFIG_ARM64 must be disabled, although DTs\nfor devices using these cores do come from arch/arm64/boot/dts .\n\nTo avoid excess duplication in Makefiles, introduce one new Kconfig\nsymbol, CPU_V7M_V8M. The CPU_V7M_V8M cover both ARMv7-M and ARMv8-M\ncores.\n\nSigned-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>\n---\nCc: Casey Connolly <casey.connolly@linaro.org>\nCc: Heinrich Schuchardt <xypron.glpk@gmx.de>\nCc: Ilias Apalodimas <ilias.apalodimas@linaro.org>\nCc: Jerome Forissier <jerome.forissier@arm.com> <jerome@forissier.org>\nCc: Tom Rini <trini@konsulko.com>\nCc: Udit Kumar <u-kumar1@ti.com>\nCc: u-boot@lists.denx.de\n---\nV2: - Rename CPU_V78M to CPU_V7M_V8M\n - Isolate V7M specific and otherwise option bits in cpu.c\n---\n Makefile | 8 ++++++--\n arch/arm/Kconfig | 15 +++++++++++++--\n arch/arm/Makefile | 2 ++\n arch/arm/cpu/armv7m/cpu.c | 10 ++++++++--\n arch/arm/include/asm/armv7_mpu.h | 2 +-\n arch/arm/include/asm/unified.h | 2 +-\n arch/arm/lib/Makefile | 6 +++---\n arch/arm/lib/bootm.c | 2 +-\n arch/arm/lib/crt0.S | 2 +-\n arch/arm/lib/relocate.S | 4 ++--\n arch/arm/lib/semihosting.S | 2 +-\n arch/arm/lib/vectors_m.S | 6 +++++-\n cmd/Kconfig | 2 +-\n dts/Makefile | 4 ++++\n lib/efi_selftest/Makefile | 2 +-\n 15 files changed, 50 insertions(+), 19 deletions(-)", "diff": "diff --git a/Makefile b/Makefile\nindex 8295cd4e5e8..cb4b5a2635e 100644\n--- a/Makefile\n+++ b/Makefile\n@@ -531,7 +531,7 @@ UBOOTINCLUDE := \\\n \t\t-I$(srctree)/lib/mbedtls/external/mbedtls/include) \\\n \t$(if $(CONFIG_$(PHASE_)SYS_THUMB_BUILD), \\\n \t\t$(if $(CONFIG_HAS_THUMB2), \\\n-\t\t\t$(if $(CONFIG_CPU_V7M), \\\n+\t\t\t$(if $(CONFIG_CPU_V7M_V8M), \\\n \t\t\t\t-I$(srctree)/arch/arm/thumb1/include), \\\n \t\t\t-I$(srctree)/arch/arm/thumb1/include)) \\\n \t-I$(srctree)/arch/$(ARCH)/include \\\n@@ -1050,7 +1050,7 @@ UBOOTINCLUDE := \\\n \t\t-I$(srctree)/lib/mbedtls/external/mbedtls/include) \\\n \t$(if $(CONFIG_$(PHASE_)SYS_THUMB_BUILD), \\\n \t\t$(if $(CONFIG_HAS_THUMB2), \\\n-\t\t\t$(if $(CONFIG_CPU_V7M), \\\n+\t\t\t$(if $(CONFIG_CPU_V7M_V8M), \\\n \t\t\t\t-I$(srctree)/arch/arm/thumb1/include), \\\n \t\t\t-I$(srctree)/arch/arm/thumb1/include)) \\\n \t-I$(srctree)/arch/$(ARCH)/include \\\n@@ -1446,11 +1446,15 @@ quiet_cmd_copy = COPY $@\n cmd_copy = cp $< $@\n \n ifeq ($(CONFIG_OF_UPSTREAM),y)\n+ifeq ($(CONFIG_CPU_V8M),y)\n+dt_dir := dts/upstream/src/arm64\n+else\n ifeq ($(CONFIG_ARM64),y)\n dt_dir := dts/upstream/src/arm64\n else\n dt_dir := dts/upstream/src/$(ARCH)\n endif\n+endif\n else\n dt_dir := arch/$(ARCH)/dts\n endif\ndiff --git a/arch/arm/Kconfig b/arch/arm/Kconfig\nindex 03416c55265..f624675eadf 100644\n--- a/arch/arm/Kconfig\n+++ b/arch/arm/Kconfig\n@@ -363,7 +363,8 @@ config CPU_V7A\n \tselect SYS_CACHE_SHIFT_6\n \timply SYS_ARM_MMU\n \n-config CPU_V7M\n+# ARMv7-M/ARMv8-M\n+config CPU_V7M_V8M\n \tbool\n \tselect HAS_THUMB2\n \tselect SYS_ARM_MPU\n@@ -372,6 +373,10 @@ config CPU_V7M\n \tselect THUMB2_KERNEL\n \tselect NVIC\n \n+config CPU_V7M\n+\tbool\n+\tselect CPU_V7M_V8M\n+\n config CPU_V7R\n \tbool\n \tselect HAS_THUMB2\n@@ -379,6 +384,10 @@ config CPU_V7R\n \tselect SYS_ARM_MPU\n \tselect SYS_CACHE_SHIFT_6\n \n+config CPU_V8M\n+\tbool\n+\tselect CPU_V7M_V8M\n+\n config SYS_CPU\n \tdefault \"arm720t\" if CPU_ARM720T\n \tdefault \"arm920t\" if CPU_ARM920T\n@@ -389,6 +398,7 @@ config SYS_CPU\n \tdefault \"armv7\" if CPU_V7A\n \tdefault \"armv7\" if CPU_V7R\n \tdefault \"armv7m\" if CPU_V7M\n+\tdefault \"armv7m\" if CPU_V8M\n \tdefault \"armv8\" if ARM64\n \n config SYS_ARM_ARCH\n@@ -402,6 +412,7 @@ config SYS_ARM_ARCH\n \tdefault 7 if CPU_V7A\n \tdefault 7 if CPU_V7M\n \tdefault 7 if CPU_V7R\n+\tdefault 7 if CPU_V8M\n \tdefault 8 if ARM64\n \n choice\n@@ -445,7 +456,7 @@ config ARCH_CPU_INIT\n \n config SYS_ARCH_TIMER\n \tbool \"ARM Generic Timer support\"\n-\tdepends on CPU_V7A || CPU_V7M || ARM64\n+\tdepends on CPU_V7A || CPU_V7M_V8M || ARM64\n \tdefault y if ARM64\n \thelp\n \t The ARM Generic Timer (aka arch-timer) provides an architected\ndiff --git a/arch/arm/Makefile b/arch/arm/Makefile\nindex b36b0742580..de975fc9368 100644\n--- a/arch/arm/Makefile\n+++ b/arch/arm/Makefile\n@@ -16,6 +16,7 @@ arch-$(CONFIG_CPU_V7A)\t\t=$(call cc-option, -march=armv7-a, \\\n \t\t\t\t $(call cc-option, -march=armv7))\n arch-$(CONFIG_CPU_V7M)\t\t=-march=armv7-m\n arch-$(CONFIG_CPU_V7R)\t\t=-march=armv7-r\n+arch-$(CONFIG_CPU_V8M)\t\t=-march=armv8-m.main\n ifeq ($(CONFIG_ARM64_CRC32),y)\n arch-$(CONFIG_ARM64)\t\t=-march=armv8-a+crc\n else\n@@ -42,6 +43,7 @@ tune-$(CONFIG_CPU_ARM1136)\t=\n tune-$(CONFIG_CPU_ARM1176)\t=\n tune-$(CONFIG_CPU_V7A)\t\t=-mtune=generic-armv7-a\n tune-$(CONFIG_CPU_V7R)\t\t=\n+tune-$(CONFIG_CPU_V8M)\t\t=\n tune-$(CONFIG_ARM64)\t\t=\n \n # Evaluate tune cc-option calls now\ndiff --git a/arch/arm/cpu/armv7m/cpu.c b/arch/arm/cpu/armv7m/cpu.c\nindex bea0e1d3263..292730c1d7c 100644\n--- a/arch/arm/cpu/armv7m/cpu.c\n+++ b/arch/arm/cpu/armv7m/cpu.c\n@@ -19,6 +19,9 @@\n */\n int cleanup_before_linux(void)\n {\n+\tif (!CONFIG_IS_ENABLED(LIB_BOOTM) && !CONFIG_IS_ENABLED(LIB_BOOTZ))\n+\t\treturn 0;\n+\n \t/*\n \t * this function is called just before we call linux\n \t * it prepares the processor for linux\n@@ -45,8 +48,9 @@ int cleanup_before_linux(void)\n }\n \n /*\n- * Perform the low-level reset.\n+ * Perform the low-level reset. ARMv7M only.\n */\n+#if IS_ENABLED(CONFIG_CPU_V7M)\n void reset_cpu(void)\n {\n \t/*\n@@ -56,8 +60,10 @@ void reset_cpu(void)\n \t\t| (V7M_SCB->aircr & V7M_AIRCR_PRIGROUP_MSK)\n \t\t| V7M_AIRCR_SYSRESET, &V7M_SCB->aircr);\n }\n+#endif\n \n void spl_perform_arch_fixups(struct spl_image_info *spl_image)\n {\n-\tspl_image->entry_point |= 0x1;\n+\tif (IS_ENABLED(CONFIG_XPL_BUILD))\n+\t\tspl_image->entry_point |= 0x1;\n }\ndiff --git a/arch/arm/include/asm/armv7_mpu.h b/arch/arm/include/asm/armv7_mpu.h\nindex 16b9d0d1aeb..4a6524290d3 100644\n--- a/arch/arm/include/asm/armv7_mpu.h\n+++ b/arch/arm/include/asm/armv7_mpu.h\n@@ -11,7 +11,7 @@\n #include <linux/bitops.h>\n #endif\n \n-#ifdef CONFIG_CPU_V7M\n+#ifdef CONFIG_CPU_V7M_V8M\n #define AP_SHIFT\t\t\t24\n #define XN_SHIFT\t\t\t28\n #define TEX_SHIFT\t\t\t19\ndiff --git a/arch/arm/include/asm/unified.h b/arch/arm/include/asm/unified.h\nindex 2fae54ebd89..53715db4207 100644\n--- a/arch/arm/include/asm/unified.h\n+++ b/arch/arm/include/asm/unified.h\n@@ -12,7 +12,7 @@\n \t.syntax unified\n #endif\n \n-#ifdef CONFIG_CPU_V7M\n+#ifdef CONFIG_CPU_V7M_V8M\n #define AR_CLASS(x...)\n #define M_CLASS(x...)\tx\n #else\ndiff --git a/arch/arm/lib/Makefile b/arch/arm/lib/Makefile\nindex 11cb3a7145e..7b60cecbd49 100644\n--- a/arch/arm/lib/Makefile\n+++ b/arch/arm/lib/Makefile\n@@ -11,7 +11,7 @@ obj-$(CONFIG_$(PHASE_)LIB_BOOTI) += image.o\n obj-$(CONFIG_$(PHASE_)LIB_BOOTZ) += zimage.o\n obj-$(CONFIG_$(PHASE_)LIB_BOOTM) += bootm.o\n \n-ifdef CONFIG_CPU_V7M\n+ifdef CONFIG_CPU_V7M_V8M\n obj-y\t+= vectors_m.o crt0.o\n else ifdef CONFIG_ARM64\n obj-y\t+= crt0_64.o\n@@ -32,7 +32,7 @@ else\n obj-y\t+= relocate.o\n endif\n \n-obj-$(CONFIG_CPU_V7M) += cmd_boot.o\n+obj-$(CONFIG_CPU_V7M_V8M) += cmd_boot.o\n obj-$(CONFIG_OF_LIBFDT) += bootm-fdt.o\n obj-$(CONFIG_CMD_BOOTM) += bootm.o\n else\n@@ -62,7 +62,7 @@ obj-y\t+= sections.o\n CFLAGS_REMOVE_sections.o := $(LTO_CFLAGS)\n \n obj-y\t+= stack.o\n-ifdef CONFIG_CPU_V7M\n+ifdef CONFIG_CPU_V7M_V8M\n obj-y\t+= interrupts_m.o\n else ifdef CONFIG_ARM64\n obj-$(CONFIG_FSL_LAYERSCAPE) += ccn504.o\ndiff --git a/arch/arm/lib/bootm.c b/arch/arm/lib/bootm.c\nindex 727b9c5ca5b..1cde655bc80 100644\n--- a/arch/arm/lib/bootm.c\n+++ b/arch/arm/lib/bootm.c\n@@ -304,7 +304,7 @@ static void boot_jump_linux(struct bootm_headers *images, int flag)\n \tvoid (*kernel_entry)(int zero, int arch, uint params);\n \tunsigned long r2;\n \tkernel_entry = (void (*)(int, int, uint))images->ep;\n-#ifdef CONFIG_CPU_V7M\n+#ifdef CONFIG_CPU_V7M_V8M\n \tulong addr = (ulong)kernel_entry | 1;\n \tkernel_entry = (void *)addr;\n #endif\ndiff --git a/arch/arm/lib/crt0.S b/arch/arm/lib/crt0.S\nindex f2c5aa37a8f..a2c03f3d2f9 100644\n--- a/arch/arm/lib/crt0.S\n+++ b/arch/arm/lib/crt0.S\n@@ -153,7 +153,7 @@ ENTRY(_main)\n #endif\n \tldr\tr0, [r9, #GD_RELOC_OFF]\t\t/* r0 = gd->reloc_off */\n \tadd\tlr, lr, r0\n-#if defined(CONFIG_CPU_V7M)\n+#if defined(CONFIG_CPU_V7M_V8M)\n \torr\tlr, #1\t\t\t\t/* As required by Thumb-only */\n #endif\n \tldr\tr0, [r9, #GD_RELOCADDR]\t\t/* r0 = gd->relocaddr */\ndiff --git a/arch/arm/lib/relocate.S b/arch/arm/lib/relocate.S\nindex b6a648708f4..21d89e49f13 100644\n--- a/arch/arm/lib/relocate.S\n+++ b/arch/arm/lib/relocate.S\n@@ -10,7 +10,7 @@\n #include <config.h>\n #include <elf.h>\n #include <linux/linkage.h>\n-#ifdef CONFIG_CPU_V7M\n+#ifdef CONFIG_CPU_V7M_V8M\n #include <asm/armv7m.h>\n #endif\n \n@@ -26,7 +26,7 @@\n \n WEAK(relocate_vectors)\n \n-#ifdef CONFIG_CPU_V7M\n+#ifdef CONFIG_CPU_V7M_V8M\n \t/*\n \t * On ARMv7-M we only have to write the new vector address\n \t * to VTOR register.\ndiff --git a/arch/arm/lib/semihosting.S b/arch/arm/lib/semihosting.S\nindex 6e1691a832c..d50c19f3f8d 100644\n--- a/arch/arm/lib/semihosting.S\n+++ b/arch/arm/lib/semihosting.S\n@@ -13,7 +13,7 @@ ENTRY(smh_trap)\n \n #if defined(CONFIG_ARM64)\n \thlt\t#0xf000\n-#elif defined(CONFIG_CPU_V7M)\n+#elif defined(CONFIG_CPU_V7M_V8M)\n \tbkpt\t#0xab\n #elif defined(CONFIG_SYS_THUMB_BUILD)\n \tsvc\t#0xab\ndiff --git a/arch/arm/lib/vectors_m.S b/arch/arm/lib/vectors_m.S\nindex 8d88cc756fc..38b32d87152 100644\n--- a/arch/arm/lib/vectors_m.S\n+++ b/arch/arm/lib/vectors_m.S\n@@ -52,6 +52,10 @@ ENTRY(_start)\n \t.long\t__invalid_entry\t\t\t@ 13 - Reserved\n \t.long\t__invalid_entry\t\t\t@ 14 - PendSV\n \t.long\t__invalid_entry\t\t\t@ 15 - SysTick\n-\t.rept\t255 - 16\n+#ifdef CONFIG_CPU_V7M\n+\t.rept\t256 - 16\n+#else /* V8M / V8R */\n+\t.rept\t512 - 16\n+#endif\n \t.long\t__invalid_entry\t\t\t@ 16..255 - External Interrupts\n \t.endr\ndiff --git a/cmd/Kconfig b/cmd/Kconfig\nindex 71c0db601aa..366ae771d9b 100644\n--- a/cmd/Kconfig\n+++ b/cmd/Kconfig\n@@ -2093,7 +2093,7 @@ config BOOTP_PXE_DHCP_OPTION\n config BOOTP_VCI_STRING\n \tstring\n \tdepends on CMD_BOOTP\n-\tdefault \"U-Boot.armv7\" if CPU_V7A || CPU_V7M || CPU_V7R\n+\tdefault \"U-Boot.armv7\" if CPU_V7A || CPU_V7M_V8M || CPU_V7R\n \tdefault \"U-Boot.armv8\" if ARM64\n \tdefault \"U-Boot.arm\" if ARM\n \tdefault \"U-Boot\"\ndiff --git a/dts/Makefile b/dts/Makefile\nindex bec6c49da2c..befc6de1805 100644\n--- a/dts/Makefile\n+++ b/dts/Makefile\n@@ -11,11 +11,15 @@ DEVICE_TREE := unset\n endif\n \n ifeq ($(CONFIG_OF_UPSTREAM),y)\n+ifeq ($(CONFIG_CPU_V8M),y)\n+dt_dir := dts/upstream/src/arm64\n+else\n ifeq ($(CONFIG_ARM64),y)\n dt_dir := dts/upstream/src/arm64\n else\n dt_dir := dts/upstream/src/$(ARCH)\n endif\n+endif\n else\n dt_dir := arch/$(ARCH)/dts\n endif\ndiff --git a/lib/efi_selftest/Makefile b/lib/efi_selftest/Makefile\nindex 842433f68aa..67102648703 100644\n--- a/lib/efi_selftest/Makefile\n+++ b/lib/efi_selftest/Makefile\n@@ -60,7 +60,7 @@ obj-$(CONFIG_EFI_DEVICE_PATH_TO_TEXT) += efi_selftest_devicepath.o\n obj-$(CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2) += \\\n efi_selftest_unicode_collation.o\n \n-ifeq ($(CONFIG_CPU_V7A)$(CONFIG_CPU_V7M)$(CONFIG_CPU_V7R),y)\n+ifeq ($(CONFIG_CPU_V7A)$(CONFIG_CPU_V7M_V8M)$(CONFIG_CPU_V7R),y)\n obj-y += efi_selftest_unaligned.o\n endif\n obj-$(CONFIG_EFI_LOADER_HII) += efi_selftest_hii.o\n", "prefixes": [ "v2" ] }