-
Notifications
You must be signed in to change notification settings - Fork 227
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
Add tohost capabilities to cv32e20 environment #2224
base: cv32e20/dev
Are you sure you want to change the base?
Add tohost capabilities to cv32e20 environment #2224
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have a few questions about this. Let's discuss in our weekly meeting with the E20 team on Tuesday (2023-10-03).
cv32e20/bsp/link.ld
Outdated
@@ -65,6 +65,8 @@ SECTIONS | |||
KEEP(*(.vectors)); | |||
} >ram | |||
|
|||
.tohost : { *(.tohost) } >ram |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a comment here.
vendor/elfloader/Makefile
Outdated
# Copyright 2022 OpenHW Group | ||
# SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 | ||
|
||
# Makefile for the CV32E20 "Board Support Package". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comment seems to be in need of an update.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True 👍
9fd9934
to
7c9cf7d
Compare
Hi @MarioOpenHWGroup. This PR now has a couple of conflicts. Can you resolve these? Thanks! |
@@ -26,6 +26,8 @@ typedef class uvme_cv32e20_vp_sig_writer_seq_c; | |||
typedef class uvme_cv32e20_vp_status_flags_seq_c; | |||
typedef class uvme_cv32e20_vp_rand_num_seq_c; | |||
|
|||
import "DPI-C" function longint read_symbol(input string symbol, output longint unsigned address); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be good to have some comments here about the purpose of these DPI functions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @MarioOpenHWGroup. I resolved the conflicts and conducted another review. I have several comments that we should probably review "in person".
4d65f88
to
c72639b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good.
c72639b
to
a1cf2b1
Compare
* cv32e20/bsp/crt0.s: add tohost symbol declaration * cv32e20/bsp/link.ld: add tohost symbol linking address * cv32e20/bsp/syscalls.c: add tohost store in the exit function * cv32e20/env/corev-dv/cv32e20_instr_gen_config.sv: add rule to enforce not ZERO reg used in the scratch reg. This constraint was already implemented but not working with vsim * cv32e20/env/uvme/uvme_cv32e20_env.sv: add mechanism to load symbols from the binary for the execution exit. * cv32e20/env/uvme/vseq/uvme_cv32e20_vp_status_flags_seq.sv: Adapt code to host format ( {exit_value, 1} ) * cv32e40p/env/uvme/uvme_rv32isa_covg_trn.sv: substitute uvm_objects_utils(begin/end) for a simple uvm_object_utils * lib/corev-dv/corev_asm_program_gen.sv: delete wfi for locking the core and add tohost mechanism * lib/uvm_agents/uvma_obi_memory/src/comps/uvma_obi_memory_mon.sv: vsim complaining for using passive_mp * lib/uvm_libs/uvml_sb/uvml_sb_cntxt.sv: delete T_TRN type for event as it causes vsim to fail simulation * mk/Common.mk: add compilation for elfloader vendor * mk/uvmt/vsim.mk: add comilation for elfloader vendor and delete clean_riscv-dv on each corev-dv generation * vendor/elfloader/Makefile: add elfloader vendor * vendor/elfloader/elfloader.cc: add elfloader vendor * lib/corev-dv/corev_asm_program_gen.sv: delete wfi and add syscall on ecall * cv32e20/tests/programs/custom/riscv_arithmetic_basic_test_*: change align of trap handler to 8
a1cf2b1
to
91b04f9
Compare
Add tohost mechanism instead of the in-house one that we had to end the tests.