<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fbos, branch main</title>
<subtitle>A RISC-V operating system devoted to running fizz/buzz processes.
</subtitle>
<id>https://git.mssola.com/os/fbos/atom?h=main</id>
<link rel='self' href='https://git.mssola.com/os/fbos/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/'/>
<updated>2026-07-22T15:01:16Z</updated>
<entry>
<title>Update links to git.mssola.com</title>
<updated>2026-07-22T15:01:16Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mssola@mssola.com</email>
</author>
<published>2026-07-22T15:01:16Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=8de07042517fb0bebed838a526336afdfa6c852f'/>
<id>urn:sha1:8de07042517fb0bebed838a526336afdfa6c852f</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mssola@mssola.com&gt;
</content>
</entry>
<entry>
<title>Update changelog file</title>
<updated>2024-12-05T13:03:09Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-05T12:32:47Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=a9096f137231c75350c5f16d84caaada19ba161b'/>
<id>urn:sha1:a9096f137231c75350c5f16d84caaada19ba161b</id>
<content type='text'>
Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Add a note on HSM</title>
<updated>2024-12-05T13:03:09Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-05T12:17:26Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=41fd52502ce7dcfcca8a67b06dab68a8e4aa35b9'/>
<id>urn:sha1:41fd52502ce7dcfcca8a67b06dab68a8e4aa35b9</id>
<content type='text'>
The hart lottery that we do on initialization is a bit rigged. Write a
note on that in the documentation of the 'hart_lottery' variable.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Pass the hart ID on start_kernel instead</title>
<updated>2024-12-04T16:23:57Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-04T16:23:57Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=22a681a07ab09922435ad0a9f665290a30f6b85b'/>
<id>urn:sha1:22a681a07ab09922435ad0a9f665290a30f6b85b</id>
<content type='text'>
Instead of storing the hard ID as given by the bootloader into a C
variable, pass it directly into the 'start_kernel' function since we
don't need to tamper the value as originally laid out on the 'a0'
register.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Re-use the halting loop also for the main hart</title>
<updated>2024-12-04T13:35:50Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-04T13:35:50Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=4c25981400e9d6d7c15df70dac32b6c8819b77a5'/>
<id>urn:sha1:4c25981400e9d6d7c15df70dac32b6c8819b77a5</id>
<content type='text'>
The halting in secondary harts should not be treated too differently as
with the (unlikely) scenario that the main function quits. Hence, merge
the code in both cases.

Moreover, we do not really need to to initialize the values of most
registers, as they will be explicitely set when needed anyways.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Move documentation to the proper places</title>
<updated>2024-12-04T13:23:44Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-04T13:23:44Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=ad072dbf39036eaeb2879bd39f5195175d8b1280'/>
<id>urn:sha1:ad072dbf39036eaeb2879bd39f5195175d8b1280</id>
<content type='text'>
Code documentation was scattered between header and source files. Since
the norm was already to have this documentation into header files, move
some comments from source files to their header counterparts. This
hopefully makes things more consistent.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Write down the requirement for the Zaamo extension</title>
<updated>2024-12-03T13:56:17Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-03T13:52:13Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=75fc0bb454b6da14ca42168006af65577fbdfc39'/>
<id>urn:sha1:75fc0bb454b6da14ca42168006af65577fbdfc39</id>
<content type='text'>
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à &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Run a hart lottery on SMP</title>
<updated>2024-12-03T13:34:43Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-03T13:34:43Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=2eead36f97faf5bdad1abd60a220c0af72a5526c'/>
<id>urn:sha1:2eead36f97faf5bdad1abd60a220c0af72a5526c</id>
<content type='text'>
On systems with SMP multiple harts will try to run the kernel, and they
will appear at random. But in this kernel, in order to keep things
simple, we want to make sure that *only one* hart is running the show,
as it greatly simplifies things on these kinds of systems.

The solution is similar to what Linux does, which is to allow the first
hart to initialize things, but then (and different to what Linux does),
it will infinitely stall all the other harts that arrive at a random
later point in time.

In order to make this more apparent, I have also added a print message
showing which hart is being used to run the whole thing.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>test: Remove asserts on specific entry addrs</title>
<updated>2024-12-03T07:00:53Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-03T07:00:53Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=95c4b00e90e24d3bcb5d3b6e56f0e29b725ba9ce'/>
<id>urn:sha1:95c4b00e90e24d3bcb5d3b6e56f0e29b725ba9ce</id>
<content type='text'>
These asserts where needed when I was iterating on the initrd handling
code, but they are admittedly too specific and prone to errors. Hence,
get rid off them.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
<entry>
<title>Remove stack pointer for each process</title>
<updated>2024-12-03T06:59:01Z</updated>
<author>
<name>Miquel Sabaté Solà</name>
<email>mikisabate@gmail.com</email>
</author>
<published>2024-12-03T06:59:01Z</published>
<link rel='alternate' type='text/html' href='https://git.mssola.com/os/fbos/commit/?id=065f42adc9af7fc4adc391bb6961460010c30d08'/>
<id>urn:sha1:065f42adc9af7fc4adc391bb6961460010c30d08</id>
<content type='text'>
Since 6132623dbf30 ("Share the same stack everywhere") the same stack is
used everywhere. Hence, it's rather pointless for each task to have a
pointer to a stack which is the same and that is never read.

Signed-off-by: Miquel Sabaté Solà &lt;mikisabate@gmail.com&gt;
</content>
</entry>
</feed>
