Skip to content

Get started with Trusted Firmware-M: Is FVP_Corstone_SSE-300 supposed to require an executable stack? #2038

Open
@solomonbstoner

Description

@solomonbstoner

Type of issue

  • Instructions in the learning path do not work.
  • Spelling error in the learning path.
  • Instructions in the learning path are hard to follow.
  • Instructions to contribute a new learning path are not clear.
  • Clarification needed

Describe the issue
Is FVP_Corstone_SSE-300 is supposed to require an executable stack?

To Reproduce

Learning Path: https://learn.arm.com/learning-paths/embedded-and-microcontrollers/tfm/

In the section "Run the TF-M tests on the Corstone-300 FVP", the learner is instructed to run FVP_Corstone_SSE-300_Ethos-U55. I ran the command as described. However, I ran into the error shown below.

(myvenv) user@vm:~/Downloads/trustzone-m$ /home/user/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/FVP_Corstone_SSE-300_Ethos-U55 -a cpu0*=build/tests-spe/bin/bl2.axf --data build/tests/tfm_s_ns_signed.bin@0x38000000 -C mps3_board.visualisation.disable-visualisation=1 -C mps3_board.telnetterminal0.start_telnet=0 -C mps3_board.uart0.out_file=/dev/stdout

Error: (E549) uncaught exception: /home/user/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/libarmctmodel.so: cannot enable executable stack as shared object requires: Invalid argument
/home/user/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/libarmctmodel.so: cannot enable executable stack as shared object requires: Invalid argument
libarmctmodel.so: cannot enable executable stack as shared object requires: Invalid argument

In file: /tmp/plgbuild/abs_build/1370860_72472/trunk/linux_3.10-redhat_10.7-x86_64-rel_work/systemc-2.3.4/src/sysc/kernel/sc_except.cpp:101

FVP_Corstone_SSE-300_Ethos-U55 will only run after I mark its stack as executable. It is not mentioned in the Learning Path that this is required.

(myvenv) user@vm:~/Downloads/trustzone-m$ execstack -s /home/user/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/FVP_Corstone_SSE-300_Ethos-U55
(myvenv) user@vm:~/Downloads/trustzone-m$ /home/user/FVP_Corstone_SSE-300/models/Linux64_GCC-9.3/FVP_Corstone_SSE-300_Ethos-U55 -a cpu0*=build/tests-spe/bin/bl2.axf --data build/tests/tfm_s_ns_signed.bin@0x38000000 -C mps3_board.visualisation.disable-visualisation=1 -C mps3_board.telnetterminal0.start_telnet=0 -C mps3_board.uart0.out_file=/dev/stdout
telnetterminal0: Listening for serial connection on port 5000
telnetterminal1: Listening for serial connection on port 5001
telnetterminal2: Listening for serial connection on port 5002
telnetterminal5: Listening for serial connection on port 5003

    Ethos-U rev 136b7d75 --- Apr  8 2024 21:45:17
    (C) COPYRIGHT 2019-2024 Arm Limited
    ALL RIGHTS RESERVED

Expected behavior
I expected FVP_Corstone_SSE-300_Ethos-U55 to run without having to mark its stack as executable. It is not mentioned anywhere in the Learning Path or FVP installation guide that the stack has to be marked as executable.

Desktop (please complete the following information):

  • OS: Ubuntu 25.04 LTS

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions