On Fri, Nov 18, 2016 at 5:12 PM, Sean Halle <
sean...@gmail.com> wrote:
>
> Thanks, Stefan :-)
>
> That clears things up on the Linux Front -- we have to implement all of the
> S mode CSRs. However, I'm not familiar with BBL. Do you believe that BBL
> is something that needs to be supported in a data center class server? If
> so, which extra CSRs does it use?
There's an ongoing debate about the precise role of above-S-mode
monitor code in the future RISC-V ecosystem. I am, for now, in the
"rather it not be strictly required" camp.
Data center class servers are likely to have various forms of remote
management, which might take the form of an M-mode monitor, an
above-M-mode monitor, external hardware, or something I haven't even
thought of. Trying to handle all of the requirements prior to
implementation experience is likely to just create complexity, though.
The current Linux port expects something with the downward-facing
interface of BBL. This interface is partially documented, missing a
few extensibility points (SBILIB is not self-describing and the kernel
takes no arguments), and requires a M-mode monitor, so I would rather
it not become a frozen standard as-is.
BBL uses quite a few CSRs which were undocumented in the 1.9.0 era but
I think they're documented now. Suggest searching the code for "csr"
instructions.
SiFive has a fork of BBL for their dev kits. QEMU will likely have a
fork of its own. Don't be squeamish about doing the same to support
your hardware in these early days.
-s