Hey everyone,
While working on an oreboot port for the VisionFive 1, I've been struggling with the existing documentation (
https://doc-en.rvspace.org/JH7100/PDF/JH7100%20Datasheet.pdf ) that refers to existing code instead of having register MMIO addresses, trying to find a full SoC manual for the JH7100. Selina from StarFive said that peripherals such as the DRAM controller are not open / NDA only, and pointed to this PDF for the actual core:
I'll verify whether 21G3 is indeed what we get from reading the registers.
Now it would be best to have an SVD file (see ARM CMSIS-SVD
https://www.keil.com/pack/doc/CMSIS/SVD/html/index.html ), from which we could generate a Rust crate, C/C++ header files etc, to talk directly to all of the hardware, assist with debugging (including JTAG + gdb). I have found this here, which does not include the U74, but the older FU540 core:
It's backwards in that it generates SVDs based on DTS files, which someone would need to write first. Only a subset exists in the Linux port, omitting what we would need for the silicon init in firmware. But it's a start. :-)
I will document register semantics in oreboot if I can figure things out. If anyone would like to contribute or could benefit from SVDs otherwise, please do let me know so that we can see that we work something out.
Hope this helps to get an overview and understanding.
Regards
Daniel