Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Sep 2001 13:39:23 -0700 (PDT)
From:      Doug Ambrisko <ambrisko@ambrisko.com>
To:        rnordier@FreeBSD.ORG
Cc:        kstewart@urx.com, msmith@FreeBSD.ORG, roam@ringlet.net, freebsd-hackers@FreeBSD.ORG, jhb@FreeBSD.ORG, mark@whistle.com, dhw@whistle.com
Subject:   Re: Does boot1 still have a > 1023 cyl limit?
Message-ID:  <200109142039.f8EKdNT75021@ambrisko.com>
In-Reply-To: <200109141833.f8EIXRf42001@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
rnordier@FreeBSD.ORG writes:
| Kent Stewart wrote:
| 
| > Mike Smith wrote:
| > > 
| > > > So.. if I read you right, booting correctly for > 1024 cylinders works
| > > > if boot0 knows about it.  Isn't boot0 the one in the MBR, not in the fbsd
| > > > slice?  Does this mean that boot1 and boot2 should work just fine if they
| > > > are loaded by another kind of MBR loader (say, Grub), and they find out
| > > > that they are placed beyond the 1023th cylinder?
| > > 
| > > This should work, yes.
| > 
| > I tried this with a boot1 from FreeBSD 4.4-rc and get a BTX error. I
| > had to go back to the boot1 from 4.3 before I could boot.
|  
| That could be serious.  Can you post a brief description of your
| hardware, together with the BTX register dump if possible?  boot1 was
| changed to address some problems with certain hardware, so it is
| important to know if other incompatibilities have been introduced.

... in 4.3:
	warp% nm boot1.o | grep flags
	00000199 t flags
	warp% 

in -current
	a21p% !nm
	nm boot1.o | grep flags
	000001ba t flags
	a21p% 

Is someone writing into boot1 "flags"?  Then there is a problem since this
has moved.  We did some work to avoid this "linking type" problem for xread 
in boot2.c to prevent this type of error.  Do we have to do it for "flags"?

I see in libdisk:
  static void
  Cfg_Boot_Mgr(u_char *mbr, int edd)
  {
    if (mbr[0x1b0] == 0x66 && mbr[0x1b1] == 0xbb) {
        if (edd)  
            mbr[0x1bb] |= 0x80; /* Packet mode on */
        else
            mbr[0x1bb] &= 0x7f; /* Packet mode off */
    }
  }

The mbr code it is modifying is in boot0 or mbr since I see in
boot0 that:
	a21p% nm boot0.o | grep flags
	000001bb t flags
	a21p% 
but I'm not seeing how it gets over to boot1 for this test?
	read.7:         testb $FL_PACKET,%cs:MEM_REL+flags-start # LBA support e

Doug A.

PS. dhw ... could you try to set packet mode on some machines there
and test it.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




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