[romprefix] Remove .hrom prefix

The .hrom prefix provides an experimental mechanism for reducing
option ROM space usage on systems where PMM allocation fails, by
pretending that PMM allocation succeeded and gave us an address fixed
at compilation time.  This is unreliable, and potentially dangerous.
In particular, when multiple gPXE ROMs are present in a system, each
gPXE ROM will assume ownership of the same fixed address, resulting in
undefined behaviour.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
pull/1/head
Michael Brown 2010-04-19 20:38:35 +01:00
parent 329686c026
commit 8ffea19225
4 changed files with 0 additions and 28 deletions

View File

@ -866,7 +866,6 @@ endif # defined(BIN)
# #
FINALISE_rom = $(MAKEROM) $(MAKEROM_FLAGS) $(TGT_MAKEROM_FLAGS) \ FINALISE_rom = $(MAKEROM) $(MAKEROM_FLAGS) $(TGT_MAKEROM_FLAGS) \
-i$(IDENT) -s 0 $@ -i$(IDENT) -s 0 $@
FINALISE_hrom = $(FINALISE_rom)
# Some ROMs require specific flags to be passed to makerom.pl # Some ROMs require specific flags to be passed to makerom.pl
# #

View File

@ -11,7 +11,6 @@ LDFLAGS += -N --no-check-sections
# Media types. # Media types.
# #
MEDIA += rom MEDIA += rom
MEDIA += hrom
MEDIA += pxe MEDIA += pxe
MEDIA += kpxe MEDIA += kpxe
MEDIA += kkpxe MEDIA += kkpxe
@ -24,7 +23,6 @@ MEDIA += raw
# Padding rules # Padding rules
# #
PAD_rom = $(PADIMG) --blksize=512 --byte=0xff $@ PAD_rom = $(PADIMG) --blksize=512 --byte=0xff $@
PAD_hrom = $(PAD_rom)
PAD_dsk = $(PADIMG) --blksize=512 $@ PAD_dsk = $(PADIMG) --blksize=512 $@
PAD_hd = $(PADIMG) --blksize=32768 $@ PAD_hd = $(PADIMG) --blksize=32768 $@

View File

@ -1,12 +0,0 @@
/*****************************************************************************
* ROM prefix that relocates to HIGHMEM_LOADPOINT during POST if PMM allocation
* fails. Intended to be used, with caution, on BIOSes that support PCI3.00 but
* have limited PMM support, such as most AMI BIOSes.
*****************************************************************************
*/
FILE_LICENCE ( GPL2_OR_LATER )
#define SHRINK_WITHOUT_PMM
#include "romprefix.S"

View File

@ -352,7 +352,6 @@ got_pmm: /* PMM allocation succeeded */
call print_character call print_character
movw %si, %ax movw %si, %ax
call print_hex_byte call print_hex_byte
pmm_copy:
/* Copy ROM to PMM block */ /* Copy ROM to PMM block */
xorw %ax, %ax xorw %ax, %ax
movw %ax, %es movw %ax, %es
@ -364,19 +363,7 @@ pmm_copy:
movl %edi, decompress_to movl %edi, decompress_to
/* Shrink ROM */ /* Shrink ROM */
movb $_prefix_memsz_sect, romheader_size movb $_prefix_memsz_sect, romheader_size
#ifdef SHRINK_WITHOUT_PMM
jmp pmm_done
pmm_fail: pmm_fail:
/* Print marker and copy ourselves to high memory */
movl $HIGHMEM_LOADPOINT, image_source
xorw %di, %di
movb $( '!' ), %al
call print_character
jmp pmm_copy
pmm_done:
#else
pmm_fail:
#endif
/* Restore upper register halves */ /* Restore upper register halves */
popal popal
no_pmm: no_pmm: