Commit ae6476c6 authored by Jim Quinlan's avatar Jim Quinlan Committed by Krzysztof Wilczyński

PCI: brcmstb: Refactor for chips with many regular inbound windows

Provide support for new chips with multiple inbound windows while
keeping the legacy support for the older chips.

In existing chips there are three inbound windows with fixed purposes:
the first was for mapping SoC internal registers, the second was for
memory, and the third was for memory but with the endian swapped.
Typically, only one window was used.

Complicating the inbound window usage was the fact that the PCIe HW
would do a baroque internal mapping of system memory, and concatenate
the regions of multiple memory controllers.

Newer chips such as the 7712 and Cable Modem SoCs take a step forward
and drop the internal mapping while providing for multiple inbound
windows. This works in concert with the dma-ranges property, where each
provided range becomes an inbound window.

Link: https://lore.kernel.org/linux-pci/20240815225731.40276-11-james.quinlan@broadcom.comCo-developed-by: default avatarRiyan Dhiman <riyandhiman14@gmail.com>
Signed-off-by: default avatarRiyan Dhiman <riyandhiman14@gmail.com>
Signed-off-by: default avatarJim Quinlan <james.quinlan@broadcom.com>
[kwilczynski: commit log, wrap code comments to 80 columns]
Signed-off-by: default avatarKrzysztof Wilczyński <kwilczynski@kernel.org>
Reviewed-by: default avatarFlorian Fainelli <florian.fainelli@broadcom.com>
Reviewed-by: default avatarStanimir Varbanov <svarbanov@suse.de>
Acked-by: default avatarManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
parent e1c88956
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment