{"id":2215651,"url":"http://patchwork.ozlabs.org/api/patches/2215651/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/patch/20260325011414.288343-1-marek.vasut+renesas@mailbox.org/","project":{"id":18,"url":"http://patchwork.ozlabs.org/api/projects/18/?format=json","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":"<20260325011414.288343-1-marek.vasut+renesas@mailbox.org>","list_archive_url":null,"date":"2026-03-25T01:13:57","name":"arm: Add ARMv8-M aarch32 support","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"8ff9a22e2af4b5b5f7ccb877d8a7c45a361cac98","submitter":{"id":85650,"url":"http://patchwork.ozlabs.org/api/people/85650/?format=json","name":"Marek Vasut","email":"marek.vasut+renesas@mailbox.org"},"delegate":{"id":3651,"url":"http://patchwork.ozlabs.org/api/users/3651/?format=json","username":"trini","first_name":"Tom","last_name":"Rini","email":"trini@ti.com"},"mbox":"http://patchwork.ozlabs.org/project/uboot/patch/20260325011414.288343-1-marek.vasut+renesas@mailbox.org/mbox/","series":[{"id":497367,"url":"http://patchwork.ozlabs.org/api/series/497367/?format=json","web_url":"http://patchwork.ozlabs.org/project/uboot/list/?series=497367","date":"2026-03-25T01:13:57","name":"arm: Add ARMv8-M aarch32 support","version":1,"mbox":"http://patchwork.ozlabs.org/series/497367/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2215651/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2215651/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=TfU/J0fP;\n\tdkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org\n header.a=rsa-sha256 header.s=mail20150812 header.b=wxVuPVbX;\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=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=\"TfU/J0fP\";\n\tdkim=pass (2048-bit key) header.d=mailbox.org header.i=@mailbox.org\n header.b=\"wxVuPVbX\";\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","outgoing_mbo_mout;\n dkim=pass header.d=mailbox.org header.s=mail20150812 header.b=wxVuPVbX;\n spf=pass (outgoing_mbo_mout: domain of marek.vasut+renesas@mailbox.org\n designates 2001:67c:2050:b231:465::202 as permitted sender)\n smtp.mailfrom=marek.vasut+renesas@mailbox.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 4fgTTJ0mhtz1y1G\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 25 Mar 2026 12:14:28 +1100 (AEDT)","from h2850616.stratoserver.net (localhost [IPv6:::1])\n\tby phobos.denx.de (Postfix) with ESMTP id 1E92A8352B;\n\tWed, 25 Mar 2026 02:14:25 +0100 (CET)","by phobos.denx.de (Postfix, from userid 109)\n id 1B9A783CD3; Wed, 25 Mar 2026 02:14:24 +0100 (CET)","from mout-p-202.mailbox.org (mout-p-202.mailbox.org\n [IPv6:2001:67c:2050:0:465::202])\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 6DD3F81E18\n for <u-boot@lists.denx.de>; Wed, 25 Mar 2026 02:14:20 +0100 (CET)","from smtp202.mailbox.org (smtp202.mailbox.org\n [IPv6:2001:67c:2050:b231:465::202])\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-202.mailbox.org (Postfix) with ESMTPS id 4fgTT76jVpz9tVj;\n Wed, 25 Mar 2026 02:14:19 +0100 (CET)"],"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=1774401260;\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=qpmQdMHmrhktONqLe3kzvldPll/h66aPdR/zPXqvIV0=;\n b=TfU/J0fPQoXjwHIyXg7C00+uj8JbtVV9yK4TmjCAGsDsNHSdI6YRdK004IMEhxH4voIkko\n 3c+eAVI3eVM2GiTTXYcjNOdbme3STrhIsSLbVO/zNfTqlV1BKvBoRDyk1lmYwyH4F2aOg0\n jeshritIxB32k0AcH578WfJ9kiOhu+v1aXNNbOhtSoOS67nmYFyuzT23jEs9l74k0Ucr5D\n kqcViULE0d2bQbSaO4jRBj4lh4fHrchElKDxF19KLuVHNQm3Ly5BM7ZLAqCT08XrbyWjX3\n fsY3gfwAxPuYU/73WRxX6lbJ/VTqUMWYUyOnU4LVEwH8S5olrHoI4y5RZSBQ9w==","v=1; a=rsa-sha256; c=relaxed/relaxed; d=mailbox.org;\n s=mail20150812; t=1774401258;\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=qpmQdMHmrhktONqLe3kzvldPll/h66aPdR/zPXqvIV0=;\n b=wxVuPVbXjOUWT95EShf4amqhFChL52Ict8EECzIShJRdAhVA3xXYiXbsEwA5S1MH8m/SYK\n YGTqTOr7ihlTT1OfoErB3L800cOsYA+b4r8U6wNuPCbeqe8LmxzkheFk2JCOT4G/iUTAxc\n 8hgKycofxNbUAVQURans9CyoVOOHWM57Enu5HyZZqCXTR2zh1e+abh9ONULwFt+BQG/5Gl\n bkFZMBtYtBlRp76U6/5VAXdcvEIs2PyViDWzHdf4mCY6TWV1+4bPh1dcsTB/DDkXyOM+tb\n 6E5VmJmWgyWC3qxlxsK4U+TnZ4Yc9sB11gOPNmroXHwt80ySXmVAfHICKCTmBw=="],"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>","Subject":"[PATCH] arm: Add ARMv8-M aarch32 support","Date":"Wed, 25 Mar 2026 02:13:57 +0100","Message-ID":"<20260325011414.288343-1-marek.vasut+renesas@mailbox.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-MBO-RS-ID":"0608e8d2afacf736254","X-MBO-RS-META":"xp9zf6m1dp7h9ermik83ydnx5q6ir6xj","X-Rspamd-Queue-Id":"4fgTT76jVpz9tVj","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_V78M. The CPU_V78M cover both ARMv7-M and ARMv8-M cores.\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: u-boot@lists.denx.de\n---\n Makefile                         |  8 ++++++--\n arch/arm/Kconfig                 | 18 +++++++++++++++---\n arch/arm/Makefile                |  2 ++\n arch/arm/cpu/armv7m/Makefile     |  3 ++-\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, 46 insertions(+), 19 deletions(-)","diff":"diff --git a/Makefile b/Makefile\nindex 8295cd4e5e8..4ee1457cc6d 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_V78M), \\\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_V78M), \\\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..31650a9154b 100644\n--- a/arch/arm/Kconfig\n+++ b/arch/arm/Kconfig\n@@ -363,15 +363,20 @@ 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_V78M\n \tbool\n \tselect HAS_THUMB2\n \tselect SYS_ARM_MPU\n-\tselect SYS_CACHE_SHIFT_5\n \tselect SYS_THUMB_BUILD\n \tselect THUMB2_KERNEL\n \tselect NVIC\n \n+config CPU_V7M\n+\tbool\n+\tselect CPU_V78M\n+\tselect SYS_CACHE_SHIFT_5\n+\n config CPU_V7R\n \tbool\n \tselect HAS_THUMB2\n@@ -379,6 +384,11 @@ config CPU_V7R\n \tselect SYS_ARM_MPU\n \tselect SYS_CACHE_SHIFT_6\n \n+config CPU_V8M\n+\tbool\n+\tselect CPU_V78M\n+\tselect SYS_CACHE_SHIFT_6\n+\n config SYS_CPU\n \tdefault \"arm720t\" if CPU_ARM720T\n \tdefault \"arm920t\" if CPU_ARM920T\n@@ -389,6 +399,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 +413,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 +457,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_V78M || 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/Makefile b/arch/arm/cpu/armv7m/Makefile\nindex baeac9343d9..33d49dc3d35 100644\n--- a/arch/arm/cpu/armv7m/Makefile\n+++ b/arch/arm/cpu/armv7m/Makefile\n@@ -4,6 +4,7 @@\n # Wolfgang Denk, DENX Software Engineering, wd@denx.de.\n \n extra-y := start.o\n-obj-y += cpu.o cache.o\n+obj-y += cache.o\n+obj-$(CONFIG_CPU_V7M) += cpu.o\n obj-$(CONFIG_SYS_ARM_MPU) += mpu.o\n obj-$(CONFIG_SYS_ARCH_TIMER) += systick-timer.o\ndiff --git a/arch/arm/include/asm/armv7_mpu.h b/arch/arm/include/asm/armv7_mpu.h\nindex 16b9d0d1aeb..b615b1bc9dc 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_V78M\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..30db0aa9054 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_V78M\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..9c9195ad80b 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_V78M\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_V78M) += 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_V78M\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..8c471f19244 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_V78M\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..eedbb7244c6 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_V78M)\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 d3bec4677f3..d92f46f384f 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_V78M\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_V78M\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..0da33607f6d 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_V78M)\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 317ff8e9987..1f4ce13e647 100644\n--- a/cmd/Kconfig\n+++ b/cmd/Kconfig\n@@ -2084,7 +2084,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_V78M || 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..0889f3607b7 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_V78M)$(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":[]}