[lowrisc-dev] Re: Is a de facto standard memory map helpful or harmful?

Richard W.M. Jones rjones at redhat.com
Mon Jul 25 22:27:29 BST 2016

My 2c on this.  This is mostly obvious & some points are covered in
the thread already.

(1) Having a standard serial port that is present on all hardware,
located at the same address everywhere, same model everywhere, easy to
drive, available as soon as possible after boot -- just that one thing
would be a massive improvement over ARM.

(2) A single OS image[*] should be able to boot on every piece of
hardware.  Like on PCs.  I'm not going to say how you should achieve
this, but again taking ideas from PCs may not be a bad idea.  I'm
thinking: some tables describing memory (like E820), discoverable and
self-describing hardware (PCIe, USB, etc), ACPI tables[**].  For the
server case, a UEFI bootloader that loads the kernel and provides
services, probably rendering the whole memory map problem moot.

(3) It's a nice idea to reuse infrastructure that Linux, BSD, Windows
already have.  Those OSes can read ACPI tables, the code already
exists to parse PCI config space, etc.  Reusing that code means you
don't need to write something else and argue why your thing should go
upstream instead of the thing which is already upstream.

There was some discussion about a "config string", but that sounds
like a terrible idea - see point #3.  The kernel developers absolutely
do have a say in this when the architecture is brand new and you can
choose not to do something.


[*] I mean a single OS image compiled for a specific bit width variant
of RISC-V.

[**] I would say device tree, but ACPI is an actual standard, cross
platform, and also includes a way to run interpreted code which is
useful.  MSFT and Red Hat have pushed hard for ACPI in the ARM server
space -- and implemented it -- with at least some (limited) degree of

Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.

More information about the lowrisc-dev mailing list