-
Notifications
You must be signed in to change notification settings - Fork 260
Add tohost capabilities to cv32e20 environment #2224
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
base: cv32e20/dev
Are you sure you want to change the base?
Add tohost capabilities to cv32e20 environment #2224
Conversation
MikeOpenHWGroup
left a comment
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
| 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! |
| 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.
MikeOpenHWGroup
left a comment
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
emgens
left a comment
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.