Update to EtherBoot 5.2.4

This commit is contained in:
Doug Ambrisko
2004-06-30 21:52:50 +00:00
parent ae53822424
commit 23dd687dcc
6 changed files with 74 additions and 48 deletions

View File

@@ -6,7 +6,7 @@
#
PORTNAME= etherboot
PORTVERSION= 5.0.8
PORTVERSION= 5.2.4
PORTREVISION= 1
CATEGORIES= net
#MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}

View File

@@ -1,2 +1,2 @@
MD5 (etherboot-5.0.8.tar.bz2) = 150e2b96961924e3c4e83c8de90d24fb
SIZE (etherboot-5.0.8.tar.bz2) = 597298
MD5 (etherboot-5.2.4.tar.bz2) = 932260ae1f14a2fc8f3f81823406d254
SIZE (etherboot-5.2.4.tar.bz2) = 765452

View File

@@ -1,16 +1,16 @@
--- Config.orig Wed May 23 11:50:37 2001
+++ Config Wed May 23 11:53:08 2001
@@ -223,7 +223,7 @@
# CFLAGS32+= -DAOUT_IMAGE -DIMAGE_MULTIBOOT -DIMAGE_FREEBSD
--- Config.orig Sun Feb 22 17:26:09 2004
+++ Config Mon Jun 21 08:23:55 2004
@@ -300,7 +300,7 @@
# Download files via TFTP
CFLAGS+= -DDOWNLOAD_PROTO_TFTP
# Change download protocol to NFS, default is TFTP
-# CFLAGS32+= -DDOWNLOAD_PROTO_NFS
+CFLAGS32+= -DDOWNLOAD_PROTO_NFS
-# CFLAGS+= -DDOWNLOAD_PROTO_NFS
+CFLAGS+= -DDOWNLOAD_PROTO_NFS
# These flags affect the loader that is prepended to the Etherboot image
LCONFIG+= -DMOVEROM
--- boot1a.s.orig Sat Jun 23 10:56:25 2001
+++ boot1a.s Mon Mar 11 09:06:00 2002
# Multicast Support
# CFLAGS+=-DALLMULTI -DMULTICAST_LEVEL1 -DMULTICAST_LEVEL2 -DDOWNLOAD_PROTO_TFTM
--- arch/i386/prefix/boot1a.s.orig Sat Jun 23 10:56:25 2001
+++ arch/i386/prefix/boot1a.s Mon Mar 11 09:06:00 2002
@@ -56,7 +56,7 @@
# Partition Constants
.set PRT_OFF,0x1be # Partition offset
@@ -29,36 +29,14 @@
.byte 0xff # end head
.byte 0xff # end sect (6) + end_cyl(2)
.byte 0xff # end cyl
--- makerom.c.orig Thu Aug 2 00:27:48 2001
+++ makerom.c Mon Feb 4 15:05:00 2002
@@ -67,7 +67,7 @@
fprintf(stderr, "BIOS extension ROM Image did not start with 0x55 0xAA\n");
size = buffer[2] * 512L;
/* sizes are usually powers of two, warn if not */
- for (i = MINROMSIZE; i < MAXROMSIZE && i < size; i *= 2)
+ for (i = MINROMSIZE; i < MAXROMSIZE && i < size; i += MINROMSIZE)
;
if (size > 0 && i > size)
fprintf(stderr, "%ld is a strange size for a boot ROM\n",
@@ -192,8 +192,8 @@
exit(1);
}
/* shrink it down to the smallest size that will do */
- for (romsize = MAXROMSIZE; romsize > MINROMSIZE && romsize >= 2*fs; )
- romsize /= 2L;
+ for (romsize = MINROMSIZE; romsize < MAXROMSIZE && romsize <fs;
+ romsize += MINROMSIZE );
rom[2] = romsize / 512L;
rom[5] = 0;
if (verbose)
--- Makefile.orig Sun Feb 17 18:59:52 2002
+++ Makefile Sun Feb 17 19:00:04 2002
@@ -166,7 +166,7 @@
BOBJS32+= bin32/serial.o bin32/timer.o
BLIB32= bin32/bootlib.a
LIBS32= $(BLIB32) $(LIBC32)
-UTILS+= bin/makerom bin/lzhuf
+UTILS+= bin/makerom bin/lzhuf $(DISKLOADER)
STDDEPS32= $(START32) $(BLIB32) $(UTILS)
UBE_DEPS32= $(UBE_START32) $(BLIB32)
# MAKEDEPS is the one target that is depended by all ROMs, so we check gcc here
--- arch/i386/Makefile.orig Sun Feb 22 17:26:09 2004
+++ arch/i386/Makefile Mon Jun 21 08:35:05 2004
@@ -84,7 +84,7 @@
include $(BIN)/Roms
-allroms: $(BUILD_ROMS)
+allroms: $(BUILD_ROMS) $(DISKLOADER)
allelfs: $(BUILD_ELFS)
allpxes: $(BUILD_PXES)
allcoms: $(BUILD_COMS)

View File

@@ -0,0 +1,33 @@
diff -urp ./arch/i386/core/freebsd_loader.c /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/arch/i386/core/freebsd_loader.c
--- ./arch/i386/core/freebsd_loader.c Sun Feb 22 17:26:09 2004
+++ /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/arch/i386/core/freebsd_loader.c Wed Jun 30 13:53:10 2004
@@ -168,7 +168,7 @@ static int elf_freebsd_debug_loader(unsi
for (j=0; j < estate.e.elf32.e_phnum; j++)
{
/* Check only for loaded sections */
- if ((estate.p.phdr32[i].p_type | 0x80) == (PT_LOAD | 0x80))
+ if ((estate.p.phdr32[j].p_type | 0x80) == (PT_LOAD | 0x80))
{
/* Only the extra symbols */
if ((shdr[i].sh_offset >= estate.p.phdr32[j].p_offset) &&
@@ -288,7 +290,7 @@ static void elf_freebsd_boot(unsigned lo
/* Assumes size of long is a power of 2... */
bsdinfo.bi_esymtab = (symstr_load +
sizeof(long) +
- *((long *)symstr_load) +
+ *((long *)phys_to_virt(symstr_load)) +
sizeof(long) - 1) & ~(sizeof(long) - 1);
/* Where we will build the meta data... */
diff -urp ./core/elf_loader.c /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core/elf_loader.c
--- ./core/elf_loader.c Sun Feb 22 17:26:09 2004
+++ /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core/elf_loader.c Wed Jun 30 11:38:53 2004
@@ -268,6 +268,7 @@ static sector_t elf32_download(unsigned
}
if (estate.segment == -1) {
if (elf_freebsd_debug_loader(offset)) {
+ estate.segment = 0; /* -1 makes it not read anymore */
continue;
}
/* No more segments to be loaded, so just start the
Only in /data/home/ambrisko/stable/usr/ports/net/etherboot/work.good/etherboot-5.2.4/src/core: elf_loader.c.orig

View File

@@ -0,0 +1,15 @@
--- ./arch/i386/Makefile.orig Wed Jun 30 14:11:17 2004
+++ ./arch/i386/Makefile Wed Jun 30 14:12:08 2004
@@ -271,10 +271,10 @@
# rules to write the .img/.zimg image onto a blank floppy
%.fd0: %.img $(DISKLOADER) $(START16)
- cat $(DISKLOADER) $(START16) $< > /dev/fd0
+ cat $(DISKLOADER) $(START16) $< | dd bs=512 conv=sync > /dev/fd0
%.zfd0: %.zimg $(DISKLOADER) $(START16)
- cat $(DISKLOADER) $(START16) $< > /dev/fd0
+ cat $(DISKLOADER) $(START16) $< | dd bs=512 conv=sync > /dev/fd0
# rule to make a non-emulation ISO boot image
%.iso: %.zimg $(START16)

View File

@@ -8,7 +8,7 @@ The defaults used here are suited to boot FreeBSD ELF kernels over NFS.
To produce an etherboot floppy (or HD partition) do
cd work/etherboot/src
cat bin/boot1a.bin bin32/<device>.lzrom > /dev/fd0
cat bin/boot1a.bin bin/<device>.lzrom > /dev/fd0
Replace <device> with the specific code for your card, and /dev/fd0
with your hard disk partition.