diff mbox series

[1/1] docs: pcie: describe PCIe option ROMs

Message ID 20220720064234.93576-1-heinrich.schuchardt@canonical.com (mailing list archive)
State Superseded, archived
Headers show
Series [1/1] docs: pcie: describe PCIe option ROMs | expand

Commit Message

Heinrich Schuchardt July 20, 2022, 6:42 a.m. UTC
Provide a descriptions of the options that control the emulation of option
ROMS for PCIe devices.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
---
 docs/pcie.txt | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

Comments

Heinrich Schuchardt July 20, 2022, 10:26 a.m. UTC | #1
On 7/20/22 08:42, Heinrich Schuchardt wrote:
> Provide a descriptions of the options that control the emulation of option
> ROMS for PCIe devices.
> 
> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> ---
>   docs/pcie.txt | 25 +++++++++++++++++++++++++
>   1 file changed, 25 insertions(+)
> 
> diff --git a/docs/pcie.txt b/docs/pcie.txt
> index 89e3502075..a22c1f69f7 100644
> --- a/docs/pcie.txt
> +++ b/docs/pcie.txt
> @@ -292,6 +292,31 @@ PCI-PCI Bridge slots can be used for legacy PCI host devices.
>   If you can see the "Express Endpoint" capability in the
>   output, then the device is indeed PCI Express.
>   
> +8. Option ROM
> +=============
> +PCIe devices may provide an option ROM. The following properties control the
> +emulation of the option ROM:
> +
> +``rombar`` (default: ``1``)
> +  Specifies that an option ROM is available. If set to ``0``, no option ROM
> +  is present.
> +
> +``romsize`` (default: ``-1``)
> +  Specifies the size of the option ROM in bytes. The value must be either
> +  ``-1`` or a power of two. ``-1`` signifies unlimited size.
> +
> +``romfile``
> +  Defines the name of the file to be loaded as option ROM.
> +  Some devices like virtio-net-pci define a default file name.
> +  The file size may neither exceed 2 GiB nor ``romsize``.
> +
> +Some QEMU PCIe devices like virtio-net-pci use an option ROM by default. In the
> +following example the option ROM of a virtio-net-pci device is disabled. This
> +is useful for architectures where QEMU does not supply an option ROM file.
> +
> +.. code-block:: console
> +
> +    -device virtio-net-pci,netdev=eth1,mq=on,rombar=0

If no ROM file exists, this is good enough.

If it does exist and I create multiple virtio-net-pci devices with 
rombar=0, I get an error indicating that the same ROM is used twice:

qemu-system-riscv64: -device virtio-net-pci,netdev=eth1,mq=on,rombar=0: 
duplicate fw_cfg file name: genroms/efi-virtio.rom

I ended up using to solve the problem:

-device virtio-net-pci,netdev=eth1,mq=on,rombar=0,romfile=

I guess some input from the maintainers would be helpful here:

- Why is the file read if rombar=0? Is this a bug?
- Why can't the same option ROM file be used twice? It is read-only.

Best regards

Heinrich

>   
>   7. Virtio devices
>   =================
diff mbox series

Patch

diff --git a/docs/pcie.txt b/docs/pcie.txt
index 89e3502075..a22c1f69f7 100644
--- a/docs/pcie.txt
+++ b/docs/pcie.txt
@@ -292,6 +292,31 @@  PCI-PCI Bridge slots can be used for legacy PCI host devices.
 If you can see the "Express Endpoint" capability in the
 output, then the device is indeed PCI Express.
 
+8. Option ROM
+=============
+PCIe devices may provide an option ROM. The following properties control the
+emulation of the option ROM:
+
+``rombar`` (default: ``1``)
+  Specifies that an option ROM is available. If set to ``0``, no option ROM
+  is present.
+
+``romsize`` (default: ``-1``)
+  Specifies the size of the option ROM in bytes. The value must be either
+  ``-1`` or a power of two. ``-1`` signifies unlimited size.
+
+``romfile``
+  Defines the name of the file to be loaded as option ROM.
+  Some devices like virtio-net-pci define a default file name.
+  The file size may neither exceed 2 GiB nor ``romsize``.
+
+Some QEMU PCIe devices like virtio-net-pci use an option ROM by default. In the
+following example the option ROM of a virtio-net-pci device is disabled. This
+is useful for architectures where QEMU does not supply an option ROM file.
+
+.. code-block:: console
+
+    -device virtio-net-pci,netdev=eth1,mq=on,rombar=0
 
 7. Virtio devices
 =================