2004-07-11 Marco Gerards <metgerards@student.han.nl>

* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
	(pxeboot_img_SOURCES): New variable.
	(pxeboot_img_ASFLAGS): Likewise.
	(pxeboot_img_LDFLAGS): Likewise.
	* boot/i386/pc/pxeboot.S: New file.  Based on pxeloader.S from
	GRUB Legacy and boot.S.  Adopted for GRUB 2 by lode leroy
	<lode_leroy@hotmail.com>.
This commit is contained in:
marco_g 2004-07-11 13:44:23 +00:00
parent 6c51eb648e
commit 020616c2b2
4 changed files with 82 additions and 2 deletions

View file

@ -1,3 +1,13 @@
2004-07-11 Marco Gerards <metgerards@student.han.nl>
* conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
(pxeboot_img_SOURCES): New variable.
(pxeboot_img_ASFLAGS): Likewise.
(pxeboot_img_LDFLAGS): Likewise.
* boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
<lode_leroy@hotmail.com>.
2004-06-27 Tomas Ebenlendr <ebik@ucw.cz> 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
* kern/rescue.c (grub_enter_rescue_mode): Don't continue when * kern/rescue.c (grub_enter_rescue_mode): Don't continue when

43
boot/i386/pc/pxeboot.S Normal file
View file

@ -0,0 +1,43 @@
/* -*-Asm-*- */
/*
* GRUB -- GRand Unified Bootloader
* Copyright (C) 1999,2000,2001,2002,2004 Free Software Foundation, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include <grub/boot.h>
#include <grub/machine/boot.h>
/*
* defines for the code go here
*/
.file "pxeboot.S"
.text
/* Tell GAS to generate 16-bit instructions so that this code works
in real mode. */
.code16
.globl _start; _start:
/*
* _start is loaded at 0x7c00 and is jumped to with CS:IP 0:0x7c00
*/
ljmp $0, $0x8200
. = 0x8000 - 0x7C00 -1
.byte 0

View file

@ -4,7 +4,7 @@ COMMON_ASFLAGS = -nostdinc -fno-builtin
COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3
# Images. # Images.
pkgdata_IMAGES = boot.img diskboot.img kernel.img pkgdata_IMAGES = boot.img diskboot.img kernel.img pxeboot.img
# For boot.img. # For boot.img.
boot_img_SOURCES = boot/i386/pc/boot.S boot_img_SOURCES = boot/i386/pc/boot.S
@ -28,6 +28,28 @@ boot_img-boot_i386_pc_boot.d: boot/i386/pc/boot.S
boot_img_ASFLAGS = $(COMMON_ASFLAGS) boot_img_ASFLAGS = $(COMMON_ASFLAGS)
boot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 boot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
# For pxeboot.img
pxeboot_img_SOURCES = boot/i386/pc/pxeboot.S
CLEANFILES += pxeboot.img pxeboot.exec pxeboot_img-boot_i386_pc_pxeboot.o
MOSTLYCLEANFILES += pxeboot_img-boot_i386_pc_pxeboot.d
pxeboot.img: pxeboot.exec
$(OBJCOPY) -O binary -R .note -R .comment $< $@
pxeboot.exec: pxeboot_img-boot_i386_pc_pxeboot.o
$(CC) -o $@ $^ $(LDFLAGS) $(pxeboot_img_LDFLAGS)
pxeboot_img-boot_i386_pc_pxeboot.o: boot/i386/pc/pxeboot.S
$(CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(CPPFLAGS) -DASM_FILE=1 $(ASFLAGS) $(pxeboot_img_ASFLAGS) -c -o $@ $<
pxeboot_img-boot_i386_pc_pxeboot.d: boot/i386/pc/pxeboot.S
set -e; $(CC) -Iboot/i386/pc -I$(srcdir)/boot/i386/pc $(CPPFLAGS) -DASM_FILE=1 $(ASFLAGS) $(pxeboot_img_ASFLAGS) -M $< | sed 's,pxeboot\.o[ :]*,pxeboot_img-boot_i386_pc_pxeboot.o $@ : ,g' > $@; [ -s $@ ] || rm -f $@
-include pxeboot_img-boot_i386_pc_pxeboot.d
pxeboot_img_ASFLAGS = $(COMMON_ASFLAGS)
pxeboot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8000
# For diskboot.img. # For diskboot.img.
diskboot_img_SOURCES = boot/i386/pc/diskboot.S diskboot_img_SOURCES = boot/i386/pc/diskboot.S
CLEANFILES += diskboot.img diskboot.exec diskboot_img-boot_i386_pc_diskboot.o CLEANFILES += diskboot.img diskboot.exec diskboot_img-boot_i386_pc_diskboot.o

View file

@ -4,13 +4,18 @@ COMMON_ASFLAGS = -nostdinc -fno-builtin
COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3
# Images. # Images.
pkgdata_IMAGES = boot.img diskboot.img kernel.img pkgdata_IMAGES = boot.img diskboot.img kernel.img pxeboot.img
# For boot.img. # For boot.img.
boot_img_SOURCES = boot/i386/pc/boot.S boot_img_SOURCES = boot/i386/pc/boot.S
boot_img_ASFLAGS = $(COMMON_ASFLAGS) boot_img_ASFLAGS = $(COMMON_ASFLAGS)
boot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00 boot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
# For pxeboot.img
pxeboot_img_SOURCES = boot/i386/pc/pxeboot.S
pxeboot_img_ASFLAGS = $(COMMON_ASFLAGS)
pxeboot_img_LDFLAGS = -nostdlib -Wl,-N,-Ttext,8000
# For diskboot.img. # For diskboot.img.
diskboot_img_SOURCES = boot/i386/pc/diskboot.S diskboot_img_SOURCES = boot/i386/pc/diskboot.S
diskboot_img_ASFLAGS = $(COMMON_ASFLAGS) diskboot_img_ASFLAGS = $(COMMON_ASFLAGS)