From 75fc0bb454b6da14ca42168006af65577fbdfc39 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Tue, 3 Dec 2024 14:52:13 +0100 Subject: Write down the requirement for the Zaamo extension MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since 2eead36f97fa ("Run a hart lottery on SMP") the kernel is making use of the 'amoadd.w' instruction, which requires the Zaamo extension (included in the base A extension). This is notable and is worth a mention on the list of requirements. Signed-off-by: Miquel Sabaté Solà --- README.md | 2 ++ include/fbos/init.h | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5c1a049..7b7f113 100644 --- a/README.md +++ b/README.md @@ -134,6 +134,8 @@ things simple. Hence, here there are some limitations/requirements: target, and that's what you are supposed to be passing to the kernel. - RISC-V is ambivalent on the endianness. Not this kernel. Out of simplicity we require a little-endian RISC-V system. +- This kernel makes use of the `Zaamo` Extension for Atomic Memory Operations, + which is included under the `A` Extension for Atomic Instructions. ## Special thanks to diff --git a/include/fbos/init.h b/include/fbos/init.h index dcffd02..a3cc16f 100644 --- a/include/fbos/init.h +++ b/include/fbos/init.h @@ -11,7 +11,7 @@ // This greatly simplifies the specification and the hardware, but for the // kernel this means that harts will appear randomly. In order to know which // hart runs first, in Linux they run a "lottery": an atomic value holds how -// many harts hav already been seen. The first hart to appear will actually +// many harts have already been seen. The first hart to appear will actually // initialize things before bringing the others up, while the others will simply // wait until the first hart frees the lock for them. // -- cgit v1.2.3