Replies: 2 comments
This comment has been hidden.
This comment has been hidden.
-
|
We do a complete rework of the |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
I’m a bit confused about the relationship between the
start,firmwareandstartupdefinitions in aprocessordefinition.My understanding is that the
firmwaredefines how the ROM is written, which is essentially the reset vector of the processor. So when starting the full system emulation, the very first thing that gets emulated is the written reset vector.Consider the following
rv64im.vadlexample that confirms to the spike machine in QEMU.Here we write instructions to the ROM that should be the first thing that is executed when starting the machine. For us the only interesting thing is that it will load
0x80000000from memory and jump to it, which is the location where the actual bios/bare-metal program starts.However, a VADL
processormight also setstartandstartup, where start is an expression andstartupis a procedure setting things in the environment.Questions
What does the result value of
startrepresent?Is it an alternative to the firmware, so instead of specifying the firmware, one can just set the
startaddress to define where emulation should start?In this case, can the user specify only one of the two, but not both?
When is the
startupprocedure executed?Is it another alternative to
startandfirmware?Does the
firmwareread access to memory and general access to registers?I would assume no, as the firmware is only supposed to write constant data to memory.
So resource access is limited to memory writes.
Beta Was this translation helpful? Give feedback.
All reactions