From: "Gerd Hoffmann" <kraxel@redhat.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: devel@edk2.groups.io, Pawel Polawski <ppolawsk@redhat.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Oliver Steffen <osteffen@redhat.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>
Subject: Re: [PATCH v2 4/4] OvmfPkg/PlatformInitLib: Add PlatformReservationConflictCB
Date: Wed, 11 Jan 2023 09:26:47 +0100 [thread overview]
Message-ID: <20230111082647.d3bg3er5ofjpszuc@sirius.home.kraxel.org> (raw)
In-Reply-To: <adb68777-ecbe-90a1-0117-767cccb5d464@redhat.com>
Hi,
> > +/**
> > + Check whenever the 64bit PCI MMIO window overlaps with a reservation
> > + from qemu. If so move down the MMIO window to resolve the conflict.
> > +
> > + This happens on (virtal) AMD machines with 1TB address space,
> > + because the AMD IOMMU uses an address window just below 1GB.
>
> (3) Same two typos, I think, as in the commit message.
Duplicated by the power of cut + paste.
> > + NewBase = (PlatformInfoHob->PcdPciMmio64Base -
> > + PlatformInfoHob->PcdPciMmio64Size);
>
> (6) This appears a typo; we'll want
>
> NewBase + PcdPciMmio64Size == E820Entry->BaseAddr
But then NewBase is not aligned. The assignment above moves it down
while maintaining the existing alignment.
> (9) Do we need any other checks or maybe assertions that we're only
> conflicting with a reserved area, and/or that the subtraction for
> NewBase does not underflow?
>
> I don't think we can "armor" this very well, I'm just pondering if there
> are any egregious misunderstandings between QEMU and the firmware that
> we might want to catch here. If not, that's OK of course.
Yes, it's hard to design something which can handle all reservations
qemu might do in the future correctly. And, yes, the code above works
because we know the qemu reservation is smaller than the mmio window, so
moving down to the next naturally aligned address actually solves the
conflict.
take care,
Gerd
next prev parent reply other threads:[~2023-01-11 8:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-10 8:21 [PATCH v2 0/4] OvmfPkg: check 64bit mmio window for resource conflicts Gerd Hoffmann
2023-01-10 8:21 ` [PATCH v2 1/4] OvmfPkg/PlatformInitLib: Add PlatformScanE820 and GetFirstNonAddressCB Gerd Hoffmann
2023-01-10 15:41 ` Laszlo Ersek
2023-01-10 8:21 ` [PATCH v2 2/4] OvmfPkg/PlatformInitLib: Add PlatformGetLowMemoryCB Gerd Hoffmann
2023-01-10 16:53 ` Laszlo Ersek
2023-01-11 7:29 ` Gerd Hoffmann
2023-01-11 13:56 ` Laszlo Ersek
2023-01-11 15:23 ` Gerd Hoffmann
2023-01-12 11:09 ` Laszlo Ersek
2023-01-12 14:03 ` Gerd Hoffmann
2023-01-12 15:44 ` Laszlo Ersek
2023-01-10 8:21 ` [PATCH v2 3/4] OvmfPkg/PlatformInitLib: Add PlatformAddHobCB Gerd Hoffmann
2023-01-10 17:42 ` Laszlo Ersek
2023-01-11 8:06 ` Gerd Hoffmann
2023-01-11 14:08 ` Laszlo Ersek
2023-01-10 8:21 ` [PATCH v2 4/4] OvmfPkg/PlatformInitLib: Add PlatformReservationConflictCB Gerd Hoffmann
2023-01-10 17:55 ` Laszlo Ersek
2023-01-11 8:26 ` Gerd Hoffmann [this message]
2023-01-12 10:36 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230111082647.d3bg3er5ofjpszuc@sirius.home.kraxel.org \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox