On 06/11/18 15:52, Gerd Hoffmann wrote:
Hi,
The change [2] itself is rather old, so I wondered if I'm missing that this was implemented in a totally different way. Do I have to switch/set options these days instead of using that patch?
It should just work. qemu passes ram regions to the firmware using fw_cfg (etc/e820) these days, and both seabios and ovmf support this for years already.
Small pedantic correction (not affecting the core statement): OVMF has supported >=1TB guests only since commit 1fceaddb12b5 ("OvmfPkg/PlatformPei: support >=1TB high RAM, and discontiguous high RAM", 2017-08-05) [1] [2].
And, enabling such with -D SMM_REQUIRE had taken surprisingly messy pre-requisites; see [3]. Large guest RAM requires guest firmware (that intends to identity map all of that RAM) to build large page tables. For SMM, a separate set of page tables is built in SMRAM (TSEG); however, TSEG used to be limited. This was one of the reasons we had to introduce "extended TSEG", for exposing which libvirt has gained support just a few days ago [4].
[1] https://github.com/tianocore/edk2/commit/1fceaddb12b5 [2] https://bugzilla.redhat.com/show_bug.cgi?id=1468526#c19 [3] https://bugzilla.redhat.com/show_bug.cgi?id=1447027#c20 [4] https://bugzilla.redhat.com/show_bug.cgi?id=1469338#c22
Thanks Laszlo