Home | History | Annotate | Download | only in pxeboot
History log of /src/sys/arch/i386/stand/pxeboot/Makefile
RevisionDateAuthorComments
 1.30  29-Jun-2024  rin i386: stand: Tiny clean up for `start_pxeboot.o`, NFC
 1.29  29-Jun-2024  rin i386: stand: Retire its own nfs.c, and switch to libsa/nfs.c. NFC
 1.28  27-Sep-2019  gson branches: 1.28.26;
Incrase pxeboot code size limit from 64k to 128k. Fixes PR kern/54560.
The start_pxe.S part was suggested by mlelstv.
 1.27  23-Sep-2019  christos Consistently use ${RELEASEDIR}/${RELEASEMACHINE} instead of
${RELEASEDIR}/${MACHINE} (Paul Ripke)
 1.26  13-Sep-2019  manu Add multiboot 2 support to x86 bootloaders

multiboot 2 is required to boot Xen on an EFI system.
This also require a kernel patch for properly discovering
the ACPI RSDP, which is available after 20190912, in
src/sys/arch/x86/acpi/acpi_machdep.c 1.26-1.28

There are a few missing bit in this multiboot 2 implementation
(which are unused by Xen):
- Header tags Address, Freambuffer, and Relocatable are ignored
- Tags APM and Network are not provided
- Tags ACPI old and ACP new are only provided for ACPI boot
- Tag boot device does not provides the subpart (BSD disklabel partition)

Notes:
- multiboot2 is disabled in dosboot, otherwise the binary
gets too big and build fails.
- in src/sys/arch/i386/stand/efiboot, consinit() is renamed
as efi_consinit() to avoid prototype conflicts in src/sys/sys/systm.h
 1.25  02-Jun-2018  christos branches: 1.25.2; 1.25.6;
- Disable MKSANITIZER
- Redo using NOPIE
- Add NORELRO
 1.24  23-Jan-2016  christos branches: 1.24.10; 1.24.16;
We'll define the kernel types for standalone code.
 1.23  23-Jan-2016  christos Define _KERNTYPES for things that need it.
 1.22  15-Jan-2014  joerg branches: 1.22.6;
Reduce amount of -no-integrated-as on x86 as .code16 is now supported by
LLVM.
 1.21  20-May-2011  joerg branches: 1.21.4; 1.21.14; 1.21.18;
Disable integrated assembler for files that use .code16 or .code32 for
now. Disable Clang completely for bootxx and netboot for now until the
size issue has been sorted out.
 1.20  17-Jan-2010  drochner branches: 1.20.4; 1.20.6;
fix tyop in default flag definition
 1.19  17-Jan-2010  drochner Invert the flag bits to control module loading: rename
LOADMODULES->NOMODULES and READBOOTCONF->NOBOOTCONF.
This way, the default value (0) wired into old bootxx_* and installed
to file systems remains valid and we avoid problems on partial updates.
 1.18  14-Jan-2010  drochner On i386/amd64, define two flag bits in the boot parameters which control
whether modules are loaded and whether boot.cfg is evaluated, and
set both to "off" per default in the PXE bootloader.
Extend "installboot" to toggle the bits.
This way, pxeboot works with existing dhcp server setups (and as
described in the manpage) out of the box. Also, boot.cfg reading
involves a stat() call which is horribly inefficient with the
TFTP pseudo file system.
 1.17  30-Mar-2009  tsutsui Remove extra trailing slash in ${S} path.
 1.16  14-Feb-2009  abs Convert more MACHINE tests to MACHINE_ARCH
 1.15  20-Oct-2008  christos branches: 1.15.2; 1.15.8;
disable PIE for boot code.
 1.14  27-Feb-2007  he branches: 1.14.40; 1.14.44; 1.14.50;
Install pxeboot_ia32.bin as part of a "make release" on i386 and amd64.
 1.13  04-Oct-2006  salo branches: 1.13.2; 1.13.4;
Fix ypo. (hi abs!)

Noticed at #NetBSD-code.
 1.12  22-Sep-2006  abs Enable EPIA_HACK here too - http://mail-index.netbsd.org/port-i386/2006/08/18/0002.html
 1.11  25-Jun-2006  lukem branches: 1.11.4; 1.11.6;
Use LDFLAGS (with $(CC) syntax) instead of appending to LD.
 1.10  12-May-2006  mrg branches: 1.10.4;
- -mcpu=i386 is gone in GCC4
- we need -Wno-attributes (to avoid __packed__ warnings)
- use -Wno-pointer-sign
- remove some redundancy from pxeboot/Makefile
 1.9  11-Nov-2005  dsl branches: 1.9.6; 1.9.8; 1.9.10; 1.9.14;
Take the console (etc) parameters from the patchable header, instead of
hard-coded constants.
Now the updated installboot can be used to modify the console and baud rate.
 1.8  21-Aug-2005  chs copy some settings from ../boot/Makefile.boot that let us try to load
64-bit kernels on amd64.
 1.7  05-Aug-2004  dbj branches: 1.7.10; 1.7.12;
fix several related bugs that cause sysctl machdep.diskinfo to
lose when booted from pxeboot.
. make sure that i386_alldisks gets initialized even if
bios geometry information is not available in the bootinfo
. if i386_alldisks is not initialized, have sysctl return EOPNOTSUPP
. compile pxeboot with -DPASS_BIOSGEOM and I386_INCLUDE_DISK=yes
this may increase the size of pxeboot which is required to run
in 64k. However, it seems to be working ok on my system
 1.6  01-Apr-2003  mycroft branches: 1.6.2; 1.6.4;
Add -DSLOW to reduce the size of libz a bit.
 1.5  11-Mar-2003  drochner use our own NFS fs implementation, which is smaller, does a better job
in error reporting and coexists with the TFTP fs
 1.4  24-Nov-2002  lukem use NOMAN instead of MKMAN=no. noted by David Bonnafous on port-i386@
 1.3  20-Feb-2002  thorpej branches: 1.3.2; 1.3.4; 1.3.16;
* Rename the pxeboot binary from "pxeboot" to "pxeboot_ia32", since
there are other architectures (e.g. IA64) which also use PXE.
* Get the console right in pxeboot, from Andreas Gustafsson.
* Add a "com0" version of pxeboot, to address the same issue that
biosboot_com0 addresses.
 1.2  17-Feb-2002  thorpej Cleanup of i386 bootloader building:
* Add separate directories for the individual netboot ROMs and
always build them.
* Each bootloader Makefile explicitly specifies the start file
and link address it wishes to use.
* genprom becomes a proper host program.
* Make sure all generated files get cleaned up.
* Set BINDIR in Makefile.inc
* Add compressed image support to pxeboot.
* Make pxeboot use the default serial console speed (9600).
 1.1  16-Feb-2002  thorpej Add a PXE boot loader. PXE interface code is derived by code
written by Alfred Perlstein, Paul Saab, John Baldwin for FreeBSD.

Still needs some work, but this will load a kernel on a Soekris net4501.

Many thanks to Frank van der Linden and his simulator wizardry for
helping me debug the low-level startup code.
 1.3.16.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.3.16.1  20-Feb-2002  jdolecek file Makefile was added on branch kqueue on 2002-06-23 17:37:35 +0000
 1.3.4.3  11-Dec-2002  thorpej Sync with HEAD.
 1.3.4.2  28-Feb-2002  nathanw Catch up to -current.
 1.3.4.1  20-Feb-2002  nathanw file Makefile was added on branch nathanw_sa on 2002-02-28 04:10:29 +0000
 1.3.2.2  20-Feb-2002  thorpej * Rename the pxeboot binary from "pxeboot" to "pxeboot_ia32", since
there are other architectures (e.g. IA64) which also use PXE.
* Get the console right in pxeboot, from Andreas Gustafsson.
* Add a "com0" version of pxeboot, to address the same issue that
biosboot_com0 addresses.
 1.3.2.1  20-Feb-2002  thorpej file Makefile was added on branch sommerfeld_i386mp_1 on 2002-02-20 03:00:28 +0000
 1.6.4.1  16-Aug-2004  jmc Pullup rev 1.7 (requested by dbj in ticket #767)

Add support to pxeboot for reading the bios disk geometry
as well as fixing several related bugs that occur when the bios
geometry is not read by the boot loader.
 1.6.2.5  11-Dec-2005  christos Sync with head.
 1.6.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.6.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.6.2.1  12-Aug-2004  skrll Sync with HEAD.
 1.7.12.3  03-Sep-2007  yamt sync with head.
 1.7.12.2  30-Dec-2006  yamt sync with head.
 1.7.12.1  21-Jun-2006  yamt sync with head.
 1.7.10.1  15-Sep-2005  tron Pull up following revision(s) (requested by chs in ticket #783):
sys/arch/i386/stand/pxeboot/Makefile: revision 1.8
copy some settings from ../boot/Makefile.boot that let us try to load
64-bit kernels on amd64.
 1.9.14.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.9.10.2  26-Jun-2006  yamt sync with head.
 1.9.10.1  24-May-2006  yamt sync with head.
 1.9.8.1  01-Jun-2006  kardel Sync with head.
 1.9.6.1  09-Sep-2006  rpaulo sync with head
 1.10.4.1  13-Jul-2006  gdamore Merge from HEAD.
 1.11.6.1  22-Oct-2006  yamt sync with head
 1.11.4.1  18-Nov-2006  ad Sync with head.
 1.13.4.1  12-Mar-2007  rmind Sync with HEAD.
 1.13.2.1  04-Mar-2007  bouyer Pull up following revision(s) (requested by he in ticket #469):
sys/arch/i386/stand/pxeboot/Makefile: revision 1.14
etc/etc.amd64/Makefile.inc: revision 1.6
etc/etc.i386/Makefile.inc: revision 1.48
Install pxeboot_ia32.bin as part of a "make release" on i386 and amd64.
 1.14.50.1  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.14.44.2  11-Mar-2010  yamt sync with head
 1.14.44.1  04-May-2009  yamt sync with head.
 1.14.40.1  17-Jan-2009  mjf Sync with HEAD.
 1.15.8.4  27-Aug-2011  jym Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen
work of cherry@.

No regression observed on suspend/restore.
 1.15.8.3  29-Mar-2011  jym More sync fixes. And add the mbr_gpt files.
 1.15.8.2  01-Nov-2009  jym Sync with HEAD.
 1.15.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.15.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.15.2.1  03-Mar-2009  skrll Sync with HEAD.
 1.20.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.20.4.1  31-May-2011  rmind sync with head
 1.21.18.1  18-May-2014  rmind sync with head
 1.21.14.1  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.21.4.1  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.22.6.1  19-Mar-2016  skrll Sync with HEAD
 1.24.16.1  25-Jun-2018  pgoyette Sync with HEAD
 1.24.10.2  04-Oct-2019  martin Pull up following revision(s) (requested by manu in ticket #1400):

sys/arch/i386/stand/pxeboot/start_pxe.S: revision 1.7
sys/arch/i386/stand/pxeboot/Makefile: revision 1.28

Incrase pxeboot code size limit from 64k to 128k. Fixes PR kern/54560.
The start_pxe.S part was suggested by mlelstv.
 1.24.10.1  18-Sep-2019  martin Pull up following revision(s) [adapted, via patch]
(requested by manu in ticket #1382):

sys/arch/i386/include/multiboot2.h: revision 1.1
sys/arch/i386/stand/lib/exec.c: revision 1.74
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.11
sys/arch/i386/stand/efiboot/bootia32/multiboot32.S: revision 1.1
sys/arch/i386/stand/lib/biosdisk.c: revision 1.52
sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.5
distrib/sets/lists/comp/md.amd64: revision 1.273
sys/arch/i386/stand/efiboot/eficons.c: revision 1.7
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.5
distrib/sets/lists/comp/md.i386: revision 1.191
sys/arch/i386/stand/lib/libi386.h: revision 1.45
sys/arch/i386/stand/lib/bootinfo_memmap.c: revision 1.6
sys/arch/i386/stand/lib/pread.c: revision 1.8
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.10
sys/arch/i386/stand/efiboot/bootia32/Makefile: revision 1.3
sys/arch/i386/stand/lib/Makefile: revision 1.47
sys/arch/i386/stand/efiboot/bootx64/Makefile: revision 1.2
sys/arch/i386/stand/lib/multiboot.S: revision 1.3
sys/arch/i386/stand/efiboot/bootx64/multiboot64.S: revision 1.1
sys/arch/i386/stand/efiboot/efimemory.c: revision 1.9
sys/arch/i386/stand/efiboot/boot.c: revision 1.16
sys/arch/i386/include/Makefile: revision 1.50
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.16
share/man/man8/man8.x86/boot.8: revision 1.20
sys/arch/i386/stand/boot/Makefile.boot: revision 1.73
sys/arch/i386/stand/pxeboot/Makefile: revision 1.26
sys/arch/i386/stand/lib/exec_multiboot1.c: revision 1.1
sys/arch/i386/stand/netboot/Makefile.netboot: revision 1.11
sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.1
sys/arch/i386/stand/lib/biosdisk.h: revision 1.12
sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.2
sys/arch/i386/stand/dosboot/Makefile: revision 1.32
sys/external/bsd/gnu-efi/dist/inc/efiapi.h (apply patch)

Add multiboot 2 support to x86 bootloaders

multiboot 2 is required to boot Xen on an EFI system.

This also require a kernel patch for properly discovering
the ACPI RSDP, which is available after 20190912, in
src/sys/arch/x86/acpi/acpi_machdep.c 1.26-1.28

There are a few missing bit in this multiboot 2 implementation
(which are unused by Xen):
- Header tags Address, Freambuffer, and Relocatable are ignored
- Tags APM and Network are not provided
- Tags ACPI old and ACP new are only provided for ACPI boot
- Tag boot device does not provides the subpart (BSD disklabel partition)

Notes:
- multiboot2 is disabled in dosboot, otherwise the binary
gets too big and build fails.
- in src/sys/arch/i386/stand/efiboot, consinit() is renamed
as efi_consinit() to avoid prototype conflicts in src/sys/sys/systm.h

Remove debug define.

It remained there unseen because it was misspelled!

Remove obsoeolete BUGS note that UEFI bootloader does not support multiboot

Add new multiboot2.h header.
 1.25.6.2  03-Oct-2019  martin Pull up following revision(s) (requested by manu in ticket #277):

sys/arch/i386/stand/pxeboot/start_pxe.S: revision 1.7
sys/arch/i386/stand/pxeboot/Makefile: revision 1.28

Incrase pxeboot code size limit from 64k to 128k. Fixes PR kern/54560.
The start_pxe.S part was suggested by mlelstv.
 1.25.6.1  17-Sep-2019  martin Pull up following revision(s) (requested by manu in ticket #203):

sys/arch/i386/include/multiboot2.h: revision 1.1
sys/arch/i386/stand/lib/exec.c: revision 1.74
sys/arch/i386/stand/efiboot/efiboot.c: revision 1.11
sys/arch/i386/stand/efiboot/bootia32/multiboot32.S: revision 1.1
sys/arch/i386/stand/lib/biosdisk.c: revision 1.52
sys/arch/i386/stand/efiboot/bootx64/efibootx64.c: revision 1.5
sys/arch/i386/stand/efiboot/eficons.c: revision 1.7
sys/arch/i386/stand/efiboot/bootia32/efibootia32.c: revision 1.5
sys/arch/i386/stand/lib/libi386.h: revision 1.45
sys/arch/i386/stand/lib/bootinfo_memmap.c: revision 1.6
sys/arch/i386/stand/lib/pread.c: revision 1.8
sys/arch/i386/stand/efiboot/efiboot.h: revision 1.10
sys/arch/i386/stand/efiboot/bootia32/Makefile: revision 1.3
sys/arch/i386/stand/lib/Makefile: revision 1.47
sys/arch/i386/stand/efiboot/bootx64/Makefile: revision 1.2
sys/arch/i386/stand/lib/multiboot.S: revision 1.3
sys/arch/i386/stand/efiboot/bootx64/multiboot64.S: revision 1.1
sys/arch/i386/stand/efiboot/efimemory.c: revision 1.9
sys/arch/i386/stand/efiboot/boot.c: revision 1.16
sys/arch/i386/include/Makefile: revision 1.50
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.16
share/man/man8/man8.x86/boot.8: revision 1.20
sys/arch/i386/stand/boot/Makefile.boot: revision 1.73
sys/arch/i386/stand/pxeboot/Makefile: revision 1.26
sys/arch/i386/stand/lib/exec_multiboot1.c: revision 1.1
sys/arch/i386/stand/netboot/Makefile.netboot: revision 1.11
sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.1
sys/arch/i386/stand/lib/biosdisk.h: revision 1.12
sys/arch/i386/stand/lib/exec_multiboot2.c: revision 1.2
sys/arch/i386/stand/dosboot/Makefile: revision 1.32

Add multiboot 2 support to x86 bootloaders

multiboot 2 is required to boot Xen on an EFI system.

This also require a kernel patch for properly discovering
the ACPI RSDP, which is available after 20190912, in
src/sys/arch/x86/acpi/acpi_machdep.c 1.26-1.28

There are a few missing bit in this multiboot 2 implementation
(which are unused by Xen):
- Header tags Address, Freambuffer, and Relocatable are ignored
- Tags APM and Network are not provided
- Tags ACPI old and ACP new are only provided for ACPI boot
- Tag boot device does not provides the subpart (BSD disklabel partition)
Notes:
- multiboot2 is disabled in dosboot, otherwise the binary
gets too big and build fails.
- in src/sys/arch/i386/stand/efiboot, consinit() is renamed
as efi_consinit() to avoid prototype conflicts in src/sys/sys/systm.h

Remove debug define.

It remained there unseen because it was misspelled!

Remove obsoeolete BUGS note that UEFI bootloader does not support multiboot
 1.25.2.1  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.28.26.1  20-Sep-2024  martin Pull up following revision(s) (requested by rin in ticket #894):

sys/arch/i386/stand/Makefile.booters: revision 1.98
sys/lib/libsa/nfsv3.h: revision 1.1
sys/lib/libsa/rpcv2.h: revision 1.4
sys/arch/i386/stand/efiboot/Makefile.efiboot: revision 1.23
sys/lib/libsa/nfsv2.h: revision 1.5
sys/lib/libsa/nfs.c: revision 1.51
sys/lib/libsa/nfs.c: revision 1.52
sys/arch/i386/stand/libsa/nfs.c: file removal
sys/lib/libsa/nfs.c: revision 1.53
sys/arch/i386/stand/libsa/nfs.c: revision 1.20
sys/arch/i386/stand/libsa/nfs.c: revision 1.21
sys/arch/i386/stand/pxeboot/Makefile: revision 1.29

Add NFSv3 support. Try NFSv3 and fall back to NFSv2.

Merge with generic libsa NFS code to minimize differences and to learn NFSv3.

libsa: nfs: Fix NFS_NOSYMLINK option for previous
Used only by mvme68k.

Align again with libsa (NFS_NOSYMLINK fix).

libsa/nfs.c: Add `LIBSA_NFS_IMPLICIT_MOUNT` compile-time option
by which nfs_mount() is automatically called from nfs_open(),
as done for nfs.c in i386/stand.

This is only functional difference b/w two copies of nfs.c.
Now, we can safely retire the latter.
XXX
It would be really nice to drop this option also. However,
unfortunately, it is too much for me at the very moment...

i386: stand: Retire its own nfs.c, and switch to libsa/nfs.c. NFC

RSS XML Feed