New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
arch:riscv64:basic porting for C906. #3001
arch:riscv64:basic porting for C906. #3001
Conversation
Hi @hotislandn thank you very much for adding support on NuttX for Allwinner C906 ! I think you missed to run nxstyle/checkpatch on some files:
|
Hi Acassis, Yes, I failed to do this which lead to those style check failures. I will update them soon. |
You can check arch/risc-v/src/rv32im&rv64gc/Toolchain.defs for how to add a toolchain. For our CI to be able to build, the toolchain needs to be installed in the Docker image as well (https://github.com/apache/incubator-nuttx-testing/blob/master/docker/linux/Dockerfile) |
BTW, you can make the default configuration use the SiFive toolchain that's used by the rest of the RISC-V chips and add a config that uses the vendor's toolchain. In this case simple examples can be built without the need of another toolchain. |
I'm a little hesitant to bring in the overhead of the ISA vector extensions that are pre 1.0 (Linux does not support them for this reason). Are there other ISA extensions that are causing issues. To be clear I am not saying no, I just want to make sure we are not signing up for what will be legacy baggage from the start. When I designed that docker image I did it with the idea in mind that we might want to have multiple targets to keep the size from getting crazy. macOS we probably do not want to burden with a lot of special toolchains, but we already have some fairly reasonable coverage there. |
Yes, I would like to try this option first, to align with the standard toolchain from SiFive, though we may suffer a bit of performance loss at the beginning. However, this gives better compatibility. |
The reason for C906 has to use the vendor-specific toolchain is that T-HEAD adds their own instructions to the "I" extension, not the "V" variant. And, in fact, the "V" spec supported by C906 is 0.7.1. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple minor comments on some copyright headers but looks good to me otherwise as a great starting point
Signed-off-by: hotislandn <hotislandn@hotmail.com>
Summary
This patch enables Nuttx basic OS functionalities on C906, a RISC-V 64bit SoC that implements RV64GCVX extensions from T-HEAD.
Impact
RV64GC targets.
Testing