Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft: initial integration with ISA manual #566

Open
wants to merge 3,736 commits into
base: main
Choose a base branch
from

Conversation

arichardson
Copy link
Collaborator

This is a VERY early draft - so far just pulled in some of the quickstart into a new RV32CH/RV64CH chapter.

Not to be merged into main!

aswaterman and others added 30 commits July 23, 2024 16:00
…ng exit NOP (#1539)

* There is only one semihosting call, not several

The comment suggested otherwise.

* Add NOTE to HINT section about semihosting NOPs
* Clarify that MXR affects explicit memory accesses only

This matches what the sstatus.MXR field definition already says: it affects
loads, rather than reads.

Resolves #1061

* Add MXR clarification preface entry
…1540)

* Remove redundant comment about zero-extension

The Zicsr spec already says that CSRs narrower than XLEN are zero-extended.

* Remove out-of-place comment about base ISA

This is a property of the Zicsr extension, not a property of Zkr.

* Clarify that only read-only accesses to the seed CSR are forbidden

Write-only accesses are legal (though not useful).
Symmetric with defining J pseudoinstruction earlier in the same section.

Resolves #1253
Original text: "A wfi ot pause mechanism..."
The 'ot' should be changed to 'or'
…ove all the false positives) (#1561)

Signed-off-by: Kevin Broch <[email protected]>
This doesn't change the meaning of the pseudocode because "raise" is presumably
a terminal statement, but it makes the code easier to read.

h/t @tsaiyenting
GitHub Actions runners are multicores; take advantage of that.
Signed-off-by: Afonso Oliveira <[email protected]>
vragather -> vrgather in Zvkt section

Signed-off-by: Nicolas Brunie <[email protected]>
Remove claim that minstretcfg/mcyclecfg bits 57:56 are reserved for future priv modes

Signed-off-by: Beeman Strong <[email protected]>
* Changing .adoc to .edu for wavedrom files

* more adoc to edn

* Update src/rv32.adoc

Signed-off-by: Kersten Richter <[email protected]>

---------

Signed-off-by: Kersten Richter <[email protected]>
* Remove references from titles.

Moving references that are in titles and break section numbering to beneath
the section titles.

* Switch xrefstyle back to short.

Didn't mean to leave this set to full xrefstyle.
Podman is a Docker replacement, which is developed by RedHat and available
on related Linux distributions (e.g. RHEL or Fedora).  Podman differs from
Docker in several security-related aspects.  One of them is, that Podman
requires poper SELinux labels on volume content mounted into a container.
This difference to Docker results in the following error when building
the specification:

  Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
  /var/lib/gems/3.0.0/gems/asciidoctor-2.0.23/lib/asciidoctor/cli/options.rb:238:in `stat': Permission denied @ rb_file_s_stat - src/riscv-privileged.adoc (Errno::EACCES)
	from /var/lib/gems/3.0.0/gems/asciidoctor-2.0.23/lib/asciidoctor/cli/options.rb:238:in `block in parse!'
	from /var/lib/gems/3.0.0/gems/asciidoctor-2.0.23/lib/asciidoctor/cli/options.rb:236:in `each'
	from /var/lib/gems/3.0.0/gems/asciidoctor-2.0.23/lib/asciidoctor/cli/options.rb:236:in `parse!'
	from /var/lib/gems/3.0.0/gems/asciidoctor-pdf-2.3.18/bin/asciidoctor-pdf:40:in `<top (required)>'
	from /usr/local/bin/asciidoctor-pdf:25:in `load'
	from /usr/local/bin/asciidoctor-pdf:25:in `<main>'
  make[2]: *** [Makefile:92: build/riscv-privileged.pdf] Error 1

To address this, podman-run(1) recommends using the ':z' suffix to the
volume mount.  This patch does so, if the docker command has been
identified (reliably) to be emulated by Podman.

Tested on Fedora 40.

Signed-off-by: Christoph Müllner <[email protected]>
Move docs-resources forward to get the latest commits.
Apparently, values in the first column were not specified when several rows were added to the table.

Signed-off-by: Andrei Solodovnikov <[email protected]>
Fix bug, only get VIE on VS-mode reads, not VS-mode writes (which get IIE)

Signed-off-by: Beeman Strong <[email protected]>
arichardson and others added 9 commits March 19, 2025 13:34
This could be fixed by adding `2>&1` to the `docker info` command, but
it seems cleaner to correctly infer the value of SKIP_DOCKER and avoid
entering the whole `ifneq ($(SKIP_DOCKER),true)` block.
The existing CHERI spec is still included under the src/cheri and will
slowly be integrated into the main ISA document
This is still a very early draft. For now this pulls part of the Quickstart
chapter into a new RV{32,64}CH chapter and moves the capability description
as well as the instruction listing to new CHERI appendices.
Deploy a snapshot of the specification to GitHub pages
Using `pre-commit run --all-files`
They are placed in a snapshots/ subdirectory so should not conflict
arichardson and others added 11 commits March 20, 2025 11:33
Using `pre-commit run --all-files`
This will ensure consistent line endings and valid yaml/json.
Can be enabled using `pre-commit install`.
This beings addressing the ARC feedback that the ISA spec should describe
the mechanism and defer to other documents for rationale.

As a later step we may want to move the rationale/motivation parts of the
current spec into a new document that can be referenced from the main ISA
specification.
This copies text from the riscv-integration chapeter and includes the
actual definitions.
This adds a lot of noise and is not relevant to the unprivileged spec.
In a RV64CH system these instructions are always available.

Also drop
```
Prerequisites::
{cheri_base_ext_name}
```
Since these instructions are defined by this extension there is no need to
list it explicitly.
CLEN is 2*XLEN and not 2*XLEN+1. Also tidy the diagrams a bit
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.