On 5/26/2024 8:10 PM, Stuart Ianna wrote:
Some of the integration at this level is going to be tricky, as Litex
customisations may not be risc-v generic.
The only guideline with this is that all RISC-V-and-Litex-specificlogic
needs to be constrained to reside in arch/risc-v/src or
boards/riscv/litex/src/litex and board/risc-v. That assures modularity
and keeps the common code from devolving into a mess of conditional logic.
Header files containing RISC-V-and-Litex-specific definitions should
similarly go in arch/riscv/include or boards/riscv/litex.
Different topic ...
NOTE also that there are two "copies" of most (but not all) system
calls: One is for use by applications and calls the system call proxy.
The other lies inside the kernel and is normally called by the OS, but
also by the corresponding system call stub. I think in the model you are
thinking about, the former would operate in user space using user space
mappings (with no system call) and the latter would use kernel space
mappings (it could not use user space mappings because those may not be
in place when called asynchronously within the OS).