diff -u -r linux-2.0.32/Makefile linux/Makefile
--- linux-2.0.32/Makefile	Fri Nov 28 07:58:30 1997
+++ linux/Makefile	Tue May  5 04:36:58 1998
@@ -368,6 +368,10 @@
 	rm -f .tmp* drivers/sound/configure
 	rm -fr modules/*
 	rm -f submenu*
+	rm -f arch/ppc/kernel/mk_defs arch/ppc/kernel/mkboot \
+		arch/ppc/kernel/mk_ramdisk arch/ppc/boot/mk_type41 \
+		arch/ppc/boot/compressed/piggyback \
+		drivers/char/conmakehash scripts/tkparse
 
 mrproper: clean
 	rm -f include/linux/autoconf.h include/linux/version.h
diff -u -r linux-2.0.32/arch/ppc/Makefile linux/arch/ppc/Makefile
--- linux-2.0.32/arch/ppc/Makefile	Mon Nov 17 07:34:15 1997
+++ linux/arch/ppc/Makefile	Mon May  4 17:02:43 1998
@@ -15,29 +15,29 @@
 #
 
 # PowerPC (cross) tools
-##AS		= as.ppc
-##LD		= ld.ppc
-##AR		= ar.ppc
-##RANLIB		= ranlib.ppc
-##STRIP		= strip.ppc
-#3NM		= nm.ppc
-##HOSTCC		= gcc
-##CC		= cc.ppc
-AS		= as
-LD		= ld
-AR		= ar
-RANLIB		= ranlib
-STRIP		= strip
-NM		= nm
+AS		= ppc-elf-as
+LD		= ppc-elf-ld
+AR		= ppc-elf-ar
+RANLIB		= ppc-elf-ranlib
+STRIP		= ppc-elf-strip
+NM		= ppc-elf-nm
 HOSTCC		= gcc
-CC		= cc
+CC		= ppc-elf-gcc
+##AS		= as
+##LD		= ld
+##AR		= ar
+##RANLIB		= ranlib
+##STRIP		= strip
+##NM		= nm
+##HOSTCC		= gcc
+##CC		= cc
 
 ASFLAGS		=
 #LINKFLAGS	= -T arch/ppc/ld.script -Ttext 0x90000000 -Map vmlinux.map
 LINKFLAGS	= -T arch/ppc/ld.script -Ttext 0x90000000
-CFLAGS		= -D__KERNEL__ -I$(TOPDIR)/include \
+# Removed -msoft-float from CFLAGS below
+CFLAGS		= -D__KERNEL__ -D__powerpc__ -I$(TOPDIR)/include \
 		-Wall -Wstrict-prototypes \
-		-msoft-float \
 		-fomit-frame-pointer \
 		-fno-builtin \
 		-finhibit-size-directive \
diff -u -r linux-2.0.32/arch/ppc/boot/compressed/Makefile linux/arch/ppc/boot/compressed/Makefile
--- linux-2.0.32/arch/ppc/boot/compressed/Makefile	Sat Jun 28 22:12:14 1997
+++ linux/arch/ppc/boot/compressed/Makefile	Mon May  4 22:24:25 1998
@@ -5,9 +5,9 @@
 #
 
 TOPDIR = ../../../..
-#CC = cc.ppc
-#AS = as.ppc
-#LD = ld.ppc
+CC = ppc-elf-gcc
+AS = ppc-elf-as
+LD = ppc-elf-ld
 #ZLINKFLAGS = -T ../../ld.script -Ttext 0x00400000
 ZLINKFLAGS = -T ../../ld.script -Ttext 0x00900000
 HOSTCC = cc
@@ -20,7 +20,7 @@
 OBJECTS = $(HEAD) inflate.o unzip.o misc.o vreset.o kbd.o dbg.o ns16550.o of1275.o
 MKBOOT = $(TOPDIR)/arch/ppc/kernel/mkboot
 
-CFLAGS = -O2 -DSTDC_HEADERS
+CFLAGS = -O2 -DSTDC_HEADERS -I/cross/bebox.include
 
 .c.s:
 	$(CC) $(CFLAGS) -S $<
diff -u -r linux-2.0.32/arch/ppc/boot/mk_type41.c linux/arch/ppc/boot/mk_type41.c
--- linux-2.0.32/arch/ppc/boot/mk_type41.c	Wed Nov 27 11:51:03 1996
+++ linux/arch/ppc/boot/mk_type41.c	Tue May  5 18:45:49 1998
@@ -13,11 +13,19 @@
  *
  */
 
+/* Patched 5 May 1998: Weirdness with fstat() */
+
 #include <stdio.h>
 #include <errno.h>
 #include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
+
+void write_prep_boot_partition(int out_fd);
 
-_LE(long val, unsigned char *le)
+void _LE(unsigned long val, unsigned char *le)
 {
 	le[0] = val;
 	le[1] = val >> 8;
@@ -25,10 +33,10 @@
 	le[3] = val >> 24;
 }
 
-main(int argc, char *argv[])
+void main(int argc, char *argv[])
 {
-	int in_fd, out_fd, len, size;
-	struct stat info;
+	int in_fd, out_fd, len;
+	int length;
 	char buf[8192];
 	struct hdr
 	{
@@ -45,19 +53,16 @@
 		fprintf(stderr, "Can't open input file: '%s': %s\n", argv[1], strerror(errno));
 		exit(2);
 	}
+	length=lseek(in_fd, 0, SEEK_END);
+	lseek(in_fd, 0, SEEK_SET);	
 	if ((out_fd = creat(argv[2], 0666)) < 0)
 	{
 		fprintf(stderr, "Can't create output file: '%s': %s\n", argv[2], strerror(errno));
 		exit(2);
 	}
-	if (fstat(in_fd, &info) < 0)
-	{
-		fprintf(stderr, "Can't get info on input file: %s\n", strerror(errno));
-		exit(4);
-	}
 	write_prep_boot_partition(out_fd);
-	_LE(0x400, &hdr.entry_point);
-	_LE(info.st_size+0x400, &hdr.image_length);
+	_LE(0x400, (unsigned char*)&hdr.entry_point);
+	_LE(length+0x400, (unsigned char*)&hdr.image_length);
 	lseek(out_fd, 0x200, 0);
 	if (write(out_fd, &hdr, sizeof(hdr)) != sizeof(hdr))
 	{
@@ -149,14 +154,13 @@
  * image.  The actual boot image starts at offset 1024 bytes (third sector)
  * in the partition.
  */
-void
-write_prep_boot_partition(int out_fd)
+void write_prep_boot_partition(int out_fd)
 {
     block_t block;
     partition_entry_t *pe = (partition_entry_t *)&block[0x1BE];
-    dword_t *entry  = (dword_t *)&block[0];
+/*    dword_t *entry  = (dword_t *)&block[0];
     dword_t *length = (dword_t *)&block[4];
-
+*/
     bzero( &block, sizeof block );
 
     /*
diff -u -r linux-2.0.32/arch/ppc/kernel/Makefile linux/arch/ppc/kernel/Makefile
--- linux-2.0.32/arch/ppc/kernel/Makefile	Thu Mar  5 20:59:47 1998
+++ linux/arch/ppc/kernel/Makefile	Sat May  2 22:29:14 1998
@@ -107,7 +107,7 @@
  $(TOPDIR)/include/linux/mm.h \
  $(TOPDIR)/include/asm/pgtable.h \
  $(TOPDIR)/include/asm/mmu.h
-	${CC} ${CFLAGS} -o mk_defs mk_defs.c
+	${HOST_CC} ${CFLAGS} -o mk_defs mk_defs.c
 
 
 kernel.o: $(OBJS) mkboot
diff -u -r linux-2.0.32/arch/ppc/kernel/time.c linux/arch/ppc/kernel/time.c
--- linux-2.0.32/arch/ppc/kernel/time.c	Tue Feb 25 10:12:47 1997
+++ linux/arch/ppc/kernel/time.c	Tue May  5 19:42:52 1998
@@ -37,9 +37,11 @@
 
 #include <linux/timex.h>
 #include <linux/config.h>
+#include <linux/kernel_stat.h>
 
 extern int isBeBox[];
 
+#define BEBOX_CPU_LED 0xc00
 #define TIMER_IRQ 0
 
 /* Cycle counter value at the previous timer interrupt.. */
@@ -332,6 +334,8 @@
 /* last time the cmos clock got updated */
 static long last_rtc_update = 0;
 
+static int left = 0;
+
 /*
  * timer_interrupt() needs to keep up the real-time clock,
  * as well as call the "do_timer()" routine every clocktick
@@ -352,6 +356,28 @@
 	    last_rtc_update = xtime.tv_sec;
 	  else
 	    last_rtc_update = xtime.tv_sec - 600; /* do it again in 60 s */
+
+	/*
+	 * Bebox led hack follows. This is taken from the recent 2.1.x
+	 * kernels prep_time.c, from the heartbeat section 
+	 */
+
+	switch (kstat.interrupts[TIMER_IRQ] % 101) {
+		 case 0:
+		 case 20:
+		 	outb(left ? 3 : 48, BEBOX_CPU_LED); /* 51 = 00110011
+		 				  * First 3 leds on both
+		 				  * bars will light up
+		 				  */
+		 	break;
+		 case 7:
+		 case 27:
+		 	outb(0, BEBOX_CPU_LED);
+		 	break;
+		 case 100:
+			left = 1 - left;
+		 	break;
+	}   
 }
 
 /* Converts Gregorian date to seconds since 1970-01-01 00:00:00.
diff -u -r linux-2.0.32/drivers/net/ne.c linux/drivers/net/ne.c
--- linux-2.0.32/drivers/net/ne.c	Mon Nov 24 17:21:00 1997
+++ linux/drivers/net/ne.c	Tue May  5 12:17:57 1998
@@ -65,7 +65,7 @@
 #if defined(HAVE_DEVLIST) || !defined(MODULE)
 /* A zero-terminated list of I/O addresses to be probed. */
 static unsigned int netcard_portlist[] =
-{ 0x300, 0x280, 0x320, 0x340, 0x360, 0};
+{ 0x300, 0x240, 0x280, 0x320, 0x340, 0x360, 0};
 #endif /* defined(HAVE_DEVLIST) || !defined(MODULE) */
 
 #ifdef CONFIG_PCI
diff -u -r linux-2.0.32/init/main.c linux/init/main.c
--- linux-2.0.32/init/main.c	Thu Mar  5 05:58:57 1998
+++ linux/init/main.c	Mon May  4 18:05:17 1998
@@ -95,8 +95,10 @@
 extern void lp_setup(char *str, int *ints);
 extern void eth_setup(char *str, int *ints);
 #ifdef __powerpc__
+#ifdef CONFIG_LANCE
 extern void lance_irq_setup(char *str, int *ints);
 #endif
+#endif
 extern void xd_setup(char *str, int *ints);
 extern void floppy_setup(char *str, int *ints);
 extern void st_setup(char *str, int *ints);
@@ -307,7 +309,9 @@
 #ifdef CONFIG_INET
 	{ "ether=", eth_setup },
 #ifdef __powerpc__
+#ifdef CONFIG_LANCE
 	{ "amd_irq=", lance_irq_setup },
+#endif
 #endif
 #endif
 #ifdef CONFIG_PRINTER
