Bug 21559

Summary: BTX loader sometime show registers
Product: Base System Reporter: vova <vova>
Component: i386Assignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.1-STABLE   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
loader.gz none

Description vova 2000-09-26 12:00:00 UTC
While loading loader shows:

BTX loader 1.00  BTX version is 1.01                                            
Console: internal video/keyboard                                                
BIOS drive A: is disk0                                                          
BIOS drive C: is disk1                                                          
BIOS 638kB/523200kB available memory                                            
                                                                                
FreeBSD/i386 bootstrap loader, Revision 0.8                                     
(root@vbook.express.ru, Tue Sep 26 13:23:17 MSD 2000)                           
Loading /boot/defaults/loader.conf                                              
                                                                                
int=00000006  err=00000000  efl=00010203  eip=680001d1                          
eax=680001d1  ebx=000075cc  ecx=00000011  edx=0000765d                          
esi=00007648  edi=00000002  ebp=00093ff8  esp=00093fcc                          
cs=002b  ds=0033  es=0033    fs=0033  gs=0033  ss=0033                          
cs:eip=ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff                          
ss:esp=cb d8 00 00 cc 75 00 00-48 76 00 00 01 00 00 00                          
BTX halted                                                                      

not always, but often, no keyboard present on this machine
I am useing comconsole

Fix: 

don't use loader
How-To-Repeat: try boot 4.1-stable via comconsole some times
Comment 1 rnordier freebsd_committer freebsd_triage 2000-09-28 23:39:42 UTC
Responsible Changed
From-To: freebsd-bugs->rnordier

I'll look at this.
Comment 2 yds 2000-11-30 07:34:06 UTC
I'm having this exact same problem with about a dozen machines.  All
using ATA/IDE drives.  Chipsets range from old generic Intel 440BX or
440GX to ServerWorks, as well as VIA with a K6, an IBM ThinkPad 600, and
SIS630 w/Celeron.  Problem started Nov 9th.  Using /boot/loader from
before Nov 9th fixes the problem.  Any /boot/loader built since Nov 9th
craps
out either showing registers as described in the PR or a repeating:

...
forth not found
builtin: not found
builtins not found
forth not found
builtin: not found
builtins not found
forth not found
builtin: not found
builtins not found
only not found

can't load 'kernel'

Type '?' for a list of commands, 'help' for more detailed help.
ok _

I'm experiencing this problem with both 5.0-CURRENT and 4.2-STABLE. 
Since the problem started on all the machenes I do buildworld on at
about the same time and since there's such a different variety of
hardware involved I suspect the problem to be in some sort of change to
the tool chain used to build /boot/loader at around Nov 9th.  However
other people seem to have started experiencing this same problem much
earlier.

In any case I need help with this.  If need be I can supply coppies of
both a working and non working /boot/loader.

I do buildworld with both '-march=pentiumpro -O2' optimization settings
on 686 hardware where it seems to work despite being officially
unsupported and '-march=pentium -O' on K6/Pentium hardware.  Same
results with /boot/loader in all cases.

-- 
Yarema
Comment 3 rnordier 2000-11-30 13:20:38 UTC
Yarema wrote:
 
> The following reply was made to PR i386/21559; it has been noted by GNATS.
> 
> From: Yarema <yds@dppl.com>
> To: freebsd-gnats-submit@FreeBSD.org, vova@express.ru,
> 	dwstevens@conduit-it.com, rnordier@FreeBSD.org
> Cc:  
> Subject: Re: i386/21559: BTX loader sometime show registers
> Date: Thu, 30 Nov 2000 02:34:06 -0500
> 
>  I'm having this exact same problem with about a dozen machines.  All
>  using ATA/IDE drives.  Chipsets range from old generic Intel 440BX or
>  440GX to ServerWorks, as well as VIA with a K6, an IBM ThinkPad 600, and
>  SIS630 w/Celeron.  Problem started Nov 9th.  Using /boot/loader from
>  before Nov 9th fixes the problem.  Any /boot/loader built since Nov 9th
>  craps
>  out either showing registers as described in the PR or a repeating:
>  
>  ...
>  forth not found
>  builtin: not found
>  builtins not found
>  forth not found
>  builtin: not found
>  builtins not found
>  forth not found
>  builtin: not found
>  builtins not found
>  only not found
>  
>  can't load 'kernel'
>  
>  Type '?' for a list of commands, 'help' for more detailed help.
>  ok _
>  
>  I'm experiencing this problem with both 5.0-CURRENT and 4.2-STABLE. 
>  Since the problem started on all the machenes I do buildworld on at
>  about the same time and since there's such a different variety of
>  hardware involved I suspect the problem to be in some sort of change to
>  the tool chain used to build /boot/loader at around Nov 9th.  However
>  other people seem to have started experiencing this same problem much
>  earlier.
>  
>  In any case I need help with this.  If need be I can supply coppies of
>  both a working and non working /boot/loader.
>  
>  I do buildworld with both '-march=pentiumpro -O2' optimization settings
>  on 686 hardware where it seems to work despite being officially
>  unsupported and '-march=pentium -O' on K6/Pentium hardware.  Same
>  results with /boot/loader in all cases.

If you can come up with a non-working /boot/loader built with
standard CFLAGS, we can certainly help get to the bottom of this.
(If so, please send along a binary together with instructions on
how to recreate it.)

However, if it is the gcc optimization settings that's causing the
problem, you really just need to stop using them. :)

-- 
Robert Nordier

rnordier@nordier.com
rnordier@FreeBSD.org
Comment 4 yds 2000-11-30 18:05:53 UTC
Robert Nordier wrote:
> 
> Yarema wrote:
> 
> > The following reply was made to PR i386/21559; it has been noted by GNATS.
> >
> > From: Yarema <yds@dppl.com>
> > To: freebsd-gnats-submit@FreeBSD.org, vova@express.ru,
> >       dwstevens@conduit-it.com, rnordier@FreeBSD.org
> > Cc:
> > Subject: Re: i386/21559: BTX loader sometime show registers
> > Date: Thu, 30 Nov 2000 02:34:06 -0500
> >
> >  I'm having this exact same problem with about a dozen machines.  All
> >  using ATA/IDE drives.  Chipsets range from old generic Intel 440BX or
> >  440GX to ServerWorks, as well as VIA with a K6, an IBM ThinkPad 600, and
> >  SIS630 w/Celeron.  Problem started Nov 9th.  Using /boot/loader from
> >  before Nov 9th fixes the problem.  Any /boot/loader built since Nov 9th
> >  craps
> >  out either showing registers as described in the PR or a repeating:
> >
> >  ...
> >  forth not found
> >  builtin: not found
> >  builtins not found
> >  forth not found
> >  builtin: not found
> >  builtins not found
> >  forth not found
> >  builtin: not found
> >  builtins not found
> >  only not found
> >
> >  can't load 'kernel'
> >
> >  Type '?' for a list of commands, 'help' for more detailed help.
> >  ok _
> >
> >  I'm experiencing this problem with both 5.0-CURRENT and 4.2-STABLE.
> >  Since the problem started on all the machenes I do buildworld on at
> >  about the same time and since there's such a different variety of
> >  hardware involved I suspect the problem to be in some sort of change to
> >  the tool chain used to build /boot/loader at around Nov 9th.  However
> >  other people seem to have started experiencing this same problem much
> >  earlier.
> >
> >  In any case I need help with this.  If need be I can supply coppies of
> >  both a working and non working /boot/loader.
> >
> >  I do buildworld with both '-march=pentiumpro -O2' optimization settings
> >  on 686 hardware where it seems to work despite being officially
> >  unsupported and '-march=pentium -O' on K6/Pentium hardware.  Same
> >  results with /boot/loader in all cases.
> 
> If you can come up with a non-working /boot/loader built with
> standard CFLAGS, we can certainly help get to the bottom of this.
> (If so, please send along a binary together with instructions on
> how to recreate it.)
> 
> However, if it is the gcc optimization settings that's causing the
> problem, you really just need to stop using them. :)

OK, I commented out my CFLAGS setting in /etc/make.conf rebuilt and
reinstalled the loader and same results.  Dunno what else to say about
reproducing this.  

# cd /usr/src && make world

gives me a bad /boot/loader regardless whether I use any optimizations
in CFLAGS or not.  Attached is the latest bad /boot/loader gzipped. 
Biult with the default -O optimization setting.

-- 
Yarema
Comment 5 rnordier 2000-11-30 22:14:27 UTC
Yarema wrote:
 
> > If you can come up with a non-working /boot/loader built with
> > standard CFLAGS, we can certainly help get to the bottom of this.
> > (If so, please send along a binary together with instructions on
> > how to recreate it.)
> > 
> > However, if it is the gcc optimization settings that's causing the
> > problem, you really just need to stop using them. :)
> 
> OK, I commented out my CFLAGS setting in /etc/make.conf rebuilt and
> reinstalled the loader and same results.  Dunno what else to say about
> reproducing this.  
> 
> # cd /usr/src && make world
> 
> gives me a bad /boot/loader regardless whether I use any optimizations
> in CFLAGS or not.  Attached is the latest bad /boot/loader gzipped. 
> Biult with the default -O optimization setting.

From the look of it, you may still be linking with a libstand that
was built with more than standard optimisation.  However, the closest
I can get to your binary and your results is by enabling 

    LOADER_TFTP_SUPPORT

Then I also get a crash or nothing is found at the prompt.

Do you have TFTP turned on?  I would help if you sent the loader.sym
file that matches the non-working loader binary (best send the pair).

-- 
Robert Nordier

rnordier@nordier.com
rnordier@FreeBSD.org
Comment 6 yds 2000-12-06 06:05:29 UTC
Robert Nordier wrote:
> 
> Yarema wrote:
> 
> > > If you can come up with a non-working /boot/loader built with
> > > standard CFLAGS, we can certainly help get to the bottom of this.
> > > (If so, please send along a binary together with instructions on
> > > how to recreate it.)
> > >
> > > However, if it is the gcc optimization settings that's causing the
> > > problem, you really just need to stop using them. :)
> >
> > OK, I commented out my CFLAGS setting in /etc/make.conf rebuilt and
> > reinstalled the loader and same results.  Dunno what else to say about
> > reproducing this.
> >
> > # cd /usr/src && make world
> >
> > gives me a bad /boot/loader regardless whether I use any optimizations
> > in CFLAGS or not.  Attached is the latest bad /boot/loader gzipped.
> > Biult with the default -O optimization setting.
> 
> >From the look of it, you may still be linking with a libstand that
> was built with more than standard optimisation.  However, the closest
> I can get to your binary and your results is by enabling
> 
>     LOADER_TFTP_SUPPORT
> 
> Then I also get a crash or nothing is found at the prompt.
> 
> Do you have TFTP turned on?  I would help if you sent the loader.sym
> file that matches the non-working loader binary (best send the pair).

Robert,

Thanks for your help.  The lapse in time between finding and
uncommenting LOADER_TFTP_SUPPORT for no good reason in /etc/make.conf
and actually finding myself with a half dozen different machines with a
broken loader led me to jump to conclusions.  Perhaps that option should
be removed or a comment added that it's broken for now.  I had the same
results with both 4.x-STABLE and 5.0-CURRENT /boot/loader.  It's all
good now.

-- 
Yarema
Comment 7 rnordier freebsd_committer freebsd_triage 2001-08-13 19:09:54 UTC
Responsible Changed
From-To: rnordier->freebsd-bugs

Give someone else a chance to attend to this.
Comment 8 John Baldwin freebsd_committer freebsd_triage 2002-04-17 02:03:20 UTC
State Changed
From-To: open->closed

Originator verified that this was no longer a problem.  According to Hiten 
Pandya who did the legwork on this the originator was not using the 
correct libstand.