bug-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Problem found + Bug Fix *** More analysis to the old problem with ether


From: Christoph Plattner
Subject: Problem found + Bug Fix *** More analysis to the old problem with etherboot+GRUB(diskless/disk)
Date: Wed, 07 Mar 2001 00:24:51 +0100

The problem for the crashing kernel was the CPU detection in the start
code
of the etherboot (start32.S). The CPU detection is done via checking,
which
bits of the FLAGS CPU register ar stucky or not (see comment in
start32.S).

The problem here is, that the flag registers are not restored again.
Of course the problem can also be in our kernel, that it does not
completely setup the initial flags state, but the CPU detection code
must not destroy the FLAGS register.

Below I send a patch of a working start32.S, based on 4.7.20.

With friendly regards

        Christoph Plattner

--- /home/plattner/tmp/etherboot-4.7.20/src/start32.S   Sun Feb 11
02:44:31 2001
+++ start32.S   Wed Mar  7 00:12:54 2001
@@ -51,6 +51,7 @@
 are either all stuck at 1 (8086/8088) or all stuck at 0 (286 in real
mode), if
 not it is a 386 or higher.  A 186/188 behaves like a 8086/8088 in this
check.

**************************************************************************/
+       pushf                           /* backup flags */
        pushf                           /* Get flags */
        popw    %ax
        andw    $0x0fff,%ax             /* Clear top 4 bits */
@@ -80,8 +81,10 @@
        lodsb
        int     $0x10
        loop    err_prloop
+       popf                            /* restore flags */
        lret
 is_386:
+       popf                            /* restore flags */
        movw    %ss,initss-_start
        movw    %sp,initsp-_start
 /*


------------------------------------------------------------------------------------
> Subject: Re: More analysis to the old problem with etherboot+GRUB 
> (diskless/disk)
> Date: Tue, 06 Mar 2001 01:10:45 +0100
> From: Christoph Plattner <address@hidden>
> Organization: private
> To: Christoph Plattner <address@hidden>
> CC: GRUB mailing list <address@hidden>,
>      address@hidden
> References: <address@hidden> <address@hidden> <address@hidden>
> 
> Further tested leads to following result in the problem described in the
> following lines.
> 
> If you all remember, I had the problem (and I already have it) that a
> multiboot kernel loaded at 0x00100000 and above crashes, if I boot GRUB
> itself via etherboot but booting GRUB from floppy, the kernel works
> well.
> 
> New experiments leads to following details:
> (1)     GRUB is NOT the problem
> (2)     Etherboot OR Netboot (Kuhlman) together with our kernel consequneces
>         in a crash.
> 
> Following experiment shows this:
> If I run etherboot (from ROM or floppy) and I select to load from local
> (L)
> disk, the GRUB is loaded locally from floppy and the kernel crashes.
> If I removed the boot rom (or boot floppy for etherboot) and boot GRUB
> again
> from the local floppy, the kernel boots.
> If I use netboot-0.9 by Kuhlman, I see the same effect like in
> etherboot.
> 
> Again. The problem is NOT the ethernet driver in etherboot/netboot. Our
> kernel
> does not access network at this time and not the here used NICs.
> Furhter the experiements are done with two different cards. I se
> etherboot via
> NE2000/ISA and GRUB via eepro100 (I also have the same effect using only
> one NIC).
> 
> The problem is a consequence of any setup of memory/BIOS stuff or
> whatever.
> There must be a initialization in the package (I don't mean init of NICs
> here),
> which is incomaptibe with this kernel (delivered from a known company
> ...) ...
> 
> Please etherboot developers and Netboot developers, help me here in
> finding a
> point of CPU/memory/Chipset/Bios initialization (I also will read
> sources),
> which can produce the problem.
> 
> And again. The problem also exists (!) if I use the option `L' for
> loading local
> from disk, so I do not use functionality of etherboot, only the fact,
> that it is
> started, the kernel crashes !!!
> 
> With friendly regards
> 
>         Christoph Plattner
> 
> Christoph Plattner wrote:
> >
> > Yes, a Linux kernel works, or seems to work. We don't know, if
> > there is a wrong byte in the code.....
> >
> > GRUB loads out multiboot kernel at 1MB and beyond.
> >
> >         Christoph P.
> >
> > -----------------------------------------------------------------
> > private:        address@hidden
> > company:        address@hidden
> >
> > Thierry Laronde wrote:
> > >
> > > On Thu, Feb 22, 2001 at 09:45:55AM +0100, Christoph Plattner wrote:
> > > > Hello GRUB and Etherboot people,
> > > >
> > > >       finally I had some time to further analysing the
> > > > problem, I describer a week ago.
> > > >
> > > > The problem was: I can boot our (company's) OS (multiboot,
> > > > loaded at 1MB) with a GRUB booted by floppy, kernel and
> > > > modules loaded via tftp (plus bootp before...)
> > >
> > > IIRC, you said that the problem doesn't appear with non multiboot kernels 
> > > ?
> > > When you say "loaded at 1MB" you mean loaded in protected mode beyond 1MB 
> > > ?
> > >
> > > Cheers,
> > > --
> > > Thierry LARONDE, Centre de Ressources Informatiques, Archamps - France
> > > http://www.cri74.org
> > > PingOO, serveur de com sur distribution GNU/Linux: http://www.pingoo.org
> > >
> > > _______________________________________________



-------------------------------------------------------------------------
private:        address@hidden
company:        address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]