diff --git a/yaboot/yaboot-fixes.patch b/yaboot/yaboot-fixes.patch index 9237cd0..bf65dcc 100644 --- a/yaboot/yaboot-fixes.patch +++ b/yaboot/yaboot-fixes.patch @@ -1,6 +1,6 @@ diff -urN yaboot-1.3.14/include/prom.h yaboot-1.3.14-fixes/include/prom.h --- yaboot-1.3.14/include/prom.h 2007-08-17 10:29:26.000000000 -0400 -+++ yaboot-1.3.14-fixes/include/prom.h 2008-04-22 10:40:59.000000000 -0400 ++++ yaboot-1.3.14-fixes/include/prom.h 2008-05-05 13:40:11.000000000 -0400 @@ -37,6 +37,9 @@ #define PROM_INVALID_HANDLE ((prom_handle)-1UL) #define BOOTDEVSZ (2048) /* iscsi args can be in excess of 1040 bytes */ @@ -30,7 +30,7 @@ diff -urN yaboot-1.3.14/include/prom.h yaboot-1.3.14-fixes/include/prom.h #endif diff -urN yaboot-1.3.14/second/fs_of.c yaboot-1.3.14-fixes/second/fs_of.c --- yaboot-1.3.14/second/fs_of.c 2007-08-17 10:29:26.000000000 -0400 -+++ yaboot-1.3.14-fixes/second/fs_of.c 2008-04-22 10:43:43.000000000 -0400 ++++ yaboot-1.3.14-fixes/second/fs_of.c 2008-05-05 13:41:53.000000000 -0400 @@ -44,9 +44,8 @@ #include "errors.h" #include "debug.h" @@ -87,7 +87,7 @@ diff -urN yaboot-1.3.14/second/fs_of.c yaboot-1.3.14-fixes/second/fs_of.c static int of_net_open(struct boot_file_t* file, const char* dev_name, struct partition_t* part, const char* file_name) -@@ -138,18 +167,33 @@ +@@ -138,18 +167,34 @@ static char buffer[1024]; char *filename; char *p; @@ -118,10 +118,11 @@ diff -urN yaboot-1.3.14/second/fs_of.c yaboot-1.3.14-fixes/second/fs_of.c + for the client and server on the same subnet. */ + strcat(buffer, prom_get_siaddr(packet)); + } ++ strcat(buffer,",,100"); free(filename); } -@@ -166,7 +210,9 @@ +@@ -166,7 +211,9 @@ return FILE_ERR_BAD_FSYS; } @@ -134,7 +135,7 @@ diff -urN yaboot-1.3.14/second/fs_of.c yaboot-1.3.14-fixes/second/fs_of.c prom_close(file->of_device); diff -urN yaboot-1.3.14/second/prom.c yaboot-1.3.14-fixes/second/prom.c --- yaboot-1.3.14/second/prom.c 2007-08-17 10:29:26.000000000 -0400 -+++ yaboot-1.3.14-fixes/second/prom.c 2008-04-22 10:40:59.000000000 -0400 ++++ yaboot-1.3.14-fixes/second/prom.c 2008-05-05 13:40:11.000000000 -0400 @@ -568,6 +568,25 @@ while (prom_getms() <= end); } @@ -242,7 +243,7 @@ diff -urN yaboot-1.3.14/second/prom.c yaboot-1.3.14-fixes/second/prom.c * c-basic-offset: 5 diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c --- yaboot-1.3.14/second/yaboot.c 2007-08-17 10:29:26.000000000 -0400 -+++ yaboot-1.3.14-fixes/second/yaboot.c 2008-04-22 10:40:59.000000000 -0400 ++++ yaboot-1.3.14-fixes/second/yaboot.c 2008-05-05 13:43:48.000000000 -0400 @@ -114,6 +114,9 @@ char bootdevice[BOOTDEVSZ]; char bootoncelabel[1024]; @@ -253,7 +254,22 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c char *password = NULL; struct boot_fspec_t boot; int _machine = _MACH_Pmac; -@@ -665,7 +668,7 @@ +@@ -471,12 +474,13 @@ + if (!fspec.file) + goto out; + +- sprintf(fspec.file, "%s%02x-", cfgpath, packet->htype); ++ /* sprintf(fspec.file, "%s%02x-", cfgpath, packet->htype); + strcat(fspec.file, prom_get_mac(packet)); + + rc = load_config_file(&fspec); + if (rc) + goto out; ++ */ + + /* + * Now try to match on IP. +@@ -665,7 +669,7 @@ cmdinit(); @@ -262,7 +278,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c first = 0; imagename = bootargs; word_split(&imagename, ¶ms->args); -@@ -680,6 +683,13 @@ +@@ -680,6 +684,13 @@ timeout = simple_strtol(q, NULL, 0); } @@ -276,7 +292,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c prom_printf("boot: "); c = -1; if (timeout != -1) { -@@ -716,7 +726,9 @@ +@@ -716,7 +727,9 @@ if (!imagename) { if (bootoncelabel[0] != 0) imagename = bootoncelabel; @@ -287,7 +303,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c imagename = cfg_get_default(); } if (imagename) -@@ -737,6 +749,9 @@ +@@ -737,6 +750,9 @@ if ( useconf && (!imagename || imagename[0] == 0 )) imagename = cfg_get_default(); @@ -297,7 +313,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c label = 0; defdevice = boot.dev; -@@ -1233,7 +1248,7 @@ +@@ -1233,7 +1249,7 @@ Elf32_Ehdr *e = &(loadinfo->elf.elf32hdr); Elf32_Phdr *p, *ph; int size = sizeof(Elf32_Ehdr) - sizeof(Elf_Ident); @@ -306,7 +322,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c /* Read the rest of the Elf header... */ if ((*(file->fs->read))(file, size, &e->e_version) < size) { -@@ -1321,13 +1336,7 @@ +@@ -1321,13 +1337,7 @@ loadaddr = loadinfo->load_loc; } @@ -321,7 +337,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c if (loadinfo->base == (void *)-1) { prom_printf("Claim error, can't allocate kernel memory\n"); goto bail; -@@ -1377,7 +1386,7 @@ +@@ -1377,7 +1387,7 @@ Elf64_Ehdr *e = &(loadinfo->elf.elf64hdr); Elf64_Phdr *p, *ph; int size = sizeof(Elf64_Ehdr) - sizeof(Elf_Ident); @@ -330,7 +346,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c /* Read the rest of the Elf header... */ if ((*(file->fs->read))(file, size, &e->e_version) < size) { -@@ -1465,13 +1474,7 @@ +@@ -1465,13 +1475,7 @@ loadaddr = e->e_entry; } @@ -345,7 +361,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c if (loadinfo->base == (void *)-1) { prom_printf("Claim error, can't allocate kernel memory\n"); goto bail; -@@ -1625,8 +1628,10 @@ +@@ -1625,8 +1629,10 @@ yaboot_main(void) { char *ptype; @@ -356,7 +372,7 @@ diff -urN yaboot-1.3.14/second/yaboot.c yaboot-1.3.14-fixes/second/yaboot.c if (_machine == _MACH_Pmac) setup_display(); -@@ -1635,6 +1640,11 @@ +@@ -1635,6 +1641,11 @@ DEBUG_F("/chosen/bootargs = %s\n", bootargs); prom_get_chosen("bootpath", bootdevice, BOOTDEVSZ); DEBUG_F("/chosen/bootpath = %s\n", bootdevice);