Browse Source
Removes support for the deprecated hardware model version 1 Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>pull/87068/head
23 changed files with 131 additions and 387 deletions
@ -1,5 +0,0 @@
@@ -1,5 +0,0 @@
|
||||
# Copyright (c) 2023 Nordic Semiconductor ASA |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# Note: $ARCH might be a glob pattern |
||||
source "$(ARCH_DIR)/$(ARCH)/Kconfig" |
@ -1,5 +0,0 @@
@@ -1,5 +0,0 @@
|
||||
# Copyright (c) 2023 Nordic Semiconductor ASA |
||||
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
source "$(KCONFIG_BINARY_DIR)/arch/Kconfig" |
@ -1,14 +0,0 @@
@@ -1,14 +0,0 @@
|
||||
# Copyright (c) 2022 Nordic Semiconductor ASA |
||||
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# In HWMv1 the KCONFIG_BOARD_DIR points directly to the BOARD_DIR. |
||||
# Set the BOARD_DIR variable for backwards compatibility to legacy hardware model. |
||||
BOARD_DIR := $(KCONFIG_BOARD_DIR) |
||||
|
||||
choice |
||||
prompt "Board Selection" |
||||
|
||||
source "$(KCONFIG_BOARD_DIR)/Kconfig.board" |
||||
|
||||
endchoice |
@ -1,54 +0,0 @@
@@ -1,54 +0,0 @@
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
# |
||||
# Copyright (c) 2022, Nordic Semiconductor ASA |
||||
|
||||
# |
||||
# This CMake module is only valid for hw model v1. |
||||
# In hw model v1, then arch is determined by the board folder structure. |
||||
# |
||||
# Configure ARCH settings based on board directory and arch root. |
||||
# |
||||
# This CMake module will set the following variables in the build system based |
||||
# on board directory and arch root. |
||||
# |
||||
# If no implementation is available for the current arch an error will be raised. |
||||
# |
||||
# Outcome: |
||||
# The following variables will be defined when this CMake module completes: |
||||
# |
||||
# - ARCH: Name of the arch in use. |
||||
# - ARCH_DIR: Directory containing the arch implementation. |
||||
# - ARCH_ROOT: ARCH_ROOT with ZEPHYR_BASE appended |
||||
# |
||||
# Variable dependencies: |
||||
# - ARCH_ROOT: CMake list of arch roots containing arch implementations |
||||
# - BOARD_DIR: CMake variable specifying the directory of the selected BOARD |
||||
# |
||||
# Variables set by this module and not mentioned above are considered internal |
||||
# use only and may be removed, renamed, or re-purposed without prior notice. |
||||
|
||||
include_guard(GLOBAL) |
||||
|
||||
if(HWMv1) |
||||
# 'ARCH_ROOT' is a prioritized list of directories where archs may be |
||||
# found. It always includes ${ZEPHYR_BASE} at the lowest priority (except for unittesting). |
||||
if(NOT unittest IN_LIST Zephyr_FIND_COMPONENTS) |
||||
list(APPEND ARCH_ROOT ${ZEPHYR_BASE}) |
||||
endif() |
||||
|
||||
cmake_path(GET BOARD_DIR PARENT_PATH board_arch_dir) |
||||
cmake_path(GET board_arch_dir FILENAME ARCH) |
||||
|
||||
foreach(root ${ARCH_ROOT}) |
||||
if(EXISTS ${root}/arch/${ARCH}/CMakeLists.txt) |
||||
set(ARCH_DIR ${root}/arch) |
||||
break() |
||||
endif() |
||||
endforeach() |
||||
|
||||
if(NOT ARCH_DIR) |
||||
message(FATAL_ERROR "Could not find ARCH=${ARCH} for BOARD=${BOARD}, \ |
||||
please check your installation. ARCH roots searched: \n\ |
||||
${ARCH_ROOT}") |
||||
endif() |
||||
endif() |
@ -1,75 +0,0 @@
@@ -1,75 +0,0 @@
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
# |
||||
# Copyright (c) 2021, Nordic Semiconductor ASA |
||||
|
||||
# Configure SoC settings based on Kconfig settings and SoC root. |
||||
# |
||||
# This CMake module will set the following variables in the build system based |
||||
# on Kconfig settings and selected SoC. |
||||
# |
||||
# If no implementation is available for the selected SoC an error will be raised. |
||||
# |
||||
# Outcome: |
||||
# The following variables will be defined when this CMake module completes: |
||||
# |
||||
# - SOC_NAME: Name of the SoC in use, identical to CONFIG_SOC |
||||
# - SOC_SERIES: Name of the SoC series in use, identical to CONFIG_SOC_SERIES |
||||
# - SOC_FAMILY: Name of the SoC family, identical to CONFIG_SOC_FAMILY |
||||
# - SOC_PATH: Path fragment defined by either SOC_NAME or SOC_FAMILY/SOC_SERIES. |
||||
# - SOC_DIR: Directory containing the SoC implementation |
||||
# - SOC_ROOT: SOC_ROOT with ZEPHYR_BASE appended |
||||
# |
||||
# Variable dependencies: |
||||
# - SOC_ROOT: CMake list of SoC roots containing SoC implementations |
||||
# |
||||
# Variables set by this module and not mentioned above are considered internal |
||||
# use only and may be removed, renamed, or re-purposed without prior notice. |
||||
|
||||
include_guard(GLOBAL) |
||||
|
||||
include(kconfig) |
||||
|
||||
if(HWMv1) |
||||
# 'SOC_ROOT' is a prioritized list of directories where socs may be |
||||
# found. It always includes ${ZEPHYR_BASE}/soc at the lowest priority. |
||||
list(APPEND SOC_ROOT ${ZEPHYR_BASE}) |
||||
|
||||
set(SOC_NAME ${CONFIG_SOC}) |
||||
set(SOC_SERIES ${CONFIG_SOC_SERIES}) |
||||
set(SOC_TOOLCHAIN_NAME ${CONFIG_SOC_TOOLCHAIN_NAME}) |
||||
set(SOC_FAMILY ${CONFIG_SOC_FAMILY}) |
||||
|
||||
if("${SOC_SERIES}" STREQUAL "") |
||||
set(SOC_PATH ${SOC_NAME}) |
||||
else() |
||||
set(SOC_PATH ${SOC_FAMILY}/${SOC_SERIES}) |
||||
endif() |
||||
|
||||
# Use SOC to search for a 'CMakeLists.txt' file. |
||||
# e.g. zephyr/soc/xtensa/intel_adsp/CMakeLists.txt. |
||||
foreach(root ${SOC_ROOT}) |
||||
# Check that the root looks reasonable. |
||||
if(NOT IS_DIRECTORY "${root}/soc") |
||||
message(WARNING "\nSOC_ROOT element(s) without a 'soc' subdirectory: |
||||
${root} |
||||
Hints: |
||||
- if your SoC family directory is '/foo/bar/soc/<ARCH>/my_soc_family', then add '/foo/bar' to SOC_ROOT, not the entire SoC family path |
||||
- if in doubt, use absolute paths\n") |
||||
endif() |
||||
|
||||
if(EXISTS ${root}/soc/${ARCH}/${SOC_PATH}) |
||||
set(SOC_DIR ${root}/soc) |
||||
break() |
||||
endif() |
||||
endforeach() |
||||
|
||||
if(NOT SOC_DIR) |
||||
message(FATAL_ERROR "Could not find SOC=${SOC_NAME} for BOARD=${BOARD},\n" |
||||
"please check your installation.\n" |
||||
"SOC roots searched:\n" |
||||
"${SOC_ROOT}\n" |
||||
) |
||||
endif() |
||||
|
||||
set(SOC_FULL_DIR ${SOC_DIR}/${ARCH}/${SOC_PATH}) |
||||
endif() |
@ -1,5 +0,0 @@
@@ -1,5 +0,0 @@
|
||||
# Copyright (c) 2023 Nordic Semiconductor |
||||
# |
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
# Intentionally left empty as sysbuild Kconfig doesn't support hw model v1. |
@ -1,25 +0,0 @@
@@ -1,25 +0,0 @@
|
||||
# Copyright (c) 2023 Nordic Semiconductor ASA |
||||
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
config SOC |
||||
string |
||||
help |
||||
SoC name. The value of this setting must be defined by the selected |
||||
SoC for hw model v2. |
||||
|
||||
config SOC_SERIES |
||||
string |
||||
help |
||||
SoC series. The value of this setting must be defined by the selected |
||||
SoC if the SoC belongs to a common series. |
||||
|
||||
config SOC_FAMILY |
||||
string |
||||
help |
||||
SoC family. The value of this setting must be defined by the selected |
||||
SoC if the SoC belongs to a SoC family. Usually a SoC family also |
||||
indicates the vendor of the SoC. |
||||
|
||||
# This loads custom SoC root Kconfig (only available if custom SoC root are defined) |
||||
osource "$(KCONFIG_BINARY_DIR)/soc/Kconfig.soc.arch" |
@ -1,11 +0,0 @@
@@ -1,11 +0,0 @@
|
||||
# Copyright (c) 2023 Nordic Semiconductor ASA |
||||
|
||||
# SPDX-License-Identifier: Apache-2.0 |
||||
|
||||
choice |
||||
prompt "SoC/CPU/Configuration Selection" |
||||
|
||||
# This loads custom SoC root Kconfig (only available if custom SoC root are defined) |
||||
osource "$(KCONFIG_BINARY_DIR)/soc/Kconfig.soc.choice" |
||||
|
||||
endchoice |
Loading…
Reference in new issue