Mention devices which support VESA BIOS Extensions (VBE) specifically in the list item of the Root Bus section discussing devices placed on the Root Complex.
VESA BIOS Extensions (VBE) present a particular challenge not currently noted in the recommendations: ioport access to VBE registers is not forwarded over PCI(e) bridges, even when using the special exception bit for VGA register access.[1] As a result, devices supporting VBE must be placed on the Root Complex for VBE to be usable. The new documentation also clarifies that VBE is used on systems with BIOS firmware, including SeaBIOS, and that it is not generally used on systems with UEFI firmware, including OVMF, where UEFI GOP is used. I say "generally" because VBE may be used on UEFI systems which boot using a Compatibility Support Module (CSM), such as SeaBIOS.[2] This clarification is intended to help users who may not be familiar with VBE to determine whether it is relevant to their situation. [1]: https://mail.coreboot.org/hyperkitty/list/seab...@seabios.org/thread/XG2RN3HKVRDEDTLA2PRELLIENIIH7II7/#XVP3I2KQVZHSTDA4SNVKOITWGRGSDU3F [2]: https://www.mail-archive.com/edk2-devel@lists.sourceforge.net/msg03788.html Signed-off-by: Kevin Locke <ke...@kevinlocke.name> --- Changes since v3: * Rewrite the doc addition, limiting it to VGA devices with VBE, as VBE is the only problematic feature. * Rewrite the commit message as a result of the new scope. * Mention VBE in relation to BIOS and UEFI to help users determine whether they may be using VBE. * Make the doc addition a new paragraph of the first list item, rather than its own list item, since it raises a consideration for PCI graphics devices covered by that list item, rather than a separate class of devices. * Drop Suggested-by: Laszlo Ersek. Since I rewrote the text, I can no longer blame Laszlo for any issues in it. Changes since v2: * Change Signed-off-by to Suggested-by for Laszlo Ersek, as suggested by Laszlo Ersek. Changes since v1: * Replace my overly-broad exception for devices requiring ioport access with a list item specifically for PCI Express devices offering VGA Compatibility provided by Laszlo Ersek. * Rewrite the commit message based on my improved understanding of the issue and the improved scope of the change. docs/pcie.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/pcie.txt b/docs/pcie.txt index 89e3502075..21c2624c44 100644 --- a/docs/pcie.txt +++ b/docs/pcie.txt @@ -48,6 +48,12 @@ Place only the following kinds of devices directly on the Root Complex: strangely when PCI Express devices are integrated with the Root Complex. + VGA compatible devices which support VESA BIOS Extensions (VBE) must + be placed on the Root Complex for the VBE registers to be accessible, + as the IO port access is not forwarded over bridges or root ports. + VBE may be used on systems with BIOS firmware (e.g. SeaBIOS). It is + not generally used on systems with UEFI firmware (e.g. OVMF). + (2) PCI Express Root Ports (ioh3420), for starting exclusively PCI Express hierarchies. -- 2.35.1