• Lorenzo Pieralisi's avatar
    ACPI/IORT: Add an input ID to acpi_dma_configure() · b8e069a2
    Lorenzo Pieralisi authored
    Some HW devices are created as child devices of proprietary busses,
    that have a bus specific policy defining how the child devices
    wires representing the devices ID are translated into IOMMU and
    IRQ controllers device IDs.
    
    Current IORT code provides translations for:
    
    - PCI devices, where the device ID is well identified at bus level
      as the requester ID (RID)
    - Platform devices that are endpoint devices where the device ID is
      retrieved from the ACPI object IORT mappings (Named components single
      mappings). A platform device is represented in IORT as a named
      component node
    
    For devices that are child devices of proprietary busses the IORT
    firmware represents the bus node as a named component node in IORT
    and it is up to that named component node to define in/out bus
    specific ID translations for the bus child devices that are
    allocated and created in a bus specific manner.
    
    In order to make IORT ID translations available for proprietary
    bus child devices, the current ACPI (and IORT) code must be
    augmented to provide an additional ID parameter to acpi_dma_configure()
    representing the child devices input ID. This ID is bus specific
    and it is retrieved in bus specific code.
    
    By adding an ID parameter to acpi_dma_configure(), the IORT
    code can map the child device ID to an IOMMU stream ID through
    the IORT named component representing the bus in/out ID mappings.
    Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Robin Murphy <robin.murphy@arm.com>
    Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
    Link: https://lore.kernel.org/r/20200619082013.13661-6-lorenzo.pieralisi@arm.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
    b8e069a2
iort.c 43.1 KB