Browse Source

boards: intel: ish: Improve Simics support

Improve Simics support for `boards/intel/ish/intel_ish_5_8_0`
for better integration with the simulator.

Signed-off-by: Dmitrii Golovanov <dmitrii.golovanov@intel.com>
pull/82870/head
Dmitrii Golovanov 2 years ago committed by Benjamin Cabé
parent
commit
c3cb5bd376
  1. 4
      boards/common/simics.board.cmake
  2. 5
      boards/intel/ish/board.cmake
  3. 1
      boards/intel/ish/intel_ish_5_8_0.yaml
  4. 50
      cmake/emu/simics.cmake

4
boards/common/simics.board.cmake

@ -1,5 +1,7 @@
# Copyright (c) 2023 Intel Corporation # Copyright (c) 2023-2024 Intel Corporation
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(SUPPORTED_EMU_PLATFORMS simics)
board_finalize_emu_args(simics) board_finalize_emu_args(simics)

5
boards/intel/ish/board.cmake

@ -1,9 +1,8 @@
# Copyright (c) 2023-2024 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
set(SUPPORTED_EMU_PLATFORMS simics)
if(CONFIG_BOARD_INTEL_ISH_5_8_0) if(CONFIG_BOARD_INTEL_ISH_5_8_0)
board_emu_args(simics "project=$ENV{SIMICS_PROJECT}")
board_emu_args(simics "zephyr_elf=${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}") board_emu_args(simics "zephyr_elf=${APPLICATION_BINARY_DIR}/zephyr/${KERNEL_ELF_NAME}")
board_emu_args(simics "zephyr_start_address=${CONFIG_SRAM_BASE_ADDRESS}") board_emu_args(simics "zephyr_start_address=${CONFIG_SRAM_BASE_ADDRESS}")
include(${ZEPHYR_BASE}/boards/common/simics.board.cmake) include(${ZEPHYR_BASE}/boards/common/simics.board.cmake)

1
boards/intel/ish/intel_ish_5_8_0.yaml

@ -11,6 +11,7 @@ simulation:
supported: supported:
- serial - serial
testing: testing:
timeout_multiplier: 2
ignore_tags: ignore_tags:
- net - net
- bluetooth - bluetooth

50
cmake/emu/simics.cmake

@ -1,30 +1,42 @@
# Copyright (c) 2023 Intel Corporation # Copyright (c) 2023-2024 Intel Corporation
# #
# SPDX-License-Identifier: Apache-2.0 # SPDX-License-Identifier: Apache-2.0
find_program( find_program(
SIMICS SIMICS
NAMES simics NAMES simics
NO_DEFAULT_PATH
PATHS ENV SIMICS_PROJECT
# Search exactly for the project's autogenerated 'trampoline' script.
) )
zephyr_get(SIMICS_SCRIPT_PATH SYSBUILD GLOBAL) if(SIMICS STREQUAL SIMICS-NOTFOUND)
if(SIMICS_SCRIPT_PATH) message(WARNING "Simics simulator environment is not found at SIMICS_PROJECT:'${SIMICS_PROJECT}'")
set(SIMICS_SCRIPT ${SIMICS_SCRIPT_PATH})
else() else()
set(SIMICS_SCRIPT ${BOARD_DIR}/support/${BOARD}.simics) message(STATUS "Found Simics: ${SIMICS}")
endif()
get_property(SIMICS_ARGS GLOBAL PROPERTY "BOARD_EMU_ARGS_simics") zephyr_get(SIMICS_SCRIPT_PATH SYSBUILD GLOBAL)
if(SIMICS_SCRIPT_PATH)
set(SIMICS_SCRIPT ${SIMICS_SCRIPT_PATH})
else()
set(SIMICS_SCRIPT ${BOARD_DIR}/support/${BOARD}.simics)
endif()
add_custom_target(run_simics get_property(SIMICS_ARGS GLOBAL PROPERTY "BOARD_EMU_ARGS_simics")
COMMAND
${SIMICS} add_custom_target(run_simics
-no-gui COMMAND
-no-win ${SIMICS}
${SIMICS_SCRIPT} -no-gui
${SIMICS_ARGS} --no-win
-e run --batch-mode
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR} ${SIMICS_SCRIPT}
DEPENDS ${logical_target_for_zephyr_elf} ${SIMICS_ARGS}
USES_TERMINAL $ENV{SIMICS_EXTRA_ARGS}
) -e run
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
DEPENDS ${logical_target_for_zephyr_elf}
USES_TERMINAL
)
endif()

Loading…
Cancel
Save