-
Notifications
You must be signed in to change notification settings - Fork 665
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
User field of TL Channels does not work (No connection for user fields in Xbar) #1888
Closed
3 tasks done
Labels
Comments
Can you open a PR with this fix in the rocket-chip repo? |
@jerryz123 Sure I'll make a PR in the rocket-chip repo. Thanks for your response :D |
ksungkeun84
added a commit
to ksungkeun84/rocket-chip
that referenced
this issue
May 30, 2024
module Please refer to the issue page below. ucb-bar/chipyard#1888
@jerryz123 Hi Jerry, I've made a PR in the rocket-chip. Could you please review it? |
ksungkeun84
added a commit
to ksungkeun84/rocket-chip
that referenced
this issue
Jul 18, 2024
DontCare should come first before waiveAll so that matching userfield bewteen bundles can be connected Please refer to the issue page below. ucb-bar/chipyard#1888
This has since been fixed and merged |
jerryz123
pushed a commit
to chipsalliance/rocket-chip
that referenced
this issue
Aug 12, 2024
module Please refer to the issue page below. ucb-bar/chipyard#1888
jerryz123
pushed a commit
to chipsalliance/rocket-chip
that referenced
this issue
Aug 12, 2024
DontCare should come first before waiveAll so that matching userfield bewteen bundles can be connected Please refer to the issue page below. ucb-bar/chipyard#1888
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Background Work
Chipyard Version and Hash
Release: 1.11.0
Hash: ac58f38
OS Setup
uname -a
Linux sk84 6.5.0-15-generic #15 SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 GNU/Linux
lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
Other Setup
Bug description
I have made my own custom bundle fields (MyUserField) in TLBundleA and a MMIO device (TLUserFieldReader) to service a read request (Get) from DCache along with the custom user field over Tile Link (Channel A).
I couldn't simple share the code changes as As the modifications are across in both chipyard and rocket-chip. Therefore, I have attached the diff file here.
Then, I run a test program on a verilator simulation. I've attached the test program as well.
TLUserField_Chipyard.patch
TLUserField_Rocket.patch
Changes in Chipyard repo
Changes in rocket-chip repo
Current Behavior
The test program reads addresses at 0x3008, 0x3010, etc. which are mapped to my device (TLUserFieldReader). Then, the device simply read the user field (MyUserField) and put it to the data field of the response.
In DCache where the read request is created, lower one byte of target address is stored in the user field.
Therefore, I expected for the program to print 0x8 and 0x10 but the current results are both 0x0.
Test Result
Expected Behavior
See the current behavior section.
Other Information
I debugged my self and figure out the reason. In Xbar (Xbar.scala), user fields of in and out are not connected even if there are custom user field.
My suggestion is that Xbar connects user field if there are list of the custom user field.
I've attached the patch that I'd like to contribute.
Please review my bug report and solution.
If you like my device (TLUserFieldReader) and related codes, it would good to be part of chipyard examples.
There might be misunderstanding something about this issue. It would be appreciated if you recommend a better way to fix it.
Xbar.patch
Bug Fix in Xbar
Test result after bug fix
The text was updated successfully, but these errors were encountered: