Scope of MINIX 3 on the HiFive Unmatched

383 views
Skip to first unread message

Kyle K.

unread,
Mar 5, 2021, 1:04:39 PM3/5/21
to minix3
Howdy,

I've been studying hardware design and operating system design on my own time for a while, and I think it's time I finally jump into something more practical. I saved my pennies and got the HiFive Unmatched preordered and when I finish college in mid-June, I'm going to seek to port MINIX to it.

I kind of have an idea of the scope it would take to port it. I would first have to write all of the kernel primitives under sys/arch/[architecture], which appears to mostly be the assembly code that handles context switching, DMA, certain synchronization structures, among many other things. I would probably also need to write a bootloader, however, I can't seem to find where that is in the source tree. Is there any other places where RISC-V specific code would need to be written?

The board also has a MicroSD card slot and M.2 M slot for storage, so these may need drivers to be written or ported. The manual aslo describes the gigabit ethernet controller, which is a Cadence GEMGXL, which already has open-source drivers one could reference when writing the MINIX driver. It also has a few extra devices, such as a PWM, I2C master, and a GPIO controller that would be nice to implement, but obviously not crucial for the port.

When the time comes, I'll probably start the kernel port using the RISC-V QEMU, and once that's functioning, port it to the HiFive unmatched board, talking to it using the built in MicroUSB UART.

I think, overall, the scope of such a port would be quite large. If I could just get MINIX booting on the board, it would be a good learning experience for me, even if I don't manage to get the ethernet working or find a video card that works on it.

Ssessaazi Phrunsys

unread,
Mar 7, 2021, 2:15:13 AM3/7/21
to min...@googlegroups.com
Hi there it's Phrunsys Ssessaazi from Uganda....the hard problem of consciousness is now solved....I strongly believe I now stand in a position to vividly explain how the entire stuff works....I am not that pretty much sure whether this is the right place to say this but just know I am so close in achieving the so called singularity....and hey it's all based on the monolithic kernels of Minix... This is one cool system...whoever cares about human revolution... I need to get in tact with every C and Assembly programmer...

--
You received this message because you are subscribed to the Google Groups "minix3" group.
To unsubscribe from this group and stop receiving emails from it, send an email to minix3+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/minix3/d48a11dc-1a74-447e-a889-dc28111540fan%40googlegroups.com.

keesj

unread,
Mar 12, 2021, 3:33:15 AM3/12/21
to minix3

Hi,

Nice idea! I toyed with the idea of porting MINIX 3 to a RISC-V soft core. The goal would be to get it working on the ECP5 FPGA and using the litex framework https://github.com/enjoy-digital/litex pretty much in the same way https://github.com/litex-hub/linux-on-litex-vexriscv has been done. The open nature of the projects around system on chip development allows for 100% emulation and introspection of the internals.

It might be possible to encapsulate most of the setup in a container and reach a single click development platform using something like https://www.gitpod.io/ this would allow for more people to join the fun.

As learning platform and with the idea that it is no longer is unreasonable to produce your own test chips. The time might be there where one can create a chip with as many cores and features as found useful for reliability and security.

As said.. I only toyed with the idea but would find it fun to collaborate on the setup and make the porting (low level development) as easy as possible.

With kind regards

Reply all
Reply to author
Forward
0 new messages