ChangeLog revision 1.1
11.1Sjakllsch2013-06-12 Nigel Croxon <nigel.croxon@hp.com> 21.1Sjakllsch Disable MMX and SSE 31.1Sjakllsch 41.1Sjakllsch GCC 4.8.0 adds some optimizations that will use movups/movaps (and use 51.1Sjakllsch %xmm* registers) when they're faster, and of course that won't work at 61.1Sjakllsch all since UEFI firmwares aren't guaranteed to initialize the mmx/sse 71.1Sjakllsch instructions. 81.1Sjakllsch 91.1Sjakllsch This will be even more annoying, since most UEFI firmwares don't 101.1Sjakllsch initialize the #DE or #UD trap handlers, and your backtrace will be a 111.1Sjakllsch random path through uninitialized memory, occasionally including 121.1Sjakllsch whatever address the IDT has for #UD, but also addresses like "0x4" and 131.1Sjakllsch "0x507" that you don't normally expect to see in your call path. 141.1Sjakllsch 151.1Sjakllsch Signed-off-by: Peter Jones <pjones@redhat.com> 161.1Sjakllsch 171.1Sjakllsch Author: Nigel Croxon <nigel.croxon@hp.com> 181.1Sjakllsch Date: Wed Jun 12 10:29:40 2013 -0400 191.1Sjakllsch 201.1Sjakllsch bug in make 3.82 expand to odd values 211.1Sjakllsch 221.1Sjakllsch Some Makefiles tickle a bug in make 3.82 that cause libefi.a 231.1Sjakllsch and libgnuefi.a dependencies to expand to the odd values: 241.1Sjakllsch 251.1Sjakllsch libefi.a: boxdraw.o) smbios.o) ... 261.1Sjakllsch libgnuefi.a(reloc_x86_64.o: 271.1Sjakllsch 281.1Sjakllsch The patch replaces libgnuefi.a($(OBJS)) & libefi.a($(OBJS)) 291.1Sjakllsch with an equivalent expansion that should work with any make 301.1Sjakllsch that supports $(patsubst). 311.1Sjakllsch 321.1Sjakllsch Author: Nigel Croxon <nigel.croxon@hp.com> 331.1Sjakllsch Date: Wed Jun 12 09:53:01 2013 -0400 341.1Sjakllsch 351.1Sjakllsch support .text.* sections on x86_64 361.1Sjakllsch 371.1Sjakllsch Group them in .text. Also add vague linkage sections in .text. 381.1Sjakllsch 391.1Sjakllsch Signed-off-by: David Decotigny <decot@googlers.com> 401.1Sjakllsch 411.1Sjakllsch Author: Nigel Croxon <nigel.croxon@hp.com> 421.1Sjakllsch Date: Wed Jun 12 09:51:36 2013 -0400 431.1Sjakllsch 441.1Sjakllsch cleanup and fix Make.defaults 451.1Sjakllsch 461.1Sjakllsch Reorder variables in Make.defaults so that they are grouped by 471.1Sjakllsch functions. Also fixed ifeq (x,y) to have required syntax and make it 481.1Sjakllsch work for ARCH amd64->x86_64 renaming on BSD. Also provides top-level 491.1Sjakllsch Makefile with a "mkvars" target that displays effective variables. 501.1Sjakllsch 511.1Sjakllsch Signed-off-by: David Decotigny <decot@googlers.com> 521.1Sjakllsch 531.1Sjakllsch Author: Nigel Croxon <nigel.croxon@hp.com> 541.1Sjakllsch Date: Wed Jun 12 09:47:16 2013 -0400 551.1Sjakllsch 561.1Sjakllsch automatically determine number of uefi_call_wrapper() args on x86_64 571.1Sjakllsch 581.1Sjakllsch Instead of asking developers to explicitly pass the number of 591.1Sjakllsch parameters to the functions that get called, we determine them 601.1Sjakllsch automatically at preprocessing time. This should result in more 611.1Sjakllsch robust code. 621.1Sjakllsch 631.1Sjakllsch Argument va_num is now ignored in x86_64 code, both with and 641.1Sjakllsch without HAVE_USE_MS_ABI. 651.1Sjakllsch 661.1Sjakllsch Credits to the macro magic given in the comments. 671.1Sjakllsch 681.1Sjakllsch Signed-off-by: David Decotigny <decot@googlers.com> 691.1Sjakllsch 701.1Sjakllsch Author: Nigel Croxon <nigel.croxon@hp.com> 711.1Sjakllsch Date: Wed Jun 12 09:38:10 2013 -0400 721.1Sjakllsch 731.1Sjakllsch fix parameter-passing corruption on x86_64 for >= 5 args 741.1Sjakllsch 751.1Sjakllsch On x86_64 without HAVE_USE_MS_ABI support, uefi_call_wrapper() is a 761.1Sjakllsch variadic function. Parameters >=5 are copied to the stack and, when 771.1Sjakllsch passed small immediate values (and possibly other parameters), gcc 781.1Sjakllsch would emit a movl instruction before calling uefi_call_wrapper(). As a 791.1Sjakllsch result, only the lower 32b of these stack values are significant, the 801.1Sjakllsch upper 32b potentially contain garbage. Considering that 811.1Sjakllsch uefi_call_wrapper() assumes these arguments are clean 64b values 821.1Sjakllsch before calling the efi_callX() trampolines, the latter may be passed 831.1Sjakllsch garbage. This makes calling functions like 841.1Sjakllsch EFI_PCI_IO_PROTOCOL.Mem.Read()/Write() or BS->OpenProtocol() quite 851.1Sjakllsch unreliable. 861.1Sjakllsch 871.1Sjakllsch This patch fixes this by turning uefi_call_wrapper() into a macro that 881.1Sjakllsch allows to expose the efi_callX() trampoline signatures to the callers, 891.1Sjakllsch so that gcc can know upfront that it has to pass all arguments to 901.1Sjakllsch efi_callX() as clean 64b values (eg. movq for immediates). The 911.1Sjakllsch _cast64_efi_callX macros are just here to avoid a gcc warning, they do 921.1Sjakllsch nothing otherwise. 931.1Sjakllsch 941.1Sjakllsch Signed-off-by: David Decotigny <decot@googlers.com> 951.1Sjakllsch 961.1Sjakllsch Author: noxorc <nigel.croxon@hp.com> 971.1Sjakllsch Date: Wed May 15 15:26:16 2013 -0400 981.1Sjakllsch 991.1Sjakllsch - Removes the ElfW() macro usage from reloc_ia32.c and reloc_x86_64.c. These 1001.1Sjakllsch macros only exist in link.h on Linux. On FreeBSD, the equivalent macro is 1011.1Sjakllsch __ElfN(). But the macro usage is redundant. You're only going to compile the 1021.1Sjakllsch ia32 file for IA32 binaries and the x86_64 file for X64 binaries. If you had 1031.1Sjakllsch just one file built for both cases, then using the macro might make more 1041.1Sjakllsch sense. 1051.1Sjakllsch 1061.1Sjakllsch - Removes the "#define foo_t efi_foo_t" macros from reloc_ia32.c and 1071.1Sjakllsch reloc_x86_64.c. 1081.1Sjakllsch 1091.1Sjakllsch - Modifies inc/x86_64/efibind.h and inc/ia32/efibind.h to use the new 1101.1Sjakllsch definitions for uint64_t, int64_t and int8_t. The 64-bit types are now defined 1111.1Sjakllsch as: 1121.1Sjakllsch 1131.1Sjakllsch typedef int __attribute__((__mode__(__DI__))) int64_t; 1141.1Sjakllsch typedef unsigned int __attribute__((__mode__(__DI__))) uint64_t; 1151.1Sjakllsch 1161.1Sjakllsch This removes the conflict between the host types dragged in by elf.h and the 1171.1Sjakllsch type definitions in efibind.h that made the #define foo_t efi_foo_t" hack 1181.1Sjakllsch necessary. Also, int8_t is now defined as signed char instead of just char 1191.1Sjakllsch (assuming char == signed char is apparently not good enough). 1201.1Sjakllsch 1211.1Sjakllsch - Also modifies these files to use stdint.h instead of stdint-gcc.h. It's 1221.1Sjakllsch unclear if this is completely correct, but stdint-gcc.h is not present with 1231.1Sjakllsch all GCC installs, and if you use -std=c99 or later you will force this case to 1241.1Sjakllsch be hit. This also can break clang, which doesn't have a stdint-gcc.h at all. 1251.1Sjakllsch 1261.1Sjakllsch - Removes the #include of <link.h> from reloc_ia32.c and reloc_x86_64.c (since 1271.1Sjakllsch with the previous changes it's not needed anymore). 1281.1Sjakllsch 1291.1Sjakllsch - Places the #include of <elf.h> after #include <efi>/#include <efilib.h> so 1301.1Sjakllsch that we know the types will always be defined properly, in case you build on a 1311.1Sjakllsch system where <elf.h> doesn't automatically pull in the right header files to 1321.1Sjakllsch define all the needed types. (This actually happens on VxWorks. It's harmless 1331.1Sjakllsch elsewhere. If you don't care about VxWorks, you can leave this out.) 1341.1Sjakllsch 1351.1Sjakllsch - Modifies setjmp_ia32.S and setjmp_x86_64.S so to change "function" to 1361.1Sjakllsch @function. The clang compiler doesn't like the former. Clang and GCC both like 1371.1Sjakllsch the latter. 1381.1Sjakllsch 1391.1Sjakllsch - Modifles Make.defaults so that if ARCH is detected as "amd64," it's changed 1401.1Sjakllsch to "x86_64." It happens that uname -m on 64-bit FreeBSD reports the former 1411.1Sjakllsch rather than the latter, which breaks the build. This may also be the case on 1421.1Sjakllsch some other OSes. There's a way to force uname(1) to return x86_64 as the 1431.1Sjakllsch machine type, but this way is a little friendlier. 1441.1Sjakllsch 1451.1Sjakllsch - Creates gnuefi/elf_ia32_fbsd_efi.lds which specifies the object file type as 1461.1Sjakllsch elf-ia32-freebsd. This is required for building on FreeBSD/i386, not just 1471.1Sjakllsch FreeBSD/amd64. 1481.1Sjakllsch 1491.1Sjakllsch - Modifies apps/Makefile to always use 1501.1Sjakllsch $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds when building on either 32-bit or 1511.1Sjakllsch 64-bit FreeBSD instead of just for the x86_64 case. 1521.1Sjakllsch 1531.1Sjakllsch - Changed LDFLAGS in Make.defaults to include --no-undefined. This will cause 1541.1Sjakllsch linking to fail if there are any unsatisfied symbols when creating foo.so 1551.1Sjakllsch during any of the app builds, as opposed to just silently succeeding and 1561.1Sjakllsch producing an unusable binary. 1571.1Sjakllsch 1581.1Sjakllsch - Changed CFLAGS to include -ffreestanding -fno-stack-protector -fno-stack- 1591.1Sjakllsch check. This prevents clang from inserting a call to memset() when compiling 1601.1Sjakllsch the RtZeroMem() and RtSetMem() routines in lib/runtime/efirtlib.c and guards 1611.1Sjakllsch against the native compiler in some Linux distros from adding in stack 1621.1Sjakllsch checking code which relies on libc help that isn't present in the EFI runtime 1631.1Sjakllsch environment. 1641.1Sjakllsch 1651.1Sjakllsch This does the following: 1661.1Sjakllsch 1671.1Sjakllsch - Cleans up the ia32 and x86-64 relocation code a bit (tries to break the 1681.1Sjakllsch dependency between the host ELF headers and the EFI runtime environment) 1691.1Sjakllsch - Avoids the dependency on stdint-gcc.h which may not always be available 1701.1Sjakllsch - Allows GNU EFI to build out of the box on both FreeBSD/i386 and 1711.1Sjakllsch FreeBSD/amd64 1721.1Sjakllsch - Allows GNU EFI to build out of the box with either GCC or clang on 1731.1Sjakllsch FreeBSD/i386 and FreeBSD/amd64 9.0 and later. 1741.1Sjakllsch - Makes things a little easier to port to VxWorks 1751.1Sjakllsch - Avoids creating un-runable binaries with unresolved symbol definitions 1761.1Sjakllsch (which can be very confusing to debug) 1771.1Sjakllsch 1781.1Sjakllsch Author: noxorc <nigel.croxon@hp.com> 1791.1Sjakllsch Date: Wed May 8 16:29:45 2013 -0400 1801.1Sjakllsch 1811.1Sjakllsch Add the definitions for TCP, UDP and IP, for both IPv4 and IPv6. 1821.1Sjakllsch 1831.1Sjakllsch 1841.1Sjakllsch2013-05-02 Nigel Croxon <nigel.croxon@hp.com> 1851.1Sjakllsch * Chnage from Matt Fleming <matt.fleming@intel.com> 1861.1Sjakllsch - Preparation for adding the networking protocol definitions. 1871.1Sjakllsch Add the service binding protocol. 1881.1Sjakllsch 1891.1Sjakllsch2013-02-21 Nigel Croxon <nigel.croxon@hp.com> 1901.1Sjakllsch * Change from Peter Jones <pjones@redhat.com> 1911.1Sjakllsch - Previously we were incorrectly passing 3 functions with 1921.1Sjakllsch the System V ABI to UEFI functions as EFI ABI functions. 1931.1Sjakllsch Mark them as EFIAPI so the compiler will (in our new 1941.1Sjakllsch GNU_EFI_USE_MS_ABI world) use the correct ABI. 1951.1Sjakllsch - These need to be EFIAPI functions because in some cases 1961.1Sjakllsch they call ST->ConOut->OutputString(), which is an EFIAPI 1971.1Sjakllsch function. (Which means that previously in cases that 1981.1Sjakllsch needed "cdecl", these didn't work right.) 1991.1Sjakllsch - If the compiler version is new enough, and GNU_EFI_USE_MS_ABI 2001.1Sjakllsch is defined, use the function attribute ms_abi on everything 2011.1Sjakllsch defined with "EFIAPI". Such calls will no longer go through 2021.1Sjakllsch efi_call*, and as such will be properly type-checked. 2031.1Sjakllsch - Honor PREFIX and LIBDIR correctly when passed in during the build. 2041.1Sjakllsch - Add machine type defines for i386, arm/thumb, ia64, ebc, x86_64. 2051.1Sjakllsch - __STDC_VERSION__ never actually gets defined unless there's a 2061.1Sjakllsch --std=... line. So we were accidentally defining lots of c99 2071.1Sjakllsch types ourself. Since it's 2012, use --std=c11 where appropriate, 2081.1Sjakllsch and if it's defined and we're using gcc, actually include gcc's 2091.1Sjakllsch stdint definitions. 2101.1Sjakllsch - New test application added: route80h. This is a test program 2111.1Sjakllsch for PciIo. It routes ioport 80h on ICH10 to PCI. This is also 2121.1Sjakllsch useful on a very limited set of hardware to enable use of 2131.1Sjakllsch a port 80h debug card. 2141.1Sjakllsch - New test applcation added: modelist. This lists video modes 2151.1Sjakllsch the GOP driver is showing us. 2161.1Sjakllsch * Change from Finnbarr Murphy 2171.1Sjakllsch - https://sourceforge.net/p/gnu-efi/feature-requests/2/ 2181.1Sjakllsch Please add the following status codes to <efierr.h> 2191.1Sjakllsch EFI_INCOMPATIBLE_VERSION 25 2201.1Sjakllsch EFI_SECURITY_VIOLATION 26 2211.1Sjakllsch EFI_CRC_ERROR 27 2221.1Sjakllsch EFI_END_OF_MEDIA 28 2231.1Sjakllsch EFI_END_OF_FILE 31 2241.1Sjakllsch EFI_INVALID_LANGUAGE 32 2251.1Sjakllsch EFI_COMPROMISED_DATA 33 2261.1Sjakllsch * Change from SourceForge.net Bug report 2271.1Sjakllsch - https://sourceforge.net/p/gnu-efi/bugs/5/ 2281.1Sjakllsch BufferSize is a UINT64 *. The file shipped with GNU EFI is from 2291.1Sjakllsch 1998 whereas the latest one is from 2004. I suspect Intel changed 2301.1Sjakllsch the API in order handle 64-bit systems. 2311.1Sjakllsch * Change from Felipe Contreras <felipe.contreras@gmail.com> 2321.1Sjakllsch - The current code seems to screw the stack at certain points. 2331.1Sjakllsch Multiple people have complained that gummiboot hangs right away, 2341.1Sjakllsch which is in part the fault of gummiboot, but happens only 2351.1Sjakllsch because the stack gets screwed. x86_64 EFI already aligns the 2361.1Sjakllsch stack, so there's no need for so much code to find a proper 2371.1Sjakllsch alignment, we always need to shift by 8 anyway. 2381.1Sjakllsch * Change from A. Steinmetz 2391.1Sjakllsch - https://sourceforge.net/p/gnu-efi/patches/1/ 2401.1Sjakllsch The patch prepares for elilo to support uefi pxe over ipv6 2411.1Sjakllsch See uefi spec 2.3.1 errata c page 963 as reference. 2421.1Sjakllsch Verfied on an ASUS Sabertooth X79 BIOS Rev. 2104 system which 2431.1Sjakllsch is able to do an IPv6 UEFI PXE boot. 2441.1Sjakllsch * Release 3.0t 2451.1Sjakllsch 2461.1Sjakllsch2012-09-21 Nigel Croxon <nigel.croxon@hp.com> 2471.1Sjakllsch * Change from Peter Jones <pjones@redhat.com> 2481.1Sjakllsch - EFI Block I/O protocol versions 2 and 3 provide more information 2491.1Sjakllsch regarding physical disk layout, including alingment offset at the 2501.1Sjakllsch beginning of the disk ("LowestAlignedLba"), logical block size 2511.1Sjakllsch ("LogicalBlocksPerPhysicalBlock"), and optimal block transfer size 2521.1Sjakllsch ("OptimalTransferLengthGranularity"). 2531.1Sjakllsch * Release 3.0r 2541.1Sjakllsch 2551.1Sjakllsch2012-04-30 Nigel Croxon <nigel.croxon@hp.com> 2561.1Sjakllsch * Change from Matt Fleming <matt.fleming@intel.com> 2571.1Sjakllsch - The .reloc section is now 4096-byte boundary for x86_64. 2581.1Sjakllsch Without this patch the .reloc section will not adhere to 2591.1Sjakllsch the alignment value in the FileAlignment field (512 bytes by 2601.1Sjakllsch default) of the PE/COFF header. This results in a signed 2611.1Sjakllsch executable failing to boot in a secure boot environment. 2621.1Sjakllsch * Release 3.0q 2631.1Sjakllsch 2641.1Sjakllsch2011-12-12 Nigel Croxon <nigel.croxon@hp.com> 2651.1Sjakllsch * Changes from Fenghua Yu <fenghua.yu@intel.com> 2661.1Sjakllsch - This fixes redefined types compilation failure for tcc.c on x86_64 machines. 2671.1Sjakllsch * Release 3.0p 2681.1Sjakllsch 2691.1Sjakllsch2011-11-15 Nigel Croxon <nigel.croxon@hp.com> 2701.1Sjakllsch * Changes from Darren Hart <dvhart@linux.intel.com> 2711.1Sjakllsch - Conditionally assign toolchain binaries to allow overriding them. 2721.1Sjakllsch - Force a dependency on lib for gnuefi. 2731.1Sjakllsch * Release 3.0n 2741.1Sjakllsch 2751.1Sjakllsch2011-08-23 Nigel Croxon <nigel.croxon@hp.com> 2761.1Sjakllsch * Changes from Peter Jones <pjones@redhat.com> 2771.1Sjakllsch - Add guarantee 16-byte stack alignment on x86_64. 2781.1Sjakllsch - Add routine to make callbacks work. 2791.1Sjakllsch - Add apps/tcc.efi to test calling convention. 2801.1Sjakllsch * Release 3.0m 2811.1Sjakllsch 2821.1Sjakllsch2011-07-22 Nigel Croxon <nigel.croxon@hp.com> 2831.1Sjakllsch * Changed Makefiles from GPL to BSD. 2841.1Sjakllsch * Changes from Peter Jones <pjones@redhat.com> 2851.1Sjakllsch - Add ifdefs for ia64 to mirror ia32 and x86-64 so that 2861.1Sjakllsch one can build with GCC. 2871.1Sjakllsch - Add headers for PciIo. 2881.1Sjakllsch - Add the UEFI 2.x bits for EFI_BOOT_SERVICES 2891.1Sjakllsch - Add an ignore for .note.GNU-stack section in X86-64 linker maps. 2901.1Sjakllsch * Release 3.0l 2911.1Sjakllsch 2921.1Sjakllsch2011-04-07 Nigel Croxon <nigel.croxon@hp.com> 2931.1Sjakllsch * Change license from GPL to BSD. 2941.1Sjakllsch * Release 3.0j 2951.1Sjakllsch 2961.1Sjakllsch2009-09-12 Julien BLACHE <jb@jblache.org> 2971.1Sjakllsch * Add support for FreeBSD. 2981.1Sjakllsch * Release 3.0i 2991.1Sjakllsch 3001.1Sjakllsch2009-09-11 Julien BLACHE <jb@jblache.org> 3011.1Sjakllsch * Fix elf_ia32_efi.lds linker script to be compatible with the new 3021.1Sjakllsch linker behaviour. Patch from the RedHat bugzilla 492183. 3031.1Sjakllsch 3041.1Sjakllsch2009-06-18 Nigel Croxon <nigel.croxon@hp.com> 3051.1Sjakllsch * Release 3.0h 3061.1Sjakllsch 3071.1Sjakllsch2008-11-06 Nigel Croxon <nigel.croxon@hp.com> 3081.1Sjakllsch * Fix to not having any relocations at all. 3091.1Sjakllsch 3101.1Sjakllsch2008-09-18 Nigel Croxon <nigel.croxon@hp.com> 3111.1Sjakllsch * Use LIBDIR in makefiles 3121.1Sjakllsch * Add setjmp/longjmp 3131.1Sjakllsch * Fixes incorrect section attribute in crt0-efi-ia32.S 3141.1Sjakllsch * Adds value EfiResetShutdown to enum EFI_RESET_TYPE 3151.1Sjakllsch * Fixes a RAW warning in reloc_ia64.S 3161.1Sjakllsch * Adds the USB HCI device path structure in the headers 3171.1Sjakllsch patches were supplied by Peter Jones @ RedHat 3181.1Sjakllsch 3191.1Sjakllsch2008-02-22 Nigel Croxon <nigel.croxon@hp.com> 3201.1Sjakllsch * Added '-mno-red-zone' to x68_64 compiles. 3211.1Sjakllsch Patch provided by Mats Andersson. 3221.1Sjakllsch 3231.1Sjakllsch2008-01-23 Nigel Croxon <nigel.croxon@hp.com> 3241.1Sjakllsch * release 3.0e to support x86_64 3251.1Sjakllsch EFI calling convention, the stack should be aligned in 16 bytes 3261.1Sjakllsch to make it possible to use SSE2 in EFI boot services. 3271.1Sjakllsch This patch fixes this issue. Patch provided by Huang Ying from Intel. 3281.1Sjakllsch 3291.1Sjakllsch2007-05-11 Nigel Croxon <nigel.croxon@hp.com> 3301.1Sjakllsch * release 3.0d to support x86_64 from Chandramouli Narayanan 3311.1Sjakllsch from Intel and based on 3.0c-1 3321.1Sjakllsch 3331.1Sjakllsch2006-03-21 Stephane Eranian <eranian@hpl.hp.com> 3341.1Sjakllsch * merged patch to support gcc-4.1 submitted by 3351.1Sjakllsch Raymund Will from Novell/SuSE 3361.1Sjakllsch 3371.1Sjakllsch2006-03-20 Stephane Eranian <eranian@hpl.hp.com> 3381.1Sjakllsch * updated ia-64 and ia-32 linker scripts to 3391.1Sjakllsch match latest gcc. The new gcc may put functions in 3401.1Sjakllsch .text* sections. patch submitted by H.J. Lu from Intel. 3411.1Sjakllsch 3421.1Sjakllsch2004-11-19 Stephane Eranian <eranian@hpl.hp.com> 3431.1Sjakllsch * added patch to ignore .eh_frame section for IA-32. Patch 3441.1Sjakllsch submitted by Jim Wilson 3451.1Sjakllsch 3461.1Sjakllsch2004-09-23 Stephane Eranian <eranian@hpl.hp.com> 3471.1Sjakllsch * added patch to discard unwind sections, newer toolchains 3481.1Sjakllsch complained about them. Patch submitted by Jesse Barnes from SGI. 3491.1Sjakllsch 3501.1Sjakllsch2003-09-29 Stephane Eranian <eranian@hpl.hp.com> 3511.1Sjakllsch * updated elf_ia64_efi.lds to reflect new data sections 3521.1Sjakllsch created by gcc-3.3. Patch provided by Andreas Schwab from Suse. 3531.1Sjakllsch 3541.1Sjakllsch2003-06-20 Stephane Eranian <eranian@hpl.hp.com> 3551.1Sjakllsch * updated elf_ia64_efi.lds and elf_ia32_efi.lds to include 3561.1Sjakllsch new types data sections produced by recent version of gcc-3.x 3571.1Sjakllsch 3581.1Sjakllsch2002-02-22 Stephane Eranian <eranian@hpl.hp.com> 3591.1Sjakllsch * release 3.0a 3601.1Sjakllsch * modified both IA-64 and IA-32 loader scripts to add support for the 3611.1Sjakllsch new .rodata sections names (such as rodata.str2.8). Required 3621.1Sjakllsch for new versions of gcc3.x. 3631.1Sjakllsch 3641.1Sjakllsch2001-06-20 Stephane Eranian <eranian@hpl.hp.com> 3651.1Sjakllsch * release 3.0 3661.1Sjakllsch * split gnu-efi package in two different packages: the libary+include+crt and the bootloader. 3671.1Sjakllsch * removed W2U() hack and related files to get from wide-char to unicode. 3681.1Sjakllsch * Use -fshort-wchar option for unicode. 3691.1Sjakllsch * restructured Makefiles now install under INSTALLROOT. 3701.1Sjakllsch 3711.1Sjakllsch2001-04-06 Stephane Eranian <eranian@hpl.hp.com> 3721.1Sjakllsch 3731.1Sjakllsch * incorporated patches from David and Michael Johnston at Intel 3741.1Sjakllsch to get the package to compile for IA-32 linux target. 3751.1Sjakllsch 3761.1Sjakllsch * Fixed ELILO to compile for Ia-32 (does not execute yet, though): 3771.1Sjakllsch Makefile and start_kernel() function. 3781.1Sjakllsch 3791.1Sjakllsch2001-04-06 Andreas Schwab <schwab@suse.de> 3801.1Sjakllsch 3811.1Sjakllsch * Fixed config.c to 3821.1Sjakllsch get the timeout directive to do something. implemented the global 3831.1Sjakllsch root= directive. 3841.1Sjakllsch 3851.1Sjakllsch * Fix the efi_main() to deal with the -C option properly 3861.1Sjakllsch 3871.1Sjakllsch2001-04-05 Stephane Eranian <eranian@hpl.hp.com> 3881.1Sjakllsch 3891.1Sjakllsch * update efi library to latest EFI toolkit 1.02 as distributed 3901.1Sjakllsch by Intel. Fixed header + library files to compile with GCC 3911.1Sjakllsch 3921.1Sjakllsch * merged ELI and LILO (as of gnu-efi-1.1) together, mostly 3931.1Sjakllsch taking the config file feature of ELI. 3941.1Sjakllsch 3951.1Sjakllsch * renamed LILO to ELILO to make the distinction 3961.1Sjakllsch 3971.1Sjakllsch * restructured code to make it easier to understand and maintain 3981.1Sjakllsch 3991.1Sjakllsch * fixed FPSWA driver checking and loading: we try all possible 4001.1Sjakllsch files and let the driver itself figure out if it is the most 4011.1Sjakllsch recent. 4021.1Sjakllsch * added support for compression (gzip) but keep support for plain 4031.1Sjakllsch ELF image. ELILO autodetects the format 4041.1Sjakllsch 4051.1Sjakllsch * change the way the kernel is invoked. Now we call it in 4061.1Sjakllsch physical memory mode. This breaks the dependency between the 4071.1Sjakllsch kernel code and the loader. No more lilo_start.c madness. 4081.1Sjakllsch 4091.1Sjakllsch * changed the way the boot_params are passed. We don't use the 4101.1Sjakllsch ZERO_PAGE_ADDR trick anymore. Instead we use EFI runtime memory. 4111.1Sjakllsch The address of the structure is passed to the kernel in r28 4121.1Sjakllsch by our convention. 4131.1Sjakllsch 4141.1Sjakllsch * released as gnu-efi-2.0 4151.1Sjakllsch 4161.1Sjakllsch2001-04-03 David Mosberger <davidm@hpl.hp.com> 4171.1Sjakllsch 4181.1Sjakllsch * gnuefi/reloc_ia32.c (_relocate): Change return type from "void" 4191.1Sjakllsch to "int". Return error status if relocation fails for some 4201.1Sjakllsch reason. 4211.1Sjakllsch 4221.1Sjakllsch * gnuefi/elf_ia32_efi.lds: Drop unneeded ".rel.reloc" section. 4231.1Sjakllsch 4241.1Sjakllsch * gnuefi/crt0-efi-ia32.S (_start): Exit if _relocate() returns with 4251.1Sjakllsch non-zero exit status. 4261.1Sjakllsch 4271.1Sjakllsch * inc/ia32/efibind.h [__GNUC__]: Force 8-byte alignment for 64-bit 4281.1Sjakllsch types as that is what EFI appears to be expecting, despite the 4291.1Sjakllsch "#pragma pack()" at the beginning of the file! 4301.1Sjakllsch 4311.1Sjakllsch2001-03-29 David Mosberger <davidm@hpl.hp.com> 4321.1Sjakllsch 4331.1Sjakllsch * gnuefi/reloc_ia32.c: Add a couple of defines to work around 4341.1Sjakllsch libc/efilib collision on uint64_t et al. 4351.1Sjakllsch (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)(). 4361.1Sjakllsch 4371.1Sjakllsch * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry. 4381.1Sjakllsch 4391.1Sjakllsch2001-03-29 David Mosberger <davidm@hpl.hp.com> 4401.1Sjakllsch 4411.1Sjakllsch * gnuefi/reloc_ia32.c: Add a couple of defines to work around 4421.1Sjakllsch libc/efilib collision on uint64_t et al. 4431.1Sjakllsch (_relocate): Use ELF32_R_TYPE() instead of ELFW(R_TYPE)(). 4441.1Sjakllsch 4451.1Sjakllsch * gnuefi/crt0-efi-ia32.S (dummy): Add a dummy relocation entry. 4461.1Sjakllsch 4471.1Sjakllsch2000-10-26 David Mosberger <davidm@hpl.hp.com> 4481.1Sjakllsch 4491.1Sjakllsch * gnuefi/elf_ia64_efi.lds: Mention .rela.sdata. 4501.1Sjakllsch 4511.1Sjakllsch * Make.defaults (CFLAGS): Remove -nostdinc flags so we can pick 4521.1Sjakllsch up the C compiler's stdarg.h. 4531.1Sjakllsch 4541.1Sjakllsch * inc/stdarg.h: Remove this file. It's not correct for gcc (nor 4551.1Sjakllsch most other optimizing compilers). 4561.1Sjakllsch 4571.1Sjakllsch2000-10-10 Stephane Eranian <eranian@hpl.hp.com> 4581.1Sjakllsch 4591.1Sjakllsch * cleaned up the error message and printing of those. 4601.1Sjakllsch * added support to load the FPSWA from a file in case support is not 4611.1Sjakllsch present in the firmware already 4621.1Sjakllsch * fixed split_args() to do the right thing when you have leading spaces 4631.1Sjakllsch before kernel name 4641.1Sjakllsch * changed the argify() function to rely on \0 instead of LoadOptionSize 4651.1Sjakllsch as the field seems to be broken with current firmware 4661.1Sjakllsch * bumped version to 1.0 4671.1Sjakllsch 4681.1Sjakllsch2000-10-04 David Mosberger <davidm@hpl.hp.com> 4691.1Sjakllsch 4701.1Sjakllsch * gnuefi/reloc_ia64.S: Reserve space for up to 750 function descriptors. 4711.1Sjakllsch 4721.1Sjakllsch * gnuefi/elf_ia64_efi.lds: Add .sdata section for small data and 4731.1Sjakllsch put __gp in the "middle" of it. 4741.1Sjakllsch 4751.1Sjakllsch * gnuefi/crt0-efi-ia64.S (_start): Use movl/add to load 4761.1Sjakllsch gp-relative addresses that could be out of the range of the addl 4771.1Sjakllsch offset. 4781.1Sjakllsch * gnuefi/reloc_ia64.S (_relocate): Ditto. 4791.1Sjakllsch 4801.1Sjakllsch * apps/Makefile: Remove standard rules and include Make.rules instead. 4811.1Sjakllsch * lilo/Makefile: Ditto. 4821.1Sjakllsch 4831.1Sjakllsch * Make.rules: New file. 4841.1Sjakllsch 4851.1Sjakllsch2000-08-04 Stephane Eranian <eranian@hpl.hp.com> 4861.1Sjakllsch * released version 0.9 4871.1Sjakllsch * incorporated ACPI changes for Asuza by NEC < kouchi@hpc.bs1.fc.nec.co.jp> 4881.1Sjakllsch * added support for initrd (-i option) original ELI code from Bill Nottingham <notting@redhat.com>) 4891.1Sjakllsch * lots of cleanups 4901.1Sjakllsch * got rid of #ifdef LILO_DEBUG and uses macro instead 4911.1Sjakllsch * fix a few extra memory leaks in create_boot_params() 4921.1Sjakllsch * added exit capability just before starting the kernel 4931.1Sjakllsch 4941.1Sjakllsch2000-06-22 David Mosberger <davidm@hpl.hp.com> 4951.1Sjakllsch 4961.1Sjakllsch * gnuefi/elf_ia64_efi.lds: Add .srodata, .ctors, .IA64.unwind, 4971.1Sjakllsch .IA64.unwind_info to .data section and .rela.ctors to .rela 4981.1Sjakllsch section. 4991.1Sjakllsch 5001.1Sjakllsch2000-04-03 David Mosberger <davidm@hpl.hp.com> 5011.1Sjakllsch 5021.1Sjakllsch * lilo/lilo.c (LILO_VERSION): Up version number to 0.9. 5031.1Sjakllsch 5041.1Sjakllsch * gnuefi/elf_ia64_efi.lds: Include .IA_64.unwind and 5051.1Sjakllsch .IA_64.unwind_info in .data segment to avoid EFI load error 5061.1Sjakllsch "ImageAddress: pointer outside of image" error due to the .dynsym 5071.1Sjakllsch relocations against these sections. 5081.1Sjakllsch 5091.1Sjakllsch * ChangeLog: Moved from lilo/ChangeLogs. 5101.1Sjakllsch 5111.1Sjakllsch * gnuefi/reloc_ia64.S: fixed typo: .space directive had constant 5121.1Sjakllsch 100 hardcoded instead of using MAX_FUNCTION_DESCRIPTORS 5131.1Sjakllsch macro. Duh. 5141.1Sjakllsch 5151.1SjakllschFri Mar 17 15:19:18 PST 2000 Stephane Eranian <eranian@hpl.hp.com> 5161.1Sjakllsch 5171.1Sjakllsch * Released 0.8 5181.1Sjakllsch * replace the getopt.c with new version free with better license 5191.1Sjakllsch * created a documentation file 5201.1Sjakllsch * fix a couple of memory leaks 5211.1Sjakllsch * code cleanups 5221.1Sjakllsch * created a separate directory for lilo in the gnu-efi package. 5231.1Sjakllsch * added support for the BOOT_IMAGE argument to kernel 5241.1Sjakllsch * default is to build natively now 525