Close

Polaris CPU Design Incompatible With Current RV64S

A project log for Kestrel Computer Project

The Kestrel project is all about freedom of computing and the freedom of learning using a completely open hardware and software design.

samuel-a-falvo-iiSamuel A. Falvo II 05/16/2016 at 17:490 Comments

From the time I started working on the Kestrel-3 development tools and emulator, I used the currently documented Draft Privileged ISA Specification V1.7 as my guide for supporting interrupts, managing the mtohost and mfromhost CSRs (which I used to talk with the emulator directly), and other supervisory aspects of the machine.

One e-mail I got back from the HW-DEV group brought to my attention differences between the Spike ISA simulator and the V1.7 privileged ISA specs. While some changes were to be expected, I did not expect the changes to be so radically different as to basically require a complete redesign of the privileged mode all-together.

Some changes that I'm personally aware of, along with some inspired speculations:

I'm positive there are others; these are just the changes I've been able to glean from reading the git commit history.

While I look forward to seeing a finished privileged ISA specification, I also do not want to wait forever to get the Kestrel-3 working in a real FPGA. I'm going to stick with the ISA specifications as they're currently defined. This means that the Kestrel-3 will be officially incompatible with any future RISC-V Privileged ISA specifications.

I think to bring the Kestrel Project back into RISC-V compliance, I will need to release a Kestrel-4 (one which is not my April Fool's joke), which is a Kestrel-3 in every way, but with a properly compliant CPU at its core.

Discussions