Go to file
Kevin O'Connor f13b650015 nvme: Build the page list in the existing dma buffer
Commit 01f2736cc9 ("nvme: Pass large I/O requests as PRP lists")
introduced multi-page requests using the NVMe PRP mechanism. To store the
list and "first page to write to" hints, it added fields to the NVMe
namespace struct.

Unfortunately, that struct resides in fseg which is read-only at runtime.
While KVM ignores the read-only part and allows writes, real hardware and
TCG adhere to the semantics and ignore writes to the fseg region. The net
effect of that is that reads and writes were always happening on address 0,
unless they went through the bounce buffer logic.

This patch builds the PRP maintenance data in the existing "dma bounce
buffer" and only builds it when needed.

Fixes: 01f2736cc9 ("nvme: Pass large I/O requests as PRP lists")
Reported-by: Matt DeVillier <matt.devillier@gmail.com>
Signed-off-by: Alexander Graf <graf@amazon.com>
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Reviewed-by: Alexander Graf <graf@amazon.com>
2022-01-27 11:26:01 -05:00
docs docs: Note v1.15.0 release 2021-12-02 20:43:20 -05:00
scripts scripts: Remove python23compat.py 2021-12-19 09:45:04 -05:00
src nvme: Build the page list in the existing dma buffer 2022-01-27 11:26:01 -05:00
vgasrc vgasrc: Don't use VAR16 in header files to fix gcc warning 2021-12-18 12:00:16 -05:00
.gitignore Start using Kconfig to configure SeaBIOS settings. 2011-01-29 09:44:33 -05:00
COPYING Initial checkin. 2008-02-25 22:25:15 -05:00
COPYING.LESSER Change license from GPLv3 to LGPLv3. 2009-01-15 20:52:58 -05:00
Makefile Add implementations for sha256, sha384, and sha512 2021-06-30 16:58:48 -04:00
README Simplify README files - point to online documentation instead 2014-12-15 21:46:56 -05:00

README

Welcome to the SeaBIOS project!  This project implements an X86 legacy
bios that is built with standard GNU tools.

Please see build and developer information at:

  http://seabios.org/Developer_Documentation

For the impatient, SeaBIOS is built for QEMU and tested on QEMU with:

  make
  qemu -bios out/bios.bin

SeaBIOS can be configured with kconfig.  To change the default
configuration one can run "make menuconfig" prior to running "make".

For other types of builds, and for more detailed developer
documentation, please see the online documentation listed above.