[libre-riscv-dev] [Bug 241] OpenPOWER SImulation is needed of standards

bugzilla-daemon at libre-riscv.org bugzilla-daemon at libre-riscv.org
Sun Mar 15 16:17:04 GMT 2020


--- Comment #6 from Luke Kenneth Casson Leighton <lkcl at lkcl.net> ---
(In reply to Luke Kenneth Casson Leighton from comment #5)
> http://pearpc.sourceforge.net/
> another one to investigate

pear is, honestly, looking a lot simpler to work with, although it's going to
take some unit tests like those in riscv-isa-tests to get it into shape.


to get whatever we need into shape it will go like this:

* get "basic" (non-GUI) ability to run "bare-metal" programs.  this involves
either overloading a system call (writing one), peek/poke to a memory address
and having the emulator say "writes to this address are directed to stdout,
reads from this address result in characters from stdin being accepted".

* start writing some *really* simple unit tests (20-50 lines of assembler) that
test "addic", "mul", etc. etc.

* begin the process of allowing dynamic (runtime) emulation of 64-bit
instructions (not a static emulator-compile-time option)

* *recompile* the unit tests using a 64-bit ppc compiler and test that those
still work

* start adding "basic" SimpleV support (a 48-bit instruction with the 16-bit
"SV" Prefix) which does *NOT* support element-width.  just a straight for-loop
on integer math.

* write unit tests - in assembler - for SVPrefix add, addic, mul etc.

* move slowly forward adding full IEEE754 FP support (using Jacob's algorithmic
library, so that we have *proper* POWER IEEE754 emulation, not "x86" IEEE754

* add in elwidth support, predication, and so on, basically replicate the
traillazing done in the spike-sv emulator.

at the same time:

* add support for dynamic LE and BE (unit tests for the same)

* attempt to compile up more recent linux kernels, boot loaders (yaboot), in
particular track down why Debian 8.0 PPC ISO cannot recognise (find) yaboot
files on the ISO

* see if the MMU (TLB) code is adequate to run a 64-bit OS

* after the 64-bit bare-metal unit tests all pass, attempt to run larger
programs and even a linux kernel.

we *might* also want to consider porting the spike pk library to powerpc.  it's
a "bare minimum POSIX environment" which will allow the absolute bare minimum
of POSIX applications to function.  or, finding something else suitable to

You are receiving this mail because:
You are on the CC list for the bug.

More information about the libre-riscv-dev mailing list