-
Notifications
You must be signed in to change notification settings - Fork 807
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
[top_darjeeling] Instantiate AC Range checks #25862
Conversation
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.
Crikey, these patches are enormous! (I understand that the code is autogenerated, but it's still an awful lot!)
Am I right in thinking these commits are orthogonal? If so, maybe it makes sense to split up the PR?
I don't think splitting up makes sense. The one big commit instantiates the ac ranges on the HJSON (5 lines or so) and this triggers ipgen to copy over the IP. If we split it up, there would be inconsistent IPs |
4066f22
to
112e519
Compare
@rswarbrick @vogelpi Since #25894 is merged, this now correctly maps the AC ranges. Can you take another look? |
17c5cb1
to
c9e2994
Compare
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 thought for the future: Perhaps we'll want to formally introduce a TL-UL to TL-UL bus bridge with base address translation in hw/ip/tlul at some point. Then we can extend topgen / tlgen and do traversals to understand reachability.
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 looks good, a few nits and you may want to consider tuning the TLUL MUX in SoC Proxy for timing and area. But this can also happen later. I think this probably needs to be rebased after #25986 gets merge.d
hw/top_darjeeling/ip_autogen/ac_range_check/data/ac_range_check.hjson
Outdated
Show resolved
Hide resolved
Oh and CI flags a failing whitespace check:
|
c9e2994
to
59a9d7a
Compare
ff8dbc9
to
4f905a6
Compare
5838567
to
af82526
Compare
5ddc911
to
616c034
Compare
3259101
to
b7b8e54
Compare
Signed-off-by: Robert Schilling <[email protected]>
… name Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
Signed-off-by: Robert Schilling <[email protected]> Co-authored-by: Pirmin Vogel <[email protected]>
Signed-off-by: Robert Schilling <[email protected]> Co-authored-by: Pirmin Vogel <[email protected]>
This adds a base address translation (BAT) on the muxed host TLUL port before exiting to the AC ranges. This BAT removes the 1-2GB offset and downlifts the address to 0-1GB when exiting. Co-authored-by: Robert Schilling <[email protected]> Signed-off-by: Pirmin Vogel <[email protected]>
Signed-off-by: Pirmin Vogel <[email protected]>
Signed-off-by: Robert Schilling <[email protected]>
b7b8e54
to
55f0ae0
Compare
Thanks for cleaning up ac_range_check.sv @Razer6 ! |
|
||
ipgen_render("ac_range_check", topname, params, out_path) | ||
ipgen_render('ac_range_check', topname, params, out_path) |
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.
Can we not have quote vs double quotes discrepancies? The overwhelming number of strings are double quoted, and we have the policy of preserving the prevailing convention. You can see topcfg/validate.py is mostly single quotes.
@@ -2,6 +2,7 @@ | |||
// Licensed under the Apache License, Version 2.0, see LICENSE for details. | |||
// SPDX-License-Identifier: Apache-2.0 | |||
${gencmd} | |||
<% import textwrap %>\ | |||
<% racl_role_vec_len = 2 ** racl_config['nr_role_bits'] %>\ | |||
|
|||
package top_racl_pkg; |
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.
Weird this doesn't get some uniquifying name. The name top_racl_pkg can become confusing in multi-top.
This PR instantiates the AC ranges for a single egress port. All Egress ports are muxed to a single egress port before leaving Darjeeling. An additional external miscellaneous port is added to the system that is coming from the external uncore but muxed with same mux and going through the AC ranges.