-
Notifications
You must be signed in to change notification settings - Fork 81
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
Expose TL node(s) in periphery #169
Conversation
What's the timeline to merge/reject this PR? |
The benefits of HasPeriphery mix-ins cannot be exploited when they expose sinks instead of actual IORegisterRouter instances. Therefore, this patch must be applied everywhere, similar to the state prior to "spi: converted to PeripheralPuncher" commit. |
To be more clearer, one can do things like this, if TLSPI instance from attachto(Subsystem) is available trait HasCustomImp extends LazyModuleImp |
7e2121e
to
6cc6128
Compare
Chipyard (https://github.com/ucb-bar/chipyard/) is looking to do a release with this change within the next week or two (ucb-bar/chipyard#747). Would it be possible to get this merged in (or re-reviewed) by then? Thanks. |
Hi @abejgonzalez we are taking a look |
Is there any update on the timeline on this? It has some implications on the Chipyard release @abejgonzalez mentioned. |
Hi @alonamid , thanks for your patience as things were slow over the holidays. Merging now! |
Thanks! |
This exposes the TL SPI nodes so that the
MMCDevice
/FlashDevice
can be attached to them in the system that has the corresponding mixin (i.e.HasPeripherySPI
/HasPeripherySPIFlash
).Background Info:
Currently
sifive-blocks
has both anMMCDevice
andFlashDevice
that can be bound to a TL SPI node to append to the DTS/DTB (sifive-blocks/src/main/scala/devices/spi/TLSPI.scala
Lines 151 to 175 in 5945cde
where the
tlSpiNode
is the TL SPI node that you want to add the DTS snippet to. This method of adding to the DTS was done in the Freedom platform (https://github.com/sifive/freedom/blob/943ab4ac2cefbbabdeda9447ec0f6231f6235f1e/src/main/scala/unleashed/DevKitFPGADesign.scala#L88-L91).However, in newer versions of
sifive-blocks
this functionality was removed since the TL node is never exposed (only the IO's are exposed). This PR re-exposes the TL node like before while keeping the default functionality.