[edk2-devel] [edk2-platforms][PATCH V1 07/11] Platform/ARM/Morello: Port PCI Express library

chandni cherukuri ch.chandni at gmail.com
Mon Dec 13 12:41:40 UTC 2021


Hi Ard,

Thanks for the response.

I had a look at the Synquacer platform where there is a single custom
PCIe library implemented.
So, is it better to implement a single custom PCIe library instead of
two custom PCIe libraries?

If that is the case then will implement a single custom PCIe library
for Morello.

Thanks
Chandni
On Fri, Dec 10, 2021 at 4:12 PM Ard Biesheuvel <ardb at kernel.org> wrote:
>
> On Thu, 9 Dec 2021 at 13:30, chandni cherukuri <ch.chandni at gmail.com> wrote:
> >
> > Hi Ard, Leif, Sami, Pierre,
> >
> > For Morello platform, we created two custom libraries based on the
> > below two native libraries:
> > -          https://github.com/tianocore/edk2/tree/master/MdePkg/Library/BasePciSegmentLibPci
> > -          https://github.com/tianocore/edk2/tree/master/MdePkg/Library/BasePciExpressLib
> >
> > because of the following reasons.
> > 1.       In Morello platform, the ECAM region of the two root ports
> > are placed in non-contiguous memory as per the memory map architecture
> > of the Morello platform. The native PCI Express Library expects both
> > the ECAM regions for all the root ports to be contiguous.
>
> Do you mean root ports or host bridges? If root ports don't share the
> MMIO resource windows provided by the respective host bridges, they
> are really different host bridges and should be modeled as such.
>
> Note that the Cadence and Synopsys IP usually does not implement a
> root port at all, and gets away with this because it only implements a
> single link.
>
> > 2.       IORT and kernel currently require each root port to be in a
> > separate segment. You can refer to the code for more details -
> >
>
> Please take a look at the SynQuaecer platform for inspiration. That
> platform is very similar in this respect.
>
>  https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/acpi/arm64/iort.c#n307.
> > The native PCI Segment Library supports only a single segment.
> >
> > Because of these reasons, the current patch series adapts the native
> > libraries as follows:
> >
> > The custom PCI Segment Library passes the complete address which is
> > consumed by the custom PCI Express library where based on the Segment
> > number, the base address of the PCI Express is returned.
> >
> > The rationale behind maintaining two separate libraries is that when
> > the software evolves and support for multiple segments is adapted in
> > the native PCI Segment Library the custom library could be removed.
> > Also, we might have other protocols which might try to use the PCI
> > Express library directly. However, there are some other platforms
> > where all the platform specific changes have gone in a single custom
> > PCI library
> >
> > Could you please provide some inputs as to which of two approaches
> > would be better to follow as there is one more platform to follow
> > based on the decision taken?
> >
> > Thanks
> > Chandni
> >
> > On Wed, Dec 8, 2021 at 8:25 AM Khasim Mohammed <khasim.mohammed at arm.com> wrote:
> > >
> > > Hi Sami, Chandni,
> > >
> > > There was a suggestion from Pierre on a similar patch for N1SDP to remove PCIExpressLib.c and move to workarounds to PCISegmentLib.c,
> > >
> > > https://edk2.groups.io/g/devel/message/84165?p=%2C%2C%2C20%2C0%2C0%2C0%3A%3Arecentpostdate%2Fsticky%2C%2Ckhasim%2C20%2C2%2C0%2C87257273
> > >
> > > I think we should discuss this implementation for both N1SDP and Morello as they have similar implementation.
> > >
> > > Regards,
> > > Khasim
> > > 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84706): https://edk2.groups.io/g/devel/message/84706
Mute This Topic: https://groups.io/mt/87497024/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list