-
Notifications
You must be signed in to change notification settings - Fork 55
Zephyr introduce ARCv2(EMSK boards) support #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
EvgeniiDidin
wants to merge
4
commits into
zephyrproject-rtos:zephyr-20190226
from
EvgeniiDidin:zephyr_introduce_arc_v2
Closed
Zephyr introduce ARCv2(EMSK boards) support #14
EvgeniiDidin
wants to merge
4
commits into
zephyrproject-rtos:zephyr-20190226
from
EvgeniiDidin:zephyr_introduce_arc_v2
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ARCv2 EMSK boards are separatly supported in Zephyr and OpenOCD. With this patch we introduce necessary structures for ARCv2 target support in OpenOCD/Zephyr. Signed-off-by: Evgeniy Didin <[email protected]>
With this commit we introduce ARCv2 part of get_thread_reg_list function. In ARC case the stack layout is different from ARM. Signed-off-by: Evgeniy Didin <[email protected]>
Depending on Zephyr ARC_HAS_SECURE(availablity of security subsystem) option the thread stack contents differ. With this patch we are adding correct check if EM has security subsystem. Signed-off-by: Evgeniy Didin <[email protected]>
Signed-off-by: Evgeniy Didin <[email protected]>
Can you update this to be against the zephyr-20191003 branch. |
abrodkin
added a commit
to abrodkin/openocd
that referenced
this pull request
Nov 10, 2021
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () zephyrproject-rtos#1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 zephyrproject-rtos#2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 zephyrproject-rtos#3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 zephyrproject-rtos#4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 zephyrproject-rtos#5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 zephyrproject-rtos#6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 zephyrproject-rtos#7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 zephyrproject-rtos#8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 zephyrproject-rtos#9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 zephyrproject-rtos#10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 zephyrproject-rtos#11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 zephyrproject-rtos#12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 zephyrproject-rtos#13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 zephyrproject-rtos#14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
galak
pushed a commit
that referenced
this pull request
Nov 10, 2021
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 #2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 #3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 #4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 #5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 #6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 #7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 #8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 #9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 #10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 #11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 #12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 #13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 #14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
aaillet
pushed a commit
to iotbzh/openocd
that referenced
this pull request
May 9, 2022
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () zephyrproject-rtos#1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 zephyrproject-rtos#2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 zephyrproject-rtos#3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 zephyrproject-rtos#4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 zephyrproject-rtos#5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 zephyrproject-rtos#6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 zephyrproject-rtos#7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 zephyrproject-rtos#8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 zephyrproject-rtos#9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 zephyrproject-rtos#10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 zephyrproject-rtos#11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 zephyrproject-rtos#12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 zephyrproject-rtos#13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 zephyrproject-rtos#14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
stephanosio
pushed a commit
that referenced
this pull request
Jun 14, 2022
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 #2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 #3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 #4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 #5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 #6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 #7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 #8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 #9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 #10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 #11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 #12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 #13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 #14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
stephanosio
pushed a commit
to stephanosio/zephyr-openocd
that referenced
this pull request
Jun 14, 2022
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () zephyrproject-rtos#1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 zephyrproject-rtos#2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 zephyrproject-rtos#3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 zephyrproject-rtos#4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 zephyrproject-rtos#5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 zephyrproject-rtos#6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 zephyrproject-rtos#7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 zephyrproject-rtos#8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 zephyrproject-rtos#9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 zephyrproject-rtos#10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 zephyrproject-rtos#11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 zephyrproject-rtos#12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 zephyrproject-rtos#13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 zephyrproject-rtos#14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
stephanosio
pushed a commit
that referenced
this pull request
Jun 14, 2022
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 #2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 #3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 #4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 #5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 #6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 #7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 #8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 #9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 #10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 #11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 #12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 #13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 #14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
nashif
pushed a commit
that referenced
this pull request
Feb 14, 2025
In zephyrproject-rtos/zephyr#35284 it was found that use of "verify_image" command for ARC boards lead to OpenOCD segfault: --------------------------->8-------------------------- Program received signal SIGSEGV, Segmentation fault. 0x0000000000000000 in ?? () (gdb) bt #0 0x0000000000000000 in ?? () #1 0x0000000000455e27 in target_checksum_memory (target=target@entry=0xa52450, address=2415919104, size=19952, crc=crc@entry=0x7fffffffcf64) at src/target/target.c:2522 #2 0x0000000000456066 in handle_verify_image_command_internal (cmd=0x7fffffffd040, verify=IMAGE_VERIFY) at src/target/target.c:3846 #3 0x000000000047e4ca in run_command (num_words=2, words=0xa80800, c=0x9f3ea0, context=0x9a7010) at src/helper/command.c:582 #4 exec_command (argv=0x7fffffffd140, argc=<optimized out>, c=0x9f3ea0, cmd_ctx=0x9a7010, interp=0x9a7070) at src/helper/command.c:950 #5 jim_command_dispatch (interp=0x9a7070, argc=<optimized out>, argv=0x7fffffffd140) at src/helper/command.c:1001 #6 0x00000000005b839a in JimInvokeCommand (interp=interp@entry=0x9a7070, objc=objc@entry=2, objv=objv@entry=0x7fffffffd140) at jim.c:10514 #7 0x00000000005b8fbc in Jim_EvalObj (interp=interp@entry=0x9a7070, scriptObjPtr=scriptObjPtr@entry=0x9e96d0) at jim.c:11006 #8 0x00000000005bb12b in Jim_EvalSource (interp=interp@entry=0x9a7070, filename=filename@entry=0x0, lineno=lineno@entry=0, script=script@entry=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at jim.c:11298 #9 0x000000000047df5f in command_run_line (context=context@entry=0x9a7010, line=0x9e0db0 "verify_image build/zephyr/zephyr.elf") at src/helper/command.c:626 #10 0x000000000047f6b8 in parse_config_file (cmd_ctx=cmd_ctx@entry=0x9a7010) at src/helper/configuration.c:136 #11 0x00000000004053ae in openocd_thread (cmd_ctx=0x9a7010, argv=0x7fffffffd378, argc=18) at src/openocd.c:296 #12 openocd_main (argc=18, argv=0x7fffffffd378) at src/openocd.c:356 #13 0x00007ffff710d505 in __libc_start_main () from /lib64/libc.so.6 #14 0x0000000000404e9e in _start () --------------------------->8-------------------------- That happens because we used to have ".checksum_memory" undefined for ARC. And it was undefined on purpose as we never got to implement a target-executed applet for CRC calculation. But there seems to be a work-around of using real memory read back via JTAG. And for that we just need to return anything != ERROR_OK from ".checksum_memory()" callback. Which we do here. Now image verification works for ARC as well! Signed-off-by: Alexey Brodkin <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ARC EMSK boards have support in both OpenOCD and Zephyr projects.
With this series of patches the support of ARCv2 architecture for Zephyr is introduced into OpenOCD.