Re: [PATCH v6 8/8] Documentation: PCI: endpoint: Document vNTB DMA export
From: Frank Li
Date: Tue Oct 20 2026 - 14:50:10 EST
On Tue, Oct 20, 2026 at 02:49:48PM +0900, Koichiro Den wrote:
> Document the dma_bar attribute and the requirements for exporting
> endpoint DMA channels. Also document how the selected BAR may be shared
> with an MW.
>
> Signed-off-by: Koichiro Den <den@xxxxxxxxxxxxx>
> ---
Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
> Changes since v5:
> - No changes.
>
> Documentation/PCI/endpoint/pci-vntb-howto.rst | 31 +++++++++++++++++--
> 1 file changed, 28 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/PCI/endpoint/pci-vntb-howto.rst b/Documentation/PCI/endpoint/pci-vntb-howto.rst
> index 3679f5c30254..7ca4e1ff095c 100644
> --- a/Documentation/PCI/endpoint/pci-vntb-howto.rst
> +++ b/Documentation/PCI/endpoint/pci-vntb-howto.rst
> @@ -90,9 +90,9 @@ of the function device and is populated with the following NTB specific
> attributes that can be configured by the user::
>
> # ls functions/pci_epf_vntb/func1/pci_epf_vntb.0/
> - ctrl_bar db_count mw1_bar mw2_bar mw3_bar mw4_bar spad_count
> - db_bar mw1 mw2 mw3 mw4 num_mws vbus_number
> - vntb_vid vntb_pid
> + ctrl_bar dma_bar mw2 mw3_bar num_mws vntb_pid
> + db_bar mw1 mw2_bar mw4 spad_count vntb_vid
> + db_count mw1_bar mw3 mw4_bar vbus_number
>
> A sample configuration for NTB function is given below::
>
> @@ -105,6 +105,31 @@ By default, each construct is assigned a BAR, as needed and in order.
> Should a specific BAR setup be required by the platform, BAR may be assigned
> to each construct using the related ``XYZ_bar`` entry.
>
> +To export DMA channels, set ``dma_bar`` before binding the function.
> +For example::
> +
> + # echo 5 > functions/pci_epf_vntb/func1/pci_epf_vntb.0/dma_bar
> +
> +This currently supports the unrolled DesignWare eDMA layout. The EPC must
> +support subrange and dynamic inbound mappings.
> +
> +``dma_bar`` cannot select the control or doorbell BAR.
> +Any rounded-up BAR tail is scratch-backed.
> +
> +Leaving ``dma_bar`` unassigned disables DMA export.
> +With a separate DMA BAR, an older ``ntb_hw_epf`` peer can ignore the extension
> +and continue without DMA. A peer that understands the extension also continues
> +without DMA if the advertised type is unavailable or no DMA IRQ can be
> +allocated.
> +
> +If no spare BAR is available, ``dma_bar`` can select the BAR of one MW instead.
> +DMA resources then follow that MW. In this configuration:
> +
> +* The shared MW size must be a power of two and its translation must cover the
> + full configured size.
> +* An updated peer is required because older peers treat the whole BAR as an
> + MW.
> +
> A sample configuration for virtual NTB driver for virtual PCI bus::
>
> # echo 0x1957 > functions/pci_epf_vntb/func1/pci_epf_vntb.0/vntb_vid
> --
> 2.54.0
>