[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freebsd-hackers
Subject:    Re: pcib msix allocation in arm64
From:       Andrew Turner <andrew () fubar ! geek ! nz>
Date:       2022-11-02 13:24:01
Message-ID: 146F5D18-6366-4953-A8D9-61FE7EC67F71 () fubar ! geek ! nz
[Download RAW message or body]


> On 2 Nov 2022, at 12:56, Souradeep Chakrabarti <schakrabarti@microsoft.com> wrote:
> 
> Hi,
> I can see in x86 nexus.c has implemented pcib_alloc_msix using nexus_alloc_msix().
> Which calls msix_alloc() for msix allocation.
> 
> But in case of arm64 I don't find similar pcib_alloc_msix implementation in nexus.c \
> . So, on arm64 what is correct way to get allocate msix ?

For an arm64 system with ACPI it is most likely handled in \
generic_pcie_acpi_release_msix. For FDT it can depend on which PCI driver is used.

In either case it will call into intr_release_msix that then calls into the MSI \
controller to allocate the vectors. For a GICv3 driver it will either be \
gicv3_its_alloc_msix if you have an ITS device, or gic_v3_alloc_msix if using MBI \
ranges.

On ACPI we don't currently support MBI ranges, although it looks like this could be \
handled by the existing gicv2m driver. This driver should already work as a child of \
the GICv3, however it appears to be FDT only, so will need some work to add ACPI \
support.

Andrew


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic