On 14 July 2016 at 22:16, Reinoud Zandijk <reinoud(a)netbsd.org> wrote:
with horror I've read the current discussion on DRAM/MMIO/devtree/etc
discussion. We're really missing the point of what lowRISC can be and in a
kind of sense, what RISCV can become.
The current discussion boils down to defining a new mode of transportation
complete with infrastructure but at the same time demanding it needs to have 4
wheels, run on petrol, has a customized Ford engine and needs 4 seats. If you
get my drift, thats not really designing a new mode of transportation but
defining yet another car. If its again just another car, why bother developing
it if the only thing it distinguishes from the competition is the fact that it
has a good service manual.
Yes, I take your point here - if you're going to be different to the
de facto standard you might as well rethink a whole bunch of
We are now in the unique position to be able to create a new software
hardware ecosystem so why settle for the fluke of the day. Now I can't speak
for the rest of the RISCV community and they might have good reasons to do it
their way, who am I to question that, but for lowRISC we ought to aim a LOT
(shameless plug here :)
Hence my proposal I posted earlier; it deals with virtualisation, device
discovery, extended debuging, hypervisor, security, strict memory isolation,
minions, software devices, etc. etc. Could very well be extended with NOMA
Less drastic solutions might be fine too, and lots of variants are possible
too so feel free to comment on it or try to shoot it down, but at least its an
effort to create something new and not follow the beaten track of say ARM.
With lowRISC we're very interested in pursuing new hardware and
software features, and going beyond just replicating something that
looks like a typical ARM/MIPS SoC. This is the reason for our focus on
minion cores and tagged memory. That said, there are major benefits in
supporting the integration of traditional devices and in reusing as
much operating system and driver code as possible. As you point out,
if you try too hard to be fully compatible with everything existing
today you'll end up looking just like everything that exists today.
There's hopefully a sensible balance somewhere between the two
extremes of throwing every existing out of the window and in
unambitiously recreating precisely a standard current-day SoC
At the RISC-V workshop last week, Krste suggested the model for
proposals to the RISC-V Foundation be that these proposals are in-line
with the minimal spirit of the RISC-V ISA and that they are
accompanied by implementations. I think a similar approach would be
useful with lowRISC. You're certainly keenly aligned with the focus on
simplicity, but it's hard to truly judge a proposal and ensure all the
details have been thought through until it has been implemented.
There's a bit of a chicken/egg problem as I can understand reluctance
to implement even a qemu/spike model of an idea until you think it's
likely to be accepted. I do think trial implementations are key
though. I hope work like the xv6 port will also help to provide a very
simple minimal OS that might be a good target for experiments that
would be difficult in a much larger codebase such as Linux or *BSD.