Transactions on the AXI bus contain a Stream ID. SMMUs filter
authorpatrick <patrick@openbsd.org>
Mon, 1 Mar 2021 21:03:24 +0000 (21:03 +0000)
committerpatrick <patrick@openbsd.org>
Mon, 1 Mar 2021 21:03:24 +0000 (21:03 +0000)
commiteae9bc5e7a21f75a2d4ea8b5d01861b291ab1002
tree9c40e8f7281c425e47256e364d0a64105305d798
parentb7c46c5deb37a8d605c4f95194b549bdbf397875
Transactions on the AXI bus contain a Stream ID.  SMMUs filter
based on Stream IDs.  On the Armada 8040 these Stream IDs can
be configured in different registers.  The PCIe controller has
a register which maps root port, bus, dev and func number to
the Stream ID.  This should be set up by TF-A firmware, but on
the 8040 the current images don't do this.  For chips with more
than one PCIe controller this register must be setup correctly
depending on the implementation, but on the 8040 there only is
one controller, so we can configure a fixed value to match what
is defined in the device tree.  This allows the SMMU to properly
track the PCIe controller's transactions.

ok kettenis@
sys/dev/fdt/dwpcie.c