Acidanthera UEFI Development Kit based on EDK II edk2-stable202311
Go to file
jljusten 61a114ba46 OvmfPkg: LoadLinuxLib: Fix kernel entry for 64-bit OVMF
We currently just jump to offset 0x200 in the kernel image, in 64-bit
mode. This is completely broken. If it's a 32-bit kernel, we'll be
jumping into the compressed data payload.

If it's a 64-bit kernel, it'll work... but the 0x200 offset is
explicitly marked as 'may change in the future', has already changed
from 0x100 to 0x200 in the past with no fanfare, and bootloaders are
instructed that they should look at the ELF header to find the offset.
So although it does actually work today, it's still broken in the
"someone needs to whipped for doing it this way" sense of the word.

In fact, the same bug exists in other bootloaders so the 0x200 offset
probably *is* now set in stone. But still it's only valid to use it if
we *know* it's a 64-bit kernel. And we don't. There *is* no ELF header
that we can look at when we're booting a bzImage, and we can't rely on
it having a PE/COFF header either.

The 32-bit entry point is always guaranteed to work, and we need to
support it anyway. So let's just *always* use it, in 32-bit mode, and
then we don't have to make up some horrible heuristics for detecting
32-bit vs. 64-bit kernels.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14045 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-14 03:10:57 +00:00
AppPkg Update copyright format 2012-04-24 06:49:39 +00:00
ArmPkg ArmPlatformPkg/ArmPlatformStackLib: Introduced helper library to initialize stacks 2012-09-28 11:01:36 +00:00
ArmPlatformPkg ArmPlatformPkg/Scripts: Fixed the Makefile for Windows 2012-10-29 14:54:21 +00:00
BaseTools Roll back the changes for BaseTools 2012-06-25 02:24:12 +00:00
BeagleBoardPkg ArmPlatformPkg/ArmPlatformStackLib: Introduced helper library to initialize stacks 2012-09-28 11:01:36 +00:00
Conf
CryptoPkg 1. Enable the whole X509v3 extension checking. 2012-12-28 01:20:57 +00:00
DuetPkg Add missing braces around initializer. 2012-10-11 02:15:23 +00:00
EdkCompatibilityPkg Save/Restore missing volatile registers (XMM0-5) save/restore in Page Fault handler. 2012-11-28 04:49:48 +00:00
EdkShellBinPkg EdkShellBinPkg: Added ARM Binaries 2012-09-27 15:20:41 +00:00
EdkShellPkg EdkShellPkg: Added new patch to support EFI Shell project revision 61 2012-09-27 15:23:33 +00:00
EmbeddedPkg EmbeddedPkg/MmcDxe: Ensure MMC is in Identification Mode 2012-10-19 09:47:49 +00:00
EmulatorPkg Update to build with 10.8 OS X Frameworks. This is a Mac only change. 2012-12-22 00:47:17 +00:00
FatBinPkg FatBinPkg: Added ARM Binaries 2012-09-27 15:25:52 +00:00
IntelFrameworkModulePkg Update PCD description. 2012-12-12 08:25:05 +00:00
IntelFrameworkPkg Add ASSERT() for BitField operations to make sure the input value is valid. 2012-12-25 02:29:46 +00:00
MdeModulePkg Use EFI_IFR_TYPE_VALUE type variable instead of UINT64 to avoid buffer overflow. 2013-01-10 03:01:16 +00:00
MdePkg Allocate temp buffer instead of change the input string to avoid crush. 2013-01-08 08:30:51 +00:00
NetworkPkg Fix several RFC compliance issues in DHCP6 driver as below. 2013-01-08 08:28:11 +00:00
Nt32Pkg Change the type of NotifyHandle from EFI_HANDLE to VOID * for SimpleTextInEx protocol. 2012-07-30 03:50:42 +00:00
Omap35xxPkg EmbeddedPkg: Introduced 'SerialPortExtLib.h' 2012-09-28 10:56:12 +00:00
OptionRomPkg 1. Add EFI_COMPONENT_NAME2_PROTOCOL support for UNDI driver. 2012-12-13 06:41:07 +00:00
OvmfPkg OvmfPkg: LoadLinuxLib: Fix kernel entry for 64-bit OVMF 2013-01-14 03:10:57 +00:00
PcAtChipsetPkg Raise TPL to high to disable CPU interrupt before 8259 legacy base vector is changed, then restore TPL level at last when 8259 initialization is done. 2012-10-31 08:58:27 +00:00
PerformancePkg Fixed build failed. 2012-05-31 08:35:48 +00:00
SecurityPkg 1. Set the secure boot state to Standard Mode when user leaving secure boot setup page. 2013-01-09 05:19:43 +00:00
ShellBinPkg ShellBinPkg: Added ARM Binaries 2012-09-27 15:28:54 +00:00
ShellPkg ShellPkg: Updates to DumpHex() and ‘dmem’ command for correct output format 2012-12-19 16:47:06 +00:00
SourceLevelDebugPkg Roll back r13823. 2012-10-11 09:19:59 +00:00
StdLib StdLib: Fix issue with Canonical output expansion of NL to CR NL and similar expansions. 2012-12-21 18:19:41 +00:00
StdLibPrivateInternalFiles StdLib: Add internal use only header for interactive I/O. 2012-12-11 21:03:57 +00:00
UefiCpuPkg Add missing status code in several modules. 2012-10-30 04:25:43 +00:00
UnixPkg UnixPkg: Mark as deprecated (replaced by EmulatorPkg) 2012-10-05 07:05:54 +00:00
BuildNotes2.txt Update EDKII BuildNotes to say the default tool chain tag is VS2008 instead of VS2005 2011-12-14 06:15:48 +00:00
edksetup.bat Added VS2010 support in edksetup script. 2012-04-10 07:45:35 +00:00
edksetup.sh Correct copyright year 2011-02-16 12:21:31 +00:00