[AMD Official Use Only - General] > -----Original Message----- > From: Jason Gunthorpe <jgg@xxxxxxxx> > Sent: 12 October 2022 14:02 > To: Radovanovic, Aleksandar <aleksandar.radovanovic@xxxxxxx> > Cc: Gupta, Nipun <Nipun.Gupta@xxxxxxx>; Marc Zyngier > <maz@xxxxxxxxxx>; Robin Murphy <robin.murphy@xxxxxxx>; > robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; > gregkh@xxxxxxxxxxxxxxxxxxx; rafael@xxxxxxxxxx; eric.auger@xxxxxxxxxx; > alex.williamson@xxxxxxxxxx; cohuck@xxxxxxxxxx; Gupta, Puneet (DCG- > ENG) <puneet.gupta@xxxxxxx>; song.bao.hua@xxxxxxxxxxxxx; > mchehab+huawei@xxxxxxxxxx; f.fainelli@xxxxxxxxx; > jeffrey.l.hugo@xxxxxxxxx; saravanak@xxxxxxxxxx; > Michael.Srba@xxxxxxxxx; mani@xxxxxxxxxx; yishaih@xxxxxxxxxx; > will@xxxxxxxxxx; joro@xxxxxxxxxx; masahiroy@xxxxxxxxxx; > ndesaulniers@xxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- > kbuild@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; okaya@xxxxxxxxxx; > Anand, Harpreet <harpreet.anand@xxxxxxx>; Agarwal, Nikhil > <nikhil.agarwal@xxxxxxx>; Simek, Michal <michal.simek@xxxxxxx>; git > (AMD-Xilinx) <git@xxxxxxx> > Subject: Re: [RFC PATCH v3 4/7] bus/cdx: add cdx-MSI domain with gic-its > domain as parent > > Caution: This message originated from an External Source. Use proper > caution when opening attachments, clicking links, or responding. > > > On Wed, Oct 12, 2022 at 10:34:23AM +0000, Radovanovic, Aleksandar wrote: > > > > As for GITS_TRANSLATER, we can take up to 4 different IOVAs, which > > limits us to 4 CDX devices (should be sufficient for current HW > > use-cases). Also, it means that the address part must be the same for > > all vectors within a single CDX device. I'm assuming this is OK as it > > is going to be a single interrupt and IOMMU domain anyway. > > This is not at all how MSI is supposed to work. In the general case, no, they're not. However, this is an embedded device with a GICv3, so the general case does not really apply. On GIC, the MSI target address is always a fixed register in the ITS (GIC_TRANSLATER), possibly SMMU translated. As long as the translation is consistent across a single device (and I see no reason why or how the kernel would do it otherwise, given that a single CDX device generates the same StreamID for all MSI writes), the GIC IOVA should be the same for all vectors of the device. It is worth noting that this limitation is not going to be baked in the proposed MSI configuration interface, it will still take both the address and data parts for each vector. It is just that this particular implementation will throw an error if you supply a different target address across device MSI vectors. It does not preclude some future device accepting different addresses per vector over the same interface. Thanks, Aleksandar