Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 May 2008 14:23:11 +1200
From:      Mark Kirkwood <markir@paradise.net.nz>
To:        Peter Holm <peter@holm.cc>
Cc:        freebsd-stable <freebsd-stable@freebsd.org>, John Baldwin <jhb@freebsd.org>
Subject:   Re: BTX loader hangs after version info
Message-ID:  <483A1F0F.1060502@paradise.net.nz>
In-Reply-To: <20080525171632.GA1305@peter.osted.lan>
References:  <720051dc0805220159n23eb6205yfcf9450be7af5c77@mail.gmail.com> <200805230829.09524.jhb@freebsd.org> <20080523132645.GO29770@deviant.kiev.zoral.com.ua> <200805231811.01936.jhb@freebsd.org> <48390FA9.5080503@paradise.net.nz> <4839243D.7000700@paradise.net.nz> <20080525171632.GA1305@peter.osted.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Holm wrote:
> On Sun, May 25, 2008 at 08:33:01PM +1200, Mark Kirkwood wrote:
>   
>> I wrote:
>>     
>>> John Baldwin wrote:
>>>       
>>>> Try this patch.  I'm not 100% certain this will fix it as I can't 
>>>> reproduce
>>>> the issue, but I think it might help.  Specifically, when the boot 
>>>> code makes
>>>> a v86 call, the loader/boot2/whatever swaps in/out a new set of 
>>>> registers via
>>>> the v86 structure including the eflags register.  However, none of 
>>>> the boot
>>>> programs actually initialized the v86 structure.   Thus, the BIOS 
>>>> routines
>>>> would start off running with whatever garbage was in v86.efl when 
>>>> each boot
>>>> program started.  This meant that we could end up invoking BIOS 
>>>> routines with
>>>> interrupts disabled, and I think this might explain a hard hang (if a 
>>>> BIOS
>>>> routine was waiting for an interrupt the interrupt would never 
>>>> fire).  The
>>>> patch fixes all the boot programs to initialize v86 to a better known 
>>>> state. At the least it sets v86.efl to a sane value (0x202) rather 
>>>> than random.  (The
>>>> random might have always been 0x0 BTW, not sure on that one.)
>>>>
>>>>  
>>>>         
>>> Thanks John,
>>>
>>> Unfortunately this patch does *not* cure the issue for my old 
>>> Supermicro P3TDDE, it still hangs just before presenting the menu. I 
>>> had to boot off the livefs and copy /boot/loader.old -> /boot/loader 
>>> to get back to being bootable again - but at least the old fella is on 
>>> a more up-to-date 7-STABLE now :-)
>>>       
>> Given that the patch *did* cure Peters Tyan S2720, I'll double check I 
>> didn't fat finger applying the patch (mind you the Tyan has AMI BOIS - 
>> same as my Supermicro P3TDERs that *do* work ok with current 7-STABLE, 
>> whereas the P3TDDE has Award BIOS).
>>
>> Anyway, I'll double check and report back...
>>
>> Cheers
>>
>> Mark
>>     
>
> I did 18 boots with and with out John's patch. With the patch I got 6
> actual boots and 12 hangs in the loaders progress bar.
>
> Without the patch I got 10 boots and 8 hangs.
>
> But, my Tyan M/B is old and with known ACPI issues so I'm not sure if
> this is of much value.
>
> Mark, it would be nice if you also observe if a sequence of reboots
> eventually boots your system. My longest bad streek was 8 reboots.
>
>   

Yeah, I see the same thing - with John's patch applied, out of 9 reboots 
I got 7 hangs and 2 actual boots.  (didn't try without the patch).

Mark



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?483A1F0F.1060502>