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

From: John Baldwin <jhb_at_FreeBSD.org>
Date: Thu, 11 Aug 2022 16:44:39 UTC
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.

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.

-- 
John Baldwin