[ previous ] [ next ] [ threads ]
 
 From:  Fred Wright <fw at well dot com>
 To:  m0n0wall at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall] pb14 is out
 Date:  Wed, 06 Aug 2003 12:08:43 -0700
--On Wednesday, August 6, 2003 3:05 PM +0200 Manuel Kasper <mk at neon1 dot net> 
wrote:
> On Wed, 6 Aug 2003, Roberto Zilli wrote:
>
>> The boot seems ok, but when the kernel is loaded something goes wrong,
>> the loading is VERY slow.
>> I've try another CF to be shure about this failure. It't working on my
>> desk! The working well CF card is a SanDisk.

Don't you just love it when a program tells you that something is wrong, 
but refuses to say what? :-)

> Umm, OK, so at least the boot1 stage is OK. Hmm, I'm not so sure anymore
> that I didn't accidentally overwrite the patched loader (it needs a patch
> to read only one sector at a time, too) with an unpatched version.
>
> The problem is just that I don't have a "broken" CF card, so I can't test
> it myself. I'll have a look this evening and make another image available
> with a known-patched loader so you can test again, if you don't mind.

While you're fiddling with the loader, you may want to include this:
---------------------------------------------------------------------------
--- sys/boot/i386/btx/btx/btx.s.orig	Thu Dec 28 04:08:22 2000
+++ sys/boot/i386/btx/btx/btx.s	Wed Aug  6 11:36:08 2003
@@ -293,7 +293,7 @@
 		testb $0x1,btx_hdr+0x7		# Reboot?
 exit.3:		jz exit.3			# No
 		movw $0x1234, BDA_BOOT		# Do a warm boot
-		ljmp $0xffff,$0x0		# reboot the machine
+		ljmp $0xf000,$0xfff0		# reboot the machine
 #
 # Set IRQ offsets by reprogramming 8259A PICs.
 #
---------------------------------------------------------------------------
It fixes "reboot" for the Soekris (or any other BIOS that starts with a 
near jump).  Not sure whether FreeBSD copied the bug from GRUB or 
vice-versa. :-)

I also added a conditional for the TERM_EMU problem:
---------------------------------------------------------------------------
--- sys/boot/i386/libi386/Makefile.orig	Fri Jul 19 11:46:28 2002
+++ sys/boot/i386/libi386/Makefile	Tue Jul 22 02:02:15 2003
@@ -25,8 +25,10 @@
 CFLAGS+= -DDISK_DEBUG
 .endif

+.ifndef(BOOT_NO_TERM_EMU)
 # Include simple terminal emulation (cons25-compatible)
 CFLAGS+= -DTERM_EMU
+.endif

 # Make "machine" required for all objects
 # (based on the more complete case in sys/i386/boot/Makefile.inc)
---------------------------------------------------------------------------
This avoids needing a Soekris-specific Makefile.

					Fred Wright