-
Notifications
You must be signed in to change notification settings - Fork 50
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
Ara integration in Cheshire (1) #112
base: main
Are you sure you want to change the base?
Conversation
Hi, I noticed that there are multiple Ara/Cheshire/MMU-related branches. I wanted to evaluate Ara with Linux, but for that to work, I suppose that it requires proper MMU support. Since Cheshire is supposed to run Linux, I wonder if this PR has Ara MMU support. I noticed that in Bender config, it refers to branches that don't include MMU patches from the Could you let me know if there is any working setup to make Ara work with Linux (with MMU support)? I can see that there are multiple branches (i.e., |
Hello @MarekPikula, We are internally working on a version of Ara that supports Linux on FPGA, which we plan to release in the next months gradually. The version that can now boot Linux is a bit messy and needs clean-up.
As a note: this is not what you see in this PR. |
Nice, thank you for the pointers to the right places. I tested it in FireSim on an AWS F1 FPGA, and it seems to be working fine. I haven't run any extensive tests or benchmarks yet, only some small testing algorithms I had at hand, but man, it is exciting. |
a814e99
to
5a3ce5d
Compare
Point to open-source deps - 1
Hi, @mp-17 thanks for the effort integrating ARA! How close is the current PR to be merged? Can we use this PR as-is on an FPGA with Linux? |
Hello @krabo0om, I will soon rework this PR and write down how to use Ara on FPGA since we have reached a sufficiently stable version. |
Hi @mp-17, today I was trying to update my FireSim setup with the updated Ara (from the master branch) but stumbled upon the following synthesis error from Vivado:
For the following lines:
If I remove the |
Hello @MarekPikula, can the problem be linked to the fact that It's an ugly fix, but if you include |
Hello @mp-17 Just want to ask, What am I missing here? Should disabling vector FPU be of any help? |
d214d1d
to
41dbd1b
Compare
Hello @fulcrum34. We have only tried it on the VCU128, not yet on the Genesys2 board. You can try removing the FPUs and see if it fits. |
Hi, Thanks! I can connect using Openocd. See openocd.log and gdb.log but the uart terminal despite correct port and baud prints |
@@ -22,7 +22,8 @@ dependencies: | |||
clint: { git: "https://github.com/pulp-platform/clint.git", version: 0.2.0 } | |||
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.33.0 } | |||
common_verification: { git: "https://github.com/pulp-platform/common_verification.git", version: 0.2.0 } | |||
cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: pulp-v1.0.0 } | |||
cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: pulp-v1 } |
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.
It is better to make new release here; pointing to a moving branch head is not a good idea.
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.
I have released a second PR that will have tagged commits on main
branches.
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.
Thanks for this PR (sorry for the stray comment above).
Generally speaking, there is nothing to fundamentally object to, but some fundamental things must be done before merging:
- Add the new feature and its parameters to the documentation
- Add the new feature to some FPGA config and have it tested somehow in internal CI
- Discuss how it constrains overall parameterization (we should do this offline).
@@ -22,7 +22,8 @@ dependencies: | |||
clint: { git: "https://github.com/pulp-platform/clint.git", version: 0.2.0 } | |||
common_cells: { git: "https://github.com/pulp-platform/common_cells.git", version: 1.33.0 } | |||
common_verification: { git: "https://github.com/pulp-platform/common_verification.git", version: 0.2.0 } | |||
cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: pulp-v1.0.0 } | |||
cva6: { git: "https://github.com/pulp-platform/cva6.git", rev: pulp-v1 } | |||
ara: { git: "https://github.com/pulp-platform/ara.git", rev: mp/cva6-pulpv1/rebase } |
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.
This should also be merged and get a release before merging this PR.
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.
I have released a second PR that will have tagged commits on main
branches.
RVC : 1, | ||
RVH : 1, | ||
RVH : ~cfg.Ara, |
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.
If there are complex parameterization constraints affecting the rest of the system (which is okay generally), we need to talk these over offline and document them carefully.
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.
Yes, we can discuss this offline!
This is the first PR for Ara's support. See #160 for OS support. #160 is sufficiently stable to boot Linux with Ara.
Add bare-metal Ara to Cheshire.
cheshire_soc
. The current configuration can host a 2-lane Ara without performance degradations.AraNrLanes
to determine the number of vector lanes andVLEN
to determine the bit width of a single vector register).