This is simply astonishing! Hats off and kudos to you for your hard work and mad skills!
Wow wtf, unbelievable work…
Congtats and Nastrowie for the dektop to show.
We should consider a prize for your archivement.
Just great very fast straight forward process.
Nice and it makes me confident to hold on Haiku developement efforts.
Like a light in the dark…
@jt15s Maybe you can promote this achievement by a blog post ?
Maybe fix artifacts first?
Would enabling write-combining, the way VESA & Framebuffer drivers do, potentially fix this problem? It may get the CPU to write a full cache line at a time instead of unaligned bytes.
I fixed problem by using 32 bit copy per step. It seems that 64 bit access should use 64 bit (8 byte) aligned pointers.
Memory types are not yet implemented for RISC-V.
Another interesting thing is that HDA audio is recognized for video card HDMI port. Maybe audio will work by HDMI.
I’ve shared some info on your awesome progress on Reddit, and someone there is asking if there’s an SD card image that be used to play with.
I boot from USB disk, SD card is left untouched. I may upload test live USB image later. Note that it have known problems and not yet ready for general use.
SD card has 3 problems:
- It is not yet supported by Haiku.
- It should include 2 additional partitions with low-level firmware code.
- It is slow, at least on Linux.
An image which can be
dd-d to a drive should be sufficient, and of course the expectations would be set that this is pre-pre alpha.
Also… @X512… I’ve been on the edge of my seat these past few months reading and waiting for your updates. This is awesome work, and I wish I was at your level.
Also people who want to test should aware that video card is mandatory, there are no text mode. Currently only Radeon graphics are included and tested.
Fantastic progress Ilya. You are a true star in the Haiku community
Great progress @X512 !!!
time to build a riscv system
My ears are burning, so I guess I had to register.
Great work and I’ve love to try it on my Unmatched if you make an SD card image available.
One comment: I see you’re calculating some table offsets based on multiplying the HART ID by a constant. That will work for the FU740 where the HART IDs are 0-4, but it’s not portable. RISC-V does not require that HART IDs are consecutive or even necessarily small. All that is required is that one of the HARTs has ID 0.
There’s a maybe useful blog post about some of this boot stuff here: All Aboard, Part 6: Booting a RISC-V Linux Kernel - SiFive
Obviously you’ve got past all that already, but maybe not in a generic way for other SoCs. Might be worth checking.
I think some credits are due also to all the developers that laid the groundwork for this, the base was there and with the great work @X512 did he pulled Haiku again a step higher on the ladder!
Let’s not forget the work done by @kallisti5 also
Shout out to Haiku Inc, too for funding the boards!
Congratulations on your progress!