Skip to content

Commit

Permalink
boards: intel: ish: Improve Simics support
Browse files Browse the repository at this point in the history
Improve Simics support for `boards/intel/ish/intel_ish_5_8_0`
for better integration with the simulator.

Signed-off-by: Dmitrii Golovanov <[email protected]>
  • Loading branch information
golowanow authored and kartben committed Dec 12, 2024
1 parent a03a32b commit c3cb5bd
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 23 deletions.
4 changes: 3 additions & 1 deletion boards/common/simics.board.cmake
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Copyright (c) 2023 Intel Corporation
# Copyright (c) 2023-2024 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0

set(SUPPORTED_EMU_PLATFORMS simics)

board_finalize_emu_args(simics)
5 changes: 2 additions & 3 deletions boards/intel/ish/board.cmake
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
# Copyright (c) 2023-2024 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0

set(SUPPORTED_EMU_PLATFORMS simics)

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_start_address=${CONFIG_SRAM_BASE_ADDRESS}")
include(${ZEPHYR_BASE}/boards/common/simics.board.cmake)
Expand Down
1 change: 1 addition & 0 deletions boards/intel/ish/intel_ish_5_8_0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ simulation:
supported:
- serial
testing:
timeout_multiplier: 2
ignore_tags:
- net
- bluetooth
Expand Down
50 changes: 31 additions & 19 deletions cmake/emu/simics.cmake
Original file line number Diff line number Diff line change
@@ -1,30 +1,42 @@
# Copyright (c) 2023 Intel Corporation
# Copyright (c) 2023-2024 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0

find_program(
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_SCRIPT_PATH)
set(SIMICS_SCRIPT ${SIMICS_SCRIPT_PATH})
if(SIMICS STREQUAL SIMICS-NOTFOUND)
message(WARNING "Simics simulator environment is not found at SIMICS_PROJECT:'${SIMICS_PROJECT}'")
else()
set(SIMICS_SCRIPT ${BOARD_DIR}/support/${BOARD}.simics)
endif()
message(STATUS "Found Simics: ${SIMICS}")

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
COMMAND
${SIMICS}
-no-gui
-no-win
${SIMICS_SCRIPT}
${SIMICS_ARGS}
-e run
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
DEPENDS ${logical_target_for_zephyr_elf}
USES_TERMINAL
)
get_property(SIMICS_ARGS GLOBAL PROPERTY "BOARD_EMU_ARGS_simics")

add_custom_target(run_simics
COMMAND
${SIMICS}
-no-gui
--no-win
--batch-mode
${SIMICS_SCRIPT}
${SIMICS_ARGS}
$ENV{SIMICS_EXTRA_ARGS}
-e run
WORKING_DIRECTORY ${APPLICATION_BINARY_DIR}
DEPENDS ${logical_target_for_zephyr_elf}
USES_TERMINAL
)

endif()

0 comments on commit c3cb5bd

Please sign in to comment.