summaryrefslogtreecommitdiffstats
path: root/OvmfPkg
Commit message (Collapse)AuthorAgeFilesLines
* OvmfPkg: QemuBootOrder: recognize virtio-scsi devicesjljusten2012-10-181-0/+45
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13868 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: introduce virtio-scsi driverjljusten2012-10-1811-0/+1648
| | | | | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> [jordan.l.justen@intel.com: fix build for VS2012] Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13867 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: VirtioBlkDriverBindingStop: fix incorrect use of UEFI driver modeljljusten2012-10-181-6/+20
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13866 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg/VirtioBlkDxe: Fix VS2012 IA32 buildjljusten2012-10-141-1/+2
| | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13847 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: VirtioBlkDxe: fix div & mod of 64-bit dividends on IA32/gcc-4.4jljusten2012-10-141-2/+3
| | | | | | | | | | | | | | | | | OvmfPkg/VirtioBlkDxe/VirtioBlk.c:667: undefined reference to `__umoddi3' OvmfPkg/VirtioBlkDxe/VirtioBlk.c:750: undefined reference to `__udivdi3' These operations would come from libgcc in the IA32 build, but OVMF does not link against libgcc. Regression-tested the X64 build with Fedora 18 Alpha XFCE and Windows 8 Consumer Preview guests. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13846 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: MSVC build fixes for VirtioLib and VirtioBlkDxejljusten2012-10-123-8/+10
| | | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Mike Lee <leemiketw@gmail.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13845 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: librarize reusable bits from VirtioBlkDxe's SynchronousRequest()jljusten2012-10-124-66/+205
| | | | | | | | | | | | new VirtioLib functions: - VirtioPrepare(): prepare for appending descriptors - VirtioFlush(): submit descriptor chain and await host answer Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13844 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: rename AppendDesc to VirtioAppendDescjljusten2012-10-123-6/+6
| | | | | | | | | | | AppendDesc() should have a prefix implying its containing library, VirtioLib. Update its sole client VirtioBlkDxe. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13843 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: extract VirtioLib from VirtioBlkDxejljusten2012-10-128-319/+561
| | | | | | | | | | | | | | | | | Introduce a new library called VirtioLib, for now only collecting the following reusable functions with as little changes as possible: - VirtioWrite() - VirtioRead() - VirtioRingInit() - VirtioRingUninit() - AppendDesc() Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13842 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: Include/IndustryStandard: extract VirtioBlk.h from Virtio.hjljusten2012-10-123-58/+83
| | | | | | | | | | | Separate virtio-blk related macro and type definitions from generic virtio related ones. Adapt the virtio-blk driver since it needs the latter too. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13841 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: rename OFFSET_OF_VHDR() / SIZE_OF_VHDR() to *_OF_VBLK()jljusten2012-10-122-6/+6
| | | | | | | | | | since they are in fact virtio-blk specific. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13840 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: regroup virtio config fields into generic & specific structsjljusten2012-10-122-20/+26
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13839 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: IndustryStandard/Virtio.h: use OFFSET_OF in OFFSET_OF_VHDRjljusten2012-10-121-1/+1
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13838 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: add inclusion guards in Include/IndustryStandard/Virtio.hjljusten2012-10-121-0/+5
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13837 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: move VirtioBlkDxe/Virtio.h to Include/IndustryStandard/Virtio.hjljusten2012-10-123-1/+2
| | | | | | | | | | | | | | This commit consists of: - a verbatim move ("similarity index 100%" in git parlance), - an updated #include directive in VirtioBlkDxe/VirtioBlk.h, - and an OvmfPkg.dec package entry in VirtioBlkDxe/VirtioBlk.inf, so that the new include directory is searched. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13836 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: add inclusion guards to VirtioBlkDxe/VirtioBlk.hjljusten2012-10-121-0/+5
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13835 6f19259b-4bc3-4df7-8a09-765794883524
* Add missing braces around initializer.lzeng142012-10-114-103/+130
| | | | | | | | | | | Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jaben Carsey <jaben.carsey@intel.com> Reviewed-by: Qian Ouyang <qian.ouyang@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13817 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: QemuBootOrder: recognize virtio-blk OFW device pathsjljusten2012-10-081-0/+26
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13801 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: QemuBootOrder: lower the required number of OFW nodes to 2jljusten2012-10-081-8/+11
| | | | | | | | | | | | | | 2 nodes in an OpenFirmware device path are sufficient for the generic check at the beginning of TranslateOfwNodes(). The driver specific branches check for the necessary nodes individually. The number of nodes saved for examination is unchanged. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13800 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: QemuBootOrder: whitespace fixjljusten2012-10-081-3/+3
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13799 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: introduce virtio-blk driverjljusten2012-10-0810-0/+1947
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13798 6f19259b-4bc3-4df7-8a09-765794883524
* When SOURCE_DEBUG_ENABLE is set, a TimerLib is linked into the SEC Phase to ↵mdkinney2012-10-041-31/+51
| | | | | | | | | | | | | | | | | | | | | | | support the Debug Agent and the TimerLib is mapped into read-only ROM/FLASH. The TimerLib in the OvmfPkg uses a global variable called mPmba and depends on that global being updated. This works for modules loaded into memory, but not XIP modules in ROM/FLASH. This patch removes the mPmba global variable and instead reads the PIIX4 Power Management Base Address from PCI configuration space when it is needed. This patch also simplifies the initialization logic in the constructor and introduces #defines to eliminate hard coded values in the function implementations. According to the PIIX4 documentation, the IO Space enable bit in the PCI Command Register does not have to be set for the Power Management Base Address to be decoded, so that one op has been removed from the constructor. I have tested this patch with QEMU and verified that the UDK Debugger us functional when SOURCE_DEBUG_ENABLE is set. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> I also tested it with RHEL-6.3 guest boot/shutdown, Fedora 18 Alpha XFCE guest boot/shutdown, and Windows 8 Consumer Preview guest boot/reboot/shutdown. (RHEL-6.3 host.) I didn't notice any adverse effects. Tested-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13783 6f19259b-4bc3-4df7-8a09-765794883524
* Here is a patch that by default keeps the current 1MB FD sizes. If ↵mdkinney2012-10-043-0/+45
| | | | | | | | | | | FD_SIZE_2MB is defined, then 2MB FD sizes will be used. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Tested-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13782 6f19259b-4bc3-4df7-8a09-765794883524
* The exception table information in X64 PE/COFF images is being stripped by ↵mdkinney2012-10-032-1/+11
| | | | | | | | | | | | default in the OvmfPkg. This patch preserves this information when SOURCE_DEBUG_ENABLE is set. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Laszlo Ersek git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13780 6f19259b-4bc3-4df7-8a09-765794883524
* VS2005 and DDK3790 tool chain tags require typecasts to BOOLEAN to compile.mdkinney2012-10-031-2/+2
| | | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Michael Kinney <michael.d.kinney@intel.com Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13779 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: fix gPcAtChipsetPkgTokenSpaceGuid build breakjljusten2012-09-123-9/+9
| | | | | | | | | | | | | | | | | | | | | In OvmfPkgIa32X64.dsc: Paraphrasing svn rev 13350: gPcAtChipsetPkgTokenSpaceGuid is declared in PcAtChipsetPkg.dec and used via AcpiPlatformDxe.inf, but with the latest build tools, since this package builds multiple architectures (IA32 & X64) and AcpiPlatformDxe is used on X64 only, it is now necessary to place the gPcAtChipsetPkgTokenSpaceGuid PCD's in the [PcdsFixedAtBuild.X64] section. In the two other .dsc files: Make a similar change to keep file contents more easily comparable. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> [jordan.l.justen@intel.com: change all .dsc files to keep them diffable] Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13724 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: key PMBA setup in Platform PEI off of PMREGMISC/PMIOSE, not Xenjljusten2012-09-121-7/+9
| | | | | | | | | | This matches the logic in AcpiTimerLib. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13723 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: enable PIIX4 IO space in the PEI phasejljusten2012-09-122-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I. There are at least three locations in OvmfPkg that manipulate the PMBA and related PIIX4 registers. 1. MiscInitialization() [OvmfPkg/PlatformPei/Platform.c] module type: PEIM -- Pre-EFI Initialization Module (a) currently sets the PMBA only: 00.01.3 / 0x40 bits [15:6] 2. AcpiTimerLibConstructor() [OvmfPkg/Library/AcpiTimerLib/AcpiTimerLib.c] module type: BASE -- probably callable anywhere after PEI (a) sets the PMBA if needed: 00.01.3 / 0x40 bits [15:6] (b) sets PCICMD/IOSE if needed: 00.01.3 / 0x04 bit 0 (c) sets PMREGMISC/PMIOSE: 00.01.3 / 0x80 bit 0 3. AcpiInitialization() [OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c] module type: DXE_DRIVER -- Driver eXecution Environment (a) sets SCI_EN, which depends on correct PMBA setting from earlier ( The relative order of #1 and #3 is dictated minimally by their module types. Said relative order can be verified with the boot log: 27 Loading PEIM at 0x00000822320 EntryPoint=0x00000822580 PlatformPei.efi 28 Platform PEIM Loaded 1259 PlatformBdsInit 1270 PlatformBdsPolicyBehavior Line 28 is printed by InitializePlatform() [OvmfPkg/PlatformPei/Platform.c] which is the entry point of that module. The other two lines are printed by the corresponding functions in "OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c". ) Currently #2 (AcpiTimerLibConstructor()) is called in a random spot (whenever it gets loaded from the firmware image) and masks the insufficient setup in #1. We shouldn't depend on that, PEI should finish with IO space being fully accessibe. In addition, PEI should program the same PMBA value as AcpiTimerLib. II. The PEI change notwithstanding, AcpiTimerLib should stay defensive and ensure proper PM configuration for itself (either by confirming or by doing). III. Considering a possible cleanup/unification of #2 and #3: timer functions relying on AcpiTimerLibConstructor(), - MicroSecondDelay() - NanoSecondDelay() - GetPerformanceCounter() - GetPerformanceCounterProperties() - GetTimeInNanoSecond() may be called before #3 is reached (in Boot Device Selection phase), so we should not move the initialization from #2 to #3. (Again, AcpiTimerLib should contain its own setup.) We should also not move #3 to an earlier phase -- SCI_EN is premature unless we're about to boot real soon ("enable generation of SCI upon assertion of PWRBTN_STS, LID_STS, THRM_STS, or GPI_STS bits"). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13722 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: use PCI_COMMAND_OFFSET/EFI_PCI_COMMAND_IO_SPACE in AcpiTimerLibjljusten2012-09-121-1/+5
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13721 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: fix the mask for accessing the PIIX4 PMBA [15:6] bitfieldjljusten2012-09-122-2/+2
| | | | | | | | | | | | The Index Register Base Address bitfield is selected by the binary mask 00000000 00000000 11111111 11000000, 0xFFC0; fix the typo. Reported-by: Gleb Natapov <gleb@redhat.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13720 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: extract the PBMA used in AcpiTimerLib into a PCDjljusten2012-09-123-1/+12
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13719 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: assorted whitespace removaljljusten2012-09-123-7/+5
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13718 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg/BlockMmioToBlockIoDxe: Fix allocation size errorjljusten2012-08-281-2/+2
| | | | | | | | | | | | When allocating the BLOCK_MMIO_TO_BLOCK_IO_DEVICE structure, we were not allocating a large enough amount. We were allocating the size of the pointer, rather than the size of the structure. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13688 6f19259b-4bc3-4df7-8a09-765794883524
* OVMF X64: Allow enabling SOURCE_DEBUG_ENABLE on GCC44jljusten2012-08-281-2/+2
| | | | | | | | | | | | | Currently if SOURCE_DEBUG_ENABLE is enabled when building with GCC44, then the SEC module will not fit into SECFV. This change increases the size of SECFV to allow this. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13687 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: get boot order from QEMUjljusten2012-08-274-0/+1028
| | | | | | | | | | | | | | | | | | | | Set the boot order based on configuration retrieved from QEMU. Attempt to retrieve the "bootorder" fw_cfg file from QEMU. Translate the OpenFirmware device paths therein to UEFI device path fragments. Match the translated fragments against the enumerated BootOptionList, and rewrite the BootOrder NvVar so that it corresponds to the order described in fw_cfg. The user is expected to configure working boot options first. Tested via virt-manager's boot order widget. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13683 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg/PlatformPei: Shrink memory range for PCI MMIO allocationjljusten2012-08-271-2/+3
| | | | | | | | | | | Including the range of [0xFC000000, 0xFD000000) for PCI MMIO allocation created a conflict for Xen's HVM loader. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13682 6f19259b-4bc3-4df7-8a09-765794883524
* Update file guid to avoid conflict with other file.ydong102012-08-171-1/+1
| | | | | | Signed-off-by: Eric Dong <eric.dong@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13643 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: Add custom SecureBootConfigDxe that doesn't resetjljusten2012-08-1516-12/+7379
| | | | | | | | | | | | We don't force a platform reset for OVMF when PK is changed in custom mode setup. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Lee Rosenbaum <lee.g.rosenbaum@intel.com> Reviewed-by: Erik Bjorge <erik.c.bjorge@intel.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13635 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg/AcpiPlatformDxe: Fix Visual Studio build issuesjljusten2012-08-151-9/+9
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13634 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: Support GCC47 toolchainjljusten2012-08-131-0/+3
| | | | | | | | | | | | When GCC >= 4.7 is detected, use the GCC47 toolchain. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Laszlo Ersek <lersek@redhat.com> [jordan.l.justen@intel.com: reword commit message for OvmfPkg] Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13630 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: generate full MADT dynamically, synchronize contents with qemujljusten2012-08-137-62/+146
| | | | | | | | | | | | Represent the set of possible PCI link target IRQs with Pcd8259LegacyModeEdgeLevel. This ensures that the 8259 Interrupt Controller code in PcAtChipsetPkg will treat them as level-triggered too. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13628 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: have PlatformBdsLib::PciInitialization conform to the _PRSjljusten2012-08-131-10/+10
| | | | | | | | | | Also set some INTLN values, informatively. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13627 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: PlatformBdsLib: the balloon device (RAM Memory) is in slot 5jljusten2012-08-131-3/+3
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13626 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: fix interrupt routing in the DSDT, bump revision numberjljusten2012-08-131-13/+122
| | | | | | | | | | | | | | | | | | Rotate links over devices and pins so that they match qemu. PIIX4 function 3 (Power Management Module) unconditionally uses the INTA interrupt pin. SCI from this module requires IRQ9. Keep other assignments off IRQ9. Only IRQ5, IRQ10, IRQ11 remain for PCI devices. Bump OEMRevision in the DSDT. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13625 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: add parallel port to the DSDTjljusten2012-08-131-0/+13
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13624 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: fix the _UID of \_SB.PCI0.LPC.LNKD in the DSDTjljusten2012-08-131-1/+1
| | | | | | | | | | LNKD is the fourth PNP0C0F. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13623 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: add comments to the DSDT, remove trailing empty linejljusten2012-08-131-5/+7
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13622 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: _DIS and _SRS methods should have permanent effectjljusten2012-08-131-23/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Kill PDIS and PSRS as they are writing to copies of PIR[A-D], not PIR[A-D] themselves. Use specialized _DIS and _SRS methods that access PIR[A-D] directly. (This should be solvable by passing RefOf (PIRA) etc to PDIS/PSRS, however the RHEL-6.3 kernel AML parser seems to choke on it. The rules described in ACPIspec5.0 Table 19-316 "Object Storing and Copying Rules" don't seem to work: ACPI Error: Needed [Integer/String/Buffer], found [Reference] ffff88003ee02420 (20090903/exresop-422) ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20090903/dswexec-445) ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.LPC_.PDIS] (Node ffff88003f638b50), AE_AML_OPERAND_TYPE ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.LPC_.LNKA._DIS] (Node ffff88003f638a10), AE_AML_OPERAND_TYPE When changing the method too, so that it writes to DerefOf (Arg0) instead of Arg0, ie. explicitly dereferencing rather than expecting the auto-deref to work: ACPI Error: Needed type [Reference], found [RegionField] ffff88003f639858 (20090903/exresop-104) ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20090903/dswexec-445) ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.LPC_.PDIS] (Node ffff88003f638b50), AE_AML_OPERAND_TYPE ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PCI0.LPC_.LNKA._DIS] (Node ffff88003f638a10), AE_AML_OPERAND_TYPE In short, when passing a RefOf, it is recognized as a reference inside the method but mistakenly refused. When trying to deref it explicitly with DerefOf, then it's suddenly not recognized as a reference.) Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13621 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: unlike PIIX4, qemu needs ActiveHigh for interrupt sharingjljusten2012-08-131-2/+2
| | | | | | | | Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13620 6f19259b-4bc3-4df7-8a09-765794883524
* OvmfPkg: simplify _CRS, _PRS, _SRS methods in the DSDTjljusten2012-08-131-22/+22
| | | | | | | | | | | Use Extended Interrupt Descriptors in the _CRS, _PRS, _SRS methods of \_SB.PCI0.LPC.LNK[A-D], eliminating bit shifting. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13619 6f19259b-4bc3-4df7-8a09-765794883524