You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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 toBINARY="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 insim_slot_*
afterinfrasetup
) 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.
What we would like to do is something like below
or
.
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.
The text was updated successfully, but these errors were encountered: