Skip to content
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

FireSim pk support #1633

Open
2 tasks done
joonho3020 opened this issue Aug 8, 2023 · 0 comments
Open
2 tasks done

FireSim pk support #1633

joonho3020 opened this issue Aug 8, 2023 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@joonho3020
Copy link
Contributor

Background Work

Feature Description

In chipyard sims, we can use the proxy kernel (PK) to run bare metal binaries that require certain system calls by simply setting the BINARY field to BINARY="pk <your binary>". In FireSim, this isn't supported, resulting in users having to boot Linux if they want to run programs that require OS support. By having PK support, FireSim would load PK via loadmem, and PK will load the program to run by the htif/fesvr interface after which, fesvr can proxy a set of system calls for the program.

However, the FireSim simulation command (written in the sim-run.sh file in sim_slot_* after infrasetup) is not capable of recognizing the program binary to pass on to PK.

Motivating Example

The problem boils down to this.
Below is our good old FireSim run command for VCS-metasims.

./FireSim +permissive  <bunch of arguments> +permissive-off +prog0=hello-pk0-hello-world.riscv 

What we would like to do is something like below

./FireSim +permissive  <bunch of arguments> +permissive-off +prog0=pk hello-pk0-hello-world.riscv 

or

./FireSim +permissive  <bunch of arguments> +permissive-off +prog0=\"pk hello-pk0-hello-world.riscv\"

.
In the first method, PK simply does not recognize the binary to run and spins until it times out.
VCS complains about invalid arguments about the second method.

@joonho3020 joonho3020 added the enhancement New feature or request label Aug 8, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants