aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-26spapr: Support NVIDIA V100 GPU with NVLink2Alexey Kardashevskiy
NVIDIA V100 GPUs have on-board RAM which is mapped into the host memory space and accessible as normal RAM via an NVLink bus. The VFIO-PCI driver implements special regions for such GPUs and emulates an NVLink bridge. NVLink2-enabled POWER9 CPUs also provide address translation services which includes an ATS shootdown (ATSD) register exported via the NVLink bridge device. This adds a quirk to VFIO to map the GPU memory and create an MR; the new MR is stored in a PCI device as a QOM link. The sPAPR PCI uses this to get the MR and map it to the system address space. Another quirk does the same for ATSD. This adds additional steps to sPAPR PHB setup: 1. Search for specific GPUs and NPUs, collect findings in sPAPRPHBState::nvgpus, manage system address space mappings; 2. Add device-specific properties such as "ibm,npu", "ibm,gpu", "memory-block", "link-speed" to advertise the NVLink2 function to the guest; 3. Add "mmio-atsd" to vPHB to advertise the ATSD capability; 4. Add new memory blocks (with extra "linux,memory-usable" to prevent the guest OS from accessing the new memory until it is onlined) and npuphb# nodes representing an NPU unit for every vPHB as the GPU driver uses it for link discovery. This allocates space for GPU RAM and ATSD like we do for MMIOs by adding 2 new parameters to the phb_placement() hook. Older machine types set these to zero. This puts new memory nodes in a separate NUMA node to as the GPU RAM needs to be configured equally distant from any other node in the system. Unlike the host setup which assigns numa ids from 255 downwards, this adds new NUMA nodes after the user configures nodes or from 1 if none were configured. This adds requirement similar to EEH - one IOMMU group per vPHB. The reason for this is that ATSD registers belong to a physical NPU so they cannot invalidate translations on GPUs attached to another NPU. It is guaranteed by the host platform as it does not mix NVLink bridges or GPUs from different NPU in the same IOMMU group. If more than one IOMMU group is detected on a vPHB, this disables ATSD support for that vPHB and prints a warning. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> [aw: for vfio portions] Acked-by: Alex Williamson <alex.williamson@redhat.com> Message-Id: <20190312082103.130561-1-aik@ozlabs.ru> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2019-04-24Merge remote-tracking branch 'remotes/lersek/tags/edk2-pull-2019-04-22' into ↵Peter Maydell
staging Advance the roms/edk2 submodule to the "edk2-stable201903" release, and build and capture platform firmware binaries from that release. The binaries are meant to be used by both end-users and by the "BIOS tables" unit tests in qtest ("make check"). # gpg: Signature made Mon 22 Apr 2019 19:20:08 BST # gpg: using RSA key D39DA71E0D496CFA # gpg: Good signature from "Laszlo Ersek <lersek@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: F5D9 660F 1BA5 F310 A95A C5E0 466A EAE0 6125 3988 # Subkey fingerprint: B3A5 5D3F 88A8 90ED 2E63 3E8D D39D A71E 0D49 6CFA * remotes/lersek/tags/edk2-pull-2019-04-22: MAINTAINERS: add the "EDK2 Firmware" subsystem Makefile: install the edk2 firmware images and their descriptors tests: add missing dependency to build QTEST_QEMU_BINARY, round 2 pc-bios: document the edk2 firmware images; add firmware descriptors pc-bios: add edk2 firmware binaries and variable store templates roms: build edk2 firmware binaries and variable store templates roms/Makefile: replace the $(EDK2_EFIROM) target with "edk2-basetools" roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function roms/edk2: advance to tag edk2-stable201903 tests/uefi-test-tools/build.sh: work around TianoCore#1607 roms/edk2-funcs.sh: require gcc-4.8+ for building i386 and x86_64 roms: lift "edk2-funcs.sh" from "tests/uefi-test-tools/build.sh" Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-24Merge remote-tracking branch ↵Peter Maydell
'remotes/armbru/tags/pull-error-monitor-2019-04-18' into staging Error reporting & monitor patches for 2019-04-18 # gpg: Signature made Thu 18 Apr 2019 21:40:41 BST # gpg: using RSA key 3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" [full] # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" [full] # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * remotes/armbru/tags/pull-error-monitor-2019-04-18: (36 commits) include: Move fprintf_function to disas/ disas: Rename include/disas/bfd.h back to include/disas/dis-asm.h monitor: Clean up how monitor_disas() funnels output to monitor qom/cpu: Simplify how CPUClass:cpu_dump_state() prints qemu-print: New qemu_fprintf(), qemu_vfprintf() qom/cpu: Simplify how CPUClass::dump_statistics() prints target/i386: Simplify how x86_cpu_dump_local_apic_state() prints target: Clean up how the dump_mmu() print target: Simplify how the TARGET_cpu_list() print memory: Clean up how mtree_info() prints block/qapi: Clean up how we print to monitor or stdout qsp: Simplify how qsp_report() prints tcg: Simplify how dump_drift_info() prints tcg: Simplify how dump_exec_info() prints tcg: Simplify how dump_opcount_info() prints trace: Simplify how st_print_trace_file_status() prints include: Include fprintf-fn.h only where needed monitor: Simplify how -device/device_add print help char-pty: Print "char device redirected" message to stdout char: Make -chardev help print to stdout ... Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-24Open 4.1 development treePeter Maydell
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-23Update version for v4.0.0 releasev4.0.0Peter Maydell
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2019-04-18include: Move fprintf_function to disas/Markus Armbruster
The previous commits have eliminated fprintf_function outside disassemblers, simplifying code and cleaning up the ugly type-punning fprintf_function seems to attract. Move fprintf_function to include/disas/dis-asm.h to reduce the temptation to abuse it. I considered renaming it to fprintf_ftype (reverting that part of commit 6e2d864edf5, v0.14.0) to get us closer to binutils, but I figure the fork is too distant to make this worthwhile. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-18-armbru@redhat.com>
2019-04-18disas: Rename include/disas/bfd.h back to include/disas/dis-asm.hMarkus Armbruster
Commit dc99065b5f9 (v0.1.0) added dis-asm.h from binutils. Commit 43d4145a986 (v0.1.5) inlined bfd.h into dis-asm.h to remove the dependency on binutils. Commit 76cad71136b (v1.4.0) moved dis-asm.h to include/disas/bfd.h. The new name is confusing when you try to match against (pre GPLv3+) binutils. Rename it back. Keep it in the same directory, of course. Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190417191805.28198-17-armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-04-18monitor: Clean up how monitor_disas() funnels output to monitorMarkus Armbruster
INIT_DISASSEMBLE_INFO() takes an fprintf()-like callback and a FILE * to pass to it. monitor_disas() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Pass qemu_fprintf() and NULL instead. monitor_fprintf() is now unused; delete it. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-16-armbru@redhat.com> [Commit message typo corrected]
2019-04-18qom/cpu: Simplify how CPUClass:cpu_dump_state() printsMarkus Armbruster
CPUClass method dump_statistics() takes an fprintf()-like callback and a FILE * to pass to it. Most callers pass fprintf() and stderr. log_cpu_state() passes fprintf() and qemu_log_file. hmp_info_registers() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The callback gets passed around a lot, which is tiresome. The type-punning around monitor_fprintf() is ugly. Drop the callback, and call qemu_fprintf() instead. Also gets rid of the type-punning, since qemu_fprintf() takes NULL instead of the current monitor cast to FILE *. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-15-armbru@redhat.com>
2019-04-18qemu-print: New qemu_fprintf(), qemu_vfprintf()Markus Armbruster
Code that doesn't want to know about current monitor vs. stdout vs. stderr takes an fprintf_function callback and a FILE * argument to pass to it. Actual arguments are either fprintf() and stdout or stderr, or monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. New qemu_fprintf() and qemu_vprintf() address this need without type punning: they are like fprintf() and vfprintf(), except they print to the current monitor when passed a null FILE *. The next commits will put them to use. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-14-armbru@redhat.com>
2019-04-18qom/cpu: Simplify how CPUClass::dump_statistics() printsMarkus Armbruster
CPUClass method dump_statistics() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_info_cpustats() (via cpu_dump_statistics()) passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-13-armbru@redhat.com>
2019-04-18target/i386: Simplify how x86_cpu_dump_local_apic_state() printsMarkus Armbruster
x86_cpu_dump_local_apic_state() takes an fprintf()-like callback and a FILE * to pass to it, and so do its helper functions. Its only caller hmp_info_local_apic() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-12-armbru@redhat.com>
2019-04-18target: Clean up how the dump_mmu() printMarkus Armbruster
The various dump_mmu() take an fprintf()-like callback and a FILE * to pass to it, and so do their helper functions. Passing around callback and argument is rather tiresome. Most dump_mmu() are called only by the target's hmp_info_tlb(). These all pass monitor_printf() cast to fprintf_function and the current monitor cast to FILE *. SPARC's dump_mmu() gets also called from target/sparc/ldst_helper.c a few times #ifdef DEBUG_MMU. These calls pass fprintf() and stdout. The type-punning is technically undefined behaviour, but works in practice. Clean up: drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-11-armbru@redhat.com>
2019-04-18target: Simplify how the TARGET_cpu_list() printMarkus Armbruster
The various TARGET_cpu_list() take an fprintf()-like callback and a FILE * to pass to it. Their callers (vl.c's main() via list_cpus(), bsd-user/main.c's main(), linux-user/main.c's main()) all pass fprintf() and stdout. Thus, the flexibility provided by the (rather tiresome) indirection isn't actually used. Drop the callback, and call qemu_printf() instead. Calling printf() would also work, but would make the code unsuitable for monitor context without making it simpler. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190417191805.28198-10-armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
2019-04-18memory: Clean up how mtree_info() printsMarkus Armbruster
mtree_info() takes an fprintf()-like callback and a FILE * to pass to it, and so do its helper functions. Passing around callback and argument is rather tiresome. Its only caller hmp_info_mtree() passes monitor_printf() cast to fprintf_function and the current monitor cast to FILE *. The type-punning is technically undefined behaviour, but works in practice. Clean up: drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-9-armbru@redhat.com>
2019-04-18block/qapi: Clean up how we print to monitor or stdoutMarkus Armbruster
bdrv_snapshot_dump(), bdrv_image_info_specific_dump(), bdrv_image_info_dump() and their helpers take an fprintf()-like callback and a FILE * to pass to it. hmp.c passes monitor_printf() cast to fprintf_function and the current monitor cast to FILE *. qemu-img.c and qemu-io-cmds.c pass fprintf and stdout. The type-punning is technically undefined behaviour, but works in practice. Clean up: drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-8-armbru@redhat.com>
2019-04-18qsp: Simplify how qsp_report() printsMarkus Armbruster
qsp_report() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_sync_profile() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-7-armbru@redhat.com>
2019-04-18tcg: Simplify how dump_drift_info() printsMarkus Armbruster
dump_drift_info() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_info_jit() passes monitor_fprintf() and a Monitor * cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-6-armbru@redhat.com>
2019-04-18tcg: Simplify how dump_exec_info() printsMarkus Armbruster
dump_exec_info() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_info_jit() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-5-armbru@redhat.com>
2019-04-18tcg: Simplify how dump_opcount_info() printsMarkus Armbruster
dump_opcount_info() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_info_opcount() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-4-armbru@redhat.com>
2019-04-18trace: Simplify how st_print_trace_file_status() printsMarkus Armbruster
st_print_trace_file_status() takes an fprintf()-like callback and a FILE * to pass to it. Its only caller hmp_trace_file() passes monitor_fprintf() and the current monitor cast to FILE *. monitor_fprintf() casts it right back, and is otherwise identical to monitor_printf(). The type-punning is ugly. Drop the callback, and call qemu_printf() instead. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-3-armbru@redhat.com>
2019-04-18include: Include fprintf-fn.h only where neededMarkus Armbruster
Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417191805.28198-2-armbru@redhat.com>
2019-04-18monitor: Simplify how -device/device_add print helpMarkus Armbruster
Commit a95db58f210 added monitor_vfprintf() as an error_printf() generalized from stderr to arbitrary streams, then used it wrapped in helper out_printf() to print -device/device_add help to stdout. Use qemu_printf() instead, and delete monitor_vfprintf() and out_printf(). Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417190641.26814-16-armbru@redhat.com>
2019-04-18char-pty: Print "char device redirected" message to stdoutMarkus Armbruster
char_pty_open() prints a "char device redirected to PTY_NAME (label LABEL)" message to the current monitor or else to stderr. This is not an error, so it shouldn't go to stderr. Print it to stdout instead. Why is it even printed? No other ChardevClass::open() prints anything on success. It's because you need to know PTY_NAME to actually use this char device, e.g. like e.g. "socat STDIO,cfmakeraw FILE:PTY_NAME" to use the monitor's readline interface. You can get PTY_NAME with "info chardev" (a.k.a. query-chardev for QMP), but only if you already have a monitor. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190417190641.26814-15-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
2019-04-18char: Make -chardev help print to stdoutMarkus Armbruster
Command line help explicitly requested by the user should be printed to stdout, not stderr. We do elsewhere. Adjust -chardev to match: use qemu_printf() instead of error_printf(). Plain printf() would be wrong because we need to print to the current monitor for "chardev-add help". Cc: "Marc-André Lureau" <marcandre.lureau@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190417190641.26814-14-armbru@redhat.com>
2019-04-18blockdev: Make -drive format=help print to stdoutMarkus Armbruster
Command line help explicitly requested by the user should be printed to stdout, not stderr. We do elsewhere. Adjust -drive to match: use qemu_printf() instead of error_printf(). Plain printf() would be wrong because we need to print to the current monitor for "drive_add ... format=help". Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190417190641.26814-13-armbru@redhat.com>
2019-04-18qemu-print: New qemu_printf(), qemu_vprintf() etc.Markus Armbruster
We commonly want to print to the current monitor if we have one, else to stdout/stderr. For stderr, have error_printf(). For stdout, all we have is monitor_vfprintf(), which is rather unwieldy. We often print to stderr just because error_printf() is easier. New qemu_printf() and qemu_vprintf() do exactly what's needed. The next commits will put them to use. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417190641.26814-12-armbru@redhat.com>
2019-04-18monitor error: Make printf()-like functions return a valueMarkus Armbruster
printf() & friends return the number of characters written on success, negative value on error. monitor_printf(), monitor_vfprintf(), monitor_vprintf(), error_printf(), error_printf_unless_qmp(), error_vprintf(), and error_vprintf_unless_qmp() return void. Some of them carry a TODO comment asking for int instead. Improve them to return int like printf() does. This makes our use of monitor_printf() as fprintf_function slightly less dirty: the function cast no longer adds a return value that isn't there. It still changes a parameter's pointer type. That will be addressed in a future commit. monitor_vfprintf() always returns zero. Improve it to return the proper value. Cc: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190417190641.26814-11-armbru@redhat.com>
2019-04-18vl: Make -machine $TYPE,help and -accel help print to stdoutMarkus Armbruster
Command line help help explicitly requested by the user should be printed to stdout, not stderr. We do elsewhere. Adjust -machine $TYPE,help and -accel help to match: use printf() instead of error_printf(). Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Message-Id: <20190417190641.26814-10-armbru@redhat.com>
2019-04-18s390x/kvm: Report warnings with warn_report(), not error_printf()Markus Armbruster
kvm_s390_mem_op() can fail in two ways: when !cap_mem_op, it returns -ENOSYS, and when kvm_vcpu_ioctl() fails, it returns -errno set by ioctl(). Its caller s390_cpu_virt_mem_rw() recovers from both failures. kvm_s390_mem_op() prints "KVM_S390_MEM_OP failed" with error_printf() in the latter failure mode. Since this is obviously a warning, use warn_report(). Perhaps the reporting should be left to the caller. It could warn on failure other than -ENOSYS. Cc: Thomas Huth <thuth@redhat.com> Cc: qemu-s390x@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <20190417190641.26814-9-armbru@redhat.com>
2019-04-18vfio: Report warnings with warn_report(), not error_printf()Markus Armbruster
Cc: Alex Williamson <alex.williamson@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190417190641.26814-8-armbru@redhat.com> Acked-by: Alex Williamson <alex.williamson@redhat.com>
2019-04-17hpet: Report warnings with warn_report(), not error_printf()Markus Armbruster
Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190417190641.26814-7-armbru@redhat.com>
2019-04-17pci: Report fatal errors with error_report(), not error_printf()Markus Armbruster
Cc: "Michael S. Tsirkin" <mst@redhat.com> Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> Message-Id: <20190417190641.26814-6-armbru@redhat.com>
2019-04-17mips/boston: Report errors with error_report(), not error_printf()Markus Armbruster
Cc: Paul Burton <pburton@wavecomp.com> Cc: Aleksandar Rikalo <arikalo@wavecomp.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190417190641.26814-5-armbru@redhat.com>
2019-04-17loader-fit: Wean off error_printf()Markus Armbruster
load_fit() reports errors with error_printf() instead of error_report(). Worse, it even reports errors it actually recovers from, in fit_cfg_compatible() and fit_load_fdt(). Messed up in initial commit 51b58561c1d. Convert the helper functions for load_fit() to Error. Make sure each failure path sets an error. Fix fit_cfg_compatible() and fit_load_fdt() not to report errors they actually recover from. Convert load_fit() to error_report(). Cc: Paul Burton <pburton@wavecomp.com> Cc: Aleksandar Rikalo <arikalo@wavecomp.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190417190641.26814-4-armbru@redhat.com>
2019-04-17block/ssh: Do not report read/write/flush errors to the userMarkus Armbruster
Callbacks ssh_co_readv(), ssh_co_writev(), ssh_co_flush() report errors to the user with error_printf(). They shouldn't, it's their caller's job. Replace by a suitable trace point. While there, drop the unreachable !s->sftp case. Perhaps we should convert this part of the block driver interface to Error, so block drivers can pass more detail to their callers. Not today. Cc: "Richard W.M. Jones" <rjones@redhat.com> Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20190417190641.26814-3-armbru@redhat.com>
2019-04-17qemu-img: Use error_vreport() in error_exit()Markus Armbruster
error_exit() uses low-level error_printf() to report errors. Modernize it to use error_vreport(). Cc: Kevin Wolf <kwolf@redhat.com> Cc: Max Reitz <mreitz@redhat.com> Cc: qemu-block@nongnu.org Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20190417190641.26814-2-armbru@redhat.com>
2019-04-17util/error: do not free error on error_abortVladimir Sementsov-Ogievskiy
It would be nice to have Error object not freed away when debugging a coredump. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Message-Id: <20190415142519.73060-1-vsementsov@virtuozzo.com> [error_printf_unless_qmp() replaced by error_printf()] Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-04-17error: Fix error_report_err(), warn_report_err() hint printingMarkus Armbruster
Before the from qerror_report() to error_setg(), hints looked like this: qerror_report(QERR_MACRO, ... arguments ...); error_printf_unless_qmp(... hint ...); error_printf_unless_qmp() made perfect sense: it printed exactly when qerror_report() did. After the conversion to error_setg(): error_setg(errp, QERR_MACRO, ... arguments ...); error_printf_unless_qmp(... hint ...); The "unless QMP part" still made some sense; in QMP context, the caller generally uses the error as QMP response instead of printing it. However, everything else is wrong. If the caller handles the error, the hint gets printed anyway (unless QMP). If the caller reports the error, the hint gets printed *before* the report (unless QMP) or not at all (if QMP). Commit 50b7b000c91 fixed this by making hints a member of Error. It kept printing hints with error_printf_unless_qmp(): void error_report_err(Error *err) { error_report("%s", error_get_pretty(err)); + if (err->hint) { + error_printf_unless_qmp("%s\n", err->hint->str); + } error_free(err); } This is wrong. We should (and now can) print the hint exactly when we print the error. The mistake has since been copied to warn_report_err() in commit e43ead1d0b9. Fix both to use error_printf(). Reported-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Cc: Eric Blake <eblake@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <20190416153850.5186-1-armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> [Commit message tweaked]
2019-04-17log: Make glib logging go through QEMUChristophe Fergeau
This commit adds a error_init() helper which calls g_log_set_default_handler() so that glib logs (g_log, g_warning, ...) are handled similarly to other QEMU logs. This means they will get a timestamp if timestamps are enabled, and they will go through the HMP monitor if one is configured. This commit also adds a call to error_init() to the binaries installed by QEMU. Since error_init() also calls error_set_progname(), this means that *-linux-user, *-bsd-user and qemu-pr-helper messages output with error_report, info_report, ... will slightly change: they will be prefixed by the binary name. glib debug messages are enabled through G_MESSAGES_DEBUG similarly to the glib default log handler. At the moment, this change will mostly impact SPICE logging if your spice version is >= 0.14.1. With older spice versions, this is not going to work as expected, but will not have any ill effect, so this call is not conditional on the SPICE version. Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20190131164614.19209-3-cfergeau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-04-17qemu-io: Use error_[gs]et_progname()Christophe Fergeau
qemu-io reimplements itself what error_get_progname()/error_set_progname() already does. This commit switches it to use this API from qemu-error.h Signed-off-by: Christophe Fergeau <cfergeau@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20190131164614.19209-2-cfergeau@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
2019-04-17MAINTAINERS: add the "EDK2 Firmware" subsystemLaszlo Ersek
We now have the edk2 submodule, somewhat elaborate build helpers for it, and even a UEFI application written against edk2 whose genuine home is the QEMU repository. Add the "EDK2 Firmware" subsystem such that all relevant pathnames be covered. Suggested-by: Daniel P. Berrangé <berrange@redhat.com> Suggested-by: Michael S. Tsirkin <mst@redhat.com> Suggested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17Makefile: install the edk2 firmware images and their descriptorsLaszlo Ersek
Decompress and install the edk2 firmware blobs as part of "make install", unless blob installation was disabled with configure's "--disable-blobs" option. Additionally, decompress the blobs as a pre-requisite for building softmmu binaries -- this is helpful for both "make check" and other ad-hoc tests one might want to run in the build directory. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17tests: add missing dependency to build QTEST_QEMU_BINARY, round 2Laszlo Ersek
In commit b94b330e2333 ("tests: add missing dependency to build QTEST_QEMU_BINARY", 2017-07-31), Phil fixed the dependency list of make target "check-qtest-%". Namely, the recipe would set QTEST_QEMU_BINARY to the softmmu emulator for the emulation target, but the prerequisites didn't include the emulator. The same issue affects the "check-report-qtest-%.tap" make target, which is the other make target whose recipe sets QTEST_QEMU_BINARY: > $ make -j4 check-report-qtest-aarch64.tap > TAP check-report-qtest-aarch64.tap > sh: /.../aarch64-softmmu/qemu-system-aarch64: No such file or directory Apply Phil's fix to this make target too. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17pc-bios: document the edk2 firmware images; add firmware descriptorsLaszlo Ersek
Update the README file with information on the images added previously, and provide firmware descriptor documents that conform to "docs/interop/firmware.json". Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17pc-bios: add edk2 firmware binaries and variable store templatesLaszlo Ersek
Add the files built by the last patch: (compressed) binaries, and the cumulative license text that covers them. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17roms: build edk2 firmware binaries and variable store templatesLaszlo Ersek
Add the "efi" target to "Makefile". Introduce "Makefile.edk2" for building and cleaning the firmware images and varstore templates. Collect the common bits from the recipes in the helper script "edk2-build.sh". Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17roms/Makefile: replace the $(EDK2_EFIROM) target with "edk2-basetools"Laszlo Ersek
We don't (can't) have a recipe for building just $(EDK2_EFIROM); therefore, while we call the target $(EDK2_EFIROM), we actually build all of the edk2 BaseTools. Rename the target to edk2-basetools, and update the iPXE prerequisite accordingly. This will let other targets depend on "edk2-basetools", where an $(EDK2_EFIROM) pre-requisite would be misleading. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() functionLaszlo Ersek
The edk2 "build" utility natively supports building modules (that is, INF files) in parallel. The feature is not useful when building a single module (with the "-m" option), but it is useful for platform firmware builds (which include many modules). Add a function that determines the "-n" option argument for "build", from the MAKEFLAGS variable (i.e. based on the presence of a make job server). Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
2019-04-17roms/edk2: advance to tag edk2-stable201903Laszlo Ersek
Update the roms/edk2 submodule hash from edk2-stable201811 to edk2-stable201903. The release notes are available at <https://github.com/tianocore/edk2/releases/tag/edk2-stable201903>. $ git shortlog edk2-stable201811..edk2-stable201903 Achin Gupta (9): ArmPkg: Add PCDs needed for MM communication driver. ArmPkg/Drivers: Add EFI_MM_COMMUNICATION_PROTOCOL DXE driver. ArmPkg/Include: Add MM interface SVC return codes. ArmPkg/ArmMmuLib: Add MMU Library suitable for use in S-EL0. StandaloneMmPkg: Add missing dependency on PL011UartClockLib StandaloneMmPkg: Enforce alignment check for AArch64 StandaloneMmPkg: Zero data structure explicitly StandaloneMmPkg: Replace dependency on ArmMmuLib StandaloneMmPkg: Update dependency on PeCoffExtraActionLib Albecki, Mateusz (1): MdeModulePkg/SdMmcPciHcDxe Fix eMMC HS400 switch sequence Alex James (2): StdLib/sys/termios: Define cc_t as unsigned StdLib/Environs: Avoid infinite recursion in _Exit Antoine Coeur (5): ArmVirtPkg: Fix various typos CryptoPkg: Fix various typos CorebootPayloadPkg: Fix various typos CorebootModulePkg: Fix various typos BaseTools: Various typo Ard Biesheuvel (116): MdePkg/BaseIoLibIntrinsicArmVirt ARM: avoid double word loads and stores ArmPkg/ArmGicDxe ARM: fix encoding for GICv3 interrupt acknowledge ArmPlatformPkg: clear frame pointer in startup code ArmVirtPkg/PrePi: clear frame pointer in startup code ArmPkg/ArmSmcPsciResetSystemLib: add missing call to ExitBootServices() ArmPkg: remove now unused BsdLib.h ArmPlatformPkg/NorFlashDxe: prepare for devicepath format change ArmPlatformPkg/NorFlashDxe: use one GUID plus index to identify flash banks ArmVirtPkg/FdtClientDxe: take DT node 'status' properties into account ArmVirtPkg/NorFlashQemuLib: discover NOR flash banks dynamically ArmPlatformPkg/NorFlashPlatformLib: remove unused Guid member from struct ArmPkg/ArmPkg.dsc: move ArmMmuStandaloneMmLib.inf to AARCH64 section EmbeddedPkg/TemplateSec: remove unused module EmbeddedPkg/PrePiHobLib: drop CreateHobList() from library ArmVirtPkg/FdtPciHostBridgeLib: map ECAM and I/O spaces in GCD memory map ArmVirtPkg/QemuVirtMemInfoLib: remove 1:1 mapping of top of PA range MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits ArmPkg/ArmLib: add support for reading the max physical address space size ArmVirtPkg/XenVirtMemInfoLib: refactor reading of the PA space size ArmPkg/ArmMmuLib: take the CPU supported maximum PA space into account ArmPkg/CpuPei: base GCD memory space size on CPU's PA range ArmPlatformPkg/PrePi: base GCD memory space size on CPU's PA range ArmVirtPkg/PrePi: base GCD memory space size on CPU's PA range BeagleBoardPkg/PrePi: base GCD memory space size on CPU's PA range ArmPlatformPkg/PlatformPei: drop unused PCD references EmbeddedPkg/PrePiLib: drop unused PCD reference ArmVirtPkg: drop PcdPrePiCpuMemorySize assignments from all platforms EmbeddedPkg/EmbeddedPkg.dec: drop PcdPrePiCpuMemorySize declarations ArmPkg/ArmMmuLib ARM: handle unmapped section in GetMemoryRegion() ArmPkg/ArmMmuLib ARM: handle unmapped sections when updating permissions ArmVirtPkg/NorFlashQemuLib: disregard our primary FV ArmVirtPkg/QemuVirtMemInfoLib: trim the MMIO region mapping BaseTools/CommonLib: avoid using 'native' word size in IP address handling BaseTools/CommonLib: use explicit 64-bit type in Strtoi() BaseTools/DevicePath: use explicit 64-bit number parsing routines BaseTools/CommonLib: add definition of MAX_UINT32 BaseTools/DevicePath: use MAX_UINT32 as default device path max size BaseTools/CommonLib: get rid of 'native' type string parsing routines BaseTools/CommonLib: drop definition of MAX_UINTN BaseTools/CommonLib: drop the use of MAX_ADDRESS Revert "MdePkg/ProcessorBind.h AARCH64: limit MAX_ADDRESS to 48 bits" MdeModulePkg/FileExplorerLib: avoid packed struct for program data BaseTools/tools_def AARCH64 RELEASE: move GCC49/GGC5 to 4 KB alignment ArmVirtPkg/ArmVirtQemuKernel ARM: make some PCD settings apply to ARM ArmVirtPkg/PrePiUniCoreRelocatable CLANG38: work around build issues BaseTools/GenFw ARM: don't permit R_ARM_GOT_PREL relocations MdePkg/BaseMemoryLibOptDxe ARM: add missing function annotations BaseTools/tools_def ARM CLANG35: work around -mno-movt option name change ArmVirtPkg/PrePi ARM CLANG35: drop incompatible command line option ArmVirtPkg/ArmVirt.dsc.inc: define TcpIoLib resolution unconditionally ArmPkg: remove redundant _ARM_PLATFORM_FLAGS overrides EmbeddedPkg: remove GdbDebugAgent library BaseTools/tools_def ARM: emit PIC veneers ArmPkg/DefaultExceptionHandlerLib ARM: avoid endless loop in RELEASE builds MdePkg/Base: introduce MAX_ALLOC_ADDRESS MdeModulePkg/Dxe/Gcd: disregard memory above MAX_ALLOC_ADDRESS MdeModulePkg/Dxe/Page: take MAX_ALLOC_ADDRESS into account ArmPkg/ArmMmuLib: take MAX_ALLOC_ADDRESS into account ArmPlatformPkg/MemoryInitPeim: take MAX_ALLOC_ADDRESS into account ArmVirtPkg/MemoryInitPeiLib: split memory HOB based on MAX_ALLOC_ADDRESS MdePkg/Arm/ProcessorBind.h: fix copy/paste error ArmPlatformPkg/SP805WatchdogDxe: cosmetic cleanup ArmPlatformPkg/SP805WatchdogDxe: switch to interrupt mode ArmPkg/GenericWatchdogDxe: clean up the code ArmPkg/GenericWatchdogDxe: implement RegisterHandler() method ArmPlatformPkg/PL011SerialPortLib: use untyped PCD for register base BaseTools/tools_def ARM: use softfloat target for CLANG3x BaseTools/GenFds: permit stripped MM_CORE_STANDALONE binaries BaseTools/Conf/tools_def.template: drop ARM/AARCH support from GCC46/GCC47 ArmPkg/ArmMmuLib ARM: add missing support for non-shareable cached mappings ArmPkg/ArmMmuLib ARM: fix thinko in second level page table handling MdePkg: implement MmServicesTableLib based on traditional SMM BaseTools/tools_def GCC5: disable LTO for ASLC invocations ArmPkg/ArmMmuLib ARM: disregard high memory when setting permissions ArmPkg/ArmMmuLib AARCH64: fix out of bounds access MdeModulePkg/MdeModulePkg.dsc: add MmServicesTableLib resolution OvmfPkg: add MmServicesTableLib resolution QuarkPlatformPkg: add MmServicesTableLib resolution Vlv2TbltDevicePkg: add MmServicesTableLib resolution MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version MdeModulePkg/VariableRuntimeDxe: factor out boot service accesses MdeModulePkg/VariableRuntimeDxe: implement standalone MM version MdePkg: introduce standalone MM entry point library class MdePkg: introduce standalone MM entry point library implementation MdePkg: add MM_STANDALONE implementation of MmServicesTableLib MdeModulePkg: implement NULL instance of HobLib library class MdeModulePkg: implement NULL instance of MemoryAllocationLib library class MdeModulePkg/MdeModulePkg/dsc: move DxeDebugSupportDxe to x86 only section MdeModulePkg/AuthVariableLibNull: add MM_STANDALONE support MdeModulePkg/VarCheckLib: add MM_STANDALONE support MdeModulePkg/MdeModulePkg.dsc: add MM_STANDALONE FTW and variable modules ArmPkg/DebugAgentSymbolsBaseLib: remove exception handling ArmPkg/DefaultExceptionHandlerLib: declare the permitted usage context ArmVirtPkg: drop reference to ArmPkg/DefaultExceptionHandlerLibBase ArmPkg/DefaultExceptionHandlerLib: drop BASE variant ArmPkg/DefaultExceptionHandlerLib: use console if available EmbeddedPkg/NorFlashInfoLib: convert to BASE library ArmPkg/DefaultExceptionHandlerLib: add missing UefiLib include CryptoPkg/SmmCryptLib: permit use by MM_STANDALONE modules SecurityPkg/PlatformSecureLibNull: permit use by MM_STANDALONE modules MdeModulePkg/VarCheckUefiLib: permit use by MM_STANDALONE modules MdePkg/UefiDevicePathLib: permit use by MM_STANDALONE modules StandaloneMmPkg: add HobLib implementation for MM_STANDALONE modules StandaloneMmPkg: add MM_STANDALONE MemoryAllocationLib implementation StandaloneMmPkg/StandaloneMmCoreHobLib: restrict to MM_CORE_STANDALONE StandaloneMmPkg/StandaloneMmCpu: fix typo Standlone -> Standalone StandaloneMmPkg/StandaloneMmCoreEntryPoint: use %a modifier for ASCII strings StandaloneMmPkg/StandaloneMmCoreEntryPoint: remove bogus ASSERT_EFI_ERROR()s StandaloneMmPkg/StandaloneMmPeCoffExtraActionLib: ignore runtime attribute StandaloneMmPkg/Core/Dispatcher: don't copy dispatched image twice StandaloneMmPkg/StandaloneMmCoreEntryPoint: permit the use of TE images MdeModulePkg/MdeModulePkg.dsc: ignore standalone MM modules for EBC or XCODE5 ArmPkg/ArmMmuLib ARM: trim high memory regions instead of rejecting them ArmPkg/ArmMmuLib AARCH64: get rid of needless TLB invalidation MdePkg/BaseLib: implement SpeculationBarrier() for ARM and AArch64 Ashish Singhal (6): MdeModulePkg/SdMmcPciHcDxe: Add SDMMC HC v4 and above Support. MdePkg/UefiLib: Abstract driver model protocol uninstallation NetworkPkg/IScsiDxe: Use UEFILib APIs to uninstall protocols. NetworkPkg: Protocol Uninstallation Cleanup DynamicTablesPkg/DynamicTableManagerDxe: Update DEPEX DynamicTablesPkg/AcpiSpcrLibArm: Support 16550 UART. Bret Barkelew (4): MdePkg/IndustryStandard: Introduce a correctly spelled macro SecurityPkg/Tcg: Fix typos in TcgDxe.c and Tcg2Dxe.c MdePkg/IndustryStandard: Remove an incorrectly spelled macro MdePkg/UefiLib: Add a new API GetVariable3 Chasel, Chiu (16): IntelFsp2WrapperPkg: Support FSP Dispatch mode IntelFsp2WrapperPkg: Revert 90c5bc08 IntelFsp2WrapperPkg: Support FSP Dispatch mode IntelFsp2WrapperPkg: Fix line ending format issue IntelFsp2WrapperPkg: Fix constant if statements issue Maintainers.txt: Change package maintainer of IntelFsp*Pkg BaseTools/GenFv: Support SecCore and PeiCore in different FV IntelFsp2Pkg: Add FspmArchConfigPpi to support Dispatch mode IntelFsp2Pkg: Remove unused keyword in new PPI header IntelFsp2Pkg: Add function to get bootloader stack pointer IntelFsp2Pkg: FSP can utilize bootloader stack MdePkg: Support EFI_PEI_CORE_FV_LOCATION_PPI MdeModulePkg/PeiMain: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Support EFI_PEI_CORE_FV_LOCATION_PPI UefiCpuPkg/SecCore: Wrong Debug Information for SecCore Chen A Chen (18): SecurityPkg: Remove dead code and inf redundant definitions. SecurityPkg: Remove code under UserIdentification folder. FatPkg: Break down Part.c file. MdePkg/UefiGpt.h: Add new definition for enable GPT support FatPkg: Add GPT check in FatPei to support Capsule-on-Disk feature. MdePkg/UefiSpec.h: Add definition to support Capsule-on-Disk feature MdeModulePkg/CapsuleApp: Add a function used to get next DevicePath MdeModulePkg/CapsuleApp: Add functions to support Capsule-on-Disk MdeModulePkg/CapsuleApp: Enhance CapsuleApp to support Capsule-on-Disk FatPkg/FatPei/Gpt.c: Fix uninitialized variable issue MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue MdeModulePkg/CapsuleApp: Fix potential NULL pointer dereference issue MdeModulePkg/CapsuleApp: Fix memory leak issue. UefiCpuPkg/Microcode: Fix incorrect checksum issue for extended table IntelSiliconPkg/MicrocodeUpdate: Fix incorrect checksum issue MdeModulePkg: Rename confusion function name UefiCpuPkg/Microcode: Fix InComplete CheckSum32 issue UefiCpuPkg/Microcode.c: Add verification before calculate CheckSum32 Chu, Maggie (2): SecurityPkg: Incorrect warning message for Opal admin revert action SecurityPkg: Add a PCD to skip Opal password prompt Dandan Bi (12): MdeModulePkg/DisplayEngine: Remove useless NULL ptr check for NewPos MdePkg: check Length para before use in DevPathToTextUsbWWID MdePkg: Check input Ptrs in GetSectionFromAnyFvByFileType BaseTools/VfrCompile: report error for Integer overflow MdeModulePkg/NonDiscoverablePciDevice: Remove the redundant check MdePkg/BasePeCoffLib: Add more check for relocation data MdePkg/BasePeCoffLib: Correct the address of RelocBaseEnd ShellPkg/UefiShellAcpiViewCommandLib: Fix VS tool chain build failure MdeModulePkg: Fix coding style issues MdePkg: Fix coding style issues MdePkg/StatusCodeDataTypeId.h: Add new definition per PI1.7 Spec MdeModulePkg/BmBoot: Report status when fail to load/start boot option Derek Lin (1): BaseTools: Fix GenFds error doesn't break build. Edgar Handal (1): MdeModulePkg/SdMmcPciHcDxe: Use 16/32-bit IO widths Eric Dong (9): UefiCpuPkg/Cpuid.h: Sync CPUID definition to latest SDM. UefiCpuPkg/Cpuid: Add code to support new definition. UefiCpuPkg/RegisterCpuFeaturesLib: Enhance debug message. UefiCpuPkg/RegisterCpuFeaturesLib: Avoid AP calls PeiService. UefiCpuPkg/S3Resume2Pei: check 64BIT_WAKE_F in FACS.OSPMFlags. MdeModulePkg/BootScriptExecuteorDxe: check 64BIT_WAKE_F in FACS.OSPMFlags UefiCpuPkg/RegisterCpuFeaturesLib: Replace AcquireSpinLock. SecurityPkg/OpalPassword: Update strings on Opal Setup page SecurityPkg/OpalPassword: Add NULL pointer check before using it Felix Polyudov (1): BaseTools: Fix incorrect formatting of GenFds command dictionary Feng, Bob C (52): BaseTools: Fix the problem using FILE_GUID override in .dsc BaseTools: Enable Pcd Array support. BaseTool: Filter out unused structure pcds BaseTools: Replace the sqlite database with list BaseTools: Optimize string concatenation BaseTools: Customize deepcopy function. BaseTools: Correct CCFLAG for PcdValueInit BaseTools: Fix PcdNvStoreDefaultValueBuffer Value. BaseTools: Fixed bugs in CopyDict function BaseTools: Fixed the build fail issue for cases BaseTools: Fix PcdArray issue BaseTools: Fixed metafile parser issues BaseTools: Reset FdsGlobalVariable BaseTools: Fixed build report issue. BaseTools: Correct PcdArray value assigment statement BaseTools: Report Error if use SET in Dsc BaseTools: Remove unused logic for EDKI BaseTools: Remove unused logic for IPF BaseTools: Remove unused logic from C tools BaseTools: Enable component override functionality BaseTools: Remove unused logic for EDKI BaseTools: Remove EDK_SOURCE keyword from ECC Tool BaseTools: Remove EDK_SOURCE keyword from GenFds tool. BaseTools: Remove EDK_SOURCE keyword from Inf Parser. BaseTools: Allow empty value for HiiPcd in Dsc BaseTools: Fix build report issue. BaseTools: use OrderedDict instead of sdict BaseTools: Make sure AllPcdList valid. BaseTools:File open failed for VPD MapFile BaseTools:Fixed Rsa issue and a set define issue. BaseTools:ord() don't match in py2 and py3 BaseTools: the list and iterator translation BaseTools: Handle the bytes and str difference BaseTools: ECC tool Python3 adaption BaseTools: Eot tool Python3 adaption BaseTools: Enable CODE format in DEC file BaseTools: Fixed incorrect line number in PcdValueInit.c BaseTools: Correct the error message for UPT BaseTools: Fixed a build report issue. BaseTools: Fix the build report issue about Structure PCD BaseTools: Fixed an issue about StructurePcd BaseTools: Add MaxSizeUserSet to Pcd deepcopy function BaseTools: Fix a ParseDevPathValue function issue. BaseTools: Fixed a bug in Vpd handling BaseTools: Fixed a code bug for Pcd Array. BaseTools: replace Sdict with OrderedDict in UPT BaseTool: Fixed incremental rebuild issue. BaseTools: Fix a bug about Structure PCD BaseTools: Add parameter check for the AsciiStringToUint64 BaseTools: Eot failed when enable python3 BaseTools: Fix a Eot issue. BaseTools: Add python3-distutils Ubuntu package checking Gary Lin (2): MdePkg ACPI: fix the typos in Acpi61.h and Acpi62.h MdeModulePkg/UefiBootManagerLib: Match the nested partitions Gonzalez Del Cueto, Rodrigo (1): SecurityPkg/TcgConfigDxe: Allow enabling TPM 1.2 device from disabled state. Hao Wu (25): MdePkg/BaseLib: Introduce new SpeculationBarrier API MdeModulePkg/FaultTolerantWrite: Update to consume SpeculationBarrier MdeModulePkg/SmmLockBox: Update to consume SpeculationBarrier MdeModulePkg/Variable: Update to consume SpeculationBarrier UefiCpuPkg/PiSmmCpuDxeSmm: Update to consume SpeculationBarrier UefiCpuPkg: Merge StuffRsb.inc files into one in UefiCpuPkg/Include MdeModulePkg/SdMmcPciHcDxe: Fix VS2015 IA32 NOOPT build failure MdeModulePkg/SdMmcPciHcDxe: Update comment for spec compliance status MdeModulePkg: Add definitions for ATA AHCI host controller PPI MdeModulePkg: Add definitions for EDKII PEI ATA PassThru PPI MdeModulePkg: Add definitions for Storage Security Command PPI MdeModulePkg: Add GUID for LockBox to save storage dev to init in S3 MdeModulePkg/NvmExpressPei: Avoid updating the module-level variable MdeModulePkg/NvmExpressPei: Add logic to produce SSC PPI MdeModulePkg/NvmExpressPei: Consume S3StorageDeviceInitList LockBox MdeModulePkg/AhciPei: Add AHCI mode ATA device support in PEI MdeModulePkg/SmmLockBoxLib: Use 'DEBUG_' prefix instead of 'EFI_D_' MdeModulePkg/SmmLockBox(PEI): Remove an ASSERT in RestoreLockBox() MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() OvmfPkg/LockBoxLib: Update the comments for API UpdateLockBox() SecurityPkg/OpalPassword: Remove HW init codes and consume SSC PPI SecurityPkg/HddPassword: Add Security feature set support for ATA dev MdeModulePkg/UfsBlockIoPei: Correct use of 'DeviceIndex' in BlkIO PPI MdeModulePkg/PartitionDxe: Ensure blocksize holds MBR (CVE-2018-12180) MdeModulePkg/RamDiskDxe: Restrict on RAM disk size (CVE-2018-12180) Hess Chen (1): BaseTools/ECC: Add a new type of exception Hsueh, Hong-chihX (1): MdePkg/BasePeCoffLib: skip runtime relocation if reloc info is invalid Jaben Carsey (14): BaseTools: Move Identification file to Eot BaseTools: cleanup LongFilePathSupport usage BaseTools: create and use a standard shared variable for '*' BaseTools: fix imports MdeModulePkg: fix comments in BaseSortLib BaseTools/build/build: refactor and move functions BaseTools/Workspace/InfBuildData: move functions BaseTools/DscBuildData: move function BaseTools/AutoGen: move functions BaseTools/GenFds/Capsule: move function logic BaseTools/Common/Misc: move private functions BaseTools/Common/Misc: remove uncalled code BaseTools/Common/Misc: Cleanup the imports BaseTools/build/build: delete variable Jagadeesh Ujja (2): SecurityPkg/AuthVariableLib: allow MM_STANDALONE drivers to use this library MdePkg/Include: add MmServicesTableLib header file Jeff Brasen (5): MdeModulePkg/SdDxe: Fix potential NULL pointer access EmbeddedPkg/PrePiMemoryAllocationLib: Added AllocateZeroPool() MdeModulePkg/BaseSortLib: Enable for all module types ArmPkg/ArmScmiDxe: Add clock enable function EmbeddedPkg/PrePiLib: Correct function name Jian J Wang (7): CryptoPkg/IntrinsicLib: add missing BaseLib declaration Upgrade OpenSSL to 1.1.0j CryptoPkg/BaseCryptLib: split CryptPkcs7Verify.c on behalf of runtime MdePkg/UefiDevicePathLib: Add sanity check for FilePath device path MdePkg/UefiDevicePathLibDevicePathProtocol: Add sanity check for FilePath device path UefiCpuPkg: restore strict page attributes via #DB in nonstop mode only Maintainers.txt: remove unexpected unicode BOM Jiaxin Wu (7): MdeModulePkg/Dhcp4Dxe: Remove unnecessary NULL pointer check. NetworkPkg/IScsiDxe: Remove unnecessary NULL pointer check. NetworkPkg/DnsDxe: Remove unnecessary NULL pointer check. MdeModulePkg/Ip4Dxe: Uninstall protocols when error happen in Driver Binding Start. NetworkPkg/Ip6Dxe: Uninstall protocols when error happen in Driver Binding Start. NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start. NetworkPkg/DnsDxe: [CVE-2018-12178] Check the received packet size before parsing the message. Jiewen Yao (6): MdeModulePkg/LockboxNullLib: clean up INF file. BaseTool/GenC: Fix build error when type is BASE or USER_DEFINED. MdePkg/Include: Add Nasm.inc MdePkg/BaseLib: Add Shadow Stack Support for X86. UefiCpuPkg/ExceptionLib: Add CET support. UefiCpuPkg/PiSmmCpu: Add Shadow Stack Support for X86 SMM. Jordan Justen (1): OvmfPkg/build.sh: Enable flash for qemu 3 or later Julien Grall (1): Maintainers.txt: Update e-mail address for Julien Grall Krzysztof Koch (1): ShellPkg/UefiShellAcpiViewCommandLib: Add support for PPTT Laszlo Ersek (47): EmulatorPkg: require GCC48 or later OvmfPkg: require GCC48 or later Vlv2TbltDevicePkg: assume GCC48 or later BaseTools/tools_def.template: fix up LF-only line terminator BaseTools/tools_def.template: strip trailing whitespace BaseTools/tools_def.template: remove GCC48_IA32_X64_DLINK_COMMON dead-end BaseTools/tools_def.template: remove GCC47 leaf definitions BaseTools/tools_def.template: propagate loss of GCC47 references BaseTools/tools_def.template: remove GCC47 documentation BaseTools/tools_def.template: remove GCC46 leaf definitions BaseTools/tools_def.template: propagate loss of GCC46 references BaseTools/tools_def.template: remove GCC46 documentation BaseTools/tools_def.template: remove GCC45 leaf definitions BaseTools/tools_def.template: propagate loss of GCC45 references BaseTools/tools_def.template: remove GCC45 documentation BaseTools/tools_def.template: remove GCC44 leaf definitions BaseTools/tools_def.template: propagate loss of GCC44 references BaseTools/tools_def.template: rename GCC44_ALL_CC_FLAGS to GCC48_ALL_CC_FLAGS BaseTools/tools_def.template: eliminate GCC44_IA32_X64_DLINK_FLAGS BaseTools/tools_def.template: rename GCC44_IA32_X64_DLINK_COMMON to GCC48_IA32_X64_DLINK_COMMON BaseTools/tools_def.template: remove comment about GCC44 + LzmaF86Compress BaseTools/tools_def.template: remove GCC44 documentation ArmPkg/ArmSoftFloatLib: drop build flags specific to GCC46/GCC47 CryptoPkg/BaseCryptLib: drop build flags specific to GCC44 Revert "MdePkg: avoid __builtin_unreachable() on GCC v4.4" BaseTools/BuildReport: fix report for platforms/arches without struct PCDs ArmVirtPkg/ArmVirtQemuKernel: don't set PcdCPUCoresStackBase ArmVirtPkg: don't set PcdRelocateVectorTable ArmVirtPkg/{ArmVirtQemu,ArmVirtQemuKernel}: don't set PcdTrustzoneSupport ArmVirtPkg: don't set PcdPostCodePropertyMask ArmVirtPkg: clean up PcdSetNxForStack setting (applies to ArmVirtQemu only) ArmVirtPkg/PrePi: drop wrong PcdCoreCount dependency ArmVirtPkg: don't set PcdCoreCount ArmVirtPkg: don't set PcdDebugClearMemoryValue ArmVirtPkg: don't set PcdDebugPrintErrorLevel in RELEASE builds ArmVirtPkg/ArmVirtXen: don't set PcdPL031RtcBase ArmVirtPkg/ArmVirtXen: don't set PcdTerminalTypeGuidBuffer ArmVirtPkg/ArmVirtXen: don't set PcdShellFile ArmVirtPkg/ArmVirtXen: don't set PcdTurnOffUsbLegacySupport ArmVirtPkg/ArmVirtXen: don't set Pcd*ImageVerificationPolicy Maintainers: add TPM2 reviewers for OvmfPkg Maintainers: specify the scope for OvmfPkg/ArmVirtPkg Xen module reviewers MdeModulePkg/UefiBootManagerLib: fix LoadImage/StartImage status code rep. OvmfPkg: add library to track boot option loading/starting on the console OvmfPkg/PlatformBootManagerLib: display boot option loading/starting ArmVirtPkg/ArmVirtQemu*: enable minimal Status Code Routing in DXE ArmVirtPkg/PlatformBootManagerLib: display boot option loading/starting Leif Lindholm (8): ArmPkg: fix StandaloneMmMmuLib subdirectory case ArmPkg: drop ArmBds remnant Pcds from .dec ArmPkg: delete unused ArmTrustZoneSmc.h AppPkg: fix webserver build for !Ia32/X64 IntelFrameworkModulePkg: fix build for AARCH64/ARM IntelFrameworkPkg: fix build for AARCH64/ARM SecurityPkg: fix package build on ARM SignedCapsulePkg: enable package build for AARCH64/ARM Liming Gao (12): OvmfPkg: Don't include TftpDynamicCommand in XCODE5 tool chain MdeModulePkg PCD: Add DynamicEx PcdVpdBaseAddress64 for non SPI platform Maintainers.txt: Add the rule to hand over the package maintain role BaseTools Script: Update ConvertFceToStructurePcd to report warning messages MdeModulePkg: Correct PCD name in MdeModulePkg.uni Readme.md: Add edk2 release tag and edk2 release plan BaseTools GenFw: Fix XCODE5 build issue BaseTools VolInfo: Fix XCODE5 build issue BaseTools: Update PYTHON env to PYTHON_COMMAND MdeModulePkg DxeCapsuleLibFmp: Update SupportCapsuleImage() for Fake Capsule BaseTools: Remove unused txt files Revert "BaseTools:BaseTools supports to the driver combination." Liu Yu (1): EmulatorPkg/build.sh: Fix 'run' path to simulator host executable Marcin Wojtas (2): MdeModulePkg/SdMmcPciHcDxe: Add an optional parameter in NotifyPhase MdeModulePkg/SdMmcPciHcDxe: Allow overriding base clock frequency Max Knutsen (1): MdeModulePkg/ReportStatusCodeLib: Avoid using AllocatePool if possible Meenakshi Aggarwal (1): EmbeddedPkg: Fix Command Argument for SD/eMMC R/W operation. Mike Maslenkin (1): UefiCpuPkg/CpuExceptionHandlerLib: Fix spelling issue Mike Turner (4): MdePkg/BaseLib: Introduce CharToUpper and AsciiCharToUpper publicly MdePkg/UefiDevicePathLib: Add a checking step BaseTools/DevicePath: Add a checking step MdePkg/BaseLib: Add Base64Encode() and Base64Decode() Pete Batard (2): EmbeddedPkg/Library: Add VirtualRealTimeClockLib EmbeddedPkg/VirtualRealTimeClockLib: Fix correctness issues Philippe Mathieu-Daude (1): BaseTools: Fix build failure when specifying multiple BUILDTARGET Ray Ni (10): MdeModulePkg/PciBus: Shadow option ROM after BARs are programmed MdeModulePkg/PciBus: Fix system hang when no PCI Option ROM exists Maintainers.txt: Update mail address MdeModulePkg/PciBus: Change PCI_IO_DEVICE.RomSize to UINT32 type MdeModulePkg/PciBus: Correct typos MdeModulePkg/PciBus: Fix a bug PPB MEM32 BAR isn't restored sometimes UefiCpuPkg/MtrrLib: Fix a bug that may wrongly set memory <1MB to UC ShellBinPkg: Ia32/X64 Shell binary update. MdeModulePkg/HiiDatabase: Fix potential integer overflow (CVE-2018-12181) MdeModulePkg/HiiImage: Fix stack overflow when corrupted BMP is parsed (CVE-2018-12181) Sami Mujawar (36): Maintainers.txt: Change DynamicTablesPkg maintainer DynamicTablesPkg: Dynamic Tables Framework DynamicTablesPkg: Table Generator definition DynamicTablesPkg: Acpi Table Generator DynamicTablesPkg: SMBIOS Table Generator DynamicTablesPkg: DT Table Generator DynamicTablesPkg: Standard NameSpace Objects DynamicTablesPkg: Arm NameSpace Objects DynamicTablesPkg: Configuration Manager Objects DynamicTablesPkg: Configuration Manager Protocol DynamicTablesPkg: Configuration Manager Helper DynamicTablesPkg: Table Helper Library DynamicTablesPkg: Dynamic Table Factory Protocol DynamicTablesPkg: Dynamic Table Factory Dxe DynamicTablesPkg: Dynamic Table Manager Dxe DynamicTablesPkg: Arm Raw/DSDT/SSDT Generator DynamicTablesPkg: Arm ACPI FADT Generator DynamicTablesPkg: Arm ACPI MADT Generator DynamicTablesPkg: Arm ACPI GTDT Generator DynamicTablesPkg: Arm SPCR Table Generator DynamicTablesPkg: Arm DBG2 Table Generator DynamicTablesPkg: Arm PCI MCFG Table Generator DynamicTablesPkg: Arm IORT Table Generator DynamicTablesPkg: Fix protocol section DynamicTablesPkg: Rename enum used for ID Mapping DynamicTablesPkg: Add OEM Info DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI DynamicTablesPkg: Remove GIC Distributor Id field DynamicTablesPkg: Minor updates and fix typos ArmPkg: Fix writes to GICv3 GICD_IROUTER<n> reg Revert "DynamicTablesPkg: Minor updates and fix typos" Revert "DynamicTablesPkg: Remove GIC Distributor Id field" Revert "DynamicTablesPkg: DGB2: Update DBG2_DEBUG_PORT_DDI" Revert "DynamicTablesPkg: Add OEM Info" Revert "DynamicTablesPkg: Rename enum used for ID Mapping" Revert "DynamicTablesPkg: Fix protocol section" Sean Brogan (1): MdeModulePkg/NvmExpressDxe: Report StatusCode for device init failure Shenglei Zhang (37): EmulatorPkg: Remove EdkShellBinPkg in FDF and DEC Nt32Pkg: Remove EdkShellBinPkg in FDF and DEC OvmfPkg: Remove EdkShellBinPkg in FDF Vlv2TbltDevicePkg: Remove EdkShellBinPkg with ShellPkg EdkShellBinPkg: Remove EdkShellBinPkg EdkShellPkg: Remove EdkShellPkg Maintainers.txt: Remove EdkShellPkg and EkdShellBinPkg UnixPkg: Remove UnixPkg and update Maintainers.txt MdeModulePkg: Remove PcdIdentifyMappingPageTablePtr ShellPkg: Remove ShellPkg wrapper header files BaseTools: Remove GenVtf DuetPkg: Remove DuetPkg BaseTools: Remove tools only used by DuetPkg Maintainers.txt: Remove DuetPkg ShellPkg/UefiShellDebug1CommandsLib: Remove the unused function CharToUpper MdeModulePkg/EbcDebugger: Change function names MdePkg/BaseLib: Remove definitions of two functions MdeModulePkg/EbcDebugger: Use AsciiCharToUpper and CharToUpper MdeModulePkg/DxeHttpLib: Use BaseLib api AsciiCharToUpper ShellPkg/Shell: Use BaseLib api CharToUpper ShellPkg/UefiShellLib: Use BaseLib api CharToUpper MdePkg: Change function parameter type MdeModulePkg/S3SaveStateDxe: Change function parameter types MdeModulePkg/SmmS3SaveStateDxe: Change function parameter types BaseTools/tools_def.template: Remove CYGGCC OptionRomPkg/ReadMe.txt: Remove CYGGCC BaseTools: Update MYTOOLS BaseTools/tools_def.template: Remove VS2003 and VS2005 OptionRomPkg/ReadMe.txt: Remove VS2005 BaseTools/tools_def.template: Remove UNIXGCC OvmfPkg/README: Remove UNIXGCC BaseTools/tools_def.template: Remove ELFGCC BaseTools/tools_def.template: Remove DDK3790 BaseTools/build_rule.template: Remove GCCLD MdePkg/BaseLib: Change a variable type in a bitwise operation MdeModulePkg/PropertiesTableAttributesDxe: Remove this driver IntelSiliconPkg/MicrocodeUpdateDxe: Error message enhancement Siyuan Fu (8): ArmVirtPkg: Replace obsoleted network drivers from platform DSC/FDF. ArmVirtPkg: Remove redundant library instances in ArmVirtQemuKernel.dsc MdeModulePkg: Delete Tcp4Dxe in MdeModulePkg. NetworkPkg: Remove some clarification from TcpDxe.inf MdeModulePkg: Delete IScsiDxe in MdeModulePkg. NetworkPkg: Remove some clarification from IScsiDxe.inf MdeModulePkg: Delete UefiPxeBcDxe in MdeModulePkg. NetworkPkg: Remove some clarification from UefiPxeBcDxe.inf Solanki, Digant H (1): IntelSiliconPkg\Include\IndustryStandard: Update IGD_OPREGION_MBOX3 Structure Songpeng Li (3): ShellPkg/TftpDynamicCommand: Change file writing method in tftp NetworkPkg/IScsiDxe: Remove unused global variables. NetworkPkg/Dhcp6Dxe: Remove an unused global variable. Star Zeng (30): Maintainers.txt: Update FmpDevicePkg maintainer Maintainers.txt: Update MdeModulePkg maintainers MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxPeimPerFv SecurityPkg Tcg(2)Pei: Remove the using of PcdPeiCoreMaxFvSupported MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxFvSupported MdeModulePkg PeiCore: Remove the using of PcdPeiCoreMaxPpiSupported OvmfPkg: Remove PcdPeiCoreMaxXXX PCDs' statement Vlv2TbltDevicePkg: Remove PcdPeiCoreMaxXXX PCDs' statement MdeModulePkg: Remove PcdPeiCoreMaxXXX PCDs MdeModulePkg Variable: Add some missing changes for 9b18845 MdeModulePkg Variable: Abstract InitRealNonVolatileVariableStore MdeModulePkg Variable: Move "extern XXX" to Variable.h MdeModulePkg Variable: Not get NV PCD in VariableWriteServiceInitialize MdeModulePkg Variable: Abstract VariableWriteServiceInitializeDxe/Smm MdeModulePkg Variable: Remove CacheOffset in UpdateVariable() MdeModulePkg Variable: type case VolatileBase to UINTN directly MdeModulePkg: Add PcdEmuVariableNvModeEnable in dec MdeModulePkg: Refine description a little for PcdEmuVariableNvStoreReserved MdeModulePkg Variable: Add emulated variable NV mode support MdeModulePkg VariablePei: Don't check BOOT_IN_RECOVERY_MODE ArmVirtXen: Use merged variable driver for emulated NV mode ArmVirtXen: Link VarCheckUefiLib NULL class library instance BeagleBoardPkg: Use merged variable driver for emulated NV mode QuarkMin: Use merged variable driver for emulated NV mode CorebootPayloadPkg: Use merged variable driver for emulated NV mode MdeModulePkg VariableStandaloneMm: Add PcdEmuVariableNvModeEnable in inf MdeModulePkg: Remove EmuVariableRuntimeDxe MdeModulePkg/PeiCore: Ensure FfsFileHeader 8 bytes aligned MdeModulePkg/DxeCore: Ensure FfsFileHeader 8 bytes aligned IntelFrameworkModulePkg/FwVolDxe: Ensure FfsFileHeader 8 bytes aligned Stefan Berger (1): OvmfPkg: Add TCG2 Configuration menu to the Device Manager menu Sughosh Ganu (3): ArmPkg/Include: Fix the SPM version SVC ID StandaloneMM: Include the newly added library class for MMU functions StandaloneMM: Update permissions for Standalone MM drivers memory area Sumit Garg (2): ArmPkg/OpteeLib: Add dummy RPC handler ArmPkg/OpteeLib: Add OPTEE_SUCCESS return code Sun, Zailiang (1): Maintainers.txt: update Vlv2*Pkg maintainers. Tomasz Michalec (2): MdeModulePkg/SdMmcPciHcDxe: Add UhsSignaling to SdMmcOverride protocol MdeModulePkg/SdMmcPciHcDxe: Add SwitchClockFreqPost to SdMmcOverride Vijayenthiran Subramaniam (2): MdeModulePkg/Variable: add debug logs in VariableServiceSetVariable NetworkPkg/IScsiDxe: add debug logs for failed SetVariable attempts Vladimir Olovyannikov (1): MdeModulePkg/NonDiscoverablePciDeviceDxe: add missing validation Vladimir Olovyannikov via edk2-devel (1): ShellPkg/TftpDynamicCommand: Return proper status Wang Fan (2): NetworkPkg: Add WiFi Connection Manager to NetworkPkg NetworkPkg: Fix Duplicate FreePool Error in WCM Ye Ting (1): Maintainers.txt: Change package maintainer and reviewer of CryptoPkg. Yonghong Zhu (1): Maintainers.txt: Update BaseTools maintainers Yunhua Feng (3): BaseTools: nametuple not have verbose parameter in python3 BaseTools: Remove unnecessary super function BaseTools: replace long by int Zhang, Chao B (6): SecurityPkg: TCG Add more Event type SecurityPkg: Update TCG PFP spec revision. SecurityPkg/Tcg: Fix Warnings and Remarks reported by IASL SecurityPkg/TCG: Upgrade UEFI supporting TCG spec info MdeModulePkg:Tpm2Acpi.h: Upgrade UEFI supporting TCG spec info Maintainers.txt: Change package maintainer and reviewer of SecurityPkg. Zhao, ZhiqiangX (1): BaseTools: AutoGen and GenFds share the parser data. Zhichao Gao (8): ShellPkg: add array index check for shell delay option MdeModulePkg: change the function name ResetSystem MdeModulePkg: Add the new API ResetSystem in the head file MdeModulePkg: Add a new API ResetSystem for DXE ResetSystemLib MdeModulePkg: Add a new API ResetSystem for Null version MdeModulePkg: Add a new API ResetSystem for PEI ResetSystemLib MdeModulePkg: Add a runtime library instance of ResetSystemLib MdeModulePkg: Add the runtime ResetSystemLib in MdeModulePkg.dsc Zhijux Fan (38): BaseTools: Update nasm file build rule to support $(INC) BaseTools: Add $(INC)-like support when compiling .nasm files BaseTools:Build fail when PCD use in the [DEPEX] section of INF files BaseTools:build break if the Path contains SingleFile.Ext BaseTools:The BuildOptionPcd value is wrong BaseTools: Fix Pcd Array changes build report issue. BaseTools:Define Macro in Inf file, the pcdvalue Can't convert BaseTool:Rename xrange() to range() BaseTools:use iterate list to replace the itertools BaseTools: Rename iteritems to items BaseTools: replace get_bytes_le() to bytes_le BaseTools:Solve the data sorting problem use python3 BaseTools: Update argparse arguments since it not have version now BaseTools:Similar to octal data rectification BaseTools/UPT:merge UPT Tool use Python2 and Python3 BaseTools: update Test scripts support python3 BaseTools/Scripts: Porting PackageDocumentTools code to use Python3 Basetools: It went wrong when use os.linesep BaseTools:Fv BaseAddress must set If it not set BaseTools:TestTools character encoding issue BaseTools:Double carriage return inserted from Trim.py on Python3 BaseTools: change the Division Operator BaseTools:There is extra blank line in datalog BaseTools: Similar to octal data rectification BaseTools: Update windows and linux run scripts file to use Python3 BaseTools:Update build tool to print python version information BaseTools:Linux Python highest version check. BaseTools: PCD value incorrect in structure pcd sku case. BaseTools:StructurePCD value display incorrect in "Not used" section. BaseTools:Fix a ECC issue BaseTools:BaseTools supports to the driver combination. BaseTools:Fixed build failure when specifying multiple BUILDTARGET BaseTools:PCD value error in structure pcd sku case. BaseTools:Build fail if define [DEPEX] in library inf BaseTools:Some build generated files content are not ordered on linux BaseTools:PackageDocumentTools import lib error occurs. BaseTools:The BOM character is processed when python reads a file BaseTools:Run packagedoc_cli.py to generate doc failed yuchenlin (5): Revert "OvmfPkg/QemuVideoDxe: list "UnalignedIoInternal.h" in the INF file" Revert "OvmfPkg/QemuVideoDxe: VMWare SVGA device support" Revert "OvmfPkg/QemuVideoDxe: Helper functions for unaligned port I/O." Revert "OvmfPkg: VMWare SVGA display device register definitions" OvmfPkg: simply use the Bochs interface for vmsvga zwei4 (1): Vlv2TbltDevicePkg:Fix build and boot failure of Minnowboard Max platform. Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Igor Mammedov <imammedo@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com>