
SiFive to release source code to initialize HiFive Unleashed RISC-V board - rwmj
https://forums.sifive.com/t/ddr-controller-configuration-register-values-for-hifive-unleashed/1334/8
======
obl
As RISC-V moves into "high end" embedded (linux capable, raspy like), I
suspect that a big obstacle to openness is going to be GPU IP.

HW video decoding, display protocol driving, 3D, ... Is there any open hw
initiative on that front that I'm not aware of ?

~~~
phkahler
For video we can hope for free AV1 decode hardware possibly from Google. As
for normal GPU functionality, I think the way Esperanto is going will be an
option. They want to use thousands of RISC-V cores with vector instructions to
do graphics. For general desktop compositing and simpler 3D this should be
possible with fewer cores. However well that works or not, even that will be a
while. In the mean time I think getting LLVM-pipe or the equivalent working
well with RISC-V is important and may be the only viable open-source graphics
solution at first.

~~~
zokier
Isn't that all getting bit ahead of ourselves? Wouldn't the first order of
business be creating framebuffer graphics and all the requisite HW needed to
drive displays (HDMI/(e)DP/LVDS transceivers etc), and then maybe some basic
2D acceleration (bitblt etc)?

~~~
snops
For HDMI/DVI, there are a number of external transmitter ICs that take in 24
bit parallel video/I2S audio and spit out HDMI, e.g.
[http://www.analog.com/en/products/audio-video/hdmidvi-
transm...](http://www.analog.com/en/products/audio-video/hdmidvi-
transmitters/adv7513.html)

------
rwmj
Previous discussion around the closed source DDR initialization block:
[https://news.ycombinator.com/item?id=17392461](https://news.ycombinator.com/item?id=17392461)

------
Conan_Kudo
Woohoo! Congratulations SiFive! Now we actually _do_ have an open platform!

------
Iolaum
Congratulations to SiFive for managing to do this !!

------
amelius
Is this the next Raspberry Pi?

And does it have real-time support?

~~~
rwmj
On your second question about real-time support, I think the answer is
(probably) yes although it depends a bit on precisely what you mean by "real
time". I'm assuming you mean as a hard real time microcontroller.

First off there is an Intel SMM-like layer (M mode) running under the
operating system. Unlike Intel it's all open source. So if you find that
something in M mode is taking too long and disturbing your real time
guarantees, you at least have a hope of fixing it.

Obviously Linux is no use for hard real time, but in the HiFive Unleashed
board there is a separate RV32 core on the side which actually does nothing
except spinning in M mode. It literally runs this loop:

[https://github.com/riscv/riscv-
pk/blob/600ff370c65ba99d2103a...](https://github.com/riscv/riscv-
pk/blob/600ff370c65ba99d2103a050a1847671cc0bd9c9/bbl/bbl.c#L51)

You could have this spare core do anything you want while running Linux on the
application cores. I believe it has full access to RAM and GPIO pins.

Secondly there is a 96Boards compatible expansion header with some but not
very many GPIO pins, see section 8.2 here:

[https://static.dev.sifive.com/HiFive-Unleashed-Getting-
Start...](https://static.dev.sifive.com/HiFive-Unleashed-Getting-Started-
Guide-v1p1.pdf)

Thirdly the clock currently runs at a constant speed (but settable), so
there's no power management, both a good and a bad thing, but probably good
for real-time.

~~~
voxadam
> Obviously Linux is no use for hard real time

While it's true that the mainline kernel is not currently capable of
delivering hard real-time performance the PREEMPT_RT developers keep chipping
away at the remaining issues. LinuxCNC users have been achieving hard real-
time performance on their controls through the use of the PREEMPT_RT patches
for some time now.

------
dtx1
This ist great i Wish i could afford one of their boards

------
fithisux
Congratulations.

