[gPXE] [PATCH 4/4] [prefix] Remove unsupported ELF prefices

Stefan Hajnoczi stefanha at gmail.com
Fri Jan 29 15:58:39 EST 2010


The .elf, .elfd, .lmelf, and .lmelfd prefices were brought over from
legacy Etherboot and they do not build in gPXE.  This patch removes the
ELF prefices.

Signed-off-by: Stefan Hajnoczi <stefanha at gmail.com>
---
 src/arch/i386/Makefile.pcbios        |    4 -
 src/arch/i386/prefix/elf_dprefix.S   |   94 --------------------
 src/arch/i386/prefix/elfprefix.S     |   94 --------------------
 src/arch/i386/prefix/lmelf_dprefix.S |  161 ----------------------------------
 src/arch/i386/prefix/lmelf_prefix.S  |  161 ----------------------------------
 5 files changed, 0 insertions(+), 514 deletions(-)
 delete mode 100644 src/arch/i386/prefix/elf_dprefix.S
 delete mode 100644 src/arch/i386/prefix/elfprefix.S
 delete mode 100644 src/arch/i386/prefix/lmelf_dprefix.S
 delete mode 100644 src/arch/i386/prefix/lmelf_prefix.S

diff --git a/src/arch/i386/Makefile.pcbios b/src/arch/i386/Makefile.pcbios
index ec28542..e38fbca 100644
--- a/src/arch/i386/Makefile.pcbios
+++ b/src/arch/i386/Makefile.pcbios
@@ -16,10 +16,6 @@ MEDIA		+= xrom
 MEDIA		+= pxe
 MEDIA		+= kpxe
 MEDIA		+= kkpxe
-MEDIA		+= elf
-MEDIA		+= elfd
-MEDIA		+= lmelf
-MEDIA		+= lmelfd
 MEDIA		+= lkrn
 MEDIA		+= dsk
 MEDIA		+= nbi
diff --git a/src/arch/i386/prefix/elf_dprefix.S b/src/arch/i386/prefix/elf_dprefix.S
deleted file mode 100644
index 0eac77e..0000000
--- a/src/arch/i386/prefix/elf_dprefix.S
+++ /dev/null
@@ -1,94 +0,0 @@
-#include "elf.h"
-
-	.arch i386
-	.section ".prefix", "a", @progbits
-
-#define LOAD_ADDR 0x10000
-
-	/* ELF Header */
-	.globl elf_header
-elf_header:	
-e_ident:	.byte	0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
-e_type:		.short	ET_DYN
-e_machine:	.short	EM_386
-e_version:	.long	1
-e_entry:	.long	LOAD_ADDR + _start - elf_header
-e_phoff:	.long	elf_program_header - elf_header
-e_shoff:	.long	0
-e_flags:	.long	0
-e_ehsize:	.short	elf_header_end - elf_header
-e_phentsize:	.short	ELF32_PHDR_SIZE
-e_phnum:	.short	(elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
-e_shentsize:	.short	0
-e_shnum:	.short	0
-e_shstrndx:	.short	0
-elf_header_end:
-	
-elf_program_header:
-phdr1_p_type:	.long	PT_NOTE
-phdr1_p_offset:	.long	elf_note - elf_header
-phdr1_p_vaddr:	.long	elf_note
-phdr1_p_paddr:	.long	elf_note
-phdr1_p_filesz:	.long	elf_note_end - elf_note
-phdr1_p_memsz:	.long	elf_note_end - elf_note
-phdr1_p_flags:	.long	PF_R | PF_W | PF_X
-phdr1_p_align:	.long	0
-
-/* The decompressor */
-phdr2_p_type:	.long	PT_LOAD
-phdr2_p_offset:	.long	0
-phdr2_p_vaddr:	.long	elf_header
-phdr2_p_paddr:	.long	LOAD_ADDR
-phdr2_p_filesz:	.long	_verbatim_size
-phdr2_p_memsz:	.long	_image_size
-phdr2_p_flags:	.long	PF_R | PF_W | PF_X
-phdr2_p_align:	.long	16
-
-elf_program_header_end:
-
-	.globl elf_note
-elf_note:
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_NAME
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz "Etherboot"
-4:
-
-
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_VERSION
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz VERSION
-4:
-
-#if 0
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_CHECKSUM
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.word 0
-4:
-#endif
-	.balign 4
-elf_note_end:
-
-	/* Dummy routines to satisfy the build */
-	.section ".text16", "ax", @progbits
-prefix_exit:
-
-prefix_exit_end:
-	.previous
diff --git a/src/arch/i386/prefix/elfprefix.S b/src/arch/i386/prefix/elfprefix.S
deleted file mode 100644
index d712753..0000000
--- a/src/arch/i386/prefix/elfprefix.S
+++ /dev/null
@@ -1,94 +0,0 @@
-#include "elf.h"
-
-	.arch i386
-	.section ".prefix", "a", @progbits
-
-#define LOAD_ADDR 0x10000
-
-	/* ELF Header */
-	.globl elf_header
-elf_header:	
-e_ident:	.byte	0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
-e_type:		.short	ET_EXEC
-e_machine:	.short	EM_386
-e_version:	.long	1
-e_entry:	.long	LOAD_ADDR + _start - elf_header
-e_phoff:	.long	elf_program_header - elf_header
-e_shoff:	.long	0
-e_flags:	.long	0
-e_ehsize:	.short	elf_header_end - elf_header
-e_phentsize:	.short	ELF32_PHDR_SIZE
-e_phnum:	.short	(elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
-e_shentsize:	.short	0
-e_shnum:	.short	0
-e_shstrndx:	.short	0
-elf_header_end:
-	
-elf_program_header:
-phdr1_p_type:	.long	PT_NOTE
-phdr1_p_offset:	.long	elf_note - elf_header
-phdr1_p_vaddr:	.long	elf_note
-phdr1_p_paddr:	.long	elf_note
-phdr1_p_filesz:	.long	elf_note_end - elf_note
-phdr1_p_memsz:	.long	elf_note_end - elf_note
-phdr1_p_flags:	.long	PF_R | PF_W | PF_X
-phdr1_p_align:	.long	0
-
-/* The decompressor */
-phdr2_p_type:	.long	PT_LOAD
-phdr2_p_offset:	.long	0
-phdr2_p_vaddr:	.long	elf_header
-phdr2_p_paddr:	.long	LOAD_ADDR
-phdr2_p_filesz:	.long	_verbatim_size
-phdr2_p_memsz:	.long	_image_size
-phdr2_p_flags:	.long	PF_R | PF_W | PF_X
-phdr2_p_align:	.long	16
-
-elf_program_header_end:
-
-	.globl elf_note
-elf_note:
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_NAME
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz "Etherboot"
-4:
-
-
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_VERSION
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz VERSION
-4:
-
-#if 0
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_CHECKSUM
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.word 0
-4:
-#endif
-	.balign 4
-elf_note_end:
-
-	/* Dummy routines to satisfy the build */
-	.section ".text16", "ax", @progbits
-prefix_exit:
-
-prefix_exit_end:
-	.previous
diff --git a/src/arch/i386/prefix/lmelf_dprefix.S b/src/arch/i386/prefix/lmelf_dprefix.S
deleted file mode 100644
index 93534df..0000000
--- a/src/arch/i386/prefix/lmelf_dprefix.S
+++ /dev/null
@@ -1,161 +0,0 @@
-#include "elf.h"
-	.arch sledgehammer
-	.code32
-	.equ	FLAT_CODE_SEG,_pmcs-_gdt
-	.equ	FLAT_DATA_SEG,_pmds-_gdt
-	.equ	MSR_K6_EFER,   0xC0000080
-	.equ	EFER_LME,      0x00000100
-	.equ	X86_CR4_PAE,   0x00000020
-	.equ	CR0_PG,        0x80000000
-
-	.section ".prefix", "ax", @progbits
-
-#define LOAD_ADDR 0x10000
-		
-	/* ELF Header */
-	.globl elf_header
-elf_header:	
-e_ident:	.byte	0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
-e_type:		.short	ET_DYN
-e_machine:	.short	EM_X86_64
-e_version:	.long	1
-e_entry:	.long	LOAD_ADDR + elf_start - elf_header
-e_phoff:	.long	elf_program_header - elf_header
-e_shoff:	.long	0
-e_flags:	.long	0
-e_ehsize:	.short	elf_header_end - elf_header
-e_phentsize:	.short	ELF32_PHDR_SIZE
-e_phnum:	.short	(elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
-e_shentsize:	.short	0
-e_shnum:	.short	0
-e_shstrndx:	.short	0
-elf_header_end:
-	
-elf_program_header:
-phdr1_p_type:	.long	PT_NOTE
-phdr1_p_offset:	.long	elf_note - elf_header
-phdr1_p_vaddr:	.long	elf_note
-phdr1_p_paddr:	.long	elf_note
-phdr1_p_filesz:	.long	elf_note_end - elf_note
-phdr1_p_memsz:	.long	elf_note_end - elf_note
-phdr1_p_flags:	.long	PF_R | PF_W | PF_X
-phdr1_p_align:	.long	0
-
-/* The decompressor */
-phdr2_p_type:	.long	PT_LOAD
-phdr2_p_offset:	.long	0
-phdr2_p_vaddr:	.long	elf_header
-phdr2_p_paddr:	.long	LOAD_ADDR
-phdr2_p_filesz:	.long	_verbatim_size
-phdr2_p_memsz:	.long	_image_size
-phdr2_p_flags:	.long	PF_R | PF_W | PF_X
-phdr2_p_align:	.long	16
-
-elf_program_header_end:
-
-	.globl elf_note
-elf_note:
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_NAME
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz "Etherboot"
-4:
-
-
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_VERSION
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz VERSION
-4:
-
-#if 0
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_CHECKSUM
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.word 0
-4:
-#endif
-	.balign 4
-elf_note_end:
-
-elf_start:
-	.code64
-	/* Reload the gdt to something I know */
-	leaq	_gdt(%rip), %rax
-	movq	%rax, 0x02 + gdtptr(%rip)
-	lgdt	gdtptr(%rip)
-
-	/* Enter 32bit compatibility mode */
-	leaq	elf_start32(%rip), %rax
-	movl	%eax, 0x00 + elf_start32_addr(%rip)
-	ljmp	*elf_start32_addr(%rip)
-
-elf_start32:	
-	.code32
-	/* Reload the data segments */
-	movl	$FLAT_DATA_SEG, %eax
-	movl	%eax, %ds
-	movl	%eax, %es
-	movl	%eax, %ss
-	
-	/* Disable paging */
-	movl	%cr0, %eax
-	andl	$~CR0_PG, %eax
-	movl	%eax, %cr0
-
-	/* Disable long mode */
-	movl	$MSR_K6_EFER, %ecx
-	rdmsr
-	andl	$~EFER_LME, %eax
-	wrmsr
-
-	/* Disable PAE */
-	movl	%cr4, %eax
-	andl	$~X86_CR4_PAE, %eax
-	movl	%eax, %cr4
-
-	/* Save the first argument */
-	pushl	%ebx
-	jmp	_start
-
-gdtptr:	
-	.word	_gdt_end - _gdt -1
-	.long	_gdt
-	.long	0
-_gdt:
-elf_start32_addr:
-	.long	elf_start32
-	.long	FLAT_CODE_SEG
-_pmcs:
-	/* 32 bit protected mode code segment, base 0 */
-	.word	0xffff,0
-	.byte	0,0x9f,0xcf,0
-
-_pmds:
-	/* 32 bit protected mode data segment, base 0 */
-	.word	0xffff,0
-	.byte	0,0x93,0xcf,0
-_gdt_end:	
-
-
-	/* Dummy routines to satisfy the build */
-	.section ".text16", "ax", @progbits
-prefix_exit:
-
-prefix_exit_end:
-	.previous
diff --git a/src/arch/i386/prefix/lmelf_prefix.S b/src/arch/i386/prefix/lmelf_prefix.S
deleted file mode 100644
index 3c1e725..0000000
--- a/src/arch/i386/prefix/lmelf_prefix.S
+++ /dev/null
@@ -1,161 +0,0 @@
-#include "elf.h"
-	.arch sledgehammer
-	.code32
-	.equ	FLAT_CODE_SEG,_pmcs-_gdt
-	.equ	FLAT_DATA_SEG,_pmds-_gdt
-	.equ	MSR_K6_EFER,   0xC0000080
-	.equ	EFER_LME,      0x00000100
-	.equ	X86_CR4_PAE,   0x00000020
-	.equ	CR0_PG,        0x80000000
-
-	.section ".prefix", "ax", @progbits
-
-#define LOAD_ADDR 0x10000
-		
-	/* ELF Header */
-	.globl elf_header
-elf_header:	
-e_ident:	.byte	0x7f, 'E', 'L', 'F', 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0
-e_type:		.short	ET_EXEC
-e_machine:	.short	EM_X86_64
-e_version:	.long	1
-e_entry:	.long	LOAD_ADDR + elf_start - elf_header
-e_phoff:	.long	elf_program_header - elf_header
-e_shoff:	.long	0
-e_flags:	.long	0
-e_ehsize:	.short	elf_header_end - elf_header
-e_phentsize:	.short	ELF32_PHDR_SIZE
-e_phnum:	.short	(elf_program_header_end - elf_program_header)/ELF32_PHDR_SIZE
-e_shentsize:	.short	0
-e_shnum:	.short	0
-e_shstrndx:	.short	0
-elf_header_end:
-	
-elf_program_header:
-phdr1_p_type:	.long	PT_NOTE
-phdr1_p_offset:	.long	elf_note - elf_header
-phdr1_p_vaddr:	.long	elf_note
-phdr1_p_paddr:	.long	elf_note
-phdr1_p_filesz:	.long	elf_note_end - elf_note
-phdr1_p_memsz:	.long	elf_note_end - elf_note
-phdr1_p_flags:	.long	PF_R | PF_W | PF_X
-phdr1_p_align:	.long	0
-
-/* The decompressor */
-phdr2_p_type:	.long	PT_LOAD
-phdr2_p_offset:	.long	0
-phdr2_p_vaddr:	.long	elf_header
-phdr2_p_paddr:	.long	LOAD_ADDR
-phdr2_p_filesz:	.long	_verbatim_size
-phdr2_p_memsz:	.long	_image_size
-phdr2_p_flags:	.long	PF_R | PF_W | PF_X
-phdr2_p_align:	.long	16
-
-elf_program_header_end:
-
-	.globl elf_note
-elf_note:
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_NAME
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz "Etherboot"
-4:
-
-
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_VERSION
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.asciz VERSION
-4:
-
-#if 0
-	.balign 4
-	.int 2f - 1f
-	.int 4f - 3f
-	.int EIN_PROGRAM_CHECKSUM
-1:	.asciz "ELFBoot"
-2:
-	.balign 4
-3:	
-	.word 0
-4:
-#endif
-	.balign 4
-elf_note_end:
-
-elf_start:
-	.code64
-	/* Reload the gdt to something I know */
-	leaq	_gdt(%rip), %rax
-	movq	%rax, 0x02 + gdtptr(%rip)
-	lgdt	gdtptr(%rip)
-
-	/* Enter 32bit compatibility mode */
-	leaq	elf_start32(%rip), %rax
-	movl	%eax, 0x00 + elf_start32_addr(%rip)
-	ljmp	*elf_start32_addr(%rip)
-
-elf_start32:	
-	.code32
-	/* Reload the data segments */
-	movl	$FLAT_DATA_SEG, %eax
-	movl	%eax, %ds
-	movl	%eax, %es
-	movl	%eax, %ss
-	
-	/* Disable paging */
-	movl	%cr0, %eax
-	andl	$~CR0_PG, %eax
-	movl	%eax, %cr0
-
-	/* Disable long mode */
-	movl	$MSR_K6_EFER, %ecx
-	rdmsr
-	andl	$~EFER_LME, %eax
-	wrmsr
-
-	/* Disable PAE */
-	movl	%cr4, %eax
-	andl	$~X86_CR4_PAE, %eax
-	movl	%eax, %cr4
-
-	/* Save the first argument */
-	pushl	%ebx
-	jmp	_start
-
-gdtptr:	
-	.word	_gdt_end - _gdt -1
-	.long	_gdt
-	.long	0
-_gdt:
-elf_start32_addr:
-	.long	elf_start32
-	.long	FLAT_CODE_SEG
-_pmcs:
-	/* 32 bit protected mode code segment, base 0 */
-	.word	0xffff,0
-	.byte	0,0x9f,0xcf,0
-
-_pmds:
-	/* 32 bit protected mode data segment, base 0 */
-	.word	0xffff,0
-	.byte	0,0x93,0xcf,0
-_gdt_end:	
-
-
-	/* Dummy routines to satisfy the build */
-	.section ".text16", "ax", @progbits
-prefix_exit:
-
-prefix_exit_end:
-	.previous
-- 
1.6.5



More information about the gPXE mailing list