PCI: brcmstb: Enable CRS software visibility after linkup #5889
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fell out of the discussions around "why does the bootloader nvme probe behave differently to Linux" - as part of aligning the behaviours of both, we should make maximal use of the features offered by the RC.
The RC supports neither Device Readiness nor Function Readiness notifications, therefore we should use a combination of the 100ms grace period after link-up with CRS.
EPs are permitted to issue Retry statuses for up to 1 second, which if CRSSVE=0 will
a) completely stall the CPU until the Ubus/completion timeout is reached (<1s, but some tens of milliseconds)
b) cause the RC to return 0xffffffff for reads of the vendor ID register instead of 0xffff0001 which will cause probe failure instead of retrying up to the 1 second limit.
For some reason the associated root complex register bit is reset by perst_n, so enable it after link-up.