I was looking for a RV64 USB-C(device) board for my future keyboard controller with my 100% RV64 assembly coded firmware.
This board is completely overkill for this project, but I really wanted to code my firmware using RV64 and not RV32 even though the ISA has provision for RV32/RV64 interop.
Really, REALLY great news.
The 32 bit E907 is hart 0 and runs the initial boot code, but once it sets an initial execution address for the C906 (hart 1), turns on its clock, and resets it you can run code on just the C906, or on both, or whatever you want. Both cores have full access to everything.
What would be nice is some "excrutiating minimal" boot code sample for the E907 in an easy to get SDK (noscript/basic (x)html browser friendly). Then some C906 code which properly init the USB hardware(device and not host, there is probably some DMA hardware somewhere), timer, GPIOs, interrupts (if I recall properly, this was one of the issues), etc.
If your are able to use the SOC hardware services (USB(device)/dma, timer interrupts, GPIOs,etc) with the C906 without convolution (aka without E907 involvment which would be shutdown as I said in my previous post), I really want to know.
Is there a place I can check for that?
RISC-V, if successful, is the signal of the start of the "assembly era" (probably with high level interpreters written in assembly, like python/lua/javascript/ruby/gnagna). In this era, we will have to fight SDK complexity, like the abuse of complex macro languages. Personnaly, I currently write x86_64 assembly with a "very cheap" SDK (this is EXTREMELY important): I conservatively use a C preprocessor (currently the one from tinycc) to define an "intel like" syntax which allows me to assemble simple "intel like" syntax source files with fasmg or/and nasm/yasm or/and binutils as. I still use binutils ld though, but I keep in mind I may move away from it so I try to reduce my usage of its comfy complexity as much as I can in a point in time (the real issue is actually ELF...).