Re: git: e2295b911723 - main - stand: i386/amd64: Always use elf format for /boot/loader and pxeldr

From: Warner Losh <imp_at_bsdimp.com>
Date: Thu, 11 Aug 2022 17:01:50 UTC
Hey John,

On Thu, Aug 11, 2022 at 10:44 AM John Baldwin <jhb@freebsd.org> wrote:

> On 8/10/22 8:31 PM, Warner Losh wrote:
> > The branch main has been updated by imp:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=e2295b9117233d8248fe919c6b28ef1d44a8950d
> >
> > commit e2295b9117233d8248fe919c6b28ef1d44a8950d
> > Author:     Warner Losh <imp@FreeBSD.org>
> > AuthorDate: 2022-08-11 03:18:32 +0000
> > Commit:     Warner Losh <imp@FreeBSD.org>
> > CommitDate: 2022-08-11 03:28:22 +0000
> >
> >      stand: i386/amd64: Always use elf format for /boot/loader and pxeldr
> >
> >      The first level boot blocks have understood how to load ELF code
> since
> >      1999. Switch /boot/loader and /boot/pxeldr over to being ELF format
> so
> >      that in-tree tools can examine them more closely. In addition, one
> >      could, in theory, now have a 'lo-mem' and a 'hi-mem' segment
> (though a
> >      lot of work would need to be done with bounce buffers, btx, code
> segment
> >      marking, etc for an arrangement like that to work).
> >
> >      As far as I can tell, this is the last a.out binary in the tree.
> There
> >      are several raw binaries left, but everything else is ELF.
>
> Unfortunately not all of our boot blocks are ready for this.
>
> pxeboot consists of pxldr.S glued in front of a /boot/loader binary and
> pxeldr.S
> assumes an a.out header which it parses to know how large /boot/loader is
> how
> to relocate it and it's nested BTX kernel.
>

OK. I'll have to revert this and this size change then. I'll take your
suggestion
from IRC and move the size check against loader.bin and reduce the limit
by 3,000 or so bytes. I should have checked this...


> Similarly, cdboot.S used for booting of ISO images reads /boot/loader
> directly
> off of an ISO and also assumes an a.out header for /boot/loader.
>

Yea, I'd thought cdboot.S was pc98 only, but I see that's incorrect.

Warner