Move cortex_m headers into the cortex_m directory

SoCs on ARM Cortex-M architecture need the cortex_m headers to compile
their soc/ directory. These headers were previously compiled using
a cc_library in the top-level BUILD.bazel. This change moves it to
the proper location.

Change-Id: I3111a9123a8bebfd2e5e040593a2788a34c9c130
Reviewed-on: https://pigweed-review.googlesource.com/c/zephyr/zephyr-bazel/+/295869
Presubmit-Verified: CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com>
Lint: Lint 🤖 <android-build-ayeaye@system.gserviceaccount.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Pigweed-Auto-Submit: Yicheng Li <yichengli@google.com>
Commit-Queue: Yicheng Li <yichengli@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index 9d6c871..2d7e358 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -121,33 +121,6 @@
     ],
 )
 
-cc_library(
-    name = "cortex_m",
-    hdrs = [
-        "//arch/arm:cortex_m",
-        "//include:zephyr/arch/arm/cortex_m/arm_mpu_mem_cfg.h",
-        "//include:zephyr/arch/arm/cortex_m/cpu.h",
-        "//include:zephyr/arch/arm/cortex_m/exception.h",
-        "//include:zephyr/arch/arm/cortex_m/fpu.h",
-        "//include:zephyr/arch/arm/cortex_m/memory_map.h",
-        "//include:zephyr/arch/arm/cortex_m/nvic.h",
-        "//include:zephyr/arch/arm/mpu/arm_mpu.h",
-        "//include:zephyr/arch/arm/mpu/arm_mpu_v7m.h",
-    ],
-    copts = ["-include generated/zephyr/autoconf.h"],
-    includes = [
-        "arch/arm/include",
-        "include",
-    ],
-    deps = [
-        "//:autoconf_library",
-        "//:dts_cc_library",
-        "//:zephyr",
-        "//modules/cmsis",
-        "@cmsis//:core",
-    ],
-)
-
 exports_files([
     "cc.bzl",
     "defs.bzl",
diff --git a/arch/arm/BUILD.bazel b/arch/arm/BUILD.bazel
index 02f1f09..8697d39 100644
--- a/arch/arm/BUILD.bazel
+++ b/arch/arm/BUILD.bazel
@@ -33,10 +33,14 @@
     "//:dts_cc_library",
     "//:soc",
     "//kernel:offset",
-    "//:cortex_m",
     "//modules/cmsis",
     "@cmsis//:core",
-  ]
+  ] + select({
+    "//conditions:default": [],
+    "@kconfig//:CONFIG_CPU_CORTEX_M=true": [
+        "//arch/arm/core/cortex_m:headers",
+    ],
+  }),
 )
 
 filegroup(
@@ -46,4 +50,4 @@
     "include/kernel_arch_func.h",
     "include/offsets_short_arch.h",
   ] + glob(["include/cortex_m/**/*.h"]),
-)
\ No newline at end of file
+)
diff --git a/arch/arm/core/cortex_m/BUILD.bazel b/arch/arm/core/cortex_m/BUILD.bazel
index e2e5700..e645f7a 100644
--- a/arch/arm/core/cortex_m/BUILD.bazel
+++ b/arch/arm/core/cortex_m/BUILD.bazel
@@ -44,6 +44,33 @@
     """,
 )
 
+cc_library(
+    name = "headers",
+    hdrs = [
+        "//arch/arm:cortex_m",
+        "//include:zephyr/arch/arm/cortex_m/arm_mpu_mem_cfg.h",
+        "//include:zephyr/arch/arm/cortex_m/cpu.h",
+        "//include:zephyr/arch/arm/cortex_m/exception.h",
+        "//include:zephyr/arch/arm/cortex_m/fpu.h",
+        "//include:zephyr/arch/arm/cortex_m/memory_map.h",
+        "//include:zephyr/arch/arm/cortex_m/nvic.h",
+        "//include:zephyr/arch/arm/mpu/arm_mpu.h",
+        "//include:zephyr/arch/arm/mpu/arm_mpu_v7m.h",
+    ],
+    includes = [
+        "../../../../arch/arm/include",
+        "../../../../include",
+    ],
+    deps = [
+        "//:autoconf_library",
+        "//:dts_cc_library",
+        "//:zephyr",
+        "//modules/cmsis",
+        "@cmsis//:core",
+    ],
+    visibility = ["//:__subpackages__"],
+)
+
 zephyr_cc_library(
     name = "cortex_m",
     srcs = [
@@ -63,11 +90,11 @@
     hdrs = ["vector_table.h"],
     includes = ["."],
     deps = [
+        ":headers",
         "//arch/arm/core",
         "//kernel",
         "//lib/os",
         "//modules/cmsis",
-        "//subsys/mem_mgmt",
     ],
     alwayslink = True,
 )
diff --git a/arch/arm/core/mpu/BUILD.bazel b/arch/arm/core/mpu/BUILD.bazel
index dd15a3d..1e24749 100644
--- a/arch/arm/core/mpu/BUILD.bazel
+++ b/arch/arm/core/mpu/BUILD.bazel
@@ -36,5 +36,6 @@
     deps = [
         "//:offsets_header_lib",
         "//modules/cmsis",
+        "//subsys/mem_mgmt",
     ],
 )
diff --git a/soc/atmel/sam/BUILD.bazel b/soc/atmel/sam/BUILD.bazel
index 305117e..663d280 100644
--- a/soc/atmel/sam/BUILD.bazel
+++ b/soc/atmel/sam/BUILD.bazel
@@ -50,7 +50,7 @@
         "samx7x",
     ],
     deps = [
-        "//:cortex_m",
+        "//arch/arm/core/cortex_m:headers",
         "@hal_atmel//:same70b",
     ],
     skip_deps = ["//:soc"],